Skip to main content
Verifier: ownership-dns-txt. Optional — not required to create a gate or run VerifyGate.

Steps

  1. TXT at _neus.<yourdomain> (DNS host/name is often _neus when the zone is your apex or subdomain).
    wallet=<your-wallet-or-account-address>
    
    Example for Ethereum (use lowercase hex so it matches what NEUS expects):
    wallet=0x...
    
    The verifier reads wallet= only (not neus= or other prefixes).
  2. Proof — include at least domain in data. You may omit data.walletAddress when the same request carries a verified top-level walletAddress (typical signed proof); the service fills in that signer address before the DNS check. The TXT line must use the same wallet or account address NEUS uses for the proof.
    const proof = await client.verify({
      verifier: 'ownership-dns-txt',
      data: { domain: 'example.com', walletAddress: '0x...' },
      walletAddress: '0x...',
    });
    
  3. Check
    GET /api/v1/proofs/check?verifierIds=ownership-dns-txt&address=0x...
    
DNS can take minutes to propagate (sometimes longer per provider).
Last modified on June 4, 2026