First unpaid 402 for EVM agent builders

No wallet required for this first check

This page exists for one decision only: trigger one live unpaid 402 Payment Required response and stop there unless the route looks correct.

If the journey started on https://nishvault.com, the canonical bridge for this exact step is https://nishvault.com/go/first-check.

Readable path

  1. Trust starts on https://nishvault.com.
  2. The bridge URL is https://nishvault.com/go/first-check.
  3. The live metadata stays on https://api.nishvault.com/.well-known/x402.
  4. This page runs the first unpaid check on https://api.nishvault.com/simulate/transaction-preflight.
  5. Only after a correct unpaid result do you open https://api.nishvault.com/required-before-send.

Start here: run the live unpaid check now

Do not browse more docs first. Run the inline request, inspect the real payment_required response, and only then decide whether anything paid is worth your time.

The only job on this page

  1. Click Run the live unpaid 402 now once.
  2. Confirm the inline result says status = 402 and error = "payment_required".
  3. If both are true, take exactly one paid next step. If not, stop and do not branch into other docs.

Qualified first-check signal

A real first-check success is not “the page loaded.” It is one live unpaid response from /simulate/transaction-preflight with the same route and price metadata you would use for the paid retry.

{
  "status": 402,
  "ok": false,
  "body": {
    "error": "payment_required",
    "product": "evm-transaction-preflight",
    "price": "$0.01",
    "network": "eip155:8453",
    "firstCheckUrl": "https://api.nishvault.com/first-unpaid-402",
    "quickstartUrl": "https://api.nishvault.com/quickstart",
    "browserDemoUrl": "https://api.nishvault.com/#landing-browser-402"
  }
}

Live unpaid 402 result

This is the main action on this page. Run one live unpaid request inline, inspect the real payment_required response, and stop here unless the route looks correct.

{
  "chainId": "0x2105",
  "from": "0x1111111111111111111111111111111111111111",
  "to": "0x2222222222222222222222222222222222222222",
  "data": "0x",
  "value": "0x0"
}
The live result will appear here. Expected first success: status 402 with error = "payment_required" from /simulate/transaction-preflight.

If you arrived from the root bridge with autorun=1, the page will run this unpaid check automatically and print the live result inline.

Advanced / after-first-check paths

Fastest fallback: one paste

SELLER_BASE_URL=https://api.nishvault.com bash -lc '
curl -sS "$SELLER_BASE_URL/.well-known/x402" | jq "{title, primaryPersona, route, price, network, payTo, quickstartUrl, browserDemoUrl}" &&
curl -sS -H "content-type: application/json" -X POST "$SELLER_BASE_URL/simulate/transaction-preflight" --data '"'"'{"chainId":"0x2105","from":"0x1111111111111111111111111111111111111111","to":"0x2222222222222222222222222222222222222222","data":"0x","value":"0x0"}'"'"' | jq "{error, product, price, network, quickstartUrl, browserDemoUrl}"
'

This runs discovery and then one unpaid POST. If the second response is not payment_required, stop and do not pay.

Only after the unpaid 402

Mark this browser as owner traffic if you are testing the funnel yourself.