Skip to main content
VerifyGate: check to hosted verify when needed to unlock. Create defaults private, matching raw client.verify(). Security and trust | Get started

Default create behavior

When proofOptions is omitted, create mode merges:
FieldDefault
privacyLevelprivate
publicDisplayfalse
Pass proofOptions only when you intentionally need unlisted public or listed public.

Basic usage

import { VerifyGate } from '@neus/sdk/widgets';

export function Page() {
  return (
    <VerifyGate
      requiredVerifiers={['nft-ownership']}
      verifierData={{
        'nft-ownership': {
          contractAddress: '0x...',
          tokenId: '1',
          chainId: 8453
        }
      }}
      appId="your-app-id"
    >
      <div>Unlocked</div>
    </VerifyGate>
  );
}

Key props

PropWhat it does
requiredVerifiersSets the verification policy
verifierDataSupplies verifier-specific inputs
strategyChooses reuse, reuse-or-create, or fresh
proofOptionsOverrides privacy and content storage (defaults are private)
modeChooses create vs access behavior
proofIdExisting id for access mode
appIdSends public app attribution; usage bills the linked app owner profile
hostedCheckoutUrlOverrides the hosted verify URL when needed
oauthProviderPre-selects the OAuth provider when the user already chose one in your app

Best use cases

  • gating paid or premium content
  • checking NFT or token access
  • launching hosted social or org verification
  • requiring fresh proof creation for high-stakes actions

Hosted OAuth

Interactive verifiers (ownership-social, ownership-org-oauth, proof-of-human) use Hosted Verify. Set oauthProvider when the user already picked a provider in your app.
import { VerifyGate } from '@neus/sdk/widgets';

export function ConnectGithub() {
  return (
    <VerifyGate
      requiredVerifiers={['ownership-social']}
      oauthProvider="github"
      appId="your-app-id"
    />
  );
}
Allowed values:
  • Social: x, twitter, github, discord, facebook, linkedin, telegram, farcaster
  • Org: google, microsoft
Popup: still neus_checkout_done. oauthProvider only picks which sign-in opens first; proof payload and your handling stay the same.

Direct-sign vs hosted

  • ownership-basic and other wallet-creatable verifiers can run in-widget with a connected wallet.
  • Social, org, and human flows route through hosted verify. Start from Hosted Verify when you are unsure.

Next

Integration

SDK verifications

Payment gates