Skip to main content
Verifier ID: ownership-dns-txt

Use cases

  • verified website on your profile
  • team workspace and branded handles
  • public trust pages for domains

Flow Type

Lookup. NEUS resolves DNS TXT at _neus.<domain> and compares it to the account address used for this verification (see below).

DNS record (what builders publish)

Create a TXT record:
  • Name / host: _neus (effective lookup: _neus.<your-domain>, e.g. _neus.example.com if the apex is example.com).
  • Value: a single line starting with wallet= followed by the same wallet or account address NEUS uses when it runs this check.
Supported shapes today:
FormatWhen it matches
wallet=<address>Default. <address> must match the wallet or account address NEUS uses for this proof. For Ethereum, use lowercase 0x plus 40 hex digits in DNS.
wallet=eip155:<chainId>:<address>Only if the verification run supplies a numeric chainId in verifier options so this form is generated for the check.
Other prefixes (for example neus=) are not read by this verifier—use wallet= only. Other networks: Use the address format for that network (for example Ethereum, Solana, or NEAR). For Solana, the string is case-sensitive—copy the value exactly as NEUS shows it for the proof; do not retype it with different capitalization.

Request data (API / SDK)

FieldIn JSON SchemaWhat to know
domainRequiredHostname to verify (apex or eTLD+1 style you control in DNS).
walletAddressOptional in dataStill needed for a passing check: the TXT line must match the wallet or account address NEUS uses for this proof. You may omit walletAddress inside data when the proof request already includes a verified walletAddress at the request level (signed flow); the service fills in the signer wallet before the DNS check. If you omit it and the request has no signer wallet, verification fails. If you set walletAddress in data, it must match the wallet that signs the proof (or follow your product’s allowed delegation rules)—do not use someone else’s address.

Example

Minimal data when the proof request carries the signer wallet (typical browser / server signing):
{
  "domain": "example.com"
}
Explicit data (custom clients, tests, or when you want the payload self-describing):
{
  "domain": "example.com",
  "walletAddress": "0x..."
}
See also: Domain verification cookbook, JSON Schema.
Last modified on May 29, 2026