why this exists
on 2026-04-15, the crosslink season 1 feature net went public with a workshop and a signal group. someone in the group said "someone should make an explorer". an explorer went live on this domain the same afternoon, running on a small vps, systemd supervised, tls via let's encrypt, no analytics, no cookies, no external fetches, mit licensed. this page explains what it is, how it was built, and what to check if trust is supposed to be optional.
what this is not
this is not a product. there is no account, no login, no payment wall, no rate limit, no api key, no referral program, no javascript bundle, no cross origin beacon, no captcha. there is a fastapi process behind nginx. the source is 500 lines of python plus a few jinja templates. it is small on purpose.
what the node is doing
under the hood is a local build of crosslink_monolith from the speculative branch, tracking the ctaz feature net, rpc on 127.0.0.1:18232, rewired from the default 8232 because port 8232 was already taken by an unrelated docker zebra on the same box. the explorer does not mine, does not sign, does not custody. it reads. reads are cheap, so the explorer is cheap.
what the explorer shows that others do not
- finality badges: every block and every transaction is tagged bft-finalized or pow-only based on
get_tfl_block_finality_from_hash. the finality gap between pow tip and bft tip is always visible on the home page. the gap is almost always large. that is an honest signal about where s1 tfl currently lives. - per-block pool deltas: the transparent, orchard, sapling, sprout, and lockbox pools each show their delta on the block page. the pool pages render a server-side svg sparkline of cumulative value over the last 200 blocks. no other explorer on crosslink shows per-block pool flow, not because it is hard but because nobody has written it yet.
- attestation registries: /anchors lists zap1 attestation anchors on ctaz. /vaults lists shieldedvault custody agents. /events lists zeven watcher events. the registries are public json files in the repo, the explorer reads them at request time, and matches against the requested txid to render an attestation card on the transaction page. if a txid is not in a registry, nothing special happens. the registries on ctaz start empty and populate as real cTAZ transactions land. none of this is asserted by the explorer; everything is verifiable against the chain directly.
- /verify: paste a txid at /verify, get back block, finality, pool usage, and registry matches in one shot. curl friendly via
/api/verify/<txid>. no auth, no rate limit. - /params: honest protocol parameters from the node, including the parameters that are still stub surfaces in the s1 monolith. the
staking_commandrpc returnsNotImplemented; the real staking path lives atwallet/src/lib.rs:1923instake_orchard_to_finalizer. finalizer commission is zero in s1. this page marks both honestly.
how to verify any claim above
- every block and tx link on this explorer points back to raw chain state. if the explorer says "block 460 is finalized, gap 1400+", run
get_tfl_block_finality_from_hashagainst any crosslink node and confirm. - every pool value comes from zebra's
valuePoolsarray ongetblock. no derived math. - the /api/tip, /api/params, /api/finalizers, /api/pool/orchard, /api/anchors, /api/vaults, /api/events endpoints return the same data the pages render. curl them.
- the source is on github at Frontier-Compute/ctaz-explorer, mit. clone it, point it at any crosslink rpc, and run the same pages.
finalizer delegation
per the workshop faq, s1 explorers can run a finalizer and ask protocol guardians to delegate in support of the operator. this operator runs finalizer 646ae0e999d5c1d0f69bce3aaf5f5a71537bbc964c270a88f772592d79e14061. season 1 has zero finalizer commission, so staking rewards flow pro rata to delegators; the operator gets voting power and a community signal, not income. delegation instructions at /stake. if the explorer goes down, the delegation should follow somewhere that stays up.
what is not here, honestly
- no cross-chain bridge visualization. that layer belongs somewhere else.
- no mempool view. ctaz mempool is effectively empty and a mempool pane would only underline it.
- no rich charts beyond the sparklines. charts drift and a drifting chart is worse than no chart.
- no shielded-memo decoding. shielded memos are encrypted end to end, so "decoding" them would require recipient keys, which the explorer does not have and should never have.
footer
if something looks wrong, open an issue on the repo. if something looks right, just use it. the operator is zk-nd3r (github, x). no dms required.