Install any skill in seconds. Free to start, no credit card required.
Get Started Free →x402 agentic payments (Coinbase's HTTP 402 protocol). Custody-free tools to pay x402-protected endpoints (build the EIP-3009 transferWithAuthorization the payer signs, assemble the X-PAYMENT header), call a facilitator (verify/settle/supported), and monetize your own API by generating PaymentRequirements. USDC on Base. Triggers: x402, HTTP 402, pay per request, agentic payment, machine payment, X-PAYMENT, transferWithAuthorization, EIP-3009, facilitator, monetize API, pay for API, agent pays.
.claude/skills/internet-court-x402/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-03 | ✗→✓ | ▲ Improved | -7% | 0% |
| case-06 | ✗→✓ | ▲ Improved | -17% | 0% |
| case-07 | ✗→✓ | ▲ Improved | -47% | 0% |
| case-08 | ✗→✓ | ▲ Improved | -43% | 0% |
| case-09 | ✗→✓ | ▲ Improved | -47% | 0% |
x402 turns HTTP 402 Payment Required into a real payment rail for agents: a server replies 402 with what it wants paid; the client signs an off-chain authorization and retries with an X-PAYMENT header; a facilitator broadcasts it. Settlement uses EIP-3009 transferWithAuthorization (e.g. USDC on Base) — the facilitator can only broadcast the signed authorization, never alter the amount or destination.
Custody-free: the plugin builds the EIP-712 the payer signs and assembles the header; it never holds a key.
| Tool | Purpose | |---|---| | chaingpt_x402_decode | Decode a 402 body or X-PAYMENT header into human terms (amount/token/recipient/expiry) before paying. | | chaingpt_x402_build_payment | Build the UNSIGNED EIP-3009 typed data; pass a signature back to get the final X-PAYMENT header. | | chaingpt_x402_facilitator | Call a facilitator: supported / verify / settle. | | chaingpt_x402_create_requirements | Server side: generate the PaymentRequirements + 402 body to monetize your endpoint. | | chaingpt_x402_fetch | The whole client loop in one tool: fetch a URL; on 402 it decodes the challenge and (given from) emits the unsigned typed data; re-call with xPaymentHeader to complete the paid request. |
Fast path — one tool drives the loop:
chaingpt_x402_fetch url=<resource> from=<payer> → on 402 you get the decoded price/payee AND the unsigned EIP-3009 typed data.chaingpt_x402_build_payment from=<payer> requirements=<from step 1> signature=0x… → the X-PAYMENT header.chaingpt_x402_fetch url=<resource> xPaymentHeader=<header> → the paid response.Manual path (same primitives, finer control): _decode → _build_payment → sign → _build_payment +signature → retry yourself.
chaingpt_x402_create_requirements network=base amount=0.01 payTo=<you> → serve the returned JSON with HTTP 402. Verify/settle incoming payments via a facilitator (chaingpt_x402_facilitator).
Known EIP-3009 tokens: USDC on base and base-sepolia. For other tokens pass full PaymentRequirements (with asset + extra.name/extra.version). 0 ChainGPT credits.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 13,412 | 5,770 | -57% | 1 | 1 | 0% | 2,760 | 1,164 | -58% | 0 | 0 | — |
case-02 | fail→fail | 9,691 | 5,565 | -43% | 1 | 1 | 0% | 2,116 | 1,128 | -47% | 0 | 0 | — |
case-03 | fail→pass | 7,114 | 2,635 | -63% | 1 | 1 | 0% | 1,408 | 1,309 | -7% | 0 | 0 | — |
case-04 | pass→pass | 7,302 | 3,162 | -57% | 1 | 1 | 0% | 1,251 | 921 | -26% | 0 | 0 | — |
case-05 | pass→pass | 8,699 | 2,369 | -73% | 1 | 1 | 0% | 1,764 | 1,098 | -38% | 0 | 0 | — |
case-06 | fail→pass | 9,201 | 3,866 | -58% | 1 | 1 | 0% | 1,810 | 1,509 | -17% | 0 | 0 | — |
case-07 | fail→pass | 13,107 | 2,905 | -78% | 1 | 1 | 0% | 2,370 | 1,259 | -47% | 0 | 0 | — |
case-08 | fail→pass | 10,610 | 2,434 | -77% | 1 | 1 | 0% | 2,030 | 1,160 | -43% | 0 | 0 | — |
case-09 | fail→pass | 10,485 | 1,972 | -81% | 1 | 1 | 0% | 2,059 | 1,092 | -47% | 0 | 0 | — |
case-10 | fail→pass | 19,529 | 2,386 | -88% | 1 | 1 | 0% | 1,188 | 1,213 | +2% | 0 | 0 | — |
case-11 | pass→pass | 4,138 | 2,071 | -50% | 1 | 1 | 0% | 749 | 972 | +30% | 0 | 0 | — |
case-12 | fail→pass | 12,955 | 5,025 | -61% | 1 | 1 | 0% | 2,361 | 1,689 | -28% | 0 | 0 | — |
case-13 | pass→pass | 7,624 | 5,045 | -34% | 1 | 1 | 0% | 1,417 | 940 | -34% | 0 | 0 | — |
case-14 | pass→pass | 5,328 | 2,721 | -49% | 1 | 1 | 0% | 904 | 1,202 | +33% | 0 | 0 | — |
case-15 | pass→pass | 6,523 | 2,474 | -62% | 1 | 1 | 0% | 1,158 | 1,133 | -2% | 0 | 0 | — |
case-16 | fail→pass | 5,780 | 1,568 | -73% | 1 | 1 | 0% | 1,105 | 985 | -11% | 0 | 0 | — |
case-17 | fail→pass | 9,131 | 5,780 | -37% | 1 | 1 | 0% | 1,700 | 1,864 | +10% | 0 | 0 | — |
case-18 | pass→pass | 7,133 | 2,138 | -70% | 1 | 1 | 0% | 1,079 | 1,057 | -2% | 0 | 0 | — |
case-19 | pass→pass | 14,671 | 6,072 | -59% | 1 | 1 | 0% | 2,531 | 1,797 | -29% | 0 | 0 | — |
case-20 | pass→pass | 17,711 | 4,160 | -77% | 1 | 1 | 0% | 1,993 | 1,458 | -27% | 0 | 0 | — |
case-21 | pass→pass | 10,153 | 4,448 | -56% | 1 | 1 | 0% | 1,841 | 1,504 | -18% | 0 | 0 | — |
case-22 | pass→pass | 9,516 | 10,838 | +14% | 1 | 1 | 0% | 1,604 | 1,682 | +5% | 0 | 0 | — |
case-23 | pass→pass | 11,172 | 7,219 | -35% | 1 | 1 | 0% | 2,189 | 2,102 | -4% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted, and 20 counted toward the lift figure. The other 3 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +39 percentage points is the difference between those two pass rates over the 20 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.