The live demo isn't up yet
This page runs a real passkey-signed deed against a deployed registry. Grantor isn't deployed yet — the live demo goes up with the Base Sepolia developer preview. Meanwhile, read the docs or the llms.txt.
live demo
Watch a deed
get verified.
This page runs the whole sovereign-tier login itself: a real WebAuthn passkey ceremony mints a deed, and the real, published grantor-verify wasm checks it against a real on-chain read — the same code your own app would run, not a mock of it.
The one thing this page fakes
There's no server here, so this page mints the anti-replay challenge itself. In your app, your own challenge store issues and burns it — that's the only part of this demo standing in for infrastructure you'd actually run.
Loading…
Origin mismatch — the demo won't verify until this is fixed
Local chain unreachable — the demo can't read on-chain status
Verify a real deed
Tenant 1 has funded a period, so the registry reports it Active. Register a passkey, sign an assertion, mint the deed, verify it — all four in your browser.
See the billing gate reject an unpaid tenant
Tenant 2 was created but never funded, so it's Inactive. The same ceremony, against the same verifier logic — this one is supposed to fail.
Holder and verifier are the same browser here
That's a real limitation of a single-page demo — in production the holder (an app or agent) and the verifier (an RP's own backend) are different machines. What makes this page verifiable anyway: the verifier is the real published grantor-verify wasm, unmodified, and the on-chain read it makes is real. Open the registry on a block explorer and call status() yourself — the two buttons above will show you exactly which address and which tenant id to check.
What actually happened
A live log of every step this page ran, in order — nothing summarized after the fact.
Base Sepolia testnet, developer preview — not mainnet. The registry this page reads is a real deployed contract, but it is not the production instance and holds no real funds.