How To · Veridex · policy after 402

Policy gate for skill-pack purchases

LVL does not approve the buyer’s spend. The buyer policy engine does, after the 402, because that is the first response that contains amount, asset, payTo, skill id, and outline.

Unit fix — Base USDC has 6 decimals. Canary agent-x402-first-buy live challenge is atomic 5000 = $0.005. That is not $5.00. $5.00 is atomic 5000000. Read amount_usd.
  1. Session precheck only: session active, purchase authorized, rate limit. Not budget. Not whitelist.
  2. GET /api/pay?skill=agent-x402-first-buy → HTTP 402.
  3. Evaluate proposal (amount, asset, network eip155:8453, payTo, outline metadata).
  4. allow → sign the Base USDC transfer. deny or escalate → do not sign.
  5. Wait for inclusion. POST /api/pay with X-PAYMENT {"txHash","skill"}.
  6. Paid but no files: POST /api/recover with the same tx hash. Do not send a second transfer.

Machine pack: skill-pack-purchasing-v1.json · API: /api/policy · Challenge: /api/pay?skill=agent-x402-first-buy · Recover: /recover/

Audit every decision with agent id, session id, skill id, decision, reasoning, and timestamp. LVL’s public ledger remains /api/proof — confirmed unlocks only.