The data behind the site
Where the numbers come from, how fresh they are, and what is deliberately missing.
Where does the data on this site come from?
Blocks, transactions, stake distribution and protocol parameters come from the indexers this deployment reads, and the hourly rollups and window averages are computed here and kept in the site's own database. Every metric panel names the file and the function that derives its figure, so a reader can check the provenance instead of trusting it. The same rule decides what is missing: a quantity that needs a measurement no indexer publishes (a mempool queue length, block propagation latency, the Plutus era a script was compiled for) is left out rather than estimated.
Definitions: where the data comes from.
How current are the figures on the pages?
The dashboard follows the chain through a live block stream and falls back to polling when it drops, so the latest block, the fee total and the epoch countdown move within seconds. Window figures (the live hour, the last day) are recalculated as new blocks arrive. The stored aggregates behind the longer charts are refreshed every half hour, the long daily ranges once an hour, and the protocol parameters once a day, which is often enough because governance can only change them at an epoch boundary. Each tile names the window it describes, so a figure that is a day old never reads as a figure that is a second old.
Why do some hours have no bar in the five-day charts?
Because the site draws what was recorded and nothing else. An hour is written into the rollup only when the indexer returned that hour's blocks, so a gap in a chart is a gap in the data, not a quiet chain. Two things cause it: an interruption in ingestion, which the sync repairs on a later pass, or the retention window at the far end of a long range, where old rows have been deleted. A zero-height bar would be a claim about the chain; an empty slot is a statement about the record.
Term: hourly rollups, gaps and retention.
What does it mean when a caption says a figure is sampled?
That the number describes the blocks the indexer returned for a window rather than the whole chain. That set of blocks is the same one the charts on the page draw, and the page prints how many rows went into the figure next to it. It matters most for distributions: a transaction-size mix measured from a sample places a median and a 95th percentile well, while the maximum in the sample is a floor rather than the largest transaction the chain has ever carried. Read a sampled figure as a description of its window.
Term: sampled windows.
Can I read the numbers without the dashboard?
Yes. Every figure the pages draw comes from a JSON endpoint that answers without a key, among them /api/block/latest, /api/metrics?range=1h, /api/metrics/summary, /api/pools, /api/decentralization, /api/epoch/parameters and /api/network/stats, plus /api/stream/blocks for the block stream the dashboard follows. They are the same endpoints the pages use, so nothing on screen is a private calculation. Please be gentle with them: they are cached and rate-limited, and heavy polling will get an empty answer rather than a faster one.
Consensus and decentralization
The Nakamoto count and the two ways it is computed, liveness, and the measurement this site cannot make.
What is the Nakamoto Coefficient in Cardano and how is it calculated?
The Nakamoto Coefficient, or Minimum Attack Vector, is the number of independent entities that together hold more than half of the active stake. In Ouroboros that majority is what a chain reorganization needs, so the count answers how many operators would have to collude. This site computes it from the current stake distribution and shows both aggregation levels: the entity-level count merges pools that share an operator, and the pool-level count treats every registered pool separately. The same snapshot therefore yields two different numbers, because clustering changes the count rather than the stake.
Live and explained on Consensus.
Why do some cross-chain trackers show a lower Nakamoto coefficient?
Because they measure a different threshold. Cross-chain comparison sites typically publish the share that stalls a BFT chain, a third of the stake, while Cardano's Ouroboros needs a majority above half to reorganize the chain. Far fewer entities reach a third than reach a half, so the lower number is not a disagreement about the stake distribution, it is a different question being answered. This site publishes the majority count and names the threshold next to it, and the comparison table on the Consensus page shows both rows side by side.
How does Cardano Observer group pools to calculate the entity-level MAV?
Pools are clustered before anything is counted, using three signals: a declared pool group in the registration metadata, a shared owner stake key, and an identical reward address. Any one of them merges the pools into one entity, because any one of them means the same operator decides how they vote and where the rewards go. The clustering is published, so the effect can be inspected: the table on the Consensus page lists every cluster it formed and the signal that formed it. What it cannot see is an operator who keeps all three fields separate.
Term: multi-pool operator clustering.
Does the count include every registered pool, or only the ones producing blocks?
It includes every pool holding active stake in the snapshot, because a pool with no stake delegated to it can never help anyone reach a threshold and would only pad the list. The site counts registered pools as the aggregator reports them for the pool statistics, and the coefficient is computed from the stake distribution itself, so the two figures answer different questions and both are labelled. A pool that is registered and has no delegation is therefore visible in the pool counts and absent from the coefficient.
What is chain liveness, and why is it not always 100 percent?
Liveness is the share of slots in a window that produced a block. It is below 100 percent by design: the slot lottery leaves slots empty, and a pool that misses its turn, loses its network connection or misses a key rotation produces no block in the slot it won. The protocol's own target spacing between blocks accounts for that, which is why the page compares the measured spacing against the target rather than against zero. Liveness falls visibly when a large operator goes offline, which is the event the figure is there to make visible.
Measured on Cadence.
Does Cardano Observer measure block propagation delay?
No, and it says so instead of drawing a flat line. Propagation delay is the time between a block being minted and a node receiving and adopting it, and measuring it requires a node that timestamps arrivals. The data sources this deployment reads publish the block's mint time and nothing about when peers saw it, so the figure is not available here. What the site does measure is the chain's own timing: the spacing between blocks and liveness, both derived from timestamps the indexers do return.
Term: chain liveness and block spacing.
Staking and rewards
Active and live stake, pledge, saturation, pool cost, deposits, and what a delegator actually earns.
What is the difference between Active Stake and Live Stake?
Active stake is the snapshot taken two epochs ago, and it is what decides how many slots a pool wins in the current epoch. Live stake is what delegators hold right now, including delegations that arrived after that snapshot. A pool can therefore be producing blocks with considerably less stake than it appears to control, or the other way round. When a figure here uses one of the two, its label says which, and the pool table prints both columns so the gap is visible rather than averaged away.
What happens if a stake pool operator fails to meet their declared pledge?
The ledger computes the pool's rewards with the lower of the declared pledge and the pledge actually present in the pool. An operator who withdraws part of it therefore earns as if the pool had pledged less, and the same reduction applies to every delegator in that pool, who did nothing wrong. The gap is not hidden: the pledge tiles print the declared amount next to the live one, so a delegator can see it before it changes what the pool pays out. Pledging more is a promise the ledger enforces at reward time rather than at registration.
How is the stake pool saturation limit calculated?
The limit is the circulating supply divided by the protocol's target number of pools k, and the site reads k from the live parameters rather than quoting it (currently the live target). Stake delegated beyond that ceiling earns no additional rewards, which is what stops one pool from absorbing the network: the ceiling makes a large pool dilute its own delegators' return, and that pushes new delegation to smaller pools. Both inputs move, and a governance action can change either, so the figure is recomputed rather than stored.
What is the minimum pool cost, and why does the site not quote a figure?
It is the fixed fee a pool takes from an epoch's reward pot before it splits the rest with its delegators, and it exists so that running a small pool can cover its costs. It is a protocol parameter, not a constant: governance has already changed it once and there are proposals to change it again. Quoting a figure in prose would go stale the moment a governance action passes, so the site prints what the ledger currently holds (the live value) and links to the parameter it comes from. Above it, each pool adds its own margin.
How is the return a delegator earns decided?
An epoch's rewards are shared out by stake after each pool takes its fixed cost and then its margin: a pool that charges less and mints more than its share pays more, and a pool sitting above its saturation limit dilutes what it pays. The return a delegator sees is those distributed rewards divided by the stake that earned them, annualized, and it is a measurement of the recent past rather than a rate the protocol promises. That is why the site prints it per pool over several epochs: a single lucky epoch can look like a great rate and is not one.
What do the deposits cost, and do I get them back?
Registering a stake key costs the live key deposit, registering a pool costs the live pool deposit, and governance adds one for registering as a DRep and one for submitting a governance action. All of them are held by the ledger while the registration exists and returned when it is undone, so they are barriers rather than spending: a spammer pays every time, an honest operator pays once. The transaction fees for registering and retiring are spent and do not come back. Every amount is a protocol parameter, which is why the site reads them live.
Block space and fees
How a fee is built, how full blocks are, queue ordering, and why there is no mempool figure.
How is the fee of a transaction calculated?
From the size of the transaction and two parameters: a rate per byte (the live rate) plus a fixed amount per transaction (the live amount). A wallet computes the sum before signing, so the cost is known in advance and does not depend on how busy the chain is. Scripts add an execution fee on top, charged at the protocol's own prices per CPU step (the live step price) and per memory unit (the live memory price). The worked example on the Block Space page runs the formula with the values the ledger holds right now.
How full are Cardano's blocks?
Far below their limit, and the distribution says more than the average does. The site groups sampled blocks into bands under a fifth, a fifth to a half, half to all of the body limit and counts each one, so a chain whose blocks average a few percent shows both its quiet hours and the busy block that briefly filled up. The body limit itself is read from the live parameters (
the live limit) rather than printed from the markup, because governance can raise it.
Bands: Block Space.
How does Cardano's FIFO mempool prevent MEV and front-running?
A node orders the transactions it has validated first in, first out. There is no fee auction, so a transaction cannot pay more to jump ahead of one that arrived earlier, and that removes the mechanism behind front-running: seeing a profitable pending transaction and paying to be included before it does not buy anything here. It also means the fee a transaction pays is its cost rather than a bid, so a spike in fees on this site reflects transactions doing more work, not a bidding war. The queue is local to each node and is not part of the ledger.
Why is there no mempool size on this site?
Because nothing it reads reports one. The mempool is a queue inside each node's memory and is not part of the ledger, so the indexers this deployment uses never see it. An earlier version of the page drew a mempool series anyway, which could only ever be a flat line, and that line was removed rather than dressed up. What the site measures instead is what the chain itself records: how much of each block the transactions filled, how full the blocks are over time, and how many transactions they carried.
Smart contracts
Execution budgets, reference data, the price of storing a script, and what a failure costs.
What are Plutus execution units, and what are their limits?
Execution units, or ExUnits, are the budget a script may consume, counted in CPU steps and memory units. The ledger bounds them twice: a per-transaction cap on what one transaction may declare (
the live step cap and
the live memory cap) and a per-block budget that all scripts in a block share (
the live step budget and
the live memory budget). Both are protocol parameters that governance can raise, and a wallet checks the declared budget before submitting rather than discovering the limit on chain.
Live ceilings: Plutus.
What are reference inputs and reference scripts used for?
Both let a transaction reach data without moving it. A reference input lets a script read an unspent output without spending it, so several transactions can read the same state inside one block instead of queuing behind each other, which is what removes the contention that used to serialize contract calls. A reference script stores a script on chain once, and later transactions point at it by hash, so they do not carry its bytes and do not pay for them. The first changes throughput, the second changes cost, and the Plutus page measures how often the chain uses each.
Why is putting a script on chain more expensive than usual?
Because the ledger charges a separate rate per byte for reference script bytes on top of the normal fee (the live rate). The charge exists so that storing executable code stays priced against the chain it occupies. It turns a size question into a trade: carry a large script inside every transaction that calls it, or pay once to store it and let later transactions point at it, with the saving growing per call. The Plutus page prints the largest contract size it saw next to the ledger's maximum transaction size, because the two bound each other.
What happens when a smart contract fails?
The transaction is still included and still costs the submitter, and the collateral it named is taken instead of the fee alone (
the live share of the fee). That is deliberate: the network spent the work of running the script, so the case is priced rather than discarded. Since CIP-40 the transaction also names an output that receives whatever the collateral input held beyond that required share, so a large collateral input is not consumed whole. Everything that ran before the failure is rolled back, and a transaction whose scripts return true leaves the collateral untouched.
Term: collateral and collateral return.
Why does the Plutus page not split its figures by script era?
Because no data source in this deployment reports which era a script was compiled for. The eras are real, and the glossary describes what each one added, but a figure split by V1, V2 and V3 would be a guess dressed as a measurement. The page therefore reports script traffic and execution load as a whole and names that limitation where a reader would look for the split. The same reasoning removed an era label from the feed: the data behind it was inferred, not reported.
Governance
Who decides a protocol change, what it costs to take part, and how rewards are minted.
How does Cardano's on-chain governance work?
Governance actions are decided by three bodies with different roles. DReps vote with the stake delegated to them, stake pool operators vote with their pools, and a constitutional committee checks each action against the constitution before it can take effect. Thresholds differ per action type and per body, and some actions expire if they are not ratified within their lifetime. Participating costs a refundable deposit: one to register as a DRep (
the live amount) and one to submit an action (
the live amount). A DRep that stops voting for
the live activity window loses the voting power delegated to it.
Term: on-chain governance.
How does monetary expansion decide staking rewards?
Each epoch the ledger mints new ada out of the reserves and adds that epoch's transaction fees to the pot. The reserve depletion rate (
the live rate) sets how much is minted, the treasury cut (
the live share) takes its share for the treasury first, and the remainder is distributed to pools and their delegators by stake. Because the pot depends on the reserves, which shrink over time, the minted amount declines gradually. Both rates are protocol parameters, so a governance action can change them, and the site reads them live rather than quoting them.
Term: monetary expansion.
Using this site
What the explanation panels contain, and where to look a term up.
What do the metric explanations on this site show?
Every metric can be clicked for an explanation, and the panel that opens has a fixed shape: the explanation first in plain words, the primary sources under it so they can be checked, and the technical half collapsed at the bottom with how this deployment derives the figure, the formula where one exists, and the file and function it comes from. Turning on the Explain toggle adds a one-line summary on hover. Nothing technical appears until it is asked for, and a name that does not resolve fails the test suite, because provenance a reader cannot open is not provenance.
Where can I find the definition of a technical term?
The
glossary defines the terms this site uses, grouped by the part of the network they describe, and every term that corresponds to a live figure links to the page that shows it. Terms are also deep-linkable, so a panel or a question here can point at the exact definition rather than at the list: a link ending in a term name scrolls straight to it. If a term on a page has no entry, that is a gap worth reporting, not a term defined somewhere else.