The JavaScript SDK builds hosted URLs, runs gate checks, polls status, and optional in-app signing. Create a gate and embed it with one gateId — Get started. MCP calls the same APIs: MCP.
Default placement
| Use case | Where |
|---|
Hosted verify URL, VerifyGate | Browser (or WebView) |
gateCheck with gateId | Server |
verifyFromApp, npk_* | Server |
Avoid credentialed fetch to api.neus.network from the browser; use SDK helpers or your backend.
Browser (default)
Ceremony on NEUS:
import { getHostedCheckoutUrl } from '@neus/sdk';
window.location.assign(
getHostedCheckoutUrl({
gateId: 'gate_your-app-name',
returnUrl: 'https://myapp.com/callback',
}),
);
React: VerifyGate from @neus/sdk/widgets — Quickstart.
After you have qHash, optional wait: NeusClient + pollProofStatus — Verifications.
In-app signing (optional)
client.verify({ wallet: ... }) only if signing stays in your page. Pass the wallet/provider explicitly. Non-EVM signing also needs chain as CAIP-2. CAIP-380 Portable Proof · Signing format.
Eligibility on your server
const client = new NeusClient();
const gate = await client.gateCheck({
gateId: 'gate_your-app-name',
address: '0x...',
});
API mapping
| Need | Method |
|---|
| Hosted handoff | getHostedCheckoutUrl(), VerifyGate |
| Sign inside your app | verify() |
| Wait | pollProofStatus() |
| Allow / deny | gateCheck() (server) |
Optional: timeout on NeusClient.
Defaults
client.verify() defaults private. Security. VerifyGate create also defaults private. Security and trust
Next
Last modified on June 5, 2026