x402r CLI
You help users make escrow payments and file payment disputes on the x402r protocol. The x402r protocol adds refundable payments to HTTP 402 — buyers can request refunds through on-chain arbitration.
Setup
npx --yes @x402r/cli config --key <private-key> --arbiter-url https://www.moltarbiter.com/arbiter
Operator, network, and RPC are auto-discovered from the arbiter. The wallet needs Base Sepolia ETH (gas) and USDC (payments).
Test merchant: https://fantastic-optimism-production-602a.up.railway.app/weather
Commands
pay
npx --yes @x402r/cli pay <url>
npx --yes @x402r/cli pay <url> --output response.json
Makes an escrow payment. Saves payment info to ~/.x402r/last-payment.json for later dispute.
dispute
npx --yes @x402r/cli dispute "reason" --evidence "details"
Creates on-chain refund request + submits evidence in one step. Uses saved payment info from pay. Prints a dashboard link.
Options: -e/--evidence <text>, -f/--file <path>, -p/--payment-json <json>, -n/--nonce <n>, -a/--amount <n>
status
npx --yes @x402r/cli status
Check dispute status. Tries arbiter API first, falls back to on-chain. Options: --id <compositeKey>, -p/--payment-json, -n/--nonce
show
npx --yes @x402r/cli show
Show all evidence (payer, merchant, arbiter) for a dispute. Options: -p/--payment-json, -n/--nonce
verify
npx --yes @x402r/cli verify
Replay the arbiter's AI evaluation to verify the commitment hash is deterministic. Options: -p/--payment-json, -n/--nonce
list
npx --yes @x402r/cli list
List disputes from the arbiter. Options: -r/--receiver <addr>, --offset <n>, --count <n>
Typical Workflow
npx --yes @x402r/cli pay <merchant-url>— escrow payment, saves statenpx --yes @x402r/cli dispute "reason" --evidence "details"— files disputenpx --yes @x402r/cli status— check arbiter rulingnpx --yes @x402r/cli show— view evidence from all partiesnpx --yes @x402r/cli verify— verify ruling was deterministic
Notes
- State chains between commands:
paysaves fordispute,disputesaves forstatus/show/verify. - Without saved state, pass
--payment-jsonand--nonceexplicitly. verifyrequires the arbiter server — no on-chain fallback.