Skip to main content

Web API: Metrics

Network-level statistics. Three endpoint groups exist: /api/metrics/ for chain totals and the current block time, /api/network-metrics/ for block-cadence health, and /api/circulation/ for the supply and burn figures used by the explorer and by supply trackers. All are GET, take no parameters, and are cached on the server for a few seconds.

Network Metrics

GET /api/metrics/

Response:

{
"latest_block": 7233302,
"active_validators": 96,
"total_transactions": 893028,
"total_burned": 2111.2838081813047,
"circulating_supply": 199997888.71619183,
"lifetime_supply": 199997888.71619183,
"block_time": 12.523809523809524
}

Fields:

  • latest_block: number of blocks indexed by the explorer, which tracks the current chain height
  • active_validators: master nodes currently in the active validator set
  • total_transactions: indexed transactions, excluding block-reward coinbase records
  • total_burned: VFX burned to date: all transaction fees plus the amounts burned by domain registrations, shop registrations, and vault (reserve account) activations
  • circulating_supply, lifetime_supply: 200,000,000 minus total_burned; both are the same figure because the supply is fixed and fully circulated
  • block_time: average seconds between blocks over the last five minutes (0 when fewer than two blocks fall in that window)

The ordering, search, page, and limit parameters shown for this endpoint in Swagger are ignored.

Block Cadence

GET /api/network-metrics/

Response:

{
"block_difference_average": 12.5,
"block_last_received": "2026-09-04T07:41:41Z",
"block_last_delay": 22,
"time_since_last_block": 10,
"blocks_averages": "3456/3456"
}

Fields:

  • block_difference_average: average interval between recent blocks, in seconds
  • block_last_received: when the explorer's node received the last block
  • block_last_delay: delay of the last block, in seconds
  • time_since_last_block: seconds since the last block at the time of the request
  • blocks_averages: a short text summary of block counts reported by the node's network information

Values refresh at most every 10 seconds.

Circulation

GET /api/circulation/

Response:

{
"balance": 199997888.71619183,
"lifetime_supply": 199997888.71619183,
"fees_burned_sum": 2111.2838081813047,
"fees_burned": 2111,
"total_staked": 480000.0,
"active_master_nodes": 96,
"total_master_nodes": 19673,
"total_addresses": 23902,
"total_transactions": 893028,
"cli_version": "5.0.1.xxx-beta"
}

Fields:

  • balance: circulating supply in VFX
  • lifetime_supply: total supply after burns (equal to balance)
  • fees_burned_sum: exact VFX burned; fees_burned: the same figure as an integer
  • total_staked: VFX assured by active validators (5,000 VFX per active validator)
  • active_master_nodes, total_master_nodes: validators active now, and every validator address the explorer has recorded
  • total_addresses: addresses known to the explorer
  • total_transactions: indexed transactions
  • cli_version: a static string in the current service; do not use it to detect the Core release

Values refresh at most every 30 seconds.

Two plain-text variants serve supply trackers:

GET /api/circulation/circulating/
GET /api/circulation/lifetime/

Each returns the bare number, for example 199997888.71619183.

Notes

  • Amounts are VFX as JSON numbers on these endpoints; most other endpoints return amounts as strings.
  • There are no hash-rate, difficulty, fee-percentile, or per-hour breakdown fields: the network uses Proof of Assurance, not mining, and the API does not aggregate fees by time.
  • Per-period metrics (24h, 7d, 30d) are not offered; compute them from the Block and Transaction endpoints.