VEY1 API

Forensic crypto project due diligence. One endpoint, two modes: a free demo (rate-limited to 1 call per 30s) for trying things out, and the production POST /v1/audit endpoint that's paywalled via the x402 protocol on X Layer (1.5 USDT0 per audit).

How the x402 flow works
  1. Your agent sends a request to POST /v1/audit without a payment header.
  2. VEY1 returns HTTP 402 with a PAYMENT-REQUIRED response header containing the base64-encoded x402 challenge (the amount, network, receiving wallet, and asset contract).
  3. Your agent signs the challenge with its Agentic Wallet (EIP-3009 / EIP-712 signature on the USDT0 contract).
  4. Your agent re-sends the same request, this time with the signed payment in the X-PAYMENT header.
  5. VEY1 verifies the payment against the OKX facilitator, then runs the audit and returns the result + PDF link.

Free demo

POST /v1/demo
Run an audit on any project. No payment required. Rate-limited to 1 call per 30 seconds per IP. Returns the same audit data as the paid endpoint.

Request body

{
  "query": "SushiSwap"           // OR use a preset via "target": "uniswap" | "hyperliquid" | "safemoon"
}

Response (200 OK)

{
  "reportId": "TL-2026-07-15-XXXX",
  "project": "SushiSwap",
  "riskScore": 50,
  "recommendation": "CAUTION",
  "reasoning": "The Uniswap project has a neutral risk profile...",
  "flags": [{ "color": "YELLOW", "category": "DATA_GAP", "message": "..." }],
  "comparableProjects": [{ "name": "Uniswap", "status": "ACTIVE" }],
  "pdf": { "url": "https://vey1.xyz/reports/TL-2026-07-15-XXXX.pdf", "pageCount": 8 },
  "html": { "url": "https://vey1.xyz/reports/TL-2026-07-15-XXXX.html" },
  "durationMs": 4250
}

Try it

curl -X POST https://vey1.xyz/v1/demo \
  -H "content-type: application/json" \
  -d '{"query": "SushiSwap"}'

Paid audit (x402)

POST /v1/audit
Same audit, but paywalled. 1.5 USDT0 per call on X Layer (chain eip155:196). Your Agentic Wallet signs the payment automatically when it sees the 402 response.

Step 1 — Make a request without payment

curl -i -X POST https://vey1.xyz/v1/audit \
  -H "content-type: application/json" \
  -d '{"query": "Uniswap"}'

Step 2 — Receive the 402 challenge

HTTP/2 402
content-type: application/json
payment-required: eyJ4NDAyVmVyc2lvbiI6MiwicmVzb3VyY2UiOnsidXJsIjoi...
x-payment-required: eyJ4NDAyVmVyc2lvbiI6MiwicmVzb3VyY2UiOnsidXJsIjoi...

{
  "x402Version": 2,
  "resource": {
    "url": "https://vey1.xyz/v1/audit",
    "description": "VEY1 forensic project audit — returns a 12-18 page PDF",
    "mimeType": "application/json"
  },
  "accepted": {
    "scheme": "exact",
    "network": "eip155:196",
    "maxAmountRequired": "1500000",
    "payTo": "0x72233b78747765244855dd27180bbed9c0245f96",
    "maxTimeoutSeconds": 300,
    "asset": "0x779ded0c9e1022225f8e0630b35a9b54be713736",
    "extra": { "name": "USD₮0", "version": "1" }
  }
}

Step 3 — Your agent signs + retries

Your Agentic Wallet (e.g. via the onchainos CLI or the OKX Pay SDK) signs the maxAmountRequired USDT0 transfer authorization (EIP-3009 TransferWithAuthorization), wraps the signature in a base64-encoded JSON payload, and re-sends the same request with that payload in the X-PAYMENT header.

Step 4 — Receive the audit

Once the facilitator verifies the payment on-chain, the same JSON response as the free demo is returned, plus the signed X-PAYMENT-RESPONSE header with the settlement receipt.

Try it with the onchainos CLI

curl -i -X POST https://vey1.xyz/v1/audit \
  -H "content-type: application/json" \
  -d '{"query": "Uniswap"}' 2>&1 | head -20
# → see the 402 challenge and the PAYMENT-REQUIRED header

Service info

GET /v1/info
Discovery endpoint — returns the agent's name, price, payment network, asset, and receiving wallet. No payment required.
curl https://vey1.xyz/v1/info

Report files

GET /reports/:filename
Fetch a generated report (HTML or PDF). No payment required once the audit is paid for. Path-traversal guard in place.

Error codes

StatusWhen
200Success. Report is in the response body + pdf.url / html.url.
400Missing or malformed query field.
402x402 challenge. Send the signed payment header to retry.
429Demo rate limit (1 call per 30s per IP).
500Audit pipeline error. Inspect the error field for details.

What the audit contains

Every report is a 12-18 page PDF covering: