01
Fetch
Fetch the full public state
A scheduled server-side job calls GET /state and GET /pieces/info with Swanix's key: roots, notes, nullifiers, mints and listings. Nothing private, no owners.
Verify, don't trust.
An independent integrity monitor for Shielded Ordinals. It recomputes the state digest independently and hunts for duplicate pieces.
Check my Naka
Looks your piece up in the latest audit: mints, listings and sales, plus every collection-wide check.
—
—
Shield Audit never sees who owns a piece. This checks the piece, not the wallet.
Block Line
The audited snapshot against the live chain, updated with every /status poll.
Next check in --:--:--
Checking chain status…Last published —
Live chain status · no key needed
Polls /status every 30 seconds; names and collection data refresh only when a new block lands.
The audit
Audited automatically by Swanix · refreshed every 10 minutes · last run — at block —
—a · digest
—
—b · counterfeit
—
—c · supply
—
—d · art
—
—e · nullifiers
—
—f · listings
—
Market X-ray · from the same audit
—
Owners stay private — this reads only public data.
Deep Audit · indexer full state
Things most audit pages never show: the cryptographic plumbing, the double-spend guards and the privacy hygiene, recomputed from the indexer's full state.
Audit grade
Grade not computed yet
—
Protocol health
Indexer lag—
—blocks behind Bitcoin tip
indexed — · tip —
at snapshot
Anonymity set
Trend builds every 10 minutes
A larger set means stronger privacy for the next spend.
Stale escrow watch
—listings escrowed over a week
Median age —
Check 1 of 7
Hash propagation · leaf → root
—
Tree leaves per block
Check 2 of 7
Notes spent vs unspent
Double-spend guards
Notes per transaction · log scale
Check 3 of 7
IDs 0 to 3,332
Check 4 of 7
Events per 50-block bucket
Check 5 of 7
Listing lifecycle
Check 6 of 7
Check 7 of 7
Audit trail
Every audit run · oldest to newest
Named checks
Notes and nullifiers across runs
Anomaly watch
Watched each run: note or nullifier counts falling, the root changing without new leaves, indexer height going backwards, and any check flipping.
Anomaly log · newest first
Signed report
Report SHA-256
—
Hash = SHA-256 of the canonical report core (sorted keys); anyone can recompute it.
Audit certificate
One A4 page with the verdict, all 15 checks, key numbers, signature and Bitcoin timestamp, built in your browser from this run.
Signed report · proof
The signature proves this report was published by Shield Audit and not altered. The Bitcoin timestamp proves it existed at that block, so it can't be backdated or quietly rewritten.
Signature unavailable for this run
Digital signature (Ed25519)
Shield Audit public key
—
Signature over reportSha256 as UTF-8 text
—
Runs in your browser: no network requests.
Bitcoin timestamp (OpenTimestamps)
Check it at opentimestamps.org: drop both files there.
No Bitcoin timestamp for this run yet.
How it works
Every 10 minutes. Swanix's key stays on the server and never touches this page.
01
Fetch
A scheduled server-side job calls GET /state and GET /pieces/info with Swanix's key: roots, notes, nullifiers, mints and listings. Nothing private, no owners.
02
Recompute
The job rebuilds the digest exactly as the spec defines it and compares it with what the indexer publishes.
03
Scan
The same piece listed or minted twice, or a nullifier used twice, is what a forged proof would leave behind.
04
Publish
The results replace the audit data on this page. Live chain status still comes straight from the keyless /status endpoint.
The protocol docs note that the proving system's trusted setup had a single contribution. If that secret was ever kept, someone could forge proofs. Forgeries can't be seen directly, but they would show up as duplicate pieces or reused nullifiers — so this page watches for exactly that.