Private vault
Never leave the client in the dual-state model. Teaching stand-in: values you type below.
- Claim openings (name, age, role…)
- Credential salt & holder secret
- Full issuer witness material
Confidential credentials · selective disclosure
World-class educational studio for Midnight-style private credentials: issue a passport with sealed claims, present a public commitment, selectively disclose only what a verifier needs, then run predicate proofs (age ≥ N, membership ∈ set) — without claiming on-chain settlement, Lace, or a real Compact runtime. By @kshot9000 · nightdream.xyz.
Labeled phases from idle → issued → presented → proven → revoked. Over-disclose and tamper are first-class teaching fails.
Phase: idle — issue a passport to begin.
Observers see the credential commitment, issuer stamp, and optional disclosed claims / predicate results. Raw age, role, membership, and salts stay local until you choose otherwise.
Never leave the client in the dual-state model. Teaching stand-in: values you type below.
What the simulated verifier / registry is allowed to see.
How veiled individual claims stay after the last action.
100% veiled (no disclose)
How much the verifier learned from commits + proofs.
0% public surface
Private claims → credential commit + simulated issuer stamp. Press I to focus.
Issue a passport to seal claims into a commitment. Fields stay veiled until selective disclose.
Pick only the claims a verifier needs. Over-disclose is a teaching warn. Press S.
Default: all veiled. Check claims to open locally (simulated selective disclose).
Awaiting disclosure…
Prove age ≥ N or membership ∈ set without revealing the raw claim. Simulated π only. Press P.
Prove majority without publishing exact age.
Prove Night or Dusk without naming the tier.
0% — idle
No predicate yet
—
LOCAL STUB · simulated certification only.
Awaiting prove…
Schema v2 localStorage · BroadcastChannel sync · JSON export/import. LOCAL-TRUE ≠ on-chain. Clear anytime — nothing left the browser.
Teaching sketches — not deployable Compact. Always verify against official docs.
// BAD: verifier sees every attribute
ledger {
holder: Bytes<32>;
age: Uint<8>; // exact age leaked
role: Bytes<16>; // role leaked
membership: Bytes<8>;
}
// BETTER (sketch): public commit only
ledger {
credCommit: Bytes<32>;
issuerSig: Bytes<64>;
revokeNull: Bytes<32>; // optional
}
witness age: Uint<8>;
witness salt: Bytes<32>;
// prove age >= 18 without publishing age
// selectively open role only when needed
These snippets are educational illustrations. Official Compact syntax, circuits, and Zswap commitments may differ — check Midnight docs before shipping.
Cardano donation address — always visible in the dock and here. No on-chain tip from this UI.
Built by @kshot9000 · creator of nightdream.xyz.