Error State
Where a flow dead-ends, the system answers in the ship's-log voice. ErrorState frames the classic not-found anatomy — stage, panel, title, message, actions — in a .ch-frame panel with aurum corner ticks, a mono uppercase signal line, and a big display code. Four variants cover the explorer's dead-ends; awaiting-broadcast is a waiting tone (role=status, pulsing beacon), not a failure.
Variants
Each variant ships default copy, code, and signal line; every string is overridable per prop. Panels here are embedded — drop the embedded prop for the full min-height stage.
Page not found
This route has drifted off the chart — moved, renamed, or never existed.
<ErrorState variant="not-found" actions={<ButtonLink href="/">Back to harbor</ButtonLink>} />--ch-primary--ch-surface--ch-border-strong--ch-fg-muted
The generic 404 — neutral tone, gold display code.
Transaction not found
No transaction with this ID in the mempool or any confirmed block. Check the ID, or wait — it may not have propagated yet.
4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b
<ErrorState variant="tx-not-found" detail={txid} />--ch-primary--ch-bg-raised--ch-border-faint--ch-fg-faint
A transaction ID the chain has never seen — pass the queried ID via detail.
Awaiting transaction broadcast
The transaction is signed and queued. Holding for the network to pick it up — this usually takes a few seconds.
<ErrorState variant="awaiting-broadcast" />--ch-primary--ch-primary-bright--ch-surface--ch-fg-muted
A waiting tone, not a failure — role=status, the beacon and code pulse (static under reduced motion).
Invalid address
This address fails validation for every supported network. Re-check each character before retrying — funds sent here are unrecoverable.
bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlm
<ErrorState variant="invalid-address" detail={address} />--ch-danger--ch-surface--ch-border-strong--ch-fg-muted
Checksum failure — danger tone on code, status word, and beacon.
Full-page stage
The default (non-embedded) render centers the panel in a min-height stage for route-level 404 and dead-end pages.
Page not found
This route has drifted off the chart — moved, renamed, or never existed.
<ErrorState variant="not-found" actions={actions} />Drop this straight into a not-found.tsx or an explorer dead-end route.
Custom copy
Every string — code, eyebrow, status, title, message — overrides independently, and tone recolors the panel; the variant keeps supplying whatever is not passed.
Block not found
Height 9,999,999 is beyond the current chain tip. Come back in a few decades.
<ErrorState variant="tx-not-found" code="H?" eyebrow="Block index" status="Beyond tip" tone="pending" title="Block not found" message="…" />A tx-not-found shell recast as a block-height miss, with the tone flipped to pending.