Put Nishvault before sendTransaction

This browser is marked as owner/self traffic.

Your visits from this browser will be reported separately so the external funnel does not mistake your own testing for outside demand.

Clear owner tag for this browser

This is the shortest self-serve path to stop a programmatic EVM agent from sending blind. Put Nishvault before sendTransaction, confirm one unpaid 402, then run exactly one paid guard on https://api.nishvault.com. The live path is configured for Base mainnet, $0.01, and real USDC revenue.

Fastest first move

Reduce the first decision to one of two cheap actions: one browser click or one terminal paste. Both should end at the same unpaid 402 Payment Required signal before any wallet funding.

Root host to API host path

If you started on https://nishvault.com, this is the measured handoff: trust surface on the root host, then one bridge redirect, then the live API docs and unpaid challenge on https://api.nishvault.com.

  1. https://nishvault.com is the trust host.
  2. https://nishvault.com/go/first-check is the shortest bridge to a real unpaid proof.
  3. https://api.nishvault.com/.well-known/x402 is the live discovery surface on the API host.
  4. https://api.nishvault.com/first-unpaid-402?autorun=1#live-first-check is the canonical unpaid runtime check.
  5. https://api.nishvault.com/quickstart is the paid buyer flow after the unpaid proof passes.

Hard stop before wallet connect

Do not connect or fund a buyer wallet until the no-wallet unpaid challenge matches discovery. If anything below is missing or inconsistent, stop before the paid path.

0. No-wallet browser check

Browser unpaid 402 demo

No wallet needed for the first proof step. Click once to send the example payload from your browser and inspect the live payment_required response. Do not fund a buyer wallet unless this exact unpaid challenge looks correct.

{
  "chainId": "0x2105",
  "from": "0x1111111111111111111111111111111111111111",
  "to": "0x2222222222222222222222222222222222222222",
  "data": "0x",
  "value": "0x0"
}
Click the button to run one live unpaid challenge against /simulate/transaction-preflight.

0b. One-command CLI smoke test

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 is the fastest copy/paste path from discovery to unpaid 402. If the second response is not payment_required, stop and do not move to the paid buyer command.

What you need

1. Confirm discovery

curl -sS https://api.nishvault.com/.well-known/x402 | jq '{title, primaryPersona, route, price, network, payTo, quickstartUrl, browserDemoUrl}'

Expected shape: primaryPersona = "programmatic EVM agent builders", route = "/simulate/transaction-preflight", network = "eip155:8453", price = "$0.01".

2. Confirm the unpaid 402 challenge

curl -sS -H 'content-type: application/json' -X POST https://api.nishvault.com/simulate/transaction-preflight --data '{"chainId":"0x2105","from":"0x1111111111111111111111111111111111111111","to":"0x2222222222222222222222222222222222222222","data":"0x","value":"0x0"}' | jq '{error, product, price, network, quickstartUrl, browserDemoUrl}'

Expected shape: payment_required, quickstartUrl, browserDemoUrl, settlement.railReadiness.

3. Run one paid request

X402_BUYER_PRIVATE_KEY=0xYOUR_BASE_MAINNET_BUYER_KEY npm exec nishvault-preflight-buy -- --seller-url https://api.nishvault.com --rpc-url https://mainnet.base.org --executor 0x044f05a0fcf030c53ea6d50ddc5c0a44527c1b47

Recommended single command after the unpaid 402 check. Expected success: one artifact directory, one HTTP 200, one new settlement tx hash, and one matching wallet-credit check.

npx nishvault-preflight-buy --seller-url https://api.nishvault.com --buyer-key 0xYOUR_BASE_MAINNET_BUYER_KEY --rpc-url https://mainnet.base.org --executor 0x044f05a0fcf030c53ea6d50ddc5c0a44527c1b47

Public npm command for the same paid buyer flow.

4. Put it in front of sendTransaction

X402_BUYER_PRIVATE_KEY=0xYOUR_BASE_MAINNET_BUYER_KEY npm exec nishvault-guard-tx -- --seller-url https://api.nishvault.com --to 0x2222222222222222222222222222222222222222 --data 0x --value 0x0

This is the shortest local CLI when the agent already has one transaction shape and you want a paid preflight before send.

npx --package nishvault-preflight-buy nishvault-guard-tx -- --seller-url https://api.nishvault.com --to 0x2222222222222222222222222222222222222222 --data 0x --value 0x0

Public npm command for the same transaction-flow guard.

What this endpoint is for

Next surfaces