VerifyGate checks eligibility, opens Hosted Verify when a new proof is needed, then renders your protected content. The default path is a published gate — not a manual verifier list.
Quickstart
- In NEUS Hub, create a gate and choose the checks visitors must pass.
- Publish the gate and copy your checkout link or embed snippet.
- Paste the embed in your app, or send users to the hosted link.
- Optionally run
gateCheck on your server before granting access.
import { VerifyGate } from '@neus/sdk/widgets';
export function Page() {
return (
<VerifyGate gateId="gate_your-app-name">
<div>Unlocked</div>
</VerifyGate>
);
}
import { getHostedCheckoutUrl } from '@neus/sdk';
const url = getHostedCheckoutUrl({
gateId: 'gate_your-app-name',
returnUrl: 'https://yourapp.com/continue',
});
import { NeusClient } from '@neus/sdk';
const client = new NeusClient();
const result = await client.gateCheck({
gateId: 'gate_your-app-name',
address: user.walletAddress,
});
Billing and check policy come from the gate. You do not register an app or pass billingWallet for this path.
Key props
| Prop | What it does |
|---|
gateId | Published gate handle (default) |
strategy | Reuse, reuse-or-create, or fresh proofs |
mode | Create vs access behavior |
qHash | Existing receipt for access mode |
hostedCheckoutUrl | Override hosted verify base URL |
oauthProvider | Pre-select social or org sign-in on hosted verify |
wallet | Optional signer for private receipt reuse or access mode |
Default create behavior
Create mode opens Hosted Verify. The published gate owns verifier inputs, pricing, and checkout policy.
Hosted OAuth
Social, organization, and human checks use Hosted Verify. Set oauthProvider when the user already picked a provider in your app.
Allowed values:
- Social:
x, twitter, github, discord, facebook, linkedin, telegram
- Org:
google, microsoft
Advanced server receipts
For backend-created receipts after a one-time user approval, use the server-side verifyFromApp flow in Integrations. Keep browser checkout on gateId.
Next
Last modified on June 5, 2026