Download OpenAPI specification:
The Tari indexer implementation
List epoch checkpoints from storage
| from_epoch | integer <int64> >= 0 Epoch to start listing from (inclusive). Defaults to 0 |
| limit | integer <int32> >= 0 Maximum number of checkpoints to return (default: 20, max: 100) |
{- "checkpoints": [
- { }
]
}Get this indexer's own configuration, as far as it affects what its API returns. Every field is local to the node answering the request - two indexers on the same network can disagree on all of them.
{- "current_epoch": 0,
- "index_gossiped_transactions": true,
- "indexes_all_events": true,
- "network": "string",
- "network_byte": 0,
- "sidechain_id": "string",
- "substate_cache_max_serve_lag_secs": 0,
- "transaction_retention_epochs": 0,
- "verify_substate_proofs": true,
- "version": "string"
}Get network-wide TARI economic totals (claimed, burned, fee volume, supply, target rate)
{- "current_epoch": 0,
- "fee_volume": "string",
- "receipt_exhaust_burned": "string",
- "target_burn_rate_bps": 0,
- "total_claimed": "string",
- "total_exhaust_burned": "string",
- "total_supply": "string",
- "transaction_receipt_count": 0
}{- "network_desc": {
- "epoch": 0,
- "num_preshards": "string",
- "shard_groups": [
- [
- { },
- 0
]
]
}, - "sync_progress": { },
- "validators": [
- {
- "epoch": 0,
- "height": 0,
- "observed_at_unix_s": 0,
- "peer_id": "string",
- "shard_group": { },
- "state": "Idle"
}
]
}Get non-fungibles by resource address
| address required | string |
| end_index required | integer <int64> >= 0 |
| start_index required | integer <int64> >= 0 |
{- "address": "string",
- "end_index": 0,
- "start_index": 0
}{- "non_fungibles": [
- {
- "address": "string",
- "substate": { },
- "version": 0
}
]
}Fetches a substate by ID
| substate_id required | string The substate ID to fetch |
| local_search_only required | boolean If true, only search local storage for the substate |
| version | integer <int32> >= 0 Minimum version of the substate to fetch |
{- "substate": { },
- "verified": true,
- "version": 0
}List all template cached by this indexer
| limit | integer <int32> >= 0 Limit the number of results returned |
{- "templates": [
- {
- "address": "string",
- "author_public_key": "string",
- "binary_sha": "string",
- "code_size": 0,
- "epoch": 0,
- "metadata_hash": "string",
- "name": "string"
}
]
}List templates discovered on the network via the template catalogue
| name_filter | string Substring filter on template name |
| limit | integer <int64> >= 0 Maximum entries to return (default: 20, max: 100) |
| after | string Cursor: return entries inserted after the row with this template address. Omit to start from the beginning |
{- "entries": [
- {
- "at_epoch": 0,
- "author_public_key": "string",
- "binary_hash": "string",
- "metadata_hash": "string",
- "template_address": "string",
- "template_name": "string"
}
]
}List recent transactions, newest first.
BEST EFFORT: this lists what this indexer happens to hold — transactions submitted through it, plus those it observed on the network gossip topic while it was running and subscribed. It is not a complete record of network activity and absence from this listing does not mean a transaction does not exist. An indexer misses a transaction if it was offline or still starting up when it was gossiped, if its inbound gossip queue was full, or if the transaction has since aged past its retention window (see transaction_retention_epochs on /info).
Transaction receipts are different: they are synced from network state rather than gossip, are complete from genesis, and are recovered after downtime. A committed transaction whose gossip this indexer missed therefore has a receipt but no entry here — list it from /transaction-receipts instead. Transactions that never committed (mempool-rejected, aborted or expired) never get a receipt, so gossip is the only source for them and coverage is best effort with no fallback.
{- "transactions": [
- {
- "created_at": "2019-08-24T14:15:22Z",
- "rejected_reason": "string",
- "source": "local",
- "summary": { },
- "transaction": { },
- "transaction_id": "string"
}
]
}Get a transaction (including its instructions, fee instructions and signatures) by transaction ID.
BEST EFFORT: this reads the indexer's local transaction store, which holds transactions submitted through this indexer and — when gossip indexing is enabled, see index_gossiped_transactions on /info — those it observed on the network gossip topic. A 404 means this indexer has no body for the transaction, not that the transaction does not exist: it may have been gossiped while the indexer was offline, dropped from a full inbound queue, or pruned once past its retention window.
Two endpoints answer authoritatively where this one cannot. /transactions/{transaction_id}/result queries the transaction's committee, so it resolves the outcome of any transaction regardless of where it was submitted. /transaction-receipts is synced from network state rather than gossip and is complete from genesis, so a committed transaction always has a receipt there even when its body is missing here.
{- "transaction": {
- "created_at": "2019-08-24T14:15:22Z",
- "rejected_reason": "string",
- "source": "local",
- "summary": { },
- "transaction": { },
- "transaction_id": "string"
}
}SSE stream of template-emitted transaction events. Supports catch-up via the after_id query parameter or Last-Event-ID header.
| topic | string Filter by event topic |
| substate_id | string Filter by substate ID |
| template_address | string Filter by template address |
| resource_address | string Filter by resource address (derived from substate_id for std.resource.* events, or from the |
| after_id | integer <int64> Resume from this event ID (exclusive) |
Gets full UTXO data for a list of UTXO IDs
| resource_address required | string |
required | Array of items |
{- "resource_address": "string",
- "tag_and_nonce_pairs": [
- [
- 0,
- "string"
]
]
}{- "utxos": [
- [
- "string",
- { }
]
]
}Streams UTXO updates
| from_epoch | integer <int64> >= 0 |
| per_shard_limit required | integer <int32> >= 0 |
| resource_address required | string |
required | Array of items |
| unspent_only | boolean |
{- "from_epoch": 0,
- "per_shard_limit": 0,
- "resource_address": "string",
- "shard_state_versions": [
- 0,
- 0
], - "unspent_only": true
}{- "error": "string"
}Get the validator roster for an epoch as tracked by the epoch manager
| epoch | integer <int64> >= 0 Epoch to fetch the roster for. Defaults to the current epoch |
{- "epoch": 0,
- "validators": [
- {
- "end_epoch": 0,
- "fee_claim_public_key": "string",
- "peer_id": "string",
- "public_key": "string",
- "shard_group": { },
- "start_epoch": 0,
- "vote_power": 0
}
]
}