Selective Disclosure
Selective disclosure lets users prove properties about funds without exposing their full transaction graph.
Patterns
- View key sharing — grant read-only access to an auditor or counterparty for a time-bound window.
- Negative-set proof — prove coins are not from a disallowed set (sanctioned clusters) without revealing the actual path.
- Payment receipt — prove "I paid invoice X" by binding a memo hash or invoice id in the proof.
Example: payment receipt (JSON artifact)
{
"type": "murena.payment_receipt.v1",
"invoice": "inv_23K9",
"amount": "10",
"memo_hash": "0x1a9f...e2",
"root": "0xabc...123",
"nullifiers": ["0x0f..", "0xa1.."],
"proof": "base64:AAAA...",
"publicSignals": ["0x...", "0x..."]
}Verify via API
curl -s https://api.murena.so/v1/proofs/verify \ -H 'Content-Type: application/json' \ -d @receipt.json
If valid, the verifier returns a receipt with on-chain signature/slot you can attach to invoices.
UX
- Wallet toggle: Private/Public.
- "Share proof" → generates an artifact or view link with expiry.
- Merchant SDK: verify locally, optionally pin a receipt on-chain.