Free Cosmos RPC (ATOM)
Discover Cosmos, a blockchain designed for interoperability. Build cross-chain decentralized applications using its RPC gateway.
Connect to Cosmos
Access reliable, enterprise-grade endpoints that power your dApp with ultra-low latency and 99.9% uptime.
Connect to Cosmos Gateway
Make your first RPC call on Cosmos's Blockchain Gateway.
Testnet
Testnet* Rate limit enabled - perfect for testing and development. For production, we recommend to Upgrade.
Get 200 requests/second, priority support and advanced blockchain features.
Global Load Balancer
Route to nearest node
Batch RPC Calls
Multiple requests at once
Archive Nodes
Historical blockchain data
Debug & Trace
Advanced debugging
Advanced Analytics
Usage & performance
Bring Your Own RPC
Custom RPC gateways
Increase your limit and access all network features in Tatum Development Platform.
No signup. No paywalls. Just RPC that works. Great ideas come from everywhere.
With love by Tatum
Cosmos methods
Every method the Cosmos gateway accepts, grouped by interface. 160 in total, read live from the node rather than kept by hand.
Mainnet is the live Cosmos network. Every transaction it
accepts is final, and every ATOM balance it
reports is real money.
Testnet answers the same methods on a network funded with tokens that have no market value. Develop there, then change the URL to Mainnet when the code is stable. Nothing else about your integration has to change.
Cosmos answers over 3 interfaces: JSON-RPC, REST and gRPC. Each is listed once below with every method it accepts. The endpoints differ per network, and all of them are in the gateway list above.
What sits between you and Cosmos
A node is a machine running Cosmos with a copy of the chain. Your code cannot ask the chain directly, it asks a node. The gateway picks a healthy one for every call, so you point at one URL instead of one machine.
- One URL, nothing to run or keep patched yourself.
- Calls routed to a node that is up and in sync.
- A failing node is skipped rather than returned to you as an error.
JSON-RPC
22 methodsThe default. Every wallet, library and framework speaks it, and it is what you want unless you specifically need something else.
One POST carries a method name, its parameters and an id, and the response comes back on the same connection carrying that same id. Requests are independent, so there is no session to keep alive and nothing to reconnect, which is why it runs unchanged behind a load balancer or inside a serverless function. Send an array instead of a single object and the node works through the whole batch in one round trip.
Where it fits
- Anything your library already does for you. ethers, web3.js, viem and their equivalents all target this.
- Batching reads. One array of twenty calls costs one round trip instead of twenty.
- Stateless and serverless deployments, because nothing has to stay connected between calls.
- Historical queries, by passing a block number where you would otherwise pass latest.
Trade-offs
- It cannot push. Finding out that a block landed means polling for it, or moving to WebSocket.
- Wide log queries get refused. Page through in fixed block windows and merge the results yourself.
- Batch responses may come back in any order. Match them on id, never on position.
Enabled and tested methods
Read live from the endpoint, so this is what it actually serves today rather than what the protocol allows in principle. Anything not on this list returns a method-not-found error.
- abci_info
- Returns application version and state information from the ABCI app.
- abci_query
- Queries application state directly through the ABCI interface.
- block
- Returns a block at a given height.
- block_results
- Returns the results of executing a block, including events and validator updates.
- blockchain
- Returns block headers across a range of heights.
- broadcast_tx_async
- Submits a transaction and returns immediately, without waiting for checks.
- broadcast_tx_commit
- Submits a transaction and waits until it is committed in a block.
- broadcast_tx_sync
- Submits a transaction and waits only for the initial validity check.
- commit
- Returns the commit signatures for a block.
- consensus_params
- Returns the consensus parameters in force at a height.
- consensus_state
- Returns the current consensus state of the node.
- dump_consensus_state
- Returns the full consensus state, including peer voting detail.
- genesis
- Returns the genesis document of the chain.
- genesis_chunked
- Returns the genesis document in chunks, for chains too large to send at once.
- health
- Reports whether the node is running and responsive.
- net_info
- Returns networking details, including the peers the node is connected to.
- num_unconfirmed_txs
- Returns the number of transactions waiting in the mempool.
- status
- Returns node status: sync state, validator info and the latest block.
- tx
- Returns a transaction by hash, with its execution result.
- tx_search
- Searches for transactions matching a query.
- unconfirmed_txs
- Lists transactions currently waiting in the mempool.
- validators
- Returns the validator set at a given height.
Common JSON-RPC errors
What you are most likely to hit calling this interface, and what to do about it.
- -32700
- Parse error. The request body was not valid JSON. Check that the body is serialised JSON and that Content-Type is application/json.
- -32600
- Invalid request. The JSON parsed, but it is not a well-formed JSON-RPC call. Include jsonrpc, method and id fields. A batch must be a non-empty array.
- -32601
- Method not found. This node does not expose the method you called. Check the spelling and the namespace, and confirm the method is in the list above for this network. Tracing methods in particular are not enabled everywhere.
- -32602
- Invalid params. The method exists but the arguments are wrong. Check argument order and types. Most EVM methods want hex-encoded quantities, and a block parameter such as latest or a hex height.
- -32603
- Internal error. The node failed while handling an otherwise valid request. Retry with backoff. If it persists on one method, it is usually that method rather than the node.
- -32000
- Server error. A catch-all the node uses for execution failures, most often a reverted call or a request over a limit. Read the accompanying message. Execution reverted means your call failed on chain, not in transport. Narrow the block range if you are querying logs.
- HTTP 429
- Rate limited. You have exceeded the free tier request allowance. Back off and retry, batch reads into single calls, or move to a dedicated endpoint for production traffic.
- HTTP 413
- Payload too large. The request body exceeded what the node accepts. Split large batches into smaller ones.
REST
138 methodsEvery resource has its own URL, so a request is just an address you can open.
Paste it into a browser, curl it, or bookmark it. There is no body to construct and no method name to look up, and because a read is a plain GET, ordinary HTTP caching applies at the CDN and in your own client. Responses are JSON, and the path itself usually tells you what you are getting.
Where it fits
- Getting oriented on an unfamiliar chain without writing any code first.
- Caching, because a GET can be cached by anything sitting between you and the node.
- Debugging, since the request that failed is a URL you can paste to a colleague.
Trade-offs
- You get exactly what the endpoint returns. There is no way to ask for less, or for more.
- Building a full picture takes several round trips where one batched JSON-RPC call would do.
- Paths carry version prefixes and shift between node releases more readily than method names do.
Enabled and tested methods
Read live from the endpoint, so this is what it actually serves today rather than what the protocol allows in principle. Anything not on this list returns a method-not-found error.
- GET /abci_info
- Returns application version and state information from the ABCI app.
- GET /abci_query
- Queries application state directly through the ABCI interface.
- GET /auth/v1beta1/account_info/{account}
- Returns the account number, sequence and public key for an address.
- GET /auth/v1beta1/accounts
- Lists every account on the chain.
- GET /auth/v1beta1/accounts/{account}
- Returns one account.
- GET /auth/v1beta1/address_by_id/{account}
- Resolves an account ID to its address.
- GET /auth/v1beta1/bech32
- Returns the bech32 human-readable prefix this chain uses for addresses.
- GET /auth/v1beta1/module_accounts
- Lists the module accounts, which hold funds on behalf of protocol modules.
- GET /auth/v1beta1/params
- Returns the auth module parameters, such as maximum memo length.
- GET /authz/v1beta1/grants
- Returns the authorisations granted between two accounts.
- GET /authz/v1beta1/grants/grantee/{grantee}
- Lists the authorisations an account has received.
- GET /authz/v1beta1/grants/granter/{granter}
- Lists the authorisations an account has issued.
- GET /bank/v1beta1/balances/{account}
- Returns every token balance held by an account.
- GET /bank/v1beta1/balances/{account}/by_denom
- Returns the balance of one denomination held by an account.
- GET /bank/v1beta1/denoms_metadata
- Lists metadata for every token denomination.
- GET /bank/v1beta1/denoms_metadata/{denom}
- Returns metadata for one token denomination.
- GET /bank/v1beta1/params
- Returns the bank module parameters, including which sends are enabled.
- GET /bank/v1beta1/spendable_balances/{address}
- Returns the part of an account balance that is not locked or vesting.
- GET /bank/v1beta1/supply
- Returns the total supply of every denomination.
- GET /bank/v1beta1/supply/{denom}
- Returns the total supply of one denomination.
- GET /bank/v1beta1/supply/by_denom
- Returns the total supply of one denomination.
- GET /base/tendermint/v1beta1/blocks/{height}
- Returns the block at a given height.
- GET /base/tendermint/v1beta1/blocks/latest
- Returns the most recent block.
- GET /base/tendermint/v1beta1/node_info
- Returns the node identity, version and network it serves.
- GET /base/tendermint/v1beta1/syncing
- Reports whether the node is still catching up.
- GET /base/tendermint/v1beta1/validatorsets/{height}
- Returns the validator set at a given height.
- GET /base/tendermint/v1beta1/validatorsets/latest
- Returns the current validator set.
- GET /block
- Returns a block at a given height.
- GET /block_results
- Returns the results of executing a block, including events and validator updates.
- GET /blockchain
- Returns block headers across a range of heights.
- GET /broadcast_tx_async
- Submits a transaction and returns immediately, without waiting for checks.
- GET /broadcast_tx_commit
- Submits a transaction and waits until it is committed in a block.
- GET /broadcast_tx_sync
- Submits a transaction and waits only for the initial validity check.
- GET /commit
- Returns the commit signatures for a block.
- GET /consensus_params
- Returns the consensus parameters in force at a height.
- GET /consensus_state
- Returns the current consensus state of the node.
- GET /distribution/v1beta1/community_pool
- Returns the balance of the community pool.
- GET /distribution/v1beta1/delegators/{delegator_address}/rewards
- Returns the rewards a delegator has accrued across all validators.
- GET /distribution/v1beta1/delegators/{delegator_address}/rewards/{validator_address}
- Returns the rewards a delegator has accrued with one validator.
- GET /distribution/v1beta1/delegators/{delegator_address}/validators
- Lists the validators an account delegates to.
- GET /distribution/v1beta1/delegators/{delegator_address}/withdraw_address
- Returns the address rewards are paid out to.
- GET /distribution/v1beta1/params
- Returns the distribution module parameters, including community tax.
- GET /distribution/v1beta1/validators/{validator_address}/commission
- Returns the commission a validator has accrued.
- GET /distribution/v1beta1/validators/{validator_address}/outstanding_rewards
- Returns the rewards a validator has yet to distribute.
- GET /distribution/v1beta1/validators/{validator_address}/slashes
- Lists the slashing events applied to a validator.
- GET /dump_consensus_state
- Returns the full consensus state, including peer voting detail.
- GET /evidence/v1beta1/evidence
- Lists the misbehaviour evidence submitted to the chain.
- GET /evidence/v1beta1/evidence/{hash}
- Returns one piece of misbehaviour evidence.
- GET /feegrant/v1beta1/allowance/{granter}/{grantee}
- Returns the fee allowance one account has granted another.
- GET /feegrant/v1beta1/allowances/{grantee}
- Lists the fee allowances an account has received.
- GET /feegrant/v1beta1/issued/{granter}
- Lists the fee allowances an account has issued.
- GET /genesis
- Returns the genesis configuration of the network.
- GET /genesis_chunked
- Returns the genesis document in chunks, for chains too large to send at once.
- GET /gov/v1beta1/params/{params_type}
- Returns governance parameters for voting, deposits or tallying.
- GET /gov/v1beta1/proposals
- Lists governance proposals.
- GET /gov/v1beta1/proposals/{proposal_id}
- Returns one governance proposal.
- GET /gov/v1beta1/proposals/{proposal_id}/deposits
- Lists the deposits backing a proposal.
- GET /gov/v1beta1/proposals/{proposal_id}/deposits/{depositor}
- Returns one deposit on a proposal.
- GET /gov/v1beta1/proposals/{proposal_id}/tally
- Returns the current vote tally for a proposal.
- GET /gov/v1beta1/proposals/{proposal_id}/votes
- Lists the votes cast on a proposal.
- GET /gov/v1beta1/proposals/{proposal_id}/votes/{voter}
- Returns one vote cast on a proposal.
- GET /health
- Reports whether Sidecar and the node behind it are reachable.
- GET /mint/v1beta1/annual_provisions
- Returns the tokens to be minted over the coming year.
- GET /mint/v1beta1/inflation
- Returns the current inflation rate.
- GET /mint/v1beta1/params
- Returns the mint module parameters governing inflation.
- GET /net_info
- Returns networking details, including the peers the node is connected to.
- GET /num_unconfirmed_txs
- Returns the number of transactions waiting in the mempool.
- GET /slashing/v1beta1/params
- Returns the slashing module parameters, such as jail duration.
- GET /slashing/v1beta1/signing_infos
- Lists the block-signing records of every validator.
- GET /slashing/v1beta1/signing_infos/{cons_address}
- Returns the block-signing record of one validator.
- GET /staking/v1beta1/delegations/{delegator_addr}
- Lists the delegations made by an account.
- GET /staking/v1beta1/delegators/{delegator_addr}/redelegations
- Lists the in-flight redelegations of an account.
- GET /staking/v1beta1/delegators/{delegator_addr}/unbonding_delegations
- Lists the unbonding delegations of an account.
- GET /staking/v1beta1/delegators/{delegator_addr}/validators/{validator_addr}
- Returns one validator an account delegates to.
- GET /staking/v1beta1/historical_info/{height}
- Returns the validator set and header recorded at a height.
- GET /staking/v1beta1/params
- Returns the staking module parameters, such as unbonding time.
- GET /staking/v1beta1/pool
- Returns the total bonded and unbonded stake.
- GET /staking/v1beta1/validators
- Lists the validators.
- GET /staking/v1beta1/validators/{validator_addr}
- Returns one validator.
- GET /staking/v1beta1/validators/{validator_addr}/delegations
- Lists the delegations a validator has received.
- GET /staking/v1beta1/validators/{validator_addr}/delegations/{delegator_addr}
- Returns one delegation to a validator.
- GET /staking/v1beta1/validators/{validator_addr}/delegations/{delegator_addr}/unbonding_delegation
- Returns one unbonding delegation from a validator.
- GET /staking/v1beta1/validators/{validator_addr}/unbonding_delegations
- Lists the unbonding delegations from a validator.
- GET /status
- Returns node status: sync state, validator info and the latest block.
- GET /tx
- Returns a transaction by hash, with its execution result.
- GET /tx_search
- Searches for transactions matching a query.
- GET /tx/v1beta1/txs/{hash}
- Returns a transaction by its hash.
- GET /tx/v1beta1/txs/block/{block_number}
- Returns every transaction in a block.
- GET /unconfirmed_txs
- Lists transactions currently waiting in the mempool.
- GET /upgrade/v1beta1/applied_plan/{name}
- Returns the height at which a named upgrade was applied.
- GET /upgrade/v1beta1/authority
- Returns the account authorised to schedule upgrades.
- GET /upgrade/v1beta1/current_plan
- Returns the upgrade currently scheduled, if any.
- GET /upgrade/v1beta1/module_versions
- Lists the consensus version of each module.
- GET /upgrade/v1beta1/upgraded_consensus_state/{last_height}
- Returns the consensus state carried across an upgrade.
- GET /validators
- Returns the validator set at a given height.
- POST /abci_info
- Returns application version and state information from the ABCI app.
- POST /abci_query
- Queries application state directly through the ABCI interface.
- POST /account/balance
- Returns the balance of an account at a given block.
- POST /account/coins
- Returns the unspent coins controlled by an account.
- POST /block
- Returns a block and the transactions it contains.
- POST /block_results
- Returns the results of executing a block, including events and validator updates.
- POST /block/transaction
- Returns one transaction from a block.
- POST /blockchain
- Returns block headers across a range of heights.
- POST /broadcast_tx_async
- Submits a transaction and returns immediately, without waiting for checks.
- POST /broadcast_tx_commit
- Submits a transaction and waits until it is committed in a block.
- POST /broadcast_tx_sync
- Submits a transaction and waits only for the initial validity check.
- POST /call
- Invokes a network-specific procedure that Rosetta does not model directly.
- POST /commit
- Returns the commit signatures for a block.
- POST /consensus_params
- Returns the consensus parameters in force at a height.
- POST /consensus_state
- Returns the current consensus state of the node.
- POST /construction/combine
- Combines an unsigned transaction with its signatures.
- POST /construction/derive
- Derives an address from a public key.
- POST /construction/hash
- Returns the hash a signed transaction will have.
- POST /construction/metadata
- Returns the network metadata needed to build a transaction, such as nonce and fees.
- POST /construction/parse
- Decodes a transaction back into its operations, signed or unsigned.
- POST /construction/payloads
- Returns the payloads that must be signed for a set of operations.
- POST /construction/preprocess
- Works out what metadata will be needed before building a transaction.
- POST /construction/submit
- Submits a signed transaction to the network.
- POST /dump_consensus_state
- Returns the full consensus state, including peer voting detail.
- POST /events/blocks
- Returns a sequence of block add and remove events, for following the chain.
- POST /genesis
- Returns the genesis document of the chain.
- POST /genesis_chunked
- Returns the genesis document in chunks, for chains too large to send at once.
- POST /health
- Reports whether the node is running and responsive.
- POST /mempool
- Lists the transaction identifiers currently in the mempool.
- POST /mempool/transaction
- Returns one transaction from the mempool.
- POST /net_info
- Returns networking details, including the peers the node is connected to.
- POST /network/list
- Lists the networks this Rosetta instance serves.
- POST /network/options
- Returns the version, allowed operations and errors for a network.
- POST /network/status
- Returns the current and genesis block, plus peers, for a network.
- POST /num_unconfirmed_txs
- Returns the number of transactions waiting in the mempool.
- POST /search/transactions
- Searches transactions by account, status, type or identifier.
- POST /status
- Returns node status: sync state, validator info and the latest block.
- POST /tx
- Returns a transaction by hash, with its execution result.
- POST /tx_search
- Searches for transactions matching a query.
- POST /tx/v1beta1/simulate
- Runs a transaction without committing it, returning the gas it would use.
- POST /tx/v1beta1/txs
- Broadcasts a signed transaction.
- POST /unconfirmed_txs
- Lists transactions currently waiting in the mempool.
- POST /validators
- Returns the validator set at a given height.
Common REST errors
What you are most likely to hit calling this interface, and what to do about it.
- 400
- Bad request. A path or query parameter is malformed. Check the parameter format, and that path values are URL-encoded.
- 404
- Not found. Either the path is wrong, or the resource genuinely does not exist at that height. Confirm the path against the list above. A valid path can still 404 for pruned history on a non-archive node.
- 429
- Rate limited. You have exceeded the free tier request allowance. Back off and retry. REST responses cache well, so caching on your side removes most repeat traffic.
- 500
- Internal server error. The node failed while handling the request. Retry with backoff.
- 503
- Service unavailable. The node is starting, resyncing, or temporarily out of rotation. Retry with backoff; this is normally short-lived.
gRPC
Binary messages over HTTP/2, checked against a schema both ends share.
Clients are generated from that schema rather than written by hand, so a renamed field breaks your build instead of quietly returning nothing at three in the morning. Messages are protocol buffers, appreciably smaller than the JSON equivalent, and a single connection multiplexes many calls at once rather than queueing them.
Where it fits
- Backends making a very large number of calls, where JSON parsing and connection setup start to dominate.
- Streaming in either direction, without the reconnect bookkeeping a WebSocket needs.
- Catching schema drift at compile time rather than in production.
Trade-offs
- You cannot inspect it with curl or a browser. Reach for grpcurl instead.
- Nothing works until you have the schema and a generated client, so it is a poor fit for a quick look.
- Not every gateway publishes a method list. Use server reflection to see what is actually exposed.
This endpoint does not publish a machine-readable method list, so there is nothing to enumerate here. Use server reflection against the endpoint above to see what it exposes.
Common gRPC errors
What you are most likely to hit calling this interface, and what to do about it.
- UNAVAILABLE
- The service could not be reached, or the connection dropped mid-call. Retry with backoff. This code is explicitly safe to retry.
- DEADLINE_EXCEEDED
- The call did not complete within the deadline you set. Raise the deadline for expensive calls, or page the request into smaller ones.
- RESOURCE_EXHAUSTED
- A quota or rate limit was hit, or the message exceeded the size limit. Back off and retry, reduce concurrency, or raise the client max message size for large responses.
- INVALID_ARGUMENT
- The request message was rejected as malformed, independently of system state. Check the field types against the schema. Retrying without changing the request will not help.
- NOT_FOUND
- The requested object, transaction or checkpoint does not exist on this node. Confirm the identifier, and that the node retains history that far back.
- UNIMPLEMENTED
- The service or method is not enabled on this endpoint. Check the service name against the list above; use server reflection to see what is actually exposed.
Indexed Cosmos Data Insights
Complete on-chain data access, no infrastructure to run yourself. Query wallets, tokens, NFTs, and transaction history with lightning-fast APIs.
About Cosmos
What it is, and guides for building on it.
Cosmos Blockchain RPC documentation serves as a comprehensive guide for developers to interact with the Cosmos network, enabling them to build and manage decentralized applications (dApps) on the Cosmos ecosystem. The documentation provides detailed information on available RPC endpoints, methods, and parameters necessary for performing tasks such as querying blockchain data, managing accounts, and broadcasting transactions. Cosmos is designed for interoperability and scalability, making it ideal for developers looking to build cross-chain decentralized applications.
What's new at Tatum on Cosmos?
Notifications: Robinhood
Robinhood Chain is now live on Tatum’s Blockchain Notifications, with support for all notification types. Receive onc...
RPC Gateway: WebSockets for Arbitrum and BSC
Stop polling. Start streaming. Tatum WebSocket subscriptions push blockchain updates to your app over a persistent co...
Cosmos gRPC
Cosmos gRPC is available on Tatum for teams that want a more structured way to query chain data than plain JSON-based...
Frequently Asked Questions
Everything you need to know about Cosmos RPC endpoints
Quick Answer: What is Cosmos RPC?
RPC (Remote Procedure Call) is the standard way to interact with the network programmatically - reading on-chain data, submitting transactions, and deploying smart contracts through JSON-RPC calls. The free tier ships 5 requests per minute with no registration required, which covers most learning and testing workflows. Production applications typically move to Tatum Premium for 200 requests per second and enterprise-grade reliability.
What is Cosmos RPC?
How do I connect to Cosmos using these RPC endpoints?
What are the rate limits for the free RPC tier?
Is Cosmos RPC free forever?
What happens if I exceed the free tier rate limit?
Can I use these Cosmos RPC endpoints with MetaMask?
Are these RPC endpoints secure?
What's the difference between mainnet and testnet RPC endpoints?
How do I troubleshoot RPC connection errors?
Can I use these endpoints in production?
Explore Other Blockchains
Discover RPC endpoints for other popular blockchain networks