qelt-indexer
v0.1.0Query indexed QELT blockchain data via the Mainnet Indexer REST API — blocks, transactions, address history, token balances, and sync health. Use when asked about specific blocks or tx hashes, wallet transaction history, ERC-20 token balances, or indexer sync status. No API key required. Rate limit:...
Installation
QELT Indexer Skill
The 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)
Safety
- Read-only API — no write operations.
- Never fabricate block numbers, tx hashes, or balances — always fetch live data.
- Check indexer sync before reporting "latest" data:
GET /v1/health/ready→lagfield. - Exponential backoff on HTTP 503 (
{"error": "Rate limit exceeded"}). - Use
limitandoffsetfor all list endpoints — avoid unbounded queries.
Endpoints
Blocks
# 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"
Transactions
# 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.
Addresses
# 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"
Health and Sync Status
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.
Response Shapes
Block
{
"number": 1234567,
"hash": "0x...",
"parentHash": "0x...",
"timestamp": 1705223340,
"miner": "0x...",
"gasUsed": "21000",
"gasLimit": "50000000",
"transactions": [...]
}
Transaction
{
"hash": "0x...",
"blockNumber": 1234567,
"from": "0x...",
"to": "0x...",
"value": "1000000000000000000",
"gasPrice": "0",
"gasUsed": "21000",
"status": 1,
"timestamp": 1705223340
}
Address Balances
{
"native": "1234.56",
"tokens": [
{ "contractAddress": "0x...", "symbol": "USDT", "name": "Tether USD", "balance": "1000.5", "decimals": 6, "type": "ERC20" }
],
"dataSource": "database_optimized"
}
Procedure
Look Up a Transaction
GET /v1/transactions/{hash}- Check
status: 1 = success, 0 = reverted - Report: from, to, value (divide wei by 1e18 for QELT), timestamp, block number
- For logs:
GET /v1/transactions/{hash}/receipt
Get Wallet History
- Check sync:
GET /v1/health/ready— warn iflag > 100 - Fetch:
GET /v1/address/{address}/transactions?limit=20 - Format wei values: divide by 1e18 for QELT amounts
Get Token Balances
- Fetch:
GET /v1/account/{address}/balances - Report native QELT + each ERC-20 with formatted balance
Check Indexer Sync
- Fetch:
GET /v1/health/ready lag = blockchainHeight - indexerHeight- If lag > 1000, recommend using JSON-RPC directly for real-time data
Rate Limits
| 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"}
Common Errors
| 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 |
Testnet
Use https://tnindexer.qelt.ai with identical API paths for Chain ID 771 testnet data.