reuse-or-create is the default.
Privacy and visibility
Rawclient.verify() defaults to private stored receipts. VerifyGate create mode defaults to unlisted public so gates work without extra options. Full matrix: Security and trust.
| Option | When to use |
|---|---|
privacyLevel: 'private' | Raw SDK default. Owner or authorized-session access. |
privacyLevel: 'public' | Policy checks without owner session; pair with publicDisplay. |
publicDisplay: false | Unlisted: eligible in checks; still public to anyone with the proof id. |
publicDisplay: true | Listed / discoverable (requires privacyLevel: 'public'). |
Hide original content
SetstoreOriginalContent: false when your product should retain only proof metadata/hash/policy status, not original bytes (hash-only mode).
Example (unlisted public, typical for gates):
Reuse-first flow
Use this as the default UX. It minimizes user prompts while still issuing new proofs when needed.VerifyGate already defaults create mode to unlisted public; add proofOptions only when you need listed public or private.
Fresh Proof Flow
Use this when the action is high stakes and you need a newly created assertion.Hosted Interactive Flow
Interactive verifiers hand off to NEUS hosted verification (/verify).
Policy checks from your app
Use the SDKgateCheck helper instead of downloading full proof payloads for every decision.