01What this page is#
Every number on the Network page is explained here once, including what it cannot tell you.
Every finalizer is measured by the same published rules, including the one run by whoever hosts the page. Claims about the protocol are checked against the node's source code (§17).
02The words#
- Finalizer
- A node that votes for blocks to make them final.
- Bond
- cTAZ you lock to a finalizer, from your own wallet. Still yours; you can unbond. Bonds go in during the bonding window (§11).
- cTAZ
- The coin of this test network. Not money.
- Finality
- A block is final when two thirds of bonded stake has voted for it. It cannot be undone after that.
- The 1⁄3 line
- Whoever holds more than a third of bonded stake, alone or together, can stop finality (§03).
- How many it takes
- The fewest finalizers whose bonds together pass a third. The technical name is the Nakamoto coefficient. Higher is safer.
- The last 10,000 blocks
- The grading window: the last 10,000 final blocks, the same for every finalizer. A row's strip shows the last 10; its detail shows the last 60.
- Votes for blocks
- The one thing that is graded, as seen by this node (§05).
- The bar
- A score of 80, grade B−. Green meets it, gold is below it (§06).
- Now
- What this node hears from a finalizer at this minute: voting, missing (no vote for a few blocks), offline (nothing heard for ten minutes or more) or no votes (§09). A fact about the last minutes, not a grade.
- Outage
- A registered offline stretch: when it began, when it ended, and the final blocks the network made meanwhile (§09).
- Voting now
- The suggestion's gate: a vote in the last 15 minutes, in 8 of the last 10 blocks, and voting at this minute (§13).
- This node
- The one independent node this site reads. Everything here is its view (§16).
03Finality and the 1⁄3 line#
A block is final when two thirds of all bonded stake votes for it. So anyone holding more than a third can stop finality. Not slow it. Stop it.
It does not matter whether that third is one finalizer or twenty acting together. The number on the Network page, how many it takes, is the size of the smallest group that could do it. At 1, one finalizer's outage stops finality for everyone. On this network the line is 33.34% of bonded stake.
The same line from the other side. Nobody has to withhold on purpose. When the finalizers that are offline hold more than a third together, fewer than two thirds are voting and no block can become final until enough of them return. That is what stopped finality for seventeen hours on 2 September 2026. The bar under Finality on the Network page is that condition, live: the bonded stake this node hears voting now, against the two-thirds mark; the chip reads under 2⁄3 voting while it is short, and the trend panel keeps the record of how low it went.
A stall is no final block for a long time (several times the normal interval). During a stall no votes for blocks are recorded, so nothing counts against anyone and grades drift up; the now states keep moving, because the finalizers that are up keep voting round after round. Read stalls beside grades, never instead of them. Every stall seen so far has cleared on its own.
04The checks#
Six checks run on every load. The Network page shows only the ones that need a look; the rest fold away under "Everything else looks normal".
- Margin over two thirds
- How much stake beyond two thirds voted for the last block. Under 5 points is tight; under 0 means finality is behind. A margin trending toward zero is the only early warning there is.
- Tries per block
- How many rounds a block needed before two thirds was reached. More than one is normal here, because a round times out with nothing to do once finality has caught up. This line informs and never raises an alarm.
- Time between final blocks
- The typical gap, and the longest in the range. A gap close to the stall threshold is flagged as a near miss.
- Stalls
- No final block for the stall threshold (shown on the check). Counted only while this node was watching, so a gap in watching is never counted as a stall.
- Spread of bonds
- What the largest finalizers hold together, against the 1⁄3 line,
with the cTAZ that would change it. Bonding elsewhere grows the total, so the amount is
total × (held − 1⁄3) / 1⁄3. - This node watching
- How much of the range this node was actually recording. Anything under 99% is said, so a data gap is never mistaken for a network fault.
05The grade: votes for blocks#
The grade answers one question: when the network made blocks final, was this finalizer part of it? One measurement answers it, as seen by this node.
Every final block carries a set of finalizer signatures. A finalizer's vote for a block is its signature in that set. The set is what this node received for the block: always enough to make the block final, but not the same set on every node. Two synced nodes held 11 and 16 signatures for one block; over 600 blocks, a third of the finalizers differed by 5 to 21 points between them, and the gap followed which finalizers each node was directly connected to. So the grade is the best record this node has, and a finalizer's own node will always see its votes most completely. The grade is the share of the last 10,000 final blocks a finalizer voted for, counted from the block it joined.
Votes this node merely saw pass by are not graded. They depend on what reached one node during a one-to-two-second window, so a grade built on them would move with our connection, not with the finalizer. The grade says nothing about custody, commission or infrastructure.
06The formula and the colours#
The vote rate, pulled toward the network average until there is enough evidence to trust it on its own.
rate = (voted + α·μ) / (blocks + α) score = 100 · rate
- voted: blocks this finalizer voted for
- blocks: final blocks observed in the window since this finalizer joined (up to 10,000)
- μ: the average rate across finalizers that voted at least once
- α: how much evidence it takes to move off the average: 6 blocks
A finalizer seen in five of five blocks has not proved it is perfect, so its score sits near the average until evidence accumulates. Grades: A+ ≥ 97 · A ≥ 93 · A− ≥ 90 · B+ ≥ 87 · B ≥ 83 · B− ≥ 80 · C+ ≥ 75 · C ≥ 70 · D ≥ 60 · F below.
The colours. Green is B− or better: the bar, and the only grades the suggestion picks from. Gold is below the bar: look closer, not avoid, which is why it is never red. A dash on a dashed edge is no votes, so no grade (§08). Click any grade on the Network page for its score and its sample.
07Sample sizes#
A grade without its sample size is an opinion. Every grade here comes with its sample.
Fewer than 5 observed blocks: no grade yet. Fewer than 30: the grade is provisional. Early scores sit below where they settle, so a provisional C is a statement about the sample, not the operator. The table header says how many blocks the window holds so far. The strip beside each rate shows only the last 10 blocks, as a recency check.
08No votes#
A finalizer that voted for none of the observed blocks gets no grade. Not an F. No votes is not evidence of failure.
An F is a verdict about an operator, and this data cannot support one. A finalizer can be absent because it is offline, because its key was registered in a form the voting path never matches (a real problem on this network that hits blameless operators), or because this node does not receive its messages. The three look identical from one node, and only the first is the operator's fault. Such finalizers are left out of the network average, so they cannot pull down the grades of operators we can see.
For a delegator: this page cannot confirm that stake bonded there takes part in finality, and long silence carries real risk (§10). Ask the operator. Do not assume either way.
09Now: voting, missing, offline#
The grade is the record over thousands of blocks. Now is what this node hears from a finalizer at this minute. They are two different things and they are shown apart.
This node hears from a finalizer in three ways: its signature in a final block, a yes-vote passing by in the vote window, and any vote at all, including the nil votes a finalizer casts when a round times out. The last one matters most in a stall, when no block is made final and nobody votes yes for hours, yet the finalizers that are up keep voting round after round and the ones that are down go silent. The moment of the newest of the three is the last time this node heard from it.
- Voting: heard from within the last few blocks.
- Missing: no vote for the last 3 final blocks or more, or nothing heard for 3 minutes while others were heard. Healthy finalizers miss one block now and then from one node's view; three in a row is not that.
- Offline: nothing heard for 10 minutes or more while others were heard. Every offline stretch is registered on the finalizer's page as an outage: when it began, when it ended, and how many final blocks the network made meanwhile.
- No votes: nothing heard from the key in two days. No grade either (§08).
Silence is measured against the newest vote this node heard from anyone, not against the clock, so a quiet minute for the whole network flags nobody, and a gap in which this node heard from nobody at all is a stall or our own blindness, never a finalizer's outage. While this node is restarting, every state reads as a dash. The pulse's voting now figure is the bonded stake of the finalizers in the voting state: when it drops under two thirds, no block can become final (§03), and that is the headline while it lasts.
Like the grade, this is one node's hearing. A finalizer this node is not well connected to can read as missing here and as voting on another node. It is a fact about the last few minutes as seen from here, and it is not advice.
10Removal (slashing)#
Removal is declared, not automatic. When it happens, delegators' bonds burn with the finalizer. It has happened once.
There is no protocol rule that penalises a missed vote. Instead, a network upgrade (a hardfork) can name finalizers to remove. At that block the identity is removed and every bond to it is burned, the operator's and the delegators' alike. The protocol's word is terminated; people say slashed. Verified in the node source (§17). It has happened once, at block 225,000.
The point for a delegator: persistent silence is what gets a finalizer removed, and removal takes its delegators down with it. Bonding to a finalizer with no votes is not just lost influence. It is risk. Removed finalizers are marked on their pages and are absent from the table.
11Bonds and the window#
A bond is your stake, locked to a finalizer you choose. It stays yours, it earns on its own, and you can unbond it, with the one exception in §10.
Bonds go in during the first part of every cycle. The Network page shows the live window and its countdown. A bond sent while the window is closed waits for the next opening. Rewards are added to the bond itself; there is nothing to claim. Your rewards follow your stake, not your finalizer's size: two finalizers pay the same on the same stake, whether they rank first or thirtieth.
To bond:
- In the official Crosslink wallet, create a new delegation bond.
- Paste the finalizer's key exactly as shown on its page here.
- Pick the amount. Round amounts (10, 100, 1,000) are common.
- The wallet returns a bond key that exists nowhere else. Save it at once. It is how you later prove and withdraw the bond.
- Confirm the bond registered before you call it done. Feature-net wallets are still rough.
There is no commission on this network. The protocol splits each block's reward across all bonds in proportion and adds it in place. No operator cut exists in the reward path. Verified in the node source (§17).
12Rewards#
The rate shown is measured from the chain, not promised. It falls over time by design.
Crosslink pays a fixed reward per block, split across all bonded stake and added to the bonds. Because every bond grows by the same share, the median growth across finalizers isolates the protocol reward from new deposits. The yearly figure is what the last 24 hours paid, scaled to a year. The reward per block is fixed while total stake grows, so the rate falls as more is bonded. When big bond moves distort the reading, the Network page hides the number rather than print nonsense.
There is deliberately no "percent of supply staked" figure. Bonding burns value out of the pools it would be measured against, so no honest total exists. The number is left out rather than invented.
13How to choose a finalizer#
Pick a finalizer that meets the bar and sits outside the largest. It pays you exactly the same, and it makes the network harder to stop.
The suggestion on the Network page picks at random from finalizers that are B− or better, not provisional, outside the largest, and voting now: a vote in the last 15 minutes, in 8 of the last 10 blocks, and heard from at this minute (§09). Nobody pays for placement. If nobody qualifies, the slot stays empty rather than guess.
- Start outside the 1⁄3 line. Everyone above it can stop finality together.
- Check the vote rate, then its sample. A high rate over thousands of blocks is strong evidence. The same rate over thirty is provisional (§07).
- Treat "no votes" as a question. It may be our blind spot, but removal risk is real (§10). Ask the operator before bonding there.
- Ignore rank for rewards. Rewards follow your stake (§11). Size buys a finalizer influence, not you yield.
- Mind the window. Bond while it is open, or the bond waits for the next cycle (§11).
- Come back now and then. Grades move with evidence and the largest group changes. Your bond can move too.
14Privacy#
The chain shows a wallet its own bonds and nobody else's. This page keeps it that way.
Publishing the bonds of the node that hosts this page would expose one delegator while every other stayed private. Only per-finalizer totals, which the chain already makes public, are shown. Activity figures are read from public blocks and store no transaction ids and no bond keys, so nothing here can be linked back to a wallet.
15Names#
A finalizer is a key. A name is claimed by signing with that key. It proves ownership and buys nothing.
Names, websites and links come from a public registry: one JSON file in an open repository that any finalizer can add itself to with a pull request, carrying a message signed with the finalizer key so the claim can be checked by anyone. This page fetches that file every few minutes; the instance can also carry a local file of its own. Every key, named or not, gets an icon derived from its bytes so rows stay telling apart. Claim a name in the registry →
16Limitations#
This is one node's view, not the network's own record of itself.
- The grade is this node's view. The signatures a block carries are the ones this node received; another node can hold more or fewer for the same block (§05). Votes this node merely saw pass by are never graded.
- Evidence grows forward only. The node cannot read past signatures, so every window begins when watching began. Votes are recorded only at the newest block, so while this node is still catching up the Network page says so and grades fill in as it goes.
- Bonds are read in, not out. The scan can confirm a new bond's amount but not an exit, so inflow figures are inflow, never net.
- Now is this node's hearing. Missing and offline say what reached this node in the last minutes (§09); a finalizer it is poorly connected to can read as missing here while voting elsewhere. Outages register only while this node heard from others.
- One node cannot tell "the network stalled" from "we stalled". Time this node was down is left out of stall figures, and the "this node watching" check says how complete the range was.
17Where the data comes from#
Read-only calls to one node, checked against the node's source. Nothing here writes, stakes, or touches a wallet.
Verified against the running build's source (Crosslink v13): the two-thirds rule and
stake-weighted counting (tenderlink/src/lib.rs: ConsensusCounts, f_from_n,
2f+1), the signatures in the finality pointer (FatPointerSignature,
bft.rs), removal (terminated_finalizers in the hardfork rules; bonds set
to Burned at activation), and the commission-free reward split
(update_bonds_with_pos_issuance: pro-rata across active bonds, remainder to
the largest). The full method, with file and line citations, is in the repository as
docs/SCORING.md.