Skip to main content
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

Response format

All responses are application/json.

Pagination

Many list endpoints accept Cosmos-style pagination parameters. Pagination Parameters:
NameInTypeDefaultDescription
pagination.keyquerystring-Cursor-based pagination, preferred for large datasets
pagination.offsetqueryinteger-Offset-based pagination
pagination.limitqueryinteger100Pagination limit
pagination.count_totalquerybooleantrueCount total (when supported)
pagination.reversequerybooleantrueReverse 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.

Pagination Examples

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:
NameInTypeDefaultDescription
msgsqueryarray[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

NameInTypeDefaultDescription
pagination.keyquerystring-See Pagination
pagination.offsetqueryinteger-See Pagination
pagination.limitqueryinteger100See Pagination
pagination.reversequerybooleantrueSee 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

NameInTypeDefaultDescription
heightpathstring-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

NameInTypeDefaultDescription
pagination.keyquerystring-See Pagination
pagination.offsetqueryinteger-See Pagination
pagination.limitqueryinteger100See Pagination
pagination.count_totalquerybooleantrueSee Pagination
pagination.reversequerybooleantrueSee Pagination
msgsqueryarray[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

NameInTypeDefaultDescription
accountpathstring-Account address
pagination.keyquerystring-See Pagination
pagination.offsetqueryinteger-See Pagination
pagination.limitqueryinteger100See Pagination
pagination.count_totalquerybooleantrueSee Pagination
pagination.reversequerybooleantrueSee Pagination
is_signerquerybooleanfalseFilter by signer accounts
msgsqueryarray[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

NameInTypeDefaultDescription
heightpathinteger-Block height
pagination.keyquerystring-See Pagination
pagination.offsetqueryinteger-See Pagination
pagination.limitqueryinteger100See Pagination
pagination.count_totalquerybooleantrueSee Pagination
pagination.reversequerybooleantrueSee Pagination
msgsqueryarray[string]-See Filtering

Response

200 OK Schema: see OpenAPI (/swagger/doc.json)

GET /indexer/tx/v1/txs/{tx_hash}

Get transaction by hash.

Parameters

NameInTypeDefaultDescription
tx_hashpathstring-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

NameInTypeDefaultDescription
pagination.keyquerystring-See Pagination
pagination.offsetqueryinteger-See Pagination
pagination.limitqueryinteger100See Pagination
pagination.count_totalquerybooleantrueSee Pagination
pagination.reversequerybooleantrueSee 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

NameInTypeDefaultDescription
accountpathstring-Account address
pagination.keyquerystring-See Pagination
pagination.offsetqueryinteger-See Pagination
pagination.limitqueryinteger100See Pagination
pagination.count_totalquerybooleantrueSee Pagination
pagination.reversequerybooleantrueSee Pagination

Response

200 OK Schema: nft.CollectionsResponse

GET /indexer/nft/v1/collections/by_name/{name}

Get NFT collections by name.

Parameters

NameInTypeDefaultDescription
namepathstring-Collection name
pagination.keyquerystring-See Pagination
pagination.offsetqueryinteger-See Pagination
pagination.limitqueryinteger100See Pagination
pagination.count_totalquerybooleantrueSee Pagination
pagination.reversequerybooleantrueSee Pagination

Response

200 OK Schema: nft.CollectionsResponse

GET /indexer/nft/v1/collections/{collection_addr}

Get NFT collection by address.

Parameters

NameInTypeDefaultDescription
collection_addrpathstring-Collection address

Response

200 OK Schema: nft.CollectionResponse

GET /indexer/nft/v1/tokens/by_account/{account}

Get NFT tokens by account.

Parameters

NameInTypeDefaultDescription
accountpathstring-Account address
collection_addrquerystring-Collection address to filter by (optional)
token_idquerystring-Token ID to filter by (optional)
order_byquerystringtoken_idOrder by field. Available values: token_id, height
pagination.keyquerystring-See Pagination
pagination.offsetqueryinteger-See Pagination
pagination.limitqueryinteger100See Pagination
pagination.count_totalquerybooleantrueSee Pagination
pagination.reversequerybooleantrueSee 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

NameInTypeDefaultDescription
collection_addrpathstring-Collection address
token_idquerystring-Token ID to filter by (optional)
order_byquerystringtoken_idOrder by field. Available values: token_id, height
pagination.keyquerystring-See Pagination
pagination.offsetqueryinteger-See Pagination
pagination.limitqueryinteger100See Pagination
pagination.count_totalquerybooleantrueSee Pagination
pagination.reversequerybooleantrueSee 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

NameInTypeDefaultDescription
collection_addrpathstring-Collection address
token_idpathstring-Token ID
pagination.keyquerystring-See Pagination
pagination.offsetqueryinteger-See Pagination
pagination.limitqueryinteger100See Pagination
pagination.count_totalquerybooleantrueSee Pagination
pagination.reversequerybooleantrueSee 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

NameInTypeDefaultDescription
denompathstring-Token denomination
pagination.keyquerystring-See Pagination
pagination.offsetqueryinteger-See Pagination
pagination.limitqueryinteger100See Pagination
pagination.count_totalquerybooleantrueSee Pagination
pagination.reversequerybooleantrueSee Pagination

Response

200 OK Schema: richlist.TokenHoldersResponse Example response:
{
  "holders": [
    {
      "account": "initia1holderaddress",
      "amount": "1000000"
    }
  ],
  "pagination": {
    "next_key": "AQID",
    "previous_key": "",
    "total": "1"
  }
}