Reading the Animica block explorer
explorer.animica.org
is the project's open-source block explorer (explorer2/ in the monorepo). It indexes
mainnet from its own node and exposes everything it shows through a public REST API. This page
explains what each view means; the longer walkthrough is at
/learn/block-explorer-guide.
The ticker and badge above are your browser polling https://rpc.animica.org/rpc directly.
What the explorer shows
| Path | View | What you see |
|---|---|---|
/ | Home | Head height, Θ (thetaMicro), peer count, mempool size, measured average block time, latest blocks and transactions. |
/block/{n} | Block | Header fields (hash, parent, timestamp, nonce, mixSeed, roots), coinbase reward split, and every transaction the block contains. |
/tx/{hash} | Transaction | Sender, recipient, amount in ANM and nANM, gas limit and price, validity window, status, block, and the confirmation count. |
/address/{anim1…} | Address | Balance, account kind (ML-DSA-65 account or contract), and a paginated history of incoming and outgoing transactions and coinbase credits. |
/richlist | Rich list | Addresses ranked by balance with supply concentration metrics; the foundation treasury address is identifiable here. |
/mempool | Mempool | Transactions admitted by the explorer's node but not yet included in a block. |
/search?q= | Search | Accepts a height, a block hash, a transaction hash or an address. |
How to read a transaction
Open /tx/<hash>. The two fields that matter most are status and
confirmations. A transaction is pending while it sits in the mempool,
included once a block contains it, and its confirmation count is the number of blocks
built on top of that block. Animica has no finality gadget: the finalized flag that tx.getStatus sets
at 12 confirmations is a node-side convention, not a consensus guarantee. Each confirmation makes a reorg less likely and, since block 75,000, the
protocol refuses reorgs deeper than 100 blocks. Six confirmations is a reasonable threshold for
everyday payments; wait longer for large amounts.
Amounts are shown in ANM with nine decimals; the RPC underneath returns integer nANM. A plain
transfer shows a gas limit of 21,000 and a gas price of 1 nANM, giving the 0.000021 ANM fee.
The validAfter and validUntil heights are the v2 transaction's validity
window: Animica transactions carry no nonce, and replay protection comes from the unique
transaction id within that window. A transaction rejected before inclusion never appears on the
explorer at all; check the RPC error code you received instead (for example -32013 for
insufficient funds, -32017 for fee too low).
How to read a block
The block page shows the header that miners hashed: parent hash, timestamp, thetaMicro
(the acceptance threshold Θ at that height), the nonce, mixSeed, and the root fields.
You will notice that stateRoot, txsRoot and receiptsRoot on
recent blocks are all zero. That is expected on mainnet today: the state-commitment rule
activated at 44,444 self-gates on non-zero roots, and the reference miner does not yet seal them,
so header roots are not a guarantee you should rely on. Validity comes from every node executing
every block, not from the roots. The coinbase transaction lists the reward split in force at that
height (50% miner / 25% treasury / 25% inference since 75,000, with the unclaimed inference share
rolling to the treasury).
How to read an address
Every mainnet account address is 66 characters and starts with anim1zqp, because the
bech32m payload begins with the ML-DSA-65 scheme id 0x1003. Contract addresses use
scheme id 0x0000 and therefore look different after the prefix. The address page shows
the current balance and a history that includes coinbase credits for miners, so a miner's payout
address accumulates entries with no sender. The rich list is a useful sanity check: the foundation
treasury that receives its share of each block subsidy is visible there, and the explorer's
/api/circulating-supply endpoint is the source of the supply figure quoted on this site
(about 110.8 million ANM as of 2026-08-23).
Head statistics
The home page reports the explorer node's own view: its peer count (inbound and outbound), the mempool size, a transactions-per-second estimate and an average block time computed over the recent window (about 69 s on 2026-08-23 against the 60 s target). The Θ history chart shows the retarget reacting to hashrate changes. Because these are one node's statistics, they can differ slightly from your own node's numbers; the head height and hash should agree.
The REST API
Everything the UI renders is available as JSON. The API is read-only, needs no key, and is rate-limited like the other public endpoints. If you are building something that polls continuously, run your own node and the explorer software against it.
| Route | Returns |
|---|---|
GET /api/head | Head, canonical height, peer and mempool stats, recent Θ history |
GET /api/blocks?limit=&cursor= | Paginated block list |
GET /api/block/:hashOrHeight | Block detail |
GET /api/tx/:hash | Transaction detail with confirmations |
GET /api/address/:addr | Balance and history |
GET /api/mempool | Pending transactions |
GET /api/richlist, /api/richlist/summary | Rich list and supply metrics |
GET /api/circulating-supply | Circulating supply in ANM (plain number) |
GET /api/search?q= | Unified search |
GET /api/l2/status, /api/l2/batch/:n, /api/l2/tx/:hash | ANM-native L2 rollup views |
GET /api/aicf/summary, /api/aicf/workers | AICF registry and worker views |
GET /api/mining/info | Miner-facing template availability and sync phase |
# Same data through the explorer's REST API (GET, no key)
curl -s https://explorer.animica.org/api/head | jq '.head.height, .stats.avgBlockTime'
curl -s https://explorer.animica.org/api/tx/0x<txhash> | jq .
curl -s https://explorer.animica.org/api/address/anim1zqp... | jq .
curl -s https://explorer.animica.org/api/circulating-supply
The explorer is a convenience layer over the same JSON-RPC anyone can call. The head it shows is
exactly what chain.getHead returns:
curl -s -X POST https://rpc.animica.org/rpc \
-H 'content-type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"chain.getHead","params":[]}' | jq .
Running your own explorer
explorer2/ is a Node.js 18+ application with an API server and a web UI. It connects
to http://127.0.0.1:8545/rpc by default, so it works out of the box next to a
local node, and it can alternatively read a local ~/.animica
database. Running your own copy is the only way to be independent of the hosted instance when
verifying balances or payments.
Sources
explorer2/README.md · explorer2/api/src/server.ts (routes) · docs/TX_WORKFLOW.md · consensus/finality.py · core/network_params.py · live explorer.animica.org/api/head on 2026-08-23