Skip to main content

How Verification Works

NEUS verification always starts from a verifier request and resolves into a proof receipt that downstream systems can reuse.

Verification model

1

A client assembles a verification request

The request identifies the verifier or verifier set, the subject wallet or account, and verifier-specific data.
2

The server standardizes the request when signing is required

Use POST /api/v1/verification/standardize to get the exact signerString for low-level or server-side signing flows.
3

The user completes verification

Instant verifiers can complete in one request. Interactive verifiers redirect or hand off to the hosted /verify flow.
4

NEUS returns a proof receipt

The resulting proof can be polled, displayed, reused for gating, or consumed by downstream APIs and agents.

Modes you will encounter

ModeBest forNotes
Session-first hosted loginLowest-friction browser UXUse /verify?intent=login and auth code exchange when enabled for your deployment
Signature-based verificationGeneric integrator pathUse the SDK or POST /api/v1/verification/standardize for deterministic signing
Hosted interactive verificationOAuth, human proof, social flowsWidgets and MCP will hand off to hosted verify automatically
Gate checksBackend policy decisionsUse GET /api/v1/proofs/check for minimal yes/no eligibility

What NEUS returns

  • A verification response that can include a proof identifier and status data
  • A hosted verify handoff for interactive flows
  • A pollable status endpoint for asynchronous verifiers
  • A reusable proof receipt that can later support access, display, and policy decisions
In SDK surfaces, proofId is the standard client field name. On HTTP routes and older wire contracts, you may also see the same receipt identifier carried as qHash.