Paste any share link from this demo, or scan a card QR with the in-app camera when your browser supports it. Phone OS camera on a printed QR still works (opens the link) — that is enough if in-app scan is unavailable.
- 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
Happy path: Check card → Connect wallet → Mint badge. Solana Devnet defaults to simple mint mode (no custom program deploy). Badge ≠ authenticity.
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. Connect wallet
Primary: Phantom on Solana Devnet. Secondary: MetaMask / Phantom EVM on Base Sepolia or Anvil. Badge ≠ authenticity — stamp first.
Solana: mode simple-spl-v1 is applied automatically — no deploy step for the demo.
Fund free SOL at
faucet.solana.com
if mint fails on fees.
Advanced — program / contract & deploys
Only if you need a custom Solana program id or EVM contract. Happy-path Solana mint does not require these buttons.
4. Mint (after authentication)
Wallet only confirms the free practice transaction. Your card design and stamp were already prepared at Create.
Burn list is not Phantom itself — it is this browser’s history plus a live wallet scan. Ghost mints (already burned / empty) are pruned on Refresh or after a failed burn. Paste mint base58 if needed. Connect the same Phantom (Devnet) that holds the token. Frozen badges may hide under Collectibles but still appear after Refresh.
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. On each row: Cancel early · Re-enable (if cancelled) · Remove expired/cancelled card (red) or Remove from browser (asks to cancel first if still valid).
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.