Ship a gate. Reuse the receipt.
Publish a gate, open Hosted Verify in the browser, then confirm on your server with gateCheck. No wallet code in your app. No access key for the default path.
One package for links, widgets, and server checks — browser first, keys only on the server.
Browser
Send visitors to Hosted Verify.
Pass your published gate ID. NEUS runs the checks, saves the receipt, and returns the visitor to your app.
import { getHostedCheckoutUrl } from '@neus/sdk';
const url = getHostedCheckoutUrl({
gateId: 'gate_your-app-name',
returnUrl: 'https://yourapp.com/continue',
});
window.location.assign(url);- 01Verify onceComplete a supported check
- 02Get a receiptResult becomes a reusable record
- 03Check before accessApps confirm before action
- 04Share lessPresent the result, not the file
Server
Confirm before you act.
On your server, check that the visitor still meets the gate. Use the account address from Hosted Verify. Ready means every required check is satisfied.
import { NeusClient } from '@neus/sdk';
const client = new NeusClient();
const result = await client.gateCheck({
gateId: 'gate_your-app-name',
address: user.accountAddress,
});
if (result.data?.gate?.allRequiredSatisfied !== true) {
// Send the visitor back to Hosted Verify
}One check. Reusable everywhere it is accepted.
Connected apps confirm status before access without the full source file.
Assistants
Same install for the CLI and MCP.
The package also ships the CLI. One setup command connects Cursor, Claude Code, and Codex so assistants can reuse the same receipts.
Profile access keys are for servers and CI only. Never put them in browser bundles.
SDK FAQ
Hosted Verify, gates, and server checks.
Ready to build?
Publish a gate and run the quickstart.