Skip to main content
This is the selling-access recipe. Connecting an assistant? Add the hosted MCP endpoint. Adding sign-in to an app? Use hosted sign-in.
Publish once. One listing owns the checks, price, and hosted sign-in. Your app adds the gate and confirms the result; it never recreates the check logic. Visitors never need an API key.

Build it

1

Publish a listing

Sign in at neus.networkListings. Choose checks, set pricing, Publish. Copy your gateId.
2

Add VerifyGate

VerifyGate reuses a saved proof or opens hosted sign-in on NEUS when a new one is needed. Wallet, passkey, and OAuth all happen on NEUS, not inside your app.
3

Confirm on your server

Pass the visitor’s account address (from NEUS sign-in or the saved result; passkey and OAuth included, no separate wallet required):
The visitor’s proof is theirs. If they return or visit another gate that needs the same checks, they can reuse it. You choose who pays. Use your NEUS credits for free access, or turn on visitor checkout and set a price. See Billing for card, USDC, and metered API options.

Optional: show proof status

Pass showChains only when on-chain status matters in your interface.

Not using React? Send users to NEUS for sign-in

Read the proof ID (qHash) from the callback URL or popup message, then store it. Details: Hosted sign-in.

Connecting an assistant instead?

Connect NEUS, then ask: “Before I take a sensitive action, use NEUS. Reuse what I already have.”

Next

VerifyGate

Props, modes, and OAuth.

Hosted sign-in

The browser flow on NEUS.

Start

One command for assistants. Hosted sign-in for apps.
Backend-created proofs after a one-time approval: Integrations.
Last modified on August 21, 2026