Skip to main content

Cosmos REST API

The Cosmos REST API provides HTTP endpoints for querying chain state and broadcasting transactions.

Base URLs

NetworkURL
Sprintnethttps://api.sprintnet.monolythium.com
Testnethttps://api.testnet.monolythium.com
Mainnethttps://api.monolythium.com

Default port: 1317

Common Endpoints

Node Information

# Node info
GET /cosmos/base/tendermint/v1beta1/node_info

# Syncing status
GET /cosmos/base/tendermint/v1beta1/syncing

# Latest block
GET /cosmos/base/tendermint/v1beta1/blocks/latest

Bank Module

# Account balance
GET /cosmos/bank/v1beta1/balances/{address}

# Total supply
GET /cosmos/bank/v1beta1/supply

# Specific denom supply
GET /cosmos/bank/v1beta1/supply/by_denom?denom=alyth

Staking Module

# All validators
GET /cosmos/staking/v1beta1/validators

# Specific validator
GET /cosmos/staking/v1beta1/validators/{validator_addr}

# Delegations for address
GET /cosmos/staking/v1beta1/delegations/{delegator_addr}

# Pool info
GET /cosmos/staking/v1beta1/pool

Distribution Module

# Delegator rewards
GET /cosmos/distribution/v1beta1/delegators/{delegator_addr}/rewards

# Validator commission
GET /cosmos/distribution/v1beta1/validators/{validator_addr}/commission

Governance Module

# All proposals
GET /cosmos/gov/v1beta1/proposals

# Specific proposal
GET /cosmos/gov/v1beta1/proposals/{proposal_id}

# Proposal votes
GET /cosmos/gov/v1beta1/proposals/{proposal_id}/votes

Auth Module

# Account info
GET /cosmos/auth/v1beta1/accounts/{address}

Query Examples

Get Account Balance

curl https://api.sprintnet.monolythium.com/cosmos/bank/v1beta1/balances/mono1abc...

Response:

{
"balances": [
{
"denom": "alyth",
"amount": "1000000000000000000000"
}
],
"pagination": {
"next_key": null,
"total": "1"
}
}

Get Validator Info

curl https://api.sprintnet.monolythium.com/cosmos/staking/v1beta1/validators/monovaloper1abc...

Get Latest Block

curl https://api.sprintnet.monolythium.com/cosmos/base/tendermint/v1beta1/blocks/latest

Broadcasting Transactions

Simulate Transaction

POST /cosmos/tx/v1beta1/simulate
Content-Type: application/json

{
"tx_bytes": "CpQBCp...",
"mode": "BROADCAST_MODE_SYNC"
}

Broadcast Transaction

POST /cosmos/tx/v1beta1/txs
Content-Type: application/json

{
"tx_bytes": "CpQBCp...",
"mode": "BROADCAST_MODE_SYNC"
}

Modes:

ModeDescription
BROADCAST_MODE_SYNCWait for CheckTx
BROADCAST_MODE_ASYNCReturn immediately
BROADCAST_MODE_BLOCKWait for block (deprecated)

Pagination

Large result sets use pagination:

GET /cosmos/staking/v1beta1/validators?pagination.limit=10&pagination.offset=0

Parameters:

ParameterDescription
pagination.limitMax results per page
pagination.offsetSkip first N results
pagination.keyBase64 encoded next page key
pagination.count_totalInclude total count

Error Responses

{
"code": 3,
"message": "account mono1abc... not found",
"details": []
}

Common codes:

CodeMeaning
2Unknown
3Invalid argument
5Not found
11Out of range

Running Your Own

Enable REST API in your node:

# app.toml
[api]
enable = true
address = "tcp://0.0.0.0:1317"
swagger = true

Access Swagger UI at: http://localhost:1317/swagger/