Skip to main content
POST
/
api
/
v1
/
verification
Phase 2: submit a verification request
curl --request POST \
  --url https://api.neus.network/api/v1/verification \
  --header 'Content-Type: application/json' \
  --data '
{
  "verifierIds": [
    "ownership-basic"
  ],
  "data": {
    "owner": "<string>",
    "content": "<string>",
    "contentHash": "<string>",
    "contentType": "<string>",
    "provenance": {
      "declaredKind": "human",
      "aiContext": {
        "generatorType": "local",
        "provider": "<string>",
        "model": "<string>",
        "runId": "<string>"
      }
    }
  },
  "walletAddress": "<string>",
  "subjectWallet": "<string>",
  "signature": "<string>",
  "signedTimestamp": 123,
  "chainId": 123,
  "chain": "<string>",
  "signatureMethod": "<string>",
  "options": {},
  "meta": {}
}
'
{
  "success": true,
  "status": "<string>",
  "message": "<string>",
  "data": {},
  "creditInfo": {}
}

Body

application/json

Phase 2 of the raw HTTP verification handshake. For raw HTTP callers, first call POST /api/v1/verification/standardize with this same body (minus signature), sign the returned signerString, then submit this body with signature. Treat this as a continuation of the standardized request, not as an independent one-step POST.

verifierIds
enum<string>[]
required
Minimum array length: 1
Available options:
ownership-basic,
ownership-social,
ownership-pseudonym,
ownership-dns-txt,
ownership-org-oauth,
contract-ownership,
proof-of-human,
nft-ownership,
token-holding,
wallet-risk,
wallet-link,
ai-content-moderation,
agent-identity,
agent-delegation
data
required
walletAddress
string
required

Signer wallet address (who authenticates the request). For raw HTTP, this must match the walletAddress used during POST /api/v1/verification/standardize and the wallet that produced signature.

subjectWallet
string

Optional: Wallet being verified (delegated subject). Must match signed payload for verifiers that support delegated subjects (allowsDelegatedSubject: true). Defaults to walletAddress if omitted. Only valid when all verifiers in verifierIds support allowsDelegatedSubject: true.

signature
string

Required unless authenticated session is present. For raw HTTP, sign the exact signerString returned by POST /api/v1/verification/standardize for this same request body.

signedTimestamp
number

Required unless authenticated session is present. For raw HTTP, this must exactly match the signedTimestamp used during POST /api/v1/verification/standardize.

chainId
integer

Advanced/optional. EVM signing-context hint; when omitted, the API applies its default signing chain. Not required for standard integrations. For non-EVM, use chain (CAIP-2) instead. For chain-specific asset claims (NFT, token, contract), set chainId inside verifier data, not here.

chain
string

CAIP-2 chain identifier for non-EVM wallets (e.g. solana:mainnet). EVM wallets typically omit this; defaults apply for signing context.

signatureMethod
string
options
object
meta
object

Response

OK

success
enum<boolean>
required
Available options:
true
status
string
required
message
string
required
data
object
required
creditInfo
object