SUM Chain JSON-RPC API
SUM Chain exposes a JSON-RPC 2.0 API for chain queries, transaction submission, and integration with the storage protocol, NFTs, tokens, encrypted messaging, policy accounts, and document-credential layers. The native currency is Koppa (Ϙ) with 9 decimal places.
All 143 methods on this page are verified against the live mainnet RPC.
Connection
Public mainnet endpoint:
https://rpc.sumchain.ioEvery request follows JSON-RPC 2.0. The Content-Type: application/json header is required.
curl -X POST https://rpc.sumchain.io \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"chain_id","params":[],"id":1}'Currency & Units
| Name | Symbol | Decimals | Base Unit |
|---|---|---|---|
| Koppa | Ϙ | 9 | 1 Ϙ = 1,000,000,000 |
All amounts in the API are represented in base units. Examples: 1000000000 = 1 Ϙ, 1000000 = 0.001 Ϙ (typical fee).
Addresses
Addresses are 20 bytes derived from an Ed25519 public key: Address = Blake3(pubkey)[12..32].
Two display formats are accepted in API parameters:
- Base58 with checksum (default Display): e.g.
8zZ1pfbpUcAmoByWKYgJgiFZWpmhWQKJ4 - Hex: e.g.
0x1a2b3c4d...
Method Index
Chain
Block and chain metadata.
chain_idReturns the chain identifier.
{"jsonrpc":"2.0","method":"chain_id","params":[],"id":1}{"jsonrpc":"2.0","result":1,"id":1}get_latest_blockReturns the most recent block.
{"jsonrpc":"2.0","method":"get_latest_block","params":[],"id":1}{
"jsonrpc": "2.0",
"result": {
"hash": "0x69226247daff051c87d610b0a5df1f793cd9b7cfa2d4bd70cb26166d541a0c64",
"height": 4807038,
"parent_hash": "0xec94cb97f6f97b4e78ad2054718fde0d0a30bea6a78ac1b69cb34c191df6c422",
"timestamp": 1777137175565,
"tx_root": "0x0000000000000000000000000000000000000000000000000000000000000000",
"state_root": "0xb9e67e5c251da9131a183a1658c5925690c6752a29c4a1c9e22c91b91e2f34b9",
"proposer": "e64e11c6f9f9937a1bc6a4535701f036388451e6cc83ad9f25b143973d90a4cd",
"tx_count": 0,
"transactions": []
},
"id": 1
}get_block_by_heightReturns the block at a given height.
{"jsonrpc":"2.0","method":"get_block_by_height","params":[4807000],"id":1}get_block_by_hashReturns the block matching a hex hash.
get_blocksPaginated block listing.
get_finalityReturns finalized height + the depth-based finality config (default 6 blocks).
{"jsonrpc":"2.0","method":"get_finality","params":[],"id":1}{
"jsonrpc": "2.0",
"result": {
"finalized_height": 4807033,
"finalized_hash": "0x606ec3b283fe3eed4cdd4ca1cc5c5c5a262dbbb4ee10ebe4dba12dc22aec955a",
"current_height": 4807039,
"finality_depth": 6,
"pending_finality": 6
},
"id": 1
}is_block_finalizedReports whether a given height is finalized.
eth_blockNumberLatest block number in hex (Ethereum-compatible).
{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}{"jsonrpc":"2.0","result":"0x49597f","id":1}sum_blockNumberSame as eth_blockNumber, sum_-prefixed alias.
sum_getLatestBlockAlias of get_latest_block.
sum_getBlockByHeightAlias of get_block_by_height.
Account
Balance, nonce, and account state. Addresses accept Base58 (with checksum) or 0x-prefixed hex.
get_balanceReturns balance in base units (1 Koppa = 1,000,000,000 base units).
{"jsonrpc":"2.0","method":"get_balance","params":["8zZ1pfbpUcAmoByWKYgJgiFZWpmhWQKJ4"],"id":1}{"jsonrpc":"2.0","result":"500000001018000000","id":1}get_nonceReturns the next expected nonce for the account.
get_accountReturns balance + nonce in one call.
account_getPublicKeyReturns the registered Ed25519 public key for an address. Required for encrypted messaging recipients.
eth_getBalanceHex-formatted balance (Ethereum-compatible). Optional second `block` argument.
sum_getBalancesum_-prefixed alias of get_balance.
sum_getNoncesum_-prefixed alias of get_nonce.
sum_getTransactionCountTotal transactions sent by an address.
sum_getTransactionsByAddressTx history (sender + recipient) for an address.
sum_getTransactionsBySenderTx history (sender only).
sum_getTransactionsByRecipientTx history (recipient only).
Transactions
Submit, look up, and inspect transactions.
send_raw_transactionSubmits a hex-encoded signed transaction. Returns the tx hash.
{"jsonrpc":"2.0","method":"send_raw_transaction","params":["0xabc..."],"id":1}{"jsonrpc":"2.0","result":{"tx_hash":"0xdef..."},"id":1}get_transactionReturns a transaction by hash.
get_receiptReturns receipt (success/failure + gas) by tx hash.
get_pending_transactionsLists pending mempool transactions.
pending_tx_countMempool size.
{"jsonrpc":"2.0","method":"pending_tx_count","params":[],"id":1}{"jsonrpc":"2.0","result":0,"id":1}sum_sendRawTransactionsum_-prefixed alias of send_raw_transaction.
sum_getTransactionsum_-prefixed alias.
sum_getReceiptsum_-prefixed alias.
sum_getPendingTransactionssum_-prefixed alias.
Decentralized Storage (PoR)
Native L1 Proof-of-Retrievability — query files, challenges, and archive nodes. Powers snip.sumchain.io and the storage marketplace.
storage_getFundedFilesReturns all files with fee_pool > 0. New archive nodes use this to discover what to store and earn from.
{"jsonrpc":"2.0","method":"storage_getFundedFiles","params":[],"id":1}{"jsonrpc":"2.0","result":[],"id":1}storage_getAccessListReturns full metadata for a file by its merkle_root, including the on-chain ACL.
{"jsonrpc":"2.0","method":"storage_getAccessList","params":["0xabc..."],"id":1}storage_getActiveChallengesOpen Proof-of-Retrievability challenges assigned to a specific archive node. Failure to respond within 50 blocks slashes 5% of stake.
{"jsonrpc":"2.0","method":"storage_getActiveChallenges","params":["8zZ1pfbpUcAmoByWKYgJgiFZWpmhWQKJ4"],"id":1}storage_getNodeRecordReturns the NodeRegistry record (role, staked balance, status) for an address.
Validators & Consensus
Active set, staking, delegation, slashing, and epoch info.
get_validatorsActive validator set with current proposer.
{"jsonrpc":"2.0","method":"get_validators","params":[],"id":1}{
"jsonrpc": "2.0",
"result": {
"validators": [
{
"public_key": "GW1pJKzqDmmHczMGz5g7CV51RgDuR6kKw76yZ1cVbEv8",
"address": "8zZ1pfbpUcAmoByWKYgJgiFZWpmhWQKJ4",
"is_current_proposer": true
},
{
"public_key": "7jUZxm5rJ5PazGYkrtJ4sUJj7ztib2VHEoM2Yc4Liydy",
"address": "D7Ls8H7Y2jCqYEEUUxWUcgQkF9cKhHxjV",
"is_current_proposer": false
}
]
},
"id": 1
}sum_getValidatorssum_-prefixed alias.
staking_getValidatorValidator by pubkey.
staking_getValidatorByAddressValidator by address.
staking_getValidatorsAll validators.
staking_getActiveValidatorsActive set only.
staking_getSummaryAggregate stats.
staking_getParamsStaking parameters.
staking_getTotalStakeSum of all stake.
delegation_getDelegationSingle delegation lookup.
delegation_getDelegationsByDelegatorDelegations made by an address.
delegation_getDelegationsByValidatorDelegations to a validator.
delegation_getDelegatorSummaryAggregate per delegator.
delegation_getUnbondingDelegationsPending unbondings.
delegation_getValidatorDelegationSummaryAggregate per validator.
slashing_getRecordsHistorical slashing records.
slashing_getRecentRecordsRecent records.
slashing_getSigningInfoPer-validator missed-block tracking.
slashing_getAllSigningInfoAll validators.
slashing_getSummaryAggregate stats.
slashing_isTombstonedPermanent-jail check.
epoch_getInfoCurrent epoch metadata.
{"jsonrpc":"2.0","method":"epoch_getInfo","params":[],"id":1}{
"jsonrpc": "2.0",
"result": {
"current_epoch": 333,
"current_height": 4807057,
"epoch_length": 14400,
"epoch_start_height": 4795200,
"epoch_end_height": 4809599,
"blocks_remaining": 2542,
"stake_weighted_selection": true
},
"id": 1
}validatorSet_getCurrentActive validator set.
validatorSet_getByEpochSet for a specific epoch.
validatorSet_getProposerProposer at a given height.
NFTs (SUM-721)
Native NFT standard.
nft_getCollectionCollection metadata.
nft_getTokenSingle token.
nft_getTokensByOwnerTokens owned by an address.
nft_getTokensInCollectionTokens in a collection.
nft_balanceOfNumber of tokens an address holds.
nft_ownerOfOwner of a specific token.
nft_tokenExistsExistence check.
Fungible Tokens (SRC-20)
Native fungible-token standard, ERC-20 compatible interface.
token_getTokenToken metadata.
token_balanceOfHolder balance for a token.
token_getTokensByOwnerTokens an address holds.
token_allowanceERC-20-style allowance lookup.
token_totalSupplyTotal supply of a token.
token_existsExistence check.
Smart Contracts (WASM)
sumc-runtime WASM contract calls.
contract_getContractContract metadata.
contract_isContractExistence check.
contract_callRead-only view call.
contract_estimateGasGas estimation.
contract_getCodeHashCode-hash lookup.
contract_getStorageAtRaw storage slot read.
contract_getBalanceContract balance.
Encrypted Messaging (SRC-201)
On-chain encrypted messaging using X25519 + XChaCha20-Poly1305.
messaging_getConfigPer-chain messaging parameters.
{"jsonrpc":"2.0","method":"messaging_getConfig","params":[],"id":1}{
"jsonrpc": "2.0",
"result": {
"daily_quota": 100,
"max_message_size": 65535,
"min_trust_stake": "100000000000",
"sponsorship_enabled": true
},
"id": 1
}messaging_registerSponsoredRegisters a public key for an address (sponsored — fee paid by relayer). Required before receiving messages. Not idempotent: a duplicate call returns success: false with "Public key already registered" — check via account_getPublicKey first.
messaging_submitSponsoredSubmits an encrypted message via a sponsoring relayer.
messaging_getQuotaQuota status for a sender.
messaging_getInboxFilterRecipient inbox-filter rules.
messaging_getMessagesInbox query.
messaging_getSentMessagesOutbox query.
messaging_getMessageByTxHashMessage lookup by tx.
messaging_getMessagesInBlockMessages in a block.
messaging_getMessageDataMessage ciphertext.
messaging_getPendingPaymentPending sponsorship payment.
messaging_getPendingPaymentsAll pending payments.
messaging_getTrustStakeTrust-stake balance.
messaging_getSpamScoreSpam-score lookup.
messaging_isContactContact-list check.
messaging_isBlockedBlock-list check.
Document Credentials (SRC-80X)
Verifiable identity, credentials, and academic-credential issuance.
docclass_getConfigConfig & parameters.
docclass_getSummaryAggregate stats.
docclass_getIdentityIdentity by id.
docclass_getIdentityByControllerIdentity by controlling address.
docclass_canIssueAuthorization check for an issuer.
docclass_getCredentialCredential by id.
docclass_isCredentialValidValidity + revocation check.
docclass_getCredentialsBySubjectAll credentials for a subject.
docclass_getCredentialsByIssuerAll credentials from an issuer.
docclass_getIssuerIssuer record.
docclass_getIssuersAll registered issuers.
docclass_getIssuersByJurisdictionIssuers by jurisdiction code.
docclass_getAcademicCredentialsByHolderAcademic credentials for a holder.
docclass_registerAcademicIssuerRegister an academic issuer (write).
docclass_issueAcademicCredentialIssue an academic credential (write).
docclass_revokeAcademicCredentialRevoke an academic credential (write).
Employment Credentials (SRC-88X)
On-chain employment & income attestations.
employment_listIssuersAll registered employment issuers.
employment_getIssuerIssuer record.
employment_registerIssuerRegister an employer issuer (write).
employment_getSummaryAggregate stats.
employment_getCredentialCredential by id.
employment_getCredentialsByEmployeeAll credentials for an employee.
employment_getCredentialsByEmployeeAddressBy employee address.
employment_getCredentialsByEmployerBy employer.
employment_getActiveCredentialsByEmployeeActive only.
employment_getActiveCredentialsByEmployeeAddressActive only by address.
employment_createCredentialIssue a new employment credential (write).
employment_revokeCredentialRevoke a credential (write).
employment_verifyEmploymentVerify employment claim.
employment_getIncomeAttestationIncome attestation by id.
employment_getIncomeAttestationsBySubjectBy subject.
employment_getIncomeAttestationsByHolderAddressBy holder address.
Policy Accounts (Multi-Sig)
Consensus-level multi-sig group governance — accounts, proposals, execution.
policy_createAccountCreate a new policy account (write).
policy_getAccountAccount by id.
policy_getAccountByAddressAccount by address.
policy_listMemberAccountsAccounts where address is a member.
policy_submitProposalSubmit a new proposal (write).
policy_executeProposalExecute an approved proposal (write).
policy_cancelProposalCancel a pending proposal (write).
policy_getProposalProposal by id.
policy_listProposalsAll proposals for an account.
policy_listPendingProposalsPending only.
Node & Network
Operator-facing endpoints for monitoring.
healthLiveness probe.
{"jsonrpc":"2.0","method":"health","params":[],"id":1}{
"jsonrpc": "2.0",
"result": {
"status": "ok",
"chain_id": 1,
"height": 4807039,
"peer_count": 2,
"is_validator": true,
"is_synced": true
},
"id": 1
}node_infoVersion, peer ID, uptime.
{"jsonrpc":"2.0","method":"node_info","params":[],"id":1}{
"jsonrpc": "2.0",
"result": {
"version": "0.1.0",
"chain_id": 1,
"network": "sumchain-1",
"peer_id": "12D3KooWJdKDCZn9Wu5mo1WBMLRwEeej9abjTLDvgZRzLwZv6kdW",
"is_validator": true,
"current_height": 4807038,
"peer_count": 2,
"mempool_size": 0,
"uptime_seconds": 238205
},
"id": 1
}get_metricsPrometheus-style metrics snapshot.
get_peersConnected peers.
get_p2p_statslibp2p connection statistics.
{"jsonrpc":"2.0","method":"get_p2p_stats","params":[],"id":1}{
"jsonrpc": "2.0",
"result": {
"total_known_peers": 2,
"connected_peers": 2,
"inbound_connections": 0,
"outbound_connections": 2,
"banned_peers": 0,
"max_connections": 100,
"max_inbound": 50,
"max_outbound": 50
},
"id": 1
}All 143 endpoints listed above are verified against https://rpc.sumchain.io.
← Back to Get Started