Create a card
Paste any share link from this demo. The app detects full-card vs privacy share and runs the check.
- 1. Card ready — issued with design
- 2. Authenticate — “Check card now” must succeed
- 3. Free network — Base Sepolia (or Anvil) + Connect + Ensure
- 4. Mint — needs contract address + wallet popup
Mint does nothing useful if the gate is closed (yellow status above step 2) or if Badge contract address is empty. “Load last Anvil deploy” only works for Anvil, not Base Sepolia.
Issue an issuer-signed card first (with your card design). Then authenticate (verify gate). Wallet comes last — free demo chain only.
Card front (from issuance)
Card back
2. Authenticate
Must succeed before mint. Uses the simple privacy check by default.
3. Free demo network + wallet
Prefer Phantom Ethereum / Base (not Solana Devnet), or MetaMask. Solana testnets in Phantom cannot mint this badge — it is an EVM contract on Base Sepolia (default) or Anvil. In Phantom: switch to an Ethereum account, enable Active networks Ethereum+Base, then Connect. Connect scans EIP-6963 + classic injectors (~2s).
4. Mint (after authentication)
Wallet only confirms the free practice transaction. Your card design and stamp were already prepared at Create.
Admin — pick a goal
Browser-local demo tools only (not a cloud admin console). Start with a goal below — we open the right section for you.
Active card: (none)
Quick facts (expiry vs cancel vs badge)
- Expiry is automatic — after Valid until, Verify fails with “expired” without Cancel.
- Cancel — only for early revoke before expiry.
- NFT badge ≠ stamp — authenticity is stamp + dates + not cancelled.
1 · Cancel / revoke a card
Early cancel only. Expired cards already fail verify without this list.
Merkle root:
Next: cancel active card, then open Verify with its share link.
2 · Cards in this browser
Demo multi-card history — not a cloud portal. Status: active / expired / cancelled.
Issued cards
Holder wallet (saved cards)
3 · Trust list
Public company stamps only — never private keys. Export to share across devices.
Common path: Add demo issuer to registry (under Demo company stamp), or Fetch sample list.
4 · Demo company stamp
Private key stays in this browser (localStorage). Never commit keys.
- Issuer ID
- Issuer name
- Public key
5 · Start over / hard refresh
Hard refresh (keep data) only reloads the app and bypasses cache so you get new JS/CSS.
Issued cards stay in localStorage — that is why you still see a card after hard refresh.
To discard the issued card and start clean, use Clear all demo data.
6 · Advanced (JSON, fetch, prover)
Cancel list — import / export / fetch
Trust list — import / clear / custom URL
Primary “Fetch sample” lives under Trust list (section 3). Same URL field is used there.
Honk remote prover
Most demos ignore this. Browser WASM is default.