Install
openclaw skills install qelt-indexerQuery QELT blockchain data—blocks, transactions, address history, ERC-20 token balances, and indexer sync status—via the Mainnet Indexer REST API.
openclaw skills install qelt-indexerThe QELT Mainnet Indexer is a high-performance REST API providing structured access to blockchain data — blocks, transactions, tokens, NFTs, and smart contracts — synced every 5 seconds.
Base URL (Mainnet): https://mnindexer.qelt.ai
Base URL (Testnet): https://tnindexer.qelt.ai
Auth: None required
Rate Limit: 120 req/min (standard /v1/* tier)
GET /v1/health/ready → lag field.{"error": "Rate limit exceeded"}).limit and offset for all list endpoints — avoid unbounded queries.# Latest block
curl -fsSL "https://mnindexer.qelt.ai/v1/blocks/latest"
# By number
curl -fsSL "https://mnindexer.qelt.ai/v1/blocks/1234567"
# By hash
curl -fsSL "https://mnindexer.qelt.ai/v1/blocks/0xHASH"
# Paginated list
curl -fsSL "https://mnindexer.qelt.ai/v1/blocks?limit=20&offset=0"
# By hash
curl -fsSL "https://mnindexer.qelt.ai/v1/transactions/0xTX_HASH"
# Receipt with logs
curl -fsSL "https://mnindexer.qelt.ai/v1/transactions/0xTX_HASH/receipt"
status: 1 = success · status: 0 = reverted.
# Transaction history (paginated)
curl -fsSL "https://mnindexer.qelt.ai/v1/address/0xADDRESS/transactions?limit=20&offset=0"
# ERC-20 token balances
curl -fsSL "https://mnindexer.qelt.ai/v1/address/0xADDRESS/tokens"
# All balances (native QELT + all tokens)
curl -fsSL "https://mnindexer.qelt.ai/v1/account/0xADDRESS/balances"
curl -fsSL "https://mnindexer.qelt.ai/v1/health/ready"
Response:
{
"indexerHeight": 896360,
"blockchainHeight": 896360,
"lag": 0,
"timestamp": "2026-03-04T06:00:00.000Z"
}
lag: 0 = fully synced · lag > 100 = warn user that data may be stale.
{
"number": 1234567,
"hash": "0x...",
"parentHash": "0x...",
"timestamp": 1705223340,
"miner": "0x...",
"gasUsed": "21000",
"gasLimit": "50000000",
"transactions": [...]
}
{
"hash": "0x...",
"blockNumber": 1234567,
"from": "0x...",
"to": "0x...",
"value": "1000000000000000000",
"gasPrice": "0",
"gasUsed": "21000",
"status": 1,
"timestamp": 1705223340
}
{
"native": "1234.56",
"tokens": [
{ "contractAddress": "0x...", "symbol": "USDT", "name": "Tether USD", "balance": "1000.5", "decimals": 6, "type": "ERC20" }
],
"dataSource": "database_optimized"
}
GET /v1/transactions/{hash}status: 1 = success, 0 = revertedGET /v1/transactions/{hash}/receiptGET /v1/health/ready — warn if lag > 100GET /v1/address/{address}/transactions?limit=20GET /v1/account/{address}/balancesGET /v1/health/readylag = blockchainHeight - indexerHeight| Tier | Endpoints | Limit |
|---|---|---|
| Standard | /v1/* | 120 req/min |
| Health | /health* | 120 req/min |
| Heavy | Complex queries | 60 req/min |
| General | Other | 30 req/min |
Rate limit exceeded → HTTP 503: {"error": "Rate limit exceeded"}
| Error | Cause | Fix |
|---|---|---|
| HTTP 503 | Rate limited | Exponential backoff |
{"error":"Transaction not found"} | Hash wrong or not yet indexed | Wait for indexer sync |
Empty transactions: [] | No activity on address | Expected for new wallets |
lag > 1000 | Indexer behind | Use JSON-RPC for real-time |
Use https://tnindexer.qelt.ai with identical API paths for Chain ID 771 testnet data.