Endpoints useful in working with delegate system of ADAMANT blockchain β Fair dPoS.
GET /api/delegates-
Description
Endpoint
/api/delegatesretrieves a list of registered ADAMANT delegates with thetotalCountvalue.Available parameters:
limitβ how many delegates to retrieve, integer. Default is 101 (active/forging delegates).offsetβ offset value for results, integer. Default is 0.
Each delegate is presented by:
usernameβ unique delegate's nickname, stringrankβ current position in the list of delegatesrateβ current rate position in the list of delegatesapprovalβ share of votes of all votes in the systemaddressβ delegate's ADAMANT addresspublicKeyβ public key of a delegatevoteβ vote weight (obsolete, not used)votesWeightβ vote weight (Fair Delegate System)producedblocksβ count of produced blocksmissedblocksβ count of missed blocksproductivityβ productivity/uptime of delegate. Will be0if the delegate is not active.
-
Example
Request:
GET https://endless.adamant.im/api/delegates?offset=101&limit=2
Response:
{ "success": true, "nodeTimestamp": 61762271, "delegates": [ { "username": "donald_trump", "address": "U13367877040303579440", "publicKey": "8d844340f42ab68a95c385620b9cda64537297cb78fc899d051058e3b7fdacc1", "vote": "37577883802740", "votesWeight": "37496691795141", "producedblocks": 35722, "missedblocks": 73, "rate": 102, "rank": 102, "approval": 0.37, "productivity": 0 }, { "username": "bcboilermaker", "address": "U8782236344013228528", "publicKey": "f3fddc1ed168dff7d658bc93a13e8954b310367718d7c55d0635ffeb5e7b8636", "vote": "110714610315343", "votesWeight": "36198972216285", "producedblocks": 53828, "missedblocks": 741, "rate": 103, "rank": 103, "approval": 0.35, "productivity": 0 } ], "totalCount": 254 }
GET /api/delegates/get-
Description
Get delegate using endpoint
/api/delegates/getwith one of the parameters:usernamepublicKeyaddress
Delegate is returned.
-
Example
Request:
GET https://endless.adamant.im/api/delegates/get?username=lynxResponse:
{ "success": true, "nodeTimestamp": 66346841, "delegate": { "username": "lynx", "address": "U11651572364276578835", "publicKey": "ef5e78a3d02e6d82f4ac0c5b8923c1b86185bd17c27c9ac027c20ec62db79a84", "vote": "192823791678106", "votesWeight": "49777782590711", "producedblocks": 40184, "missedblocks": 591, "rate": 52, "rank": 52, "approval": 0.48, "productivity": 98.55 } }
GET /api/delegates/search?q={searchCriteria}-
Description
Search delegates by
username(or part of it) using endpoint/api/delegates/searchwith parameterqfor nickname.Result includes list of delegates with additional fields:
voters_cntβ count of accounts who vote for the delegateregister_timestampβ epoch timestamp of when the delegate registered
Value
totalCountis not returned. -
Example
Request:
GET https://endless.adamant.im/api/delegates/search?q=lyResponse:
{ "success": true, "nodeTimestamp": 58048977, "delegates": [ { "rank": 90, "username": "lynx", "address": "U11651572364276578835", "publicKey": "ef5e78a3d02e6d82f4ac0c5b8923c1b86185bd17c27c9ac027c20ec62db79a84", "vote": "165822120828934", "votesWeight": "37010830605858", "producedblocks": 24269, "missedblocks": 81, "approval": 1.63, "productivity": 99.67, "voters_cnt": 12, "register_timestamp": 45523238 }, { "rank": 138, "username": "truly", "address": "U5341484442225629606", "publicKey": "8aad15185bd8a9bc6e690d11f9ca876bc9aa8223b21f198065124438e164e10d", "vote": "8712456793412", "votesWeight": "99328729204", "producedblocks": 61107, "missedblocks": 270, "approval": 0.09, "productivity": 99.56, "voters_cnt": 81, "register_timestamp": 0 } ] }
GET /api/delegates/count-
Description
Get total count of delegates in ADAMANT's delegate system with endpoint
/api/delegates/count. The success response will containcountof registered delegates. -
Example
Request:
GET https://endless.adamant.im/api/delegates/count
Response:
{ "success": true, "nodeTimestamp": 58049193, "count": 254 }
GET /api/delegates/forging/getForgedByAccount?generatorPublicKey={generatorPublicKey}-
Description
Forging activity of a delegate can be retrieved using endpoint
/api/delegates/forging/getForgedByAccountwith parametergeneratorPublicKeyrepresenting the delegate'spublicKey. In case of success, you'll get information:feesβ total sum of fees forged by delegaterewardsβ total sum of rewards made by delegateforgedβ total sum of forged tokens
All values are of integer amount of 1/10^8 ADM tokens (1 ADM = 100000000).
-
Parameters
Additional parameters for the endpoint:
startβ Unix timestamp (in seconds) for the start dateendβ Unix timestamp (in seconds) for the end date
-
Example
Request:
GET https://endless.adamant.im/api/delegates/forging/getForgedByAccount?generatorPublicKey=a9407418dafb3c8aeee28f3263fd55bae0f528a5697a9df0e77e6568b19dfe34Response:
{ "success": true, "nodeTimestamp": 58051994, "fees": "586039475511", "rewards": "3943485000000", "forged": "4529524475511" }
GET /api/delegates/getNextForgers-
Description
Endpoint
/api/delegates/getNextForgersreturns the list of next forgers:currentBlockβ current blockchain heightcurrentBlockSlotβ current block slot numbercurrentSlotβ current slot numberdelegatesβ array of next forgers' public keys
Available parameters:
limitβ count to retrieve
-
Example
Request:
GET https://endless.adamant.im/api/delegates/getNextForgers
Response:
{ "success": true, "nodeTimestamp": 58052115, "currentBlock": 10146268, "currentBlockSlot": 11610422, "currentSlot": 11610423, "delegates": [ "677c6db63548c99674fed0571da522a6a9569d0c1da9669734a3625645519641", "150d638714f65845b50f1ff58f3da2c2baa3a1dc8bf59a9884c10da5a8e951c6", "134a5de88c7da1ec71e75b5250d24168c6c6e3965ff16bd71497bd015d40ea6a", "15855ee1244a12560af0159ccd3ee1461b13819030724fe80566466f3ea5f467", "464f7e220592c144a317345d31db10c51affb144a921f2f24b2525360203f44f", "54428cfd871bb75a37a9f81614039008bc4d0811b38f721a38c37fb535af407b", "6bd642386a561027e52d5339f78d5985539ab069ada280b96d81ed9591581439", "6db519ac5ff7c62f91616bb742228450dd2d570be350b106c9b420f11df0894b", "c0c580c3fb89409f32181fef58935f286f0c1bbf61bd727084ed915b3a4bc95b", "331d76a735ae7a2a671774fae4bf19a095d366a2a51da25020edd4007f99541c" ] }
GET /api/delegates/voters?publicKey={publicKey}-
Description
Get the list of a delegate's voters using endpoint
/api/delegates/voterswith parameterpublicKeyrepresenting the delegate'spublicKey. A successful response will contain:addressβ voter's ADAMANT addresspublicKeyβ voter's public keyusernameβ voter's delegate username.nullifaddressis not a delegate.balanceβ ADM balance of voter's ADAMANT wallet. Integer amount of 1/10^8 ADM tokens (1 ADM = 100000000).
-
Example
Request:
GET https://endless.adamant.im/api/delegates/voters?publicKey=a9407418dafb3c8aeee28f3263fd55bae0f528a5697a9df0e77e6568b19dfe34Response:
{ "success": true, "nodeTimestamp": 58049363, "accounts": [ { "username": "leg", "address": "U12609717384103730908", "publicKey": "559418798f67a81b7f893aa8eab1218b9838a6b0bcd2bc8968c6d490ae0d5d77", "balance": "506697" }, { "username": "thunder", "address": "U3247657843720097949", "publicKey": "fc7151dcc08bda712c075fbfc524e10828bbbaad56ac4001cd3f5a9b93b2ea27", "balance": "507872" } ] }
GET /api/accounts/delegates?address={ADAMANT address}-
Description
To get current votes of a specific ADAMANT account, use
/api/accounts/delegatesendpoint with ADAMANTaddressparameter. The response will include a list of delegates that the account has voted for. -
Example
Request:
GET https://endless.adamant.im/api/accounts/delegates?address=U777355171330060015Response:
{ "success": true, "nodeTimestamp": 58044952, "delegates": [ { "username": "million", "address": "U777355171330060015", "publicKey": "a9407418dafb3c8aeee28f3263fd55bae0f528a5697a9df0e77e6568b19dfe34", "vote": "164286404703970", "votesWeight": "37611676759702", "producedblocks": 100493, "missedblocks": 297, "rate": 85, "rank": 85, "approval": 0.37, "productivity": 99.71 } ] }
POST /api/delegates-
Description
Use endpoint
/api/delegatesto broadcast transactions of type 2 β Delegate Registration. Make POST request to the endpoint, with payload of transaction object, where:typeis set to2recipientId=nullrecipientPublicKey=nullassetsets information for a new delegate:usernameandpublicKey
Transaction must be formed and signed.
As a successful result, you'll get the transaction registered in the ADAMANT blockchain.
-
Example
Request:
POST https://endless.adamant.im/api/delegates
{ "type": 2, "timestamp": 166805250, "timestampMs": null, "amount": 0, "senderPublicKey": "a339974effc141f302bd3589c603bdc9468dd66bcc424b60025b36999eb69ca3", "senderId": "U3031563782805250428", "asset": { "delegate": { "username": "kpeo", "publicKey": "a339974effc141f302bd3589c603bdc9468dd66bcc424b60025b36999eb69ca3" } }, "recipientId": null, "signature": "c2e4a3ef7f0d363611a2b22b96feff269f1a0cbb61741a2ce55756bb9324826092fd9bff6348145e3cc384c097f101a493b9136da5236292ecf8b1ed6657dd01" }Response:
{ "success": true, "nodeTimestamp": 166805153, "transaction": { "type": 2, "timestamp": 166805152, "timestampMs": null, "amount": 0, "senderPublicKey": "a339974effc141f302bd3589c603bdc9468dd66bcc424b60025b36999eb69ca3", "senderId": "U3031563782805250428", "asset": { "delegate": { "username": "kpeo", "publicKey": "a339974effc141f302bd3589c603bdc9468dd66bcc424b60025b36999eb69ca3" } }, "signature": "1833a86e24d57ad6dbd30c47924500a03096fd06076fafe5bca4f23ab4629268f3b1a58a1ce275356bc0b79f64a11b8abe9bec6c3d55202d6393327f9278910b", "id": "14674137414602658194", "fee": 300000000000, "relays": 1, "receivedAt": "2022-12-16T07:45:53.717Z" } }
POST /api/accounts/delegates-
Description
Use endpoint
/api/accounts/delegatesto broadcast transactions of type 3 β Vote for Delegate. Make POST request to the endpoint, with payload of transaction object, where:typeis set to3senderId=recipientId, ADAMANT address of the account who votesassetrepresentsvotesarray with publicKeys. For upvote, add leading+to delegate's publicKey. For downvote, add leading-to delegate's publicKey.
Transaction must be formed and signed.
As a success result, you'll get the transaction registered in the ADAMANT blockchain.
-
Example
Request:
POST https://endless.adamant.im/api/accounts/delegates
{ "asset": { "votes": [ "+b3d0c0b99f64d0960324089eb678e90d8bcbb3dd8c73ee748e026f8b9a5b5468", "-9ef1f6212ae871716cfa2d04e3dc5339e8fe75f89818be21ee1d75004983e2a8" ] }, "recipientId": "U14236667426471084862", "amount": 0, "type": 3, "senderId": "U14236667426471084862", "senderPublicKey": "8cd9631f9f634a361ea3b85cbd0df882633e39e7d26d7bc615bbcf75e41524ef", "timestamp": 63394407, "timestampMs": null, "signature": "7f4f5d240fc66da1cbdb3fe291d6fcec006848236355aebe346fcd1e3ba500caeac1ed0af6f3d7f912a889a1bbedc1d7bab17b6ebd36386b81df78189ddf7c07" }Response:
{ "success": true, "nodeTimestamp": 63394408, "transaction": { "asset": { "votes": [ "+b3d0c0b99f64d0960324089eb678e90d8bcbb3dd8c73ee748e026f8b9a5b5468", "-9ef1f6212ae871716cfa2d04e3dc5339e8fe75f89818be21ee1d75004983e2a8" ] }, "recipientId": "U14236667426471084862", "amount": 0, "type": 3, "senderId": "U14236667426471084862", "senderPublicKey": "8cd9631f9f634a361ea3b85cbd0df882633e39e7d26d7bc615bbcf75e41524ef", "timestamp": 63394407, "timestampMs": null, "signature": "7f4f5d240fc66da1cbdb3fe291d6fcec006848236355aebe346fcd1e3ba500caeac1ed0af6f3d7f912a889a1bbedc1d7bab17b6ebd36386b81df78189ddf7c07", "id": "13616514419605573351", "fee": 5000000000, "relays": 1, "receivedAt": "2019-09-06T10:33:28.054Z" } }