GET /api/v1/proofs/check (or your own store of proofId) before prompting verification. Persist the receipt ID you get back. Reuse it for gates and policy. Proof receipts explains why you save proofId, not raw signatures.
Loop
- Check: eligibility with a saved
proofIdorGET /api/v1/proofs/checkbefore showing a verify flow - Verify: only when needed (Hosted Verify or SDK/API)
- Save:
proofIdon the user or session (same value asqHash; see Proof receipts) - Reuse: UI,
VerifyGate, server policy, MCP. Same ID everywhere
Visibility modes
Choose visibility once per proof. Full detail andstoreOriginalContent guidance are in Security and trust.
| Mode | privacyLevel | publicDisplay | Use |
|---|---|---|---|
| Listed public | public | true | Publishing and attribution where the proof should be discoverable |
| Unlisted public | public | false | Non-sensitive reuse, gates, and checks without listing for discovery |
| Owner-only | private | false | Owner-only access and owner-authenticated reuse |
- Raw SDK
client.verify()defaults to private stored receipts (see SDK overview). VerifyGatecreate mode defaults to unlisted public (public+publicDisplay: false) so the primary gating surface matches reuse-first flows.
Checklist
Verification strategies (SDK / API)
| Strategy | When |
|---|---|
reuse-or-create | Default: reuse a valid proof if you have one; otherwise start verification |
fresh | Force a new verification even when an older proof might still be valid |
reuse | Never create; require an existing proof or fail (read-only / display paths) |
URLs
| Purpose | URL |
|---|---|
| Hosted Verify | https://neus.network/verify |
| API | https://api.neus.network |
| MCP | https://mcp.neus.network/mcp |
Related
Get started
Onboarding and production checklist.
Hosted Verify
Hosted flows.
Receipts
Persist IDs.
Security and trust
Visibility.
API
HTTP.
Verifiers
Full list.
Billing
Payers, sponsors, x402.