01
Create account

Sign up in the console. Get your first project + API key instantly.

https://x402.milady-app.com/console
02
Request a quote

Your backend calls quote with the project API key.

curl -X POST /v2/quote \
  -H 'Authorization: Bearer <KEY>' \
  -d '{"resourceId":"...",
    "amountAtomic":"1000000000000000000",
    "maxTimeoutSeconds":120}'
03
Agent signs EIP-3009

Payer signs the authorization returned by the quote.

{ "signature": "0x...",
  "authorization": {
    "from": "0xPayerAddr",
    "to": "0xMerchantPayTo",
    "value": "1000000000000000000",
    "validAfter": "1709856000",
    "validBefore": "1709856120",
    "nonce": "0x..." }}
04
Verify before serving

Merchant checks validity before delivering the resource.

curl -X POST /verify \
  -H 'Authorization: Bearer <KEY>' \
  -d '{"x402Version":2,
    "paymentRequirements":{...},
    "paymentPayload":{...}}'
05
Settle

Submit settlement with idempotency key.

curl -X POST /settle \
  -H 'Authorization: Bearer <KEY>' \
  -d '{"x402Version":2,
    "verificationId":"a1c9e...",
    "idempotencyKey":"...",
    "paymentRequirements":{...},
    "paymentPayload":{...}}'
QA
Smoke test

End-to-end local test of the full payment flow.

npm run smoke:payment -- \
  --facilitator-url https://x402... \
  --api-key <KEY> \
  --payer-private-key 0x... \
  --resource-id https://... \
  --amount-atomic 1000000000000000000