Block Production
Per-slot lifecycle outcomes across every VRF winner. Slot reports come from the Flutter app at terminal time and are joined with explorer status to classify each won slot into one of ten buckets.
Recent slots
Recent slots strip
One cell per resolved slot, newest first (left → right, top → bottom). Independent of the Window picker — always shows the chain's most recent slots so the strip is a liveness signal even when the window above is set to a long range.
Cell color = chain truth (vrf_slots.metadata->>'status'):
• green — strongest VRF winner produced the canonical block
• light green — a non-strongest winner produced
• gray — at least one winner but no block landed
• empty — no winners
• purple — on-chain winners but no obligation rows ingested yet
Recent slots strip
One cell per resolved slot, newest first (left → right, top → bottom). Independent of the Window picker — always shows the chain's most recent slots so the strip is a liveness signal even when the window above is set to a long range. Cell color = chain truth (vrf_slots.metadata->>'status'): • green — strongest VRF winner produced the canonical block • light green — a non-strongest winner produced • gray — at least one winner but no block landed • empty — no winners • purple — on-chain winners but no obligation rows ingested yet
Total slots with won blocks
Total slots with won blocks
Share of slots in this strip that had at least one VRF winner. Numerator: green + light-green + gray cells. Denominator: every cell in the strip (including empty).
Success rate
Success rate
Of slots with a winner, share where the strongest VRF winner produced the canonical block. Numerator: green cells. Denominator: green + light-green + gray (slots that had ≥1 winner).
Failed
Failed
Complement of success rate. Of slots with a winner, share where the strongest VRF winner did NOT produce the canonical block — either a non-strongest winner shipped (light green) or no block landed at all (gray). Numerator: light-green + gray cells. Denominator: green + light-green + gray.
Still computing
Still computing
Slots in the strip with on-chain winners but no obligation rows ingested yet. Usually one of: • ingestion lag (the obligations walker hasn't reached this slot yet), • a producer wallet missing from the observability receiver's keyset, • a fresh chain reset. Excluded from the three rates above so a partial dataset doesn't tank the percentages.
slots awaiting obligations sync
Backfilling obligations data
Slot-outcome data below may undercount older slots until sync catches up. Newest slots first.
Total Won
Total Won
Total VRF wins across the selected Window. A slot won by two pubkeys counts as 2. Two outcome lines below the headline highlight the most actionable parts of the bucket distribution: • Winning blocks — wins where ANY winner produced (canonical, orphaned, chain race, or local-only). • Lower priority blocks — wins where this winner won the lottery but a higher-priority winner shipped the block, with no telemetry from the lower-priority winner. The remainder (failures + invalidations) is shown in the Slot Outcomes chart below.
VRF wins (includes multiple won VRFs per slot)
Report Rate
Report Rate
Share of VRF wins for which the device sent a slot_outcome_report. Per-win denominator: a slot with 2 winners and only 1 report contributes 0.5. Distinct from the legacy `coverage_pct`, which additionally required a recognised app_state — Report Rate only cares whether we got any telemetry at all from the producer.
Missing Reports
Missing Reports
Complement of Report Rate. Share of VRF wins with no slot_outcome_report from the producer. Report Rate + Missing Reports always equals 100% (and the two counts always sum to Total Won).
Slot Outcomes
Slot Outcomes
Per-VRF-win outcome distribution over the selected Window, broken down across one of three dimensions:
• By Epoch — chronological view, one column per epoch. In % mode each bar is scaled to a full epoch's slot capacity, so the in-progress epoch renders short and is labelled `EN (X% done)` — i.e. the bar height visually represents how far through the epoch the chain is.
• By Build — which client builds (app_build_number) are responsible for which outcomes. Use this when you need to attribute regressions to a specific build rather than a marketing app_version, since multiple builds can ship under the same version string.
• By Device — top devices in the window (foreground vs background isn't applicable here, so the FG·BG toggle is disabled).
Toggle % vs Abs to switch between proportional and raw counts. FG·BG splits each column into foreground (◀) and background (▶) halves, mirroring the Flutter app_state at the moment of the win.
Slot Outcomes
Per-VRF-win outcome distribution over the selected Window, broken down across one of three dimensions: • By Epoch — chronological view, one column per epoch. In % mode each bar is scaled to a full epoch's slot capacity, so the in-progress epoch renders short and is labelled `EN (X% done)` — i.e. the bar height visually represents how far through the epoch the chain is. • By Build — which client builds (app_build_number) are responsible for which outcomes. Use this when you need to attribute regressions to a specific build rather than a marketing app_version, since multiple builds can ship under the same version string. • By Device — top devices in the window (foreground vs background isn't applicable here, so the FG·BG toggle is disabled). Toggle % vs Abs to switch between proportional and raw counts. FG·BG splits each column into foreground (◀) and background (▶) halves, mirroring the Flutter app_state at the moment of the win.
Slot Lifecycle Breakdown
Slot Lifecycle Breakdown
Outcome counts grouped by life-cycle: Success / Failed / Invalidated / (rest). Each row shows the count and parent-relative % over the selected Window.
Collapsed by default — click the header or the body to expand and see the full taxonomy.
Use the Producer dropdown to filter the tree to a single wallet. The cohort totals re-derive from the filtered rows so the percentages stay internally consistent.
Slot Lifecycle Breakdown
Outcome counts grouped by life-cycle: Success / Failed / Invalidated / (rest). Each row shows the count and parent-relative % over the selected Window. Collapsed by default — click the header or the body to expand and see the full taxonomy. Use the Producer dropdown to filter the tree to a single wallet. The cohort totals re-derive from the filtered rows so the percentages stay internally consistent.
Producers
Producers
Per-wallet view of the same Window. Rows are one wallet each.
• Won — total VRF wins for that wallet across the window.
• Green / Local-Only / Failed / Lower Pri — bucket counts (see legend below the table for full taxonomy).
• Success — share of wins that ended canonical.
• FG / BG / Unknown Rate — success rate split by the device's Flutter app_state at the moment of the win (foreground / background / unknown when no telemetry).
• Coverage — share of this wallet's wins with any client telemetry attached.
• Outcome Distribution — per-wallet bucket mix as a stacked bar.
• Top Issue — single most common bucket for this wallet.
The 'dev' badge marks non-staked / developer wallets — toggle 'Dev producers' off in the header to exclude them.
Producers
Per-wallet view of the same Window. Rows are one wallet each. • Won — total VRF wins for that wallet across the window. • Green / Local-Only / Failed / Lower Pri — bucket counts (see legend below the table for full taxonomy). • Success — share of wins that ended canonical. • FG / BG / Unknown Rate — success rate split by the device's Flutter app_state at the moment of the win (foreground / background / unknown when no telemetry). • Coverage — share of this wallet's wins with any client telemetry attached. • Outcome Distribution — per-wallet bucket mix as a stacked bar. • Top Issue — single most common bucket for this wallet. The 'dev' badge marks non-staked / developer wallets — toggle 'Dev producers' off in the header to exclude them.
| Wallet | Won | Green | Local-Only | Failed | Lower Pri (no rpt) | Success | FG Rate | BG Rate | Unknown Rate | Coverage | Outcome Distribution | Top Issue |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| dev |
|
No producers with VRF wins in this phase yet.