Rollytics exposes a read-only, KV Indexer endpoint-compatible (drop-in for
most consumers) HTTP API for indexed chain data. This section documents the
endpoints commonly used by wallets, explorers, and backend services.
Base URL: https://<your-rollytics-api-host>
OpenAPI: /swagger/doc.json
Response schemas and full field definitions are in the OpenAPI spec. Examples
below show representative payloads.
Conventions
All responses are application/json.
Many list endpoints accept Cosmos-style pagination parameters.
Pagination Parameters:
| Name | In | Type | Default | Description |
|---|
pagination.key | query | string | - | Cursor-based pagination, preferred for large datasets |
pagination.offset | query | integer | - | Offset-based pagination |
pagination.limit | query | integer | 100 | Pagination limit |
pagination.count_total | query | boolean | true | Count total (when supported) |
pagination.reverse | query | boolean | true | Reverse order. Default is descending; set pagination.reverse=false for ascending order |
Pagination responses may include pagination.next_key,
pagination.previous_key, and pagination.total, depending on the endpoint and
data set. For exact response fields, refer to OpenAPI.
Key-based pagination:
# First page
curl "https://<host>/indexer/tx/v1/txs?pagination.limit=50"
# Next page using next_key from response
curl "https://<host>/indexer/tx/v1/txs?pagination.limit=50&pagination.key=<next_key_from_response>"
Filtering
Some transaction endpoints support filtering by message type via the msgs
parameter:
| Name | In | Type | Default | Description |
|---|
msgs | query | array[string] | - | Message types to filter (comma-separated or multiple params). Example: "cosmos.bank.v1beta1.MsgSend,initia.move.v1.MsgExecute" |
Example:
curl "https://<host>/indexer/tx/v1/txs?msgs=cosmos.bank.v1beta1.MsgSend&msgs=initia.move.v1.MsgExecute"
App
GET /status
Status check.
Returns current indexer status including chain ID and latest indexed heights.
Response
200 OK
Schema: status.StatusResponse
Example response:
{
"version": "0.7.1",
"commit_hash": "a1b2c3d",
"chain_id": "initia-1",
"height": 123456,
"internal_tx_height": 123400,
"rich_list_height": 123450
}
Field notes:
height: latest indexed block height
internal_tx_height: latest indexed internal EVM transaction height
rich_list_height: latest indexed rich list height
Block
Block endpoints return JSON objects defined in OpenAPI; see /swagger/doc.json
for full schema details.
GET /indexer/block/v1/avg_blocktime
Get average block time.
Returns the average block time over recent blocks.
Response
200 OK
Schema: see OpenAPI (/swagger/doc.json)
GET /indexer/block/v1/blocks
Get blocks.
Returns a list of blocks with pagination.
Parameters
| Name | In | Type | Default | Description |
|---|
pagination.key | query | string | - | See Pagination |
pagination.offset | query | integer | - | See Pagination |
pagination.limit | query | integer | 100 | See Pagination |
pagination.reverse | query | boolean | true | See Pagination |
Response
200 OK
Schema: see OpenAPI (/swagger/doc.json)
GET /indexer/block/v1/blocks/{height}
Get block by height.
Note: The height parameter is a string for this endpoint, but an integer
for GET /indexer/tx/v1/txs/by_height/{height}.
Parameters
| Name | In | Type | Default | Description |
|---|
height | path | string | - | Block height |
Response
200 OK
Schema: see OpenAPI (/swagger/doc.json)
Transactions
Transaction endpoints return JSON objects defined in OpenAPI; see
/swagger/doc.json for full schema details.
GET /indexer/tx/v1/txs
Get transactions.
Returns a list of transactions with pagination.
Parameters
| Name | In | Type | Default | Description |
|---|
pagination.key | query | string | - | See Pagination |
pagination.offset | query | integer | - | See Pagination |
pagination.limit | query | integer | 100 | See Pagination |
pagination.count_total | query | boolean | true | See Pagination |
pagination.reverse | query | boolean | true | See Pagination |
msgs | query | array[string] | - | See Filtering |
Response
200 OK
Schema: see OpenAPI (/swagger/doc.json)
GET /indexer/tx/v1/txs/by_account/{account}
Get transactions by account.
Parameters
| Name | In | Type | Default | Description |
|---|
account | path | string | - | Account address |
pagination.key | query | string | - | See Pagination |
pagination.offset | query | integer | - | See Pagination |
pagination.limit | query | integer | 100 | See Pagination |
pagination.count_total | query | boolean | true | See Pagination |
pagination.reverse | query | boolean | true | See Pagination |
is_signer | query | boolean | false | Filter by signer accounts |
msgs | query | array[string] | - | See Filtering |
Response
200 OK
Schema: see OpenAPI (/swagger/doc.json)
GET /indexer/tx/v1/txs/by_height/{height}
Get transactions by height.
Get transactions at a specific block height.
Note: The height parameter is an integer for this endpoint, but a string
for GET /indexer/block/v1/blocks/{height}.
Parameters
| Name | In | Type | Default | Description |
|---|
height | path | integer | - | Block height |
pagination.key | query | string | - | See Pagination |
pagination.offset | query | integer | - | See Pagination |
pagination.limit | query | integer | 100 | See Pagination |
pagination.count_total | query | boolean | true | See Pagination |
pagination.reverse | query | boolean | true | See Pagination |
msgs | query | array[string] | - | See Filtering |
Response
200 OK
Schema: see OpenAPI (/swagger/doc.json)
GET /indexer/tx/v1/txs/{tx_hash}
Get transaction by hash.
Parameters
| Name | In | Type | Default | Description |
|---|
tx_hash | path | string | - | Transaction hash |
Response
200 OK
Schema: see OpenAPI (/swagger/doc.json)
NFT
NFT schemas in OpenAPI: nft.CollectionsResponse, nft.CollectionResponse,
nft.NftsResponse.
GET /indexer/nft/v1/collections
Get NFT collections.
Parameters
| Name | In | Type | Default | Description |
|---|
pagination.key | query | string | - | See Pagination |
pagination.offset | query | integer | - | See Pagination |
pagination.limit | query | integer | 100 | See Pagination |
pagination.count_total | query | boolean | true | See Pagination |
pagination.reverse | query | boolean | true | See Pagination |
Response
200 OK
Schema: nft.CollectionsResponse
Example response:
{
"collections": [
{
"object_addr": "initia1collectionaddress",
"collection": {
"creator": "initia1creatoraddress",
"name": "Initia Badges",
"origin_name": "initia.badges",
"nfts": {
"handle": "badge",
"length": 12
}
},
"height": 123456,
"timestamp": "2024-01-12T10:20:30Z"
}
],
"pagination": {
"next_key": "AQID",
"previous_key": "",
"total": "1"
}
}
GET /indexer/nft/v1/collections/by_account/{account}
Get NFT collections by account.
Parameters
| Name | In | Type | Default | Description |
|---|
account | path | string | - | Account address |
pagination.key | query | string | - | See Pagination |
pagination.offset | query | integer | - | See Pagination |
pagination.limit | query | integer | 100 | See Pagination |
pagination.count_total | query | boolean | true | See Pagination |
pagination.reverse | query | boolean | true | See Pagination |
Response
200 OK
Schema: nft.CollectionsResponse
GET /indexer/nft/v1/collections/by_name/{name}
Get NFT collections by name.
Parameters
| Name | In | Type | Default | Description |
|---|
name | path | string | - | Collection name |
pagination.key | query | string | - | See Pagination |
pagination.offset | query | integer | - | See Pagination |
pagination.limit | query | integer | 100 | See Pagination |
pagination.count_total | query | boolean | true | See Pagination |
pagination.reverse | query | boolean | true | See Pagination |
Response
200 OK
Schema: nft.CollectionsResponse
GET /indexer/nft/v1/collections/{collection_addr}
Get NFT collection by address.
Parameters
| Name | In | Type | Default | Description |
|---|
collection_addr | path | string | - | Collection address |
Response
200 OK
Schema: nft.CollectionResponse
GET /indexer/nft/v1/tokens/by_account/{account}
Get NFT tokens by account.
Parameters
| Name | In | Type | Default | Description |
|---|
account | path | string | - | Account address |
collection_addr | query | string | - | Collection address to filter by (optional) |
token_id | query | string | - | Token ID to filter by (optional) |
order_by | query | string | token_id | Order by field. Available values: token_id, height |
pagination.key | query | string | - | See Pagination |
pagination.offset | query | integer | - | See Pagination |
pagination.limit | query | integer | 100 | See Pagination |
pagination.count_total | query | boolean | true | See Pagination |
pagination.reverse | query | boolean | true | See Pagination |
Response
200 OK
Schema: nft.NftsResponse
Example response:
{
"tokens": [
{
"collection_addr": "initia1collectionaddress",
"collection_name": "Initia Badges",
"collection_origin_name": "initia.badges",
"object_addr": "initia1nftobject",
"owner": "initia1owneraddress",
"nft": {
"token_id": "42",
"uri": "ipfs://bafy.../metadata.json"
},
"height": 123456,
"timestamp": "2024-01-12T10:20:30Z"
}
],
"pagination": {
"next_key": "AQID",
"previous_key": "",
"total": "1"
}
}
GET /indexer/nft/v1/tokens/by_collection/{collection_addr}
Get NFT tokens by collection.
Parameters
| Name | In | Type | Default | Description |
|---|
collection_addr | path | string | - | Collection address |
token_id | query | string | - | Token ID to filter by (optional) |
order_by | query | string | token_id | Order by field. Available values: token_id, height |
pagination.key | query | string | - | See Pagination |
pagination.offset | query | integer | - | See Pagination |
pagination.limit | query | integer | 100 | See Pagination |
pagination.count_total | query | boolean | true | See Pagination |
pagination.reverse | query | boolean | true | See Pagination |
Response
200 OK
Schema: nft.NftsResponse
GET /indexer/nft/v1/txs/{collection_addr}/{token_id}
Get NFT transactions by collection and token ID.
Parameters
| Name | In | Type | Default | Description |
|---|
collection_addr | path | string | - | Collection address |
token_id | path | string | - | Token ID |
pagination.key | query | string | - | See Pagination |
pagination.offset | query | integer | - | See Pagination |
pagination.limit | query | integer | 100 | See Pagination |
pagination.count_total | query | boolean | true | See Pagination |
pagination.reverse | query | boolean | true | See Pagination |
Response
200 OK
Schema: see OpenAPI (/swagger/doc.json)
Rich List
Rich list indexing is currently available only for EVM rollups. Move and Wasm
rollups are not yet supported.
GET /indexer/richlist/v1/{denom}
Get token holders.
Get a list of token holders for a specific denomination, ordered by amount in
descending order.
Parameters
| Name | In | Type | Default | Description |
|---|
denom | path | string | - | Token denomination |
pagination.key | query | string | - | See Pagination |
pagination.offset | query | integer | - | See Pagination |
pagination.limit | query | integer | 100 | See Pagination |
pagination.count_total | query | boolean | true | See Pagination |
pagination.reverse | query | boolean | true | See Pagination |
Response
200 OK
Schema: richlist.TokenHoldersResponse
Example response:
{
"holders": [
{
"account": "initia1holderaddress",
"amount": "1000000"
}
],
"pagination": {
"next_key": "AQID",
"previous_key": "",
"total": "1"
}
}