Skip to Content

JSON-RPC

The Solidus blockchain exposes a JSON-RPC 2.0 endpoint for querying blocks, transactions, accounts, and DID documents directly from the network.

Endpoint: https://rpc.solidus.network

All requests use POST with Content-Type: application/json. No authentication is required.

Request Format

Every request follows the JSON-RPC 2.0 specification.

{ "jsonrpc": "2.0", "method": "method_name", "params": [], "id": 1 }

Error Format

Errors follow the JSON-RPC 2.0 error object structure.

{ "jsonrpc": "2.0", "error": { "code": -32602, "message": "Invalid params: DID not found" }, "id": 1 }
CodeMeaning
-32700Parse error — invalid JSON
-32600Invalid request — missing required fields
-32601Method not found
-32602Invalid params
-32603Internal error

Methods

solidus_getLatestBlock

Returns the most recent finalized block.

curl -X POST https://rpc.solidus.network \ -H "Content-Type: application/json" \ -d '{ "jsonrpc": "2.0", "method": "solidus_getLatestBlock", "params": [], "id": 1 }'
// Response { "jsonrpc": "2.0", "result": { "height": 284731, "hash": "0x9a3f8b2c1d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a", "parent_hash": "0x1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b", "state_root": "0x4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b3c4d", "timestamp": "2026-05-07T14:30:05Z", "transactions": [ { "hash": "0x7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f", "type": "did_create", "from": "0x3Vn9wLkDfT8Kj2mNpQxR", "nonce": 42 } ] }, "id": 1 }

solidus_getBlock

Returns a block at the specified height.

ParamTypeDescription
heightnumberThe block height to retrieve
curl -X POST https://rpc.solidus.network \ -H "Content-Type: application/json" \ -d '{ "jsonrpc": "2.0", "method": "solidus_getBlock", "params": [284731], "id": 1 }'
// Response { "jsonrpc": "2.0", "result": { "height": 284731, "hash": "0x9a3f8b2c1d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a", "parent_hash": "0x1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b", "state_root": "0x4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b3c4d", "timestamp": "2026-05-07T14:30:05Z", "transactions": [ { "hash": "0x7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f", "type": "did_create", "from": "0x3Vn9wLkDfT8Kj2mNpQxR", "nonce": 42 } ] }, "id": 1 }

Returns null as the result if the block does not exist.

solidus_getTransaction

Returns a transaction and its receipt by hash.

ParamTypeDescription
hashstringThe transaction hash
curl -X POST https://rpc.solidus.network \ -H "Content-Type: application/json" \ -d '{ "jsonrpc": "2.0", "method": "solidus_getTransaction", "params": ["0x7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f"], "id": 1 }'
// Response { "jsonrpc": "2.0", "result": { "tx": { "hash": "0x7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f", "type": "did_create", "from": "0x3Vn9wLkDfT8Kj2mNpQxR", "nonce": 42, "payload": { "did": "did:solidus:testnet:7Hk3mRtQZvXp2nBw9Lj4K", "publicKey": "ed25519:7Hk3mRtQZvXp2nBw9Lj4KxYm8..." }, "signature": "0xed25519sig...", "timestamp": "2026-05-07T14:30:04Z" }, "receipt": { "status": "success", "blockHeight": 284731, "blockHash": "0x9a3f8b2c1d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a", "gasUsed": 21000 } }, "id": 1 }

solidus_sendTransaction

Submit a signed transaction to the network.

ParamTypeDescription
signedTxobjectThe signed transaction object
curl -X POST https://rpc.solidus.network \ -H "Content-Type: application/json" \ -d '{ "jsonrpc": "2.0", "method": "solidus_sendTransaction", "params": [{ "type": "did_create", "from": "0x3Vn9wLkDfT8Kj2mNpQxR", "nonce": 43, "payload": { "did": "did:solidus:9Xm4pLkWnR2nBw7Tj8K", "publicKey": "ed25519:9Xm4pLkWnR2nBw7Tj8K..." }, "signature": "0xed25519sig..." }], "id": 1 }'
// Response { "jsonrpc": "2.0", "result": { "hash": "0x2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c" }, "id": 1 }

The transaction is added to the mempool. Use solidus_getTransaction with the returned hash to check when it is included in a block.

solidus_didResolve

Resolve a DID to its DID Document. Returns the full W3C-compliant DID Document if the DID exists, or null if it does not.

ParamTypeDescription
didstringThe DID to resolve (e.g., did:solidus:7Hk3mRtQZv...)
curl -X POST https://rpc.solidus.network \ -H "Content-Type: application/json" \ -d '{ "jsonrpc": "2.0", "method": "solidus_didResolve", "params": ["did:solidus:testnet:7Hk3mRtQZvXp2nBw9Lj4K"], "id": 1 }'
// Response — DID found { "jsonrpc": "2.0", "result": { "@context": [ "https://www.w3.org/ns/did/v1", "https://w3id.org/security/suites/ed25519-2020/v1" ], "id": "did:solidus:testnet:7Hk3mRtQZvXp2nBw9Lj4K", "verificationMethod": [ { "id": "did:solidus:testnet:7Hk3mRtQZvXp2nBw9Lj4K#key-1", "type": "Ed25519VerificationKey2020", "controller": "did:solidus:testnet:7Hk3mRtQZvXp2nBw9Lj4K", "publicKeyMultibase": "z6Mkf5rGMoatrSj1f4CyvuHBeXJELe9RPdzo2PKGNCKVtZxP" } ], "authentication": [ "did:solidus:testnet:7Hk3mRtQZvXp2nBw9Lj4K#key-1" ], "assertionMethod": [ "did:solidus:testnet:7Hk3mRtQZvXp2nBw9Lj4K#key-1" ], "created": "2026-04-15T08:00:00Z", "updated": "2026-04-15T08:00:00Z" }, "id": 1 }
// Response — DID not found { "jsonrpc": "2.0", "result": null, "id": 1 }

solidus_getValidators

Returns the current validator set.

curl -X POST https://rpc.solidus.network \ -H "Content-Type: application/json" \ -d '{ "jsonrpc": "2.0", "method": "solidus_getValidators", "params": [], "id": 1 }'
// Response { "jsonrpc": "2.0", "result": { "validators": [ { "address": "0x3Vn9wLkDfT8Kj2mNpQxR", "public_key": "ed25519:7Hk3mRtQZvXp2nBw9Lj4KxYm8...", "stake": "1000000" }, { "address": "0x8Kj2mNpQxR3Vn9wLkDfT", "public_key": "ed25519:9Xm4pLkWnR2nBw7Tj8KzAb3...", "stake": "1000000" }, { "address": "0x5Wn2kLpMxR9Xm4pLkWnR", "public_key": "ed25519:4Tn7mLkPxR6Wn9pMkRxTcD5...", "stake": "1000000" }, { "address": "0x6Wn9pMkRxT4Tn7mLkPxR", "public_key": "ed25519:2Kn5mTpLxR8Rn3mKpWxTfG7...", "stake": "1000000" } ] }, "id": 1 }

solidus_getAccount

Returns the account state for a given address, including balance, nonce, and optional DID association.

ParamTypeDescription
addressstringThe account address
curl -X POST https://rpc.solidus.network \ -H "Content-Type: application/json" \ -d '{ "jsonrpc": "2.0", "method": "solidus_getAccount", "params": ["0x3Vn9wLkDfT8Kj2mNpQxR"], "id": 1 }'
// Response { "jsonrpc": "2.0", "result": { "balance": "50000000", "nonce": 43, "did": "did:solidus:testnet:7Hk3mRtQZvXp2nBw9Lj4K" }, "id": 1 }

The did field is present only if the account has a registered DID. The balance is returned as a string to avoid integer overflow.

Last updated on