Verifier Catalog
NEUS provides public verifiers available to all developers without API keys.
Each verifier is a standardized module that accepts specific input data, validates it, and produces a cryptographic proof.
Machine-readable source of truth:
spec/VERIFIERS.json
Ownership
ownership-basic
Instant
Permanent
Content Authorship. Prove that a wallet created a specific piece of content. Includes origin locking.
ownership-pseudonym
Instant
Permanent
Handle Binding. Bind a wallet to a namespace + handle.
ownership-dns-txt
Lookup
Point-in-Time
Domain Control. Verify ownership of a DNS domain by checking a TXT record at _neus.{domain}.
contract-ownership
Lookup
Point-in-Time
Contract Control. Verify that a wallet is the contract owner, admin, or holds DEFAULT_ADMIN_ROLE (AccessControl), depending on method.
Assets
nft-ownership
Lookup
Point-in-Time
NFT Gating. Verify ownership of a specific ERC-721 or ERC-1155 token ID.
token-holding
Lookup
Point-in-Time
Token Gating. Verify that a wallet holds a minimum balance of a specific ERC-20 token.
Identity & agents
agent-identity
Instant
Permanent
Bot Identity. Establish a portable, self-attested identity for an AI agent, bot, or service (ERC-8004 compatible).
agent-delegation
Instant
Expiring
Authority Delegation. Cryptographically delegate authority (e.g., "can trade") from a controller to an agent.
wallet-link
Instant
Permanent
Account Linking. Link a secondary wallet to a primary identity using a cryptographic signature.
wallet-risk
Lookup
Point-in-Time
Sybil Resistance. Assess the risk level of a wallet address to prevent fraud and bot spam.
Content safety
ai-content-moderation
Lookup
Permanent
Safety Check. Analyze text or images for safety/moderation flags before allowing on-chain actions.
Flow Types
Instant: The verification is purely cryptographic or self-contained. It happens immediately upon receiving the signature.
External lookup: The verification requires an external check (blockchain RPC, DNS query, AI provider).
Expiry Types
Permanent: The proof remains valid indefinitely unless explicitly revoked by the user.
Point-in-Time: The proof validates the state at that specific moment. For “must be true now” actions, create a fresh proof or require recency.
Expiring: The proof contains an explicit expiration timestamp.
Real-world usage (how to choose freshness)
Proofs are snapshots. For point-in-time verifiers (on-chain state, risk checks), you control freshness:
Real-time / high-stakes actions (claims, mints, transfers): use
strategy="fresh"(UI) or create a new proof (POST /api/v1/verification).Low-stakes UI gating: reuse proofs, but enforce a max age (recommended defaults below).
Server-side eligibility checks:
GET /api/v1/proofs/gate/checkevaluates existing public/discoverable proofs; usesince/sinceDaysto require recent proofs.
Recommended max ages (defaults you can adopt):
On-chain state (
nft-ownership,token-holding,contract-ownership): 1 hourOff-chain control / provider-backed checks (
ownership-dns-txt,wallet-risk): 1 hourContent moderation (
ai-content-moderation): no recency window by default (content-hash bound). Re-run only if your policy/provider snapshot requirements change.Delegation (
agent-delegation): enforceexpiresAt(and treat expired as invalid)
Always avoid drift
To list what is enabled in a given deployment, call:
GET /api/v1/verification/verifiers
Last updated
Was this helpful?

