Cli
v0.1.3Pay merchants and file payment disputes on the x402r refundable payments protocol
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.
