Download OpenAPI specification:
Complete REST and JSON-RPC API documentation for the Pastella cryptocurrency daemon.
All JSON-RPC methods are called via POST to /json_rpc with the method name in the request body.
Returns general information about the daemon and blockchain status. Includes current height, network height, difficulty, and transaction counts.
curl http://localhost:21001/info
{- "status": "OK",
- "height": 1000,
- "network_height": 1000,
- "top_block_hash": "abc123...",
- "difficulty": 10000,
- "tx_count": 5000,
- "tx_pool_size": 10,
- "version": "1.0.0",
- "alt_block_count": 5,
- "outgoing_connections_count": 8,
- "incoming_connections_count": 3,
- "white_peerlist_size": 50,
- "grey_peerlist_size": 20,
- "last_known_block_index": 1000
}Returns the developer fee address and amount if configured. This fee is applied to certain transactions to support development.
curl http://localhost:21001/fee
{- "address": "PAS18z7m9DGbJFoVv6HiGoiwxNG5mLoniSEFWkguBKt59JSHPHjYaa",
- "amount": 1000,
- "status": "OK"
}JSON-RPC Method: getblocktemplate
Note: The actual endpoint is POST http://localhost:21001/json_rpc with the method name in the request body.
Returns a block template that can be used for mining. The template contains all the information needed to construct a new block, including the current difficulty, reserved space for extra nonce, and the miner's wallet address for reward distribution.
| jsonrpc required | string Default: "2.0" |
| method required | string Default: "getblocktemplate" |
required | object |
| id | string |
{- "jsonrpc": "2.0",
- "method": "getblocktemplate",
- "params": {
- "wallet_address": "PAS18z7m9DGbJFoVv6HiGoiwxNG5mLoniSEFWkguBKt59JSHPHjYaa",
- "reserve_size": 10
}, - "id": "1"
}{- "jsonrpc": "string",
- "result": {
- "status": "string",
- "blocktemplate_blob": "string",
- "difficulty": 0,
- "height": 0,
- "reserved_offset": 0
}, - "id": "string"
}JSON-RPC Method: submitblock
Note: The actual endpoint is POST http://localhost:21001/json_rpc with the method name in the request body.
Submit a mined block to the network. After successfully mining a block using the block template, submit the completed block blob to be added to the blockchain.
| jsonrpc required | string Default: "2.0" |
| method required | string Default: "submitblock" |
required | object |
| id | string |
{- "jsonrpc": "2.0",
- "method": "submitblock",
- "params": {
- "block_blob": "0102abc..."
}, - "id": "1"
}{- "jsonrpc": "string",
- "result": {
- "status": "string"
}, - "id": "string"
}JSON-RPC Method: getblockcount
Note: The actual endpoint is POST http://localhost:21001/json_rpc with the method name in the request body.
Returns the total number of blocks in the blockchain. This is equivalent to the current blockchain height + 1.
| jsonrpc required | string Default: "2.0" |
| method required | string Default: "getblockcount" |
| params | object |
| id | string |
{- "jsonrpc": "2.0",
- "method": "getblockcount",
- "params": { },
- "id": "1"
}{- "jsonrpc": "string",
- "result": {
- "count": 0,
- "status": "string"
}, - "id": "string"
}JSON-RPC Method: getlastblockheader
Note: The actual endpoint is POST http://localhost:21001/json_rpc with the method name in the request body.
Returns detailed information about the most recent block in the blockchain.
| jsonrpc required | string Default: "2.0" |
| method required | string Default: "getlastblockheader" |
| params | object |
| id | string |
{- "jsonrpc": "2.0",
- "method": "getlastblockheader",
- "params": { },
- "id": "1"
}{- "jsonrpc": "string",
- "result": {
- "major_version": 1,
- "minor_version": 0,
- "timestamp": 1234567890,
- "prev_hash": "0000000000000000000000000000000000000000000000000000000000000000",
- "nonce": 12345,
- "orphan_status": false,
- "height": 1000,
- "hash": "b60abb4fe3e8f8e9a7a3e7f5d5e8e8e9a7a3e7f5d5e8e8e9a7a3e7f5d5e8e8e9",
- "difficulty": 10000,
- "reward": 400000000,
- "blockSize": 5000,
- "transactions": [
- {
- "hash": "a7b3c8d4e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8",
- "fee": 10000,
- "amount_out": 100000000000,
- "size": 500,
- "type": "TRANSFER",
- "unlock_time": 0
}
], - "totalFeeAmount": 10000,
- "coinbase_tx": {
- "hash": "a7b3c8d4e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8",
- "fee": 10000,
- "amount_out": 100000000000,
- "size": 500,
- "type": "TRANSFER",
- "unlock_time": 0
}
}, - "id": "string"
}JSON-RPC Method: getblockheaderbyhash
Note: The actual endpoint is POST http://localhost:21001/json_rpc with the method name in the request body.
Returns detailed header information for a specific block given its hash.
| jsonrpc required | string Default: "2.0" |
| method required | string Default: "getblockheaderbyhash" |
required | object |
| id | string |
{- "jsonrpc": "2.0",
- "method": "getblockheaderbyhash",
- "params": {
- "hash": "b60abb4fe3e8f8e9a7a3e7f5d5e8e8e9a7a3e7f5d5e8e8e9a7a3e7f5d5e8e8e9"
}, - "id": "1"
}{- "jsonrpc": "string",
- "result": {
- "status": "string",
- "block_header": {
- "major_version": 1,
- "minor_version": 0,
- "timestamp": 1234567890,
- "prev_hash": "0000000000000000000000000000000000000000000000000000000000000000",
- "nonce": 12345,
- "orphan_status": false,
- "height": 1000,
- "hash": "b60abb4fe3e8f8e9a7a3e7f5d5e8e8e9a7a3e7f5d5e8e8e9a7a3e7f5d5e8e8e9",
- "difficulty": 10000,
- "reward": 400000000,
- "blockSize": 5000,
- "transactions": [
- {
- "hash": "a7b3c8d4e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8",
- "fee": 10000,
- "amount_out": 100000000000,
- "size": 500,
- "type": "TRANSFER",
- "unlock_time": 0
}
], - "totalFeeAmount": 10000,
- "coinbase_tx": {
- "hash": "a7b3c8d4e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8",
- "fee": 10000,
- "amount_out": 100000000000,
- "size": 500,
- "type": "TRANSFER",
- "unlock_time": 0
}
}
}, - "id": "string"
}JSON-RPC Method: getblockheaderbyheight
Note: The actual endpoint is POST http://localhost:21001/json_rpc with the method name in the request body.
Returns detailed header information for a block at a specific height.
| jsonrpc required | string Default: "2.0" |
| method required | string Default: "getblockheaderbyheight" |
required | object |
| id | string |
{- "jsonrpc": "2.0",
- "method": "getblockheaderbyheight",
- "params": {
- "height": 1000
}, - "id": "1"
}{- "jsonrpc": "string",
- "result": {
- "status": "string",
- "block_header": {
- "major_version": 1,
- "minor_version": 0,
- "timestamp": 1234567890,
- "prev_hash": "0000000000000000000000000000000000000000000000000000000000000000",
- "nonce": 12345,
- "orphan_status": false,
- "height": 1000,
- "hash": "b60abb4fe3e8f8e9a7a3e7f5d5e8e8e9a7a3e7f5d5e8e8e9a7a3e7f5d5e8e8e9",
- "difficulty": 10000,
- "reward": 400000000,
- "blockSize": 5000,
- "transactions": [
- {
- "hash": "a7b3c8d4e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8",
- "fee": 10000,
- "amount_out": 100000000000,
- "size": 500,
- "type": "TRANSFER",
- "unlock_time": 0
}
], - "totalFeeAmount": 10000,
- "coinbase_tx": {
- "hash": "a7b3c8d4e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8",
- "fee": 10000,
- "amount_out": 100000000000,
- "size": 500,
- "type": "TRANSFER",
- "unlock_time": 0
}
}
}, - "id": "string"
}JSON-RPC Method: f_blocks_list_json
Note: The actual endpoint is POST http://localhost:21001/json_rpc with the method name in the request body.
Returns full block information for a single block specified by height. Requires --enable-blockexplorer flag.
| jsonrpc required | string Default: "2.0" |
| method required | string Default: "f_blocks_list_json" |
required | object |
| id | string |
{- "jsonrpc": "2.0",
- "method": "f_blocks_list_json",
- "params": {
- "height": 100
}, - "id": "1"
}{- "jsonrpc": "string",
- "result": {
- "status": "string",
- "blocks": [
- {
- "major_version": 1,
- "minor_version": 0,
- "timestamp": 1234567890,
- "prev_hash": "0000000000000000000000000000000000000000000000000000000000000000",
- "nonce": 12345,
- "orphan_status": false,
- "height": 1000,
- "hash": "b60abb4fe3e8f8e9a7a3e7f5d5e8e8e9a7a3e7f5d5e8e8e9a7a3e7f5d5e8e8e9",
- "difficulty": 10000,
- "reward": 400000000,
- "blockSize": 5000,
- "transactions": [
- {
- "hash": "a7b3c8d4e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8",
- "fee": 10000,
- "amount_out": 100000000000,
- "size": 500,
- "type": "TRANSFER",
- "unlock_time": 0
}
], - "totalFeeAmount": 10000,
- "coinbase_tx": {
- "hash": "a7b3c8d4e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8",
- "fee": 10000,
- "amount_out": 100000000000,
- "size": 500,
- "type": "TRANSFER",
- "unlock_time": 0
}
}
]
}, - "id": "string"
}JSON-RPC Method: f_block_json
Note: The actual endpoint is POST http://localhost:21001/json_rpc with the method name in the request body.
Returns complete block information including all transactions with their types (COINBASE, TRANSFER, STAKING). Requires --enable-blockexplorer flag.
| jsonrpc required | string Default: "2.0" |
| method required | string Default: "f_block_json" |
required | object |
| id | string |
{- "jsonrpc": "2.0",
- "method": "f_block_json",
- "params": {
- "hash": "b60abb4fe3e8f8e9a7a3e7f5d5e8e8e9a7a3e7f5d5e8e8e9a7a3e7f5d5e8e8e9"
}, - "id": "1"
}{- "jsonrpc": "string",
- "result": {
- "status": "string",
- "block": {
- "major_version": 1,
- "minor_version": 0,
- "timestamp": 1234567890,
- "prev_hash": "0000000000000000000000000000000000000000000000000000000000000000",
- "nonce": 12345,
- "orphan_status": false,
- "height": 1000,
- "hash": "b60abb4fe3e8f8e9a7a3e7f5d5e8e8e9a7a3e7f5d5e8e8e9a7a3e7f5d5e8e8e9",
- "difficulty": 10000,
- "reward": 400000000,
- "blockSize": 5000,
- "transactions": [
- {
- "hash": "a7b3c8d4e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8",
- "fee": 10000,
- "amount_out": 100000000000,
- "size": 500,
- "type": "TRANSFER",
- "unlock_time": 0
}
], - "totalFeeAmount": 10000,
- "coinbase_tx": {
- "hash": "a7b3c8d4e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8",
- "fee": 10000,
- "amount_out": 100000000000,
- "size": 500,
- "type": "TRANSFER",
- "unlock_time": 0
}
}
}, - "id": "string"
}Submits a raw transaction (in hex format) to the network. The transaction will be validated and added to the mempool if valid. Requires daemon to be synced.
| tx_as_hex required | string Transaction data in hexadecimal format |
{- "tx_as_hex": "010201abc..."
}{- "status": "OK",
- "transactionHash": "abc123...",
- "error": "Transaction fee is too low"
}Checks whether transactions are in the mempool or blockchain. Useful for tracking transaction confirmation.
| transactionHashes required | Array of strings List of transaction hashes to check |
{- "transactionHashes": [
- "hash1...",
- "hash2..."
]
}{- "status": "string",
- "transactionsInPool": [
- "string"
], - "transactionsInBlock": [
- "string"
], - "unknownTransactions": [
- "string"
]
}Returns changes to the transaction pool (mempool) since last check. Used for efficient wallet synchronization.
| knownPoolTxHashes required | Array of strings Transaction hashes known to be in pool |
{- "knownPoolTxHashes": [
- "hash1...",
- "hash2..."
]
}{- "status": "string",
- "addedTxs": [ ],
- "deletedTxs": [
- "string"
]
}Returns raw binary transaction data in hex format.
| transactionHashes required | Array of strings List of transaction hashes |
{- "transactionHashes": [
- "hash1..."
]
}{- "status": "string",
- "transactions": [
- "string"
], - "missedTransactions": [
- "string"
]
}JSON-RPC Method: f_transaction_json
Note: The actual endpoint is POST http://localhost:21001/json_rpc with the method name in the request body.
Returns complete transaction information including inputs, outputs, addresses, and UTXO references. Requires --enable-blockexplorer flag.
| jsonrpc required | string Default: "2.0" |
| method required | string Default: "f_transaction_json" |
required | object |
| id | string |
{- "jsonrpc": "2.0",
- "method": "f_transaction_json",
- "params": {
- "hash": "a7b3c8d4e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8"
}, - "id": "1"
}{- "jsonrpc": "string",
- "result": {
- "status": "string",
- "transaction": {
- "hash": "a7b3c8d4e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8",
- "block_hash": "b60abb4fe3e8f8e9a7a3e7f5d5e8e8e9a7a3e7f5d5e8e8e9a7a3e7f5d5e8e8e9",
- "block_timestamp": 1234567890,
- "block_height": 1000,
- "unlock_time": 0,
- "fee": 10000,
- "fee_formatted": "0.00010000",
- "amount_in": 100000000000,
- "amount_out": 99990000000,
- "mixin": 0,
- "type": "TRANSFER",
- "inputs": [
- {
- "amount": 50000000000,
- "amount_formatted": "50.00000000",
- "spending": {
- "transaction_hash": "c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2",
- "output_index": 0
}, - "from_address": "PAS18z7m9DGbJFoVv6HiGoiwxNG5mLoniSEFWkguBKt59JSHPHjYaa"
}
], - "outputs": [
- {
- "index": 0,
- "address": "PAS1abc...",
- "amount": 99990000000,
- "amount_formatted": "99.99000000"
}
]
}
}, - "id": "string"
}JSON-RPC Method: f_on_transactions_pool_json
Note: The actual endpoint is POST http://localhost:21001/json_rpc with the method name in the request body.
Returns all transactions currently in the memory pool (mempool). Requires --enable-blockexplorer flag.
| jsonrpc required | string Default: "2.0" |
| method required | string Default: "f_on_transactions_pool_json" |
| params | object |
| id | string |
{- "jsonrpc": "2.0",
- "method": "f_on_transactions_pool_json",
- "params": { },
- "id": "1"
}{- "jsonrpc": "string",
- "result": {
- "status": "string",
- "transactions": [
- {
- "hash": "a7b3c8d4e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8",
- "fee": 10000,
- "fee_formatted": "0.00010000",
- "amount_in": 100000000000,
- "amount_out": 99990000000,
- "size": 500,
- "unlock_time": 0,
- "type": "TRANSFER",
- "outputs": [
- {
- "index": 0,
- "address": "PAS1abc...",
- "amount": 99990000000,
- "amount_formatted": "99.99000000"
}
], - "inputs": [
- {
- "amount": 50000000000,
- "amount_formatted": "50.00000000",
- "spending": {
- "transaction_hash": "c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2",
- "output_index": 0
}, - "from_address": "PAS18z7m9DGbJFoVv6HiGoiwxNG5mLoniSEFWkguBKt59JSHPHjYaa"
}
], - "mixin": 0
}
]
}, - "id": "string"
}Returns blockchain data optimized for wallet synchronization. This includes blocks, transactions, and checkpoints.
| blockHashCheckpoints | Array of strings Known block hashes to use as checkpoints |
| startHeight | integer Default: 0 Starting block height |
| startTimestamp | integer Default: 0 Starting timestamp (Unix epoch) |
| blockCount | integer <= 1000 Default: 100 Number of blocks to return |
| skipCoinbaseTransactions | boolean Default: false Whether to exclude coinbase transactions |
{- "startHeight": 1000,
- "blockCount": 100,
- "skipCoinbaseTransactions": false
}{- "items": [ ],
- "topBlock": { }
}JSON-RPC Method: richlist
Note: The actual endpoint is POST http://localhost:21001/json_rpc with the method name in the request body.
Returns a list of the richest addresses in the blockchain. Requires --enable-blockexplorer flag.
| jsonrpc required | string Default: "2.0" |
| method required | string Default: "richlist" |
| params | object |
| id | string |
{- "jsonrpc": "2.0",
- "method": "richlist",
- "params": { },
- "id": "1"
}{- "jsonrpc": "string",
- "result": {
- "status": "string",
- "richlist": [
- {
- "address": "string",
- "balance": 0,
- "balance_formatted": "string"
}
]
}, - "id": "string"
}JSON-RPC Method: getwalletdetails
Note: The actual endpoint is POST http://localhost:21001/json_rpc with the method name in the request body.
Returns comprehensive wallet information including balance, transaction history, and address details. Requires --enable-blockexplorer flag.
| jsonrpc required | string Default: "2.0" |
| method required | string Default: "getwalletdetails" |
required | object |
| id | string |
{- "jsonrpc": "2.0",
- "method": "getwalletdetails",
- "params": {
- "address": "PAS18z7m9DGbJFoVv6HiGoiwxNG5mLoniSEFWkguBKt59JSHPHjYaa",
- "page": 0,
- "limit": 100
}, - "id": "1"
}{- "jsonrpc": "string",
- "result": {
- "status": "OK",
- "address": "PAS18z7m9DGbJFoVv6HiGoiwxNG5mLoniSEFWkguBKt59JSHPHjYaa",
- "total_balance": 75996000000,
- "total_balance_formatted": "759.96000000",
- "total_incoming": 100000000000,
- "total_incoming_formatted": "1000.00000000",
- "total_outgoing": 24004000000,
- "total_outgoing_formatted": "240.04000000",
- "total_transactions": 42,
- "first_tx_timestamp": 1234567890,
- "last_tx_timestamp": 1234599999,
- "transactions": [
- {
- "transactionHash": "a7b3c8d4e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8",
- "blockNumber": 1000,
- "blockHash": "b60abb4fe3e8f8e9a7a3e7f5d5e8e8e9a7a3e7f5d5e8e8e9a7a3e7f5d5e8e8e9",
- "amount": 1000000000,
- "type": "INCOMING",
- "balanceAfter": 75996000000,
- "timestamp": 1234567890,
- "unlockTime": 0,
- "fee": 10000,
- "fee_formatted": "0.00010000",
- "fromAddresses": [
- "PAS18z7m9DGbJFoVv6HiGoiwxNG5mLoniSEFWkguBKt59JSHPHjYaa"
], - "toAddresses": [
- "PAS1abc..."
]
}
]
}, - "id": "string"
}Retrieves UTXO information for multiple transaction outputs.
required | Array of objects List of UTXO identifiers |
{- "utxos": [
- {
- "hash": "hash1...",
- "index": 0
}, - {
- "hash": "hash2...",
- "index": 1
}
]
}{- "status": "string",
- "utxos": [
- {
- "key_image": "123abc...",
- "transaction_hash": "def456...",
- "output_index": 0,
- "amount": 100000000000,
- "amount_formatted": "1000.00000000",
- "unlock_time": 0,
- "address": "PAS18z7m9DGbJFoVv6HiGoiwxNG5mLoniSEFWkguBKt59JSHPHjYaa",
- "spent": false,
- "spent_by": "a7b3c8d4e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8",
- "spent_height": 1050,
- "block_height": 1000
}
]
}JSON-RPC Method: getutxo
Note: The actual endpoint is POST http://localhost:21001/json_rpc with the method name in the request body.
Returns detailed information about a specific Unspent Transaction Output (UTXO). Requires --enable-blockexplorer flag.
| jsonrpc required | string Default: "2.0" |
| method required | string Default: "getutxo" |
required | object |
| id | string |
{- "jsonrpc": "2.0",
- "method": "getutxo",
- "params": {
- "transaction_hash": "a7b3c8d4e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8",
- "output_index": 0
}, - "id": "1"
}{- "jsonrpc": "string",
- "result": {
- "status": "string",
- "utxo": {
- "key_image": "123abc...",
- "transaction_hash": "def456...",
- "output_index": 0,
- "amount": 100000000000,
- "amount_formatted": "1000.00000000",
- "unlock_time": 0,
- "address": "PAS18z7m9DGbJFoVv6HiGoiwxNG5mLoniSEFWkguBKt59JSHPHjYaa",
- "spent": false,
- "spent_by": "a7b3c8d4e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8",
- "spent_height": 1050,
- "block_height": 1000
}
}, - "id": "string"
}JSON-RPC Method: getutxosfortx
Note: The actual endpoint is POST http://localhost:21001/json_rpc with the method name in the request body.
Returns all UTXOs (outputs) created by a specific transaction. Requires --enable-blockexplorer flag.
| jsonrpc required | string Default: "2.0" |
| method required | string Default: "getutxosfortx" |
required | object |
| id | string |
{- "jsonrpc": "2.0",
- "method": "getutxosfortx",
- "params": {
- "transaction_hash": "a7b3c8d4e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8"
}, - "id": "1"
}{- "jsonrpc": "string",
- "result": {
- "status": "string",
- "utxos": [
- {
- "key_image": "123abc...",
- "transaction_hash": "def456...",
- "output_index": 0,
- "amount": 100000000000,
- "amount_formatted": "1000.00000000",
- "unlock_time": 0,
- "address": "PAS18z7m9DGbJFoVv6HiGoiwxNG5mLoniSEFWkguBKt59JSHPHjYaa",
- "spent": false,
- "spent_by": "a7b3c8d4e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8",
- "spent_height": 1050,
- "block_height": 1000
}
]
}, - "id": "string"
}Returns information about connected peers. Includes both white peers (active) and gray peers (recently seen).
curl http://localhost:21001/peers
{- "peers": [
- "192.168.1.100:21000"
], - "peers_gray": [
- "10.0.0.5:21000"
], - "status": "OK"
}Returns comprehensive information about the staking pool status, including total staked amount, available balance, and staking parameters.
curl http://localhost:21001/getstakingpool
{- "status": "OK",
- "staking_enabled": true,
- "staking_enable_height": 100000,
- "current_height": 150000,
- "minimum_stake": 1000000000000,
- "total_staked": 50000000000000,
- "pending_stakes": 0,
- "total_pool_balance": 55000000000000,
- "available_balance": 5000000000000,
- "block_reward_rate": 30
}Returns all stakes in the system with pagination support.
| page | integer >= 0 Default: 0 Page number for pagination |
| limit | integer [ 1 .. 1000 ] Default: 100 Number of stakes per page |
curl "http://localhost:21001/getallstakes?page=0&limit=100"
{- "status": "OK",
- "stakes": [
- {
- "staking_tx_hash": "abc123...",
- "address": "PAS18z7m9DGbJFoVv6HiGoiwxNG5mLoniSEFWkguBKt59JSHPHjYaa",
- "amount": 1000000000000,
- "amount_formatted": "1000.00000000",
- "unlock_height": 160000,
- "pending_rewards": 50000000,
- "pending_rewards_formatted": "0.05000000"
}
], - "total_stakes": 500,
- "page": 0,
- "limit": 100,
- "total_staked": 50000000000000
}Returns all stakes in the system with pagination support.
| page | integer >= 0 Default: 0 Page number for pagination |
| limit | integer [ 1 .. 1000 ] Default: 100 Number of stakes per page |
{- "page": 0,
- "limit": 100
}{- "status": "OK",
- "stakes": [
- {
- "staking_tx_hash": "abc123...",
- "address": "PAS18z7m9DGbJFoVv6HiGoiwxNG5mLoniSEFWkguBKt59JSHPHjYaa",
- "amount": 1000000000000,
- "amount_formatted": "1000.00000000",
- "unlock_height": 160000,
- "pending_rewards": 50000000,
- "pending_rewards_formatted": "0.05000000"
}
], - "total_stakes": 500,
- "page": 0,
- "limit": 100,
- "total_staked": 50000000000000
}Returns pending rewards for a staking address.
| address required | string Staking address |
{- "address": "PAS18z7m9DGbJFoVv6HiGoiwxNG5mLoniSEFWkguBKt59JSHPHjYaa"
}{- "status": "string",
- "address": "string",
- "pending_rewards": 50000000,
- "available_for_withdrawal": 45000000,
- "total_staked": 1000000000000
}Returns detailed information about stakes. Can query either by transaction hashes or by wallet address.
| staking_hashes required | Array of strings non-empty List of staking transaction hashes |
{- "staking_hashes": [
- "hash1...",
- "hash2..."
]
}{- "status": "string",
- "stake_count": 2,
- "stakes": [
- { }
]
}WARNING: This endpoint is documented but not currently implemented in the codebase.
This endpoint was intended to manually trigger reward calculation for all stakes. Rewards are calculated automatically each block and this endpoint is not functional.
{ }{- "status": "string",
- "message": "Staking rewards updated successfully",
- "current_height": 150000
}Returns governance proposals. Can filter for active proposals only.
| active_only | boolean Default: false Whether to return only active proposals |
curl "http://localhost:21001/getproposals?active_only=true"
{- "status": "OK",
- "proposals": [
- {
- "proposal_id": 1,
- "title": "Increase block reward",
- "description": "Proposal to increase block reward by 10%",
- "creator": "PAS18z7m9DGbJFoVv6HiGoiwxNG5mLoniSEFWkguBKt59JSHPHjYaa",
- "creation_height": 150000,
- "expiration_height": 151000,
- "yes_votes": 100,
- "no_votes": 20,
- "total_staked": 10000000000000,
- "active": true,
- "passed": false
}
]
}Returns governance proposals. Can filter for active proposals only.
| active_only | boolean Default: false Whether to return only active proposals |
{- "active_only": true
}{- "status": "OK",
- "proposals": [
- {
- "proposal_id": 1,
- "title": "Increase block reward",
- "description": "Proposal to increase block reward by 10%",
- "creator": "PAS18z7m9DGbJFoVv6HiGoiwxNG5mLoniSEFWkguBKt59JSHPHjYaa",
- "creation_height": 150000,
- "expiration_height": 151000,
- "yes_votes": 100,
- "no_votes": 20,
- "total_staked": 10000000000000,
- "active": true,
- "passed": false
}
]
}Returns detailed information about a specific governance proposal.
| proposal_id required | integer Proposal ID to look up |
curl "http://localhost:21001/getproposal?proposal_id=1"
{- "status": "OK",
- "proposal": {
- "proposal_id": 1,
- "title": "Increase block reward",
- "description": "Proposal to increase block reward by 10%",
- "creator": "PAS18z7m9DGbJFoVv6HiGoiwxNG5mLoniSEFWkguBKt59JSHPHjYaa",
- "creation_height": 150000,
- "expiration_height": 151000,
- "yes_votes": 100,
- "no_votes": 20,
- "total_staked": 10000000000000,
- "active": true,
- "passed": false
}, - "voters": [
- "string"
]
}Returns detailed information about a specific governance proposal.
| proposal_id required | integer Proposal ID to look up |
{- "proposal_id": 1
}{- "status": "OK",
- "proposal": {
- "proposal_id": 1,
- "title": "Increase block reward",
- "description": "Proposal to increase block reward by 10%",
- "creator": "PAS18z7m9DGbJFoVv6HiGoiwxNG5mLoniSEFWkguBKt59JSHPHjYaa",
- "creation_height": 150000,
- "expiration_height": 151000,
- "yes_votes": 100,
- "no_votes": 20,
- "total_staked": 10000000000000,
- "active": true,
- "passed": false
}, - "voters": [
- "string"
]
}Returns the voting power of a specific address based on their staked amount. Voting power is proportional to the amount staked.
| address required | string Wallet address to check voting power for |
curl "http://localhost:21001/getvotingpower?address=PAS18z7m9DGbJFoVv6HiGoiwxNG5mLoniSEFWkguBKt59JSHPHjYaa"
{- "status": "OK",
- "address": "PAS18z7m9DGbJFoVv6HiGoiwxNG5mLoniSEFWkguBKt59JSHPHjYaa",
- "voting_power": 1000000000000,
- "voting_power_formatted": "1000.00000000",
- "total_staked": 1000000000000,
- "total_staked_formatted": "1000.00000000"
}Returns the voting power of a specific address based on their staked amount.
| address required | string Wallet address to check voting power for |
{- "address": "PAS18z7m9DGbJFoVv6HiGoiwxNG5mLoniSEFWkguBKt59JSHPHjYaa"
}{- "status": "OK",
- "address": "PAS18z7m9DGbJFoVv6HiGoiwxNG5mLoniSEFWkguBKt59JSHPHjYaa",
- "voting_power": 1000000000000,
- "voting_power_formatted": "1000.00000000",
- "total_staked": 1000000000000,
- "total_staked_formatted": "1000.00000000"
}Returns the ID that will be assigned to the next proposal.
{ }{- "status": "OK",
- "next_proposal_id": 42
}JSON-RPC Method: getgovernanceproposals
Note: The actual endpoint is POST http://localhost:21001/json_rpc with the method name in the request body.
Returns governance proposals. Can filter for active proposals only.
| jsonrpc required | string Default: "2.0" |
| method required | string Default: "getgovernanceproposals" |
object | |
| id | string |
{- "jsonrpc": "2.0",
- "method": "getgovernanceproposals",
- "params": {
- "active_only": true
}, - "id": "1"
}{- "jsonrpc": "string",
- "result": {
- "status": "string",
- "proposals": [
- {
- "proposal_id": 0,
- "title": "string",
- "description": "string",
- "creator": "string",
- "creation_height": 0,
- "expiration_height": 0,
- "yes_votes": 0,
- "no_votes": 0,
- "total_staked": 0,
- "active": true,
- "passed": true
}
]
}, - "id": "string"
}JSON-RPC Method: getproposaldetails
Note: The actual endpoint is POST http://localhost:21001/json_rpc with the method name in the request body.
Returns detailed information about a specific governance proposal.
| jsonrpc required | string Default: "2.0" |
| method required | string Default: "getproposaldetails" |
required | object |
| id | string |
{- "jsonrpc": "2.0",
- "method": "getproposaldetails",
- "params": {
- "proposal_id": 1
}, - "id": "1"
}{- "jsonrpc": "string",
- "result": {
- "status": "string",
- "proposal": {
- "proposal_id": 0,
- "title": "string",
- "description": "string",
- "creator": "string",
- "creation_height": 0,
- "expiration_height": 0,
- "yes_votes": 0,
- "no_votes": 0,
- "total_staked": 0,
- "active": true,
- "passed": true
}, - "voters": [
- "string"
]
}, - "id": "string"
}Lightweight block querying for wallet synchronization. Returns minimal block information for efficiency.
| blockIds required | Array of strings List of known block hashes |
{- "blockIds": [
- "hash1...",
- "hash2..."
]
}{- "status": "string",
- "items": [ ],
- "startHeight": 0,
- "currentHeight": 0
}Detailed block querying with full transaction information. Requires --enable-blockexplorer-detailed flag.
| blockIds required | Array of strings List of known block hashes |
{- "blockIds": [
- "hash1...",
- "hash2..."
]
}{- "status": "string",
- "items": [ ]
}Returns raw binary block data in hex format. Useful for low-level blockchain analysis.
| blockIds required | Array of strings List of block hashes |
{- "blockIds": [
- "hash1..."
]
}{- "status": "string",
- "blocks": [
- { }
]
}