Reference Testnet: yes Mainnet: Not available Software: Core bad4a06ea · protocol pqwerai-v8-testnet/1 Updated 2026-11-08
Explorer REST reference
Served by explorer/pqwexplorer/web.py from the indexed, reorganisation-safe database. Every endpoint is
GET, unauthenticated and read-only. This schema is the contract tested by
scripts/devhub/explorer_contract_test.py; an endpoint absent from it does not exist.
Canonical chain identity. GET /status returns chain_id and genesis; clients must pin both.
Freshness. Data comes from the indexed tip (indexed_tip). lag_blocks = node_head - indexed_tip.
Account balances (/address/{address}) are read live from the node at latest; everything else is indexed.
Reorganisations. The indexer replaces non-finalized blocks when a heavier branch wins (records in
reorgs_handled). A reorganisation below the recorded finalized checkpoint is never applied: the indexer
records a finality_violation alarm (/status.alarms) and stops. Treat data above finalized_height as
reversible.
Pagination and size limits. API v1 has no cursor or page parameters. List endpoints return a fixed
newest-first window: blocks 25, issuance 50, checkpoints 100, ai/events 500, address transactions and token
transfers 50 each, mining statistics over the last 64 blocks. Query strings are ignored.
Amounts. All wei/gwei amounts that can exceed 2^53 are decimal strings.
Errors. 400 with {"error": "<message>"} for malformed path values, 404 with {"error": "not found"}
for unknown resources and routes.
Base URL: http://127.0.0.1:8089/api/v1 (local explorer). A public explorer endpoint is not yet authorized.
Download OpenAPI 3.1 Postman collection
Endpoint
Summary
GET /status
Chain identity, indexer freshness, finality and alarms
GET /blocks
Latest 25 indexed blocks (newest first)
GET /block/{key}
One block by decimal number, 0x-hex number or 32-byte hash
GET /tx/{hash}
One transaction with receipt status and decoded token transfers
GET /address/{address}
Live balance, mined blocks, latest 50 transactions and 50 token transfers
GET /supply
Exact issuance counters at the indexed tip (79.2% PoW / 19.8% PoS / 1% founder)
GET /issuance
Per-block issuance for the latest 50 blocks
GET /mining
GhostRider mining statistics over the latest 64 blocks
GET /validators
Latest Smartnode validator snapshot (as returned by g4_validators)
GET /checkpoints
Latest 100 observed finalized/justified checkpoints
GET /tokens
Detected ERC-20 / ERC-721 contracts
GET /ai/events
Latest 500 AI-market contract events decoded by signature
GET /status
Chain identity, indexer freshness, finality and alarms.
curl -s http://127.0.0.1:8089/api/v1/status
Response fields
Field
Type
Notes
chain_id *
integer | null
genesis *
string | null
indexed_tip *
integer
node_head *
integer | null
lag_blocks *
integer | null
client *
string | null
finalized_height *
integer | null
finalized_hash *
string | null
justified_height *
integer | null
reorgs_handled *
integer
alarms *
array
GET /blocks
Latest 25 indexed blocks (newest first).
Status
Body
200
array of BlockSummary (max 25)
curl -s http://127.0.0.1:8089/api/v1/blocks
Response fields
Field
Type
Notes
number *
integer
hash *
string
miner *
string
ts *
integer
Unix seconds
difficulty *
string
tx_count *
integer
gas_used *
integer
GET /block/{key}
One block by decimal number, 0x-hex number or 32-byte hash.
Path parameter key — pattern ^([0-9]+|0x[0-9a-fA-F]+)$
Status
Body
200
Block
400
Error —
404
Error —
curl -s http://127.0.0.1:8089/api/v1/block/<key>
Response fields
Field
Type
Notes
number *
integer
hash *
string
parent *
string
miner *
string
ts *
integer
difficulty *
string
gas_used *
integer
gas_limit *
integer
base_fee *
string
tx_count *
integer
state_root *
string
minted *
string
Lifetime minted wei at this block
pow *
string
pos *
string
founder *
string
fee_burn *
string
txs *
array
issued_in_block_wei
string
Absent for block 0
founder_in_block_wei
string
Absent for block 0
GET /tx/{hash}
One transaction with receipt status and decoded token transfers.
Path parameter hash — pattern ^0x[0-9a-fA-F]{64}$
Status
Body
200
Transaction
400
Error —
404
Error —
curl -s http://127.0.0.1:8089/api/v1/tx/<hash>
Response fields
Field
Type
Notes
hash *
string
block *
integer
idx *
integer
from *
string
to *
string | null
contract *
string | null
Created contract address
value *
string
gas_used *
integer
gas_price *
string
status *
integer
input_bytes *
integer
logs *
integer
token_transfers *
array
GET /address/{address}
Live balance, mined blocks, latest 50 transactions and 50 token transfers.
Path parameter address — pattern ^0x[0-9a-fA-F]{40}$
Status
Body
200
Address
400
Error —
curl -s http://127.0.0.1:8089/api/v1/address/<address>
Response fields
Field
Type
Notes
address *
string
balance_wei *
string | null
Live balance at latest; null if the node is unreachable
blocks_mined *
integer
is_founder *
boolean
txs *
array
token_transfers *
array
GET /supply
Exact issuance counters at the indexed tip (79.2% PoW / 19.8% PoS / 1% founder).
curl -s http://127.0.0.1:8089/api/v1/supply
Response fields
Field
Type
Notes
at_block
integer
minted_wei
string
genesis_supply_wei
string
issued_since_genesis_wei
string
pow_issued_wei
string
pos_issued_wei
string
founder_issued_wei
string
fee_burn_wei
string
circulating_wei
string
founder_address
string | null
GET /issuance
Per-block issuance for the latest 50 blocks.
Status
Body
200
array of IssuanceRow (max 50)
curl -s http://127.0.0.1:8089/api/v1/issuance
Response fields
Field
Type
Notes
block *
integer
issued_wei *
string
pow_wei *
string
pos_wei *
string
founder_wei *
string
GET /mining
GhostRider mining statistics over the latest 64 blocks.
curl -s http://127.0.0.1:8089/api/v1/mining
Response fields
Field
Type
Notes
window_blocks
integer
mean_interval_s
number
hashrate_estimate
number
difficulty / mean interval; an estimate
miners
object
GET /validators
Latest Smartnode validator snapshot (as returned by g4_validators).
Status
Body
200
array of Validator
curl -s http://127.0.0.1:8089/api/v1/validators
Response fields
Field
Type
Notes
id *
string
owner *
string
key *
string
pending_key
boolean
stake_gwei *
integer
delegated_gwei
integer
activation_epoch
integer
status *
string
GET /checkpoints
Latest 100 observed finalized/justified checkpoints.
Status
Body
200
array of Checkpoint (max 100)
curl -s http://127.0.0.1:8089/api/v1/checkpoints
Response fields
Field
Type
Notes
observed_head *
integer
finalized_height *
integer
finalized_hash *
string
justified_height *
integer
justified_hash *
string
GET /tokens
Detected ERC-20 / ERC-721 contracts.
Status
Body
200
array of Token
curl -s http://127.0.0.1:8089/api/v1/tokens
Response fields
Field
Type
Notes
address *
string
kind *
string
first_block *
integer
GET /ai/events
Latest 500 AI-market contract events decoded by signature.
Status
Body
200
array of AiEvent (max 500)
curl -s http://127.0.0.1:8089/api/v1/ai/events
Response fields
Field
Type
Notes
block *
integer
event *
string
contract *
string
tx *
string
topics *
string
JSON-encoded topic list as stored
data *
string