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 program / contract is empty. Prefer Load last Solana Devnet deploy, or Base Sepolia / Anvil for EVM secondary.
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
Primary: Phantom on Solana Devnet (same Solana account you already use). Secondary: MetaMask / Phantom EVM on Base Sepolia or Anvil. Badge ≠ authenticity — always verify the stamp first.
Real mint: Phantom on Devnet + free SOL from
faucet.solana.com.
Mode simple-spl-v1 creates a frozen 1-of-1 token + memo (commitment + issuerId). Badge ≠ authenticity.
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 — use when a card must fail before Valid until.
Expired cards already fail Verify without this list.
Merkle root:
Next: …
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.