Standard Flow
Check gate eligibility
Use
GET /api/v1/proofs/check (or client.gateCheck(...)).Optionally include X-Neus-App: <appId> for attribution (non-secret).Run verification (if not eligible)
- Instant / lookup verifiers: submit verification request.
- Interactive verifiers: use hosted checkout via
VerifyGate.
Verification Modes
| Mode | Strategy | Use When |
|---|---|---|
| Reuse-first gating | strategy="reuse-or-create" | Standard UX |
| Fresh proof required | strategy="fresh" | High-stakes actions |
| Read-only check | strategy="reuse" | Don’t want to create new proofs |
Session-First Integration
For lowest friction: use hosted verify + auth code exchange.- Redirect users to
https://neus.network/verify?intent=login&returnUrl=... - After sign-in, the page returns an auth
code - If NEUS has enabled partner code exchange for your deployment, your server calls
POST https://api.neus.network/api/v1/auth/code/exchangewith the code and your NEUS-issued partner credential - Subsequent API calls use cookie/Bearer without per-request signing
Use this only for the hosted session-first path. For the full routing and popup contract, see Auth + Hosted Verify.
Hosted Checkout Requirements
Interactive verifiers (ownership-social, ownership-org-oauth, proof-of-human) require hosted checkout.
- Default checkout URL:
https://neus.network/verify(or use SDKgetHostedCheckoutUrl()) - Sponsored flows: include
X-Neus-App(public appId) andX-Sponsor-Grantwhen your backend is covering verification costs.
Policy-Based Gate Checks
For backend policy enforcement, usegateCheck with explicit recency:
| Parameter | Use For |
|---|---|
since | Exact timestamp windows |
sinceDays | Coarse policy windows |
Privacy and Access Model
- Private-by-default proofs are recommended.
- Public + discoverable proofs support broad reuse and discovery.
- Private proof reads require owner-authenticated access or explicit grant-based sharing.
Verify Widget (Script Tag)
The easiest integration path for non-React or non-framework sites. One script tag, one HTML attribute, no build step:neus.network.
CORS: The widget calls
GET https://api.neus.network/api/v1/verification/status/:qHash using your proof identifier value. This endpoint responds with Access-Control-Allow-Origin: *. No configuration needed.Optional Attributes
| Attribute | Description |
|---|---|
data-neus-proof | Proof receipt identifier (required). Use the SDK proofId value. |
data-neus-api-url | Custom API base (default: https://api.neus.network) |
data-neus-ui-base | Custom viewer base (default: https://neus.network) |
data-neus-size | sm (default) or md |
data-neus-show-chains | true to show chain count |