Cosmos
Spectrum supports these Cosmos SDK chains: cosmoshub, osmosis, axelar, noble, and agoric. Want another chain supported? Contact us.
Standard methods
These methods share request and response shapes with the rest of the API; the examples below are shown for cosmoshub. On any Cosmos chain, pass a base denom (e.g. uatom) or an IBC hash (ibc/...) anywhere an ERC-20 contract address would normally go.
getBlockHeight
Returns the latest block number for EVM/Bitcoin or slot for Solana.
curl -X POST https://your-endpoint.simplystaking.xyz/v1 \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "getBlockHeight",
"params": {
"chain": "cosmoshub"
},
"id": 1
}'import { Spectrum } from '@spectrumnodes/sdk';
const spectrum = new Spectrum({ api: 'https://your-endpoint.simplystaking.xyz/YOUR_API_KEY/' });
const result = await spectrum.core.getBlockHeight('cosmoshub');
console.log(result);{
"jsonrpc": "2.0",
"result": {
"data": {
"chain": "cosmoshub",
"height": 21345678
}
},
"id": 1
}Parameters
| Name | Required | Description |
|---|---|---|
| chain | yes | Network slug |
Response Fields
| Field | Type |
|---|---|
data | object |
chain | string |
height | integer |
Supported Networks
getBlockTransactions
Returns all transactions in a specific block. On EVM the response includes full transaction objects (from, to, value, input data, gas). On Starknet the transactions come from `starknet_getBlockWithTxs`. On Cosmos SDK chains they are decoded from the LCD `txs/block/{n}` endpoint (sdk 0.50+).
curl -X POST https://your-endpoint.simplystaking.xyz/v1 \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "getBlockTransactions",
"params": {
"chain": "cosmoshub",
"blockNumber": 21000000
},
"id": 1
}'import { Spectrum } from '@spectrumnodes/sdk';
const spectrum = new Spectrum({ api: 'https://your-endpoint.simplystaking.xyz/YOUR_API_KEY/' });
const result = await spectrum.core.getBlockTransactions('cosmoshub', 21000000);
console.log(result);{
"jsonrpc": "2.0",
"result": {
"data": {
"chain": "cosmoshub",
"blockNumber": 21345678,
"hash": "C8E5A3B1F0D74926A8C3E5B7D9F1A2C4E6B8D0F2A4C6E8B0D2F4A6C8E0B2D4F6",
"timestamp": "2026-06-17T00:00:00Z",
"transactionCount": 1,
"transactions": [
{
"txhash": "A1B2C3D4E5F60718293A4B5C6D7E8F9001122334455667788990AABBCCDDEEFF",
"height": "21345678",
"code": 0,
"gas_wanted": "200000",
"gas_used": "142331"
}
]
}
},
"id": 1
}Parameters
| Name | Required | Description |
|---|---|---|
| chain | yes | Network slug |
| blockNumber | yes | Block number to fetch transactions from e.g. 21000000 |
Response Fields
| Field | Type |
|---|---|
data | object |
chain | string |
blockNumber | integer |
hash | string |
timestamp | string |
transactionCount | integer |
transactions | object[] |
txhash | string |
height | string |
code | integer |
gas_wanted | string |
gas_used | string |
Supported Networks
getReceipt
Returns the full transaction receipt. EVM responses include gas used, status, contract creation address, logs, and decoded event names. Starknet receipts are returned in their native Cairo shape. Cosmos chains return a decoded `tx_response` from the LCD.
curl -X POST https://your-endpoint.simplystaking.xyz/v1 \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "getReceipt",
"params": {
"chain": "cosmoshub",
"hash": "C8E5A3B1F0D74926A8C3E5B7D9F1A2C4E6B8D0F2A4C6E8B0D2F4A6C8E0B2D4F6"
},
"id": 1
}'import { Spectrum } from '@spectrumnodes/sdk';
const spectrum = new Spectrum({ api: 'https://your-endpoint.simplystaking.xyz/YOUR_API_KEY/' });
const result = await spectrum.data.getReceipt('cosmoshub', 'C8E5A3B1F0D74926A8C3E5B7D9F1A2C4E6B8D0F2A4C6E8B0D2F4A6C8E0B2D4F6');
console.log(result);{
"jsonrpc": "2.0",
"result": {
"data": {
"chain": "cosmoshub",
"tx": {
"@type": "/cosmos.tx.v1beta1.Tx",
"body": {
"messages": [
{
"@type": "/cosmos.bank.v1beta1.MsgSend"
}
]
}
},
"tx_response": {
"height": "21345678",
"txhash": "C8E5A3B1F0D74926A8C3E5B7D9F1A2C4E6B8D0F2A4C6E8B0D2F4A6C8E0B2D4F6",
"code": 0,
"gas_wanted": "200000",
"gas_used": "142331",
"timestamp": "2026-06-17T00:00:00Z",
"raw_log": "[]"
}
}
},
"id": 1
}Parameters
| Name | Required | Description |
|---|---|---|
| chain | yes | Network slug |
| hash | yes | Transaction hash (0x + 64 hex) e.g. C8E5A3B1F0D74926A8C3E5B7D9F1A2C4E6B8D0F2A4C6E8B0D2F4A6C8E0B2D4F6 |
Response Fields
| Field | Type |
|---|---|
data | object |
chain | string |
tx | object |
@type | string |
body | object |
messages | object[] |
tx_response | object |
height | string |
txhash | string |
code | integer |
gas_wanted | string |
gas_used | string |
timestamp | string |
raw_log | string |
Supported Networks
getTokenBalance
Returns the balance of a specific ERC-20 or SPL token. Pass the token contract (or mint) address. Response includes the decimal-adjusted `balance`, the on-chain integer `balanceRaw`, and the token `decimals` so integrators can do their own arithmetic without a separate metadata call.
curl -X POST https://your-endpoint.simplystaking.xyz/v1 \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "getTokenBalance",
"params": {
"chain": "cosmoshub",
"address": "cosmos1qphf0ferqcch0jca9hlqfm3x0eds3dpkac4g9j",
"token": "uatom",
"blockHeight": 19834521
},
"id": 1
}'import { Spectrum } from '@spectrumnodes/sdk';
const spectrum = new Spectrum({ api: 'https://your-endpoint.simplystaking.xyz/YOUR_API_KEY/' });
const result = await spectrum.tokens.getTokenBalance('cosmoshub', 'cosmos1qphf0ferqcch0jca9hlqfm3x0eds3dpkac4g9j', 'uatom');
console.log(result);{
"jsonrpc": "2.0",
"result": {
"data": {
"chain": "cosmoshub",
"address": "cosmos1qphf0ferqcch0jca9hlqfm3x0eds3dpkac4g9j",
"token": "uatom",
"balance": "1500000",
"balanceRaw": "1500000"
}
},
"id": 1
}Parameters
| Name | Required | Description |
|---|---|---|
| chain | yes | Network slug |
| address | yes | Wallet address e.g. cosmos1qphf0ferqcch0jca9hlqfm3x0eds3dpkac4g9j |
| token | yes | Token contract address e.g. uatom |
| blockHeight | no | Historical EVM block number (archive nodes only) e.g. 19834521 |
Response Fields
| Field | Type |
|---|---|
data | object |
chain | string |
address | string |
token | string |
balance | string |
balanceRaw | string |
Supported Networks
getTokenMetadata
Returns name, symbol, decimals, and total supply for an ERC-20 token (EVM), a denom (Cosmos SDK), or an SPL mint (Solana). Responses are cached for 1 hour. On Cosmos chains pass a base denom (e.g. `uatom`) or an IBC hash; on Solana pass the SPL mint — `name`/`symbol`/`uri` come from Metaplex or the Token-2022 metadata extension.
curl -X POST https://your-endpoint.simplystaking.xyz/v1 \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "getTokenMetadata",
"params": {
"chain": "cosmoshub",
"address": "uatom",
"blockHeight": 19834521
},
"id": 1
}'import { Spectrum } from '@spectrumnodes/sdk';
const spectrum = new Spectrum({ api: 'https://your-endpoint.simplystaking.xyz/YOUR_API_KEY/' });
const result = await spectrum.tokens.getMetadata('cosmoshub', 'uatom');
console.log(result);{
"jsonrpc": "2.0",
"result": {
"data": {
"chain": "cosmoshub",
"address": "uatom",
"metadata": {
"description": "The native staking token of the Cosmos Hub.",
"denom_units": [
{
"denom": "uatom",
"exponent": 0
},
{
"denom": "atom",
"exponent": 6
}
],
"base": "uatom",
"display": "atom",
"name": "Cosmos Hub Atom",
"symbol": "ATOM"
}
}
},
"id": 1
}Parameters
| Name | Required | Description |
|---|---|---|
| chain | yes | Network slug |
| address | yes | Token contract address (0x...) e.g. uatom |
| blockHeight | no | Historical EVM block number (archive nodes only) e.g. 19834521 |
Response Fields
| Field | Type |
|---|---|
data | object |
chain | string |
address | string |
metadata | object |
description | string |
denom_units | object[] |
denom | string |
exponent | integer |
base | string |
display | string |
name | string |
symbol | string |
Supported Networks
getDenomSupply
Returns the total bank supply for a denom on a Cosmos SDK chain. Pass a base denom (e.g. `uatom`) or an IBC hash (`ibc/...`). Cosmos chains only; for EVM total supply use `getTokenMetadata` (the `totalSupply` field).
curl -X POST https://your-endpoint.simplystaking.xyz/v1 \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "getDenomSupply",
"params": {
"chain": "cosmoshub",
"denom": "uatom"
},
"id": 1
}'{
"jsonrpc": "2.0",
"result": {
"data": {
"chain": "cosmoshub",
"denom": "uatom",
"amount": {
"denom": "uatom",
"amount": "391827654000000"
}
}
},
"id": 1
}Parameters
| Name | Required | Description |
|---|---|---|
| chain | yes | Cosmos SDK chain slug |
| denom | yes | Base denom (e.g. `uatom`) or IBC hash (`ibc/...`) e.g. uatom |
Response Fields
| Field | Type |
|---|---|
data | object |
chain | string |
denom | string |
amount | object |
denom | string |
amount | string |
Supported Networks
getChainHealth
Pings the chain's RPC node and returns status, current block height, and response latency in milliseconds. Returns HTTP 503 with status "degraded" or "down" if the RPC is unreachable.
curl -X POST https://your-endpoint.simplystaking.xyz/v1 \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "getChainHealth",
"params": {
"chain": "cosmoshub"
},
"id": 1
}'import { Spectrum } from '@spectrumnodes/sdk';
const spectrum = new Spectrum({ api: 'https://your-endpoint.simplystaking.xyz/YOUR_API_KEY/' });
const result = await spectrum.data.getChainHealth('cosmoshub');
console.log(result);{
"jsonrpc": "2.0",
"result": {
"data": {
"chain": "cosmoshub",
"status": "ok",
"type": "Cosmos",
"blockHeight": 21345678,
"timestamp": "2026-06-17T00:00:00.000Z"
}
},
"id": 1
}Parameters
| Name | Required | Description |
|---|---|---|
| chain | yes | Network slug |
Response Fields
| Field | Type |
|---|---|
data | object |
chain | string |
status | string |
type | string |
blockHeight | integer |
timestamp | string |
Supported Networks
Also available on Cosmos chains: getBlockByNumber and getBlockByHash (see Blocks), getTransactionByHash (see Transactions). Native getBalance is not available on Cosmos. Read balances with getTokenBalance and a denom.
Cosmos-specific methods
These methods are unique to Cosmos SDK chains. They are backed by each chain’s REST (LCD) endpoint and surface the staking, distribution, and auth modules through Spectrum’s normalized envelope.
getAccount
Returns account info (account number, sequence, pubkey) for a Cosmos address. Backed by the auth module (`cosmos/auth/v1beta1/accounts/{address}`).
curl -X POST https://your-endpoint.simplystaking.xyz/v1 \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "getAccount",
"params": {
"chain": "cosmoshub",
"address": "cosmos1..."
},
"id": 1
}'{
"jsonrpc": "2.0",
"result": {
"data": {
"chain": "cosmoshub",
"address": "cosmos1...",
"account": {
"@type": "/cosmos.auth.v1beta1.BaseAccount",
"address": "cosmos1...",
"pub_key": null,
"account_number": "12345",
"sequence": "7"
}
}
},
"id": 1
}Parameters
| Name | Required | Description |
|---|---|---|
| chain | yes | Cosmos SDK chain slug |
| address | yes | Bech32 account address e.g. cosmos1... |
Response Fields
| Field | Type |
|---|---|
data | object |
chain | string |
address | string |
account | object |
@type | string |
address | string |
pub_key | null |
account_number | string |
sequence | string |
Supported Networks
getDelegations
Returns active delegations for a delegator. Backed by `cosmos/staking/v1beta1/delegations/{delegator_addr}`.
curl -X POST https://your-endpoint.simplystaking.xyz/v1 \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "getDelegations",
"params": {
"chain": "cosmoshub",
"delegator": "cosmos1..."
},
"id": 1
}'{
"jsonrpc": "2.0",
"result": {
"data": {
"chain": "cosmoshub",
"delegator": "cosmos1...",
"delegation_responses": [
{
"delegation": {
"delegator_address": "cosmos1...",
"validator_address": "cosmosvaloper1...",
"shares": "1000000.000000000000000000"
},
"balance": {
"denom": "uatom",
"amount": "1000000"
}
}
]
}
},
"id": 1
}Parameters
| Name | Required | Description |
|---|---|---|
| chain | yes | Cosmos SDK chain slug |
| delegator | yes | Delegator bech32 address e.g. cosmos1... |
Response Fields
| Field | Type |
|---|---|
data | object |
chain | string |
delegator | string |
delegation_responses | object[] |
delegation | object |
delegator_address | string |
validator_address | string |
shares | string |
balance | object |
denom | string |
amount | string |
Supported Networks
getUnbondingDelegations
Returns in-flight unbonding delegations for a delegator. Backed by `cosmos/staking/v1beta1/delegators/{delegator_addr}/unbonding_delegations`.
curl -X POST https://your-endpoint.simplystaking.xyz/v1 \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "getUnbondingDelegations",
"params": {
"chain": "cosmoshub",
"delegator": "cosmos1..."
},
"id": 1
}'{
"jsonrpc": "2.0",
"result": {
"data": {
"chain": "cosmoshub",
"delegator": "cosmos1...",
"unbonding_responses": [
{
"delegator_address": "cosmos1...",
"validator_address": "cosmosvaloper1...",
"entries": [
{
"creation_height": "18000000",
"completion_time": "2026-07-01T00:00:00Z",
"initial_balance": "500000",
"balance": "500000"
}
]
}
]
}
},
"id": 1
}Parameters
| Name | Required | Description |
|---|---|---|
| chain | yes | Cosmos SDK chain slug |
| delegator | yes | Delegator bech32 address e.g. cosmos1... |
Response Fields
| Field | Type |
|---|---|
data | object |
chain | string |
delegator | string |
unbonding_responses | object[] |
delegator_address | string |
validator_address | string |
entries | object[] |
creation_height | string |
completion_time | string |
initial_balance | string |
balance | string |
Supported Networks
getStakingRewards
Returns outstanding staking rewards across all validators for a delegator. Backed by the distribution module (`cosmos/distribution/v1beta1/delegators/{delegator_addr}/rewards`). Not available on `noble`, which does not expose the distribution module.
curl -X POST https://your-endpoint.simplystaking.xyz/v1 \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "getStakingRewards",
"params": {
"chain": "cosmoshub",
"delegator": "cosmos1..."
},
"id": 1
}'{
"jsonrpc": "2.0",
"result": {
"data": {
"chain": "cosmoshub",
"delegator": "cosmos1...",
"rewards": [
{
"validator_address": "cosmosvaloper1...",
"reward": [
{
"denom": "uatom",
"amount": "125000.0"
}
]
}
],
"total": [
{
"denom": "uatom",
"amount": "125000.0"
}
]
}
},
"id": 1
}Parameters
| Name | Required | Description |
|---|---|---|
| chain | yes | Cosmos SDK chain slug |
| delegator | yes | Delegator bech32 address e.g. cosmos1... |
Response Fields
| Field | Type |
|---|---|
data | object |
chain | string |
delegator | string |
rewards | object[] |
validator_address | string |
reward | object[] |
denom | string |
amount | string |
total | object[] |
denom | string |
amount | string |
Supported Networks
getValidators
Returns the validator set for the chain. Backed by `cosmos/staking/v1beta1/validators`.
curl -X POST https://your-endpoint.simplystaking.xyz/v1 \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "getValidators",
"params": {
"chain": "cosmoshub"
},
"id": 1
}'{
"jsonrpc": "2.0",
"result": {
"data": {
"chain": "cosmoshub",
"validators": [
{
"operator_address": "cosmosvaloper1...",
"jailed": false,
"status": "BOND_STATUS_BONDED",
"tokens": "12345678901234",
"delegator_shares": "12345678901234.000000000000000000",
"description": {
"moniker": "Simply Staking"
}
}
]
}
},
"id": 1
}Parameters
| Name | Required | Description |
|---|---|---|
| chain | yes | Cosmos SDK chain slug |
Response Fields
| Field | Type |
|---|---|
data | object |
chain | string |
validators | object[] |
operator_address | string |
jailed | boolean |
status | string |
tokens | string |
delegator_shares | string |
description | object |
moniker | string |
Supported Networks
getValidator
Returns a single validator by operator address. Backed by `cosmos/staking/v1beta1/validators/{validator_addr}`.
curl -X POST https://your-endpoint.simplystaking.xyz/v1 \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "getValidator",
"params": {
"chain": "cosmoshub",
"validatorAddr": "cosmosvaloper1..."
},
"id": 1
}'{
"jsonrpc": "2.0",
"result": {
"data": {
"chain": "cosmoshub",
"validatorAddr": "cosmosvaloper1...",
"validator": {
"operator_address": "cosmosvaloper1...",
"jailed": false,
"status": "BOND_STATUS_BONDED",
"tokens": "12345678901234",
"description": {
"moniker": "Simply Staking"
},
"commission": {
"commission_rates": {
"rate": "0.050000000000000000",
"max_rate": "0.200000000000000000",
"max_change_rate": "0.010000000000000000"
}
}
}
}
},
"id": 1
}Parameters
| Name | Required | Description |
|---|---|---|
| chain | yes | Cosmos SDK chain slug |
| validatorAddr | yes | Validator operator address e.g. cosmosvaloper1... |
Response Fields
| Field | Type |
|---|---|
data | object |
chain | string |
validatorAddr | string |
validator | object |
operator_address | string |
jailed | boolean |
status | string |
tokens | string |
description | object |
moniker | string |
commission | object |
commission_rates | object |
Supported Networks
getStakingPool
Returns the staking pool totals (`bonded_tokens` and `not_bonded_tokens`). Backed by `cosmos/staking/v1beta1/pool`.
curl -X POST https://your-endpoint.simplystaking.xyz/v1 \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "getStakingPool",
"params": {
"chain": "cosmoshub"
},
"id": 1
}'{
"jsonrpc": "2.0",
"result": {
"data": {
"chain": "cosmoshub",
"pool": {
"not_bonded_tokens": "12345678",
"bonded_tokens": "234567890123"
}
}
},
"id": 1
}Parameters
| Name | Required | Description |
|---|---|---|
| chain | yes | Cosmos SDK chain slug |
Response Fields
| Field | Type |
|---|---|
data | object |
chain | string |
pool | object |
not_bonded_tokens | string |
bonded_tokens | string |
Supported Networks
getBlockResults
Returns Tendermint `block_results` for a height: begin/end-block events, per-transaction results (gas, code, events), validator updates, and consensus param changes. Fetched via the chain's Tendermint RPC.
curl -X POST https://your-endpoint.simplystaking.xyz/v1 \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "getBlockResults",
"params": {
"chain": "cosmoshub",
"block": 21345678
},
"id": 1
}'{
"jsonrpc": "2.0",
"result": {
"data": {
"chain": "cosmoshub",
"block": 21345678,
"results": {
"height": "21345678",
"txs_results": [
{
"code": 0,
"gas_wanted": "200000",
"gas_used": "142331"
}
],
"finalize_block_events": [],
"validator_updates": [],
"consensus_param_updates": {}
}
}
},
"id": 1
}Parameters
| Name | Required | Description |
|---|---|---|
| chain | yes | Cosmos SDK chain slug |
| block | yes | Block height e.g. 21345678 |
Response Fields
| Field | Type |
|---|---|
data | object |
chain | string |
block | integer |
results | object |
height | string |
txs_results | object[] |
code | integer |
gas_wanted | string |
gas_used | string |
finalize_block_events | array |
validator_updates | array |
consensus_param_updates | object |
Supported Networks
Address conventions
Cosmos SDK uses three bech32 address types:
cosmos1...: account addresses (delegators, recipients)cosmosvaloper1...: validator operator addresses (used bygetValidator)cosmosvalcons1...: validator consensus addresses
The HRP (cosmos, osmo, axelar, noble, agoric) varies per chain. Substitute the chain’s own prefix for the cosmos shown in the examples above.
Related pages
- Cosmos Hub chain page: Chain-level overview and method matrix
- Accounts & Balances: Native balance and denom balances
- ERC-20 Tokens: Denom supply and token metadata on Cosmos