Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Design and implement demos combining x402 HTTP payments with ERC-7710 smart contract delegations and ERC-7715 wallet permission requests for subscriptions, bounded agent budgets, recurring spend, pay-per-use APIs, and agentic commerce.
.claude/skills/internet-court-x402-erc7710/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-08 | ✗→✓ | ▲ Improved | 180% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 80% | 0% |
| case-01 | ✗→✓ | ▲ Improved | 106% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 80% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 55% | 0% |
Use this skill when a user wants a payment or subscription demo where an agent pays for HTTP resources through x402 and spends only within a bounded delegated permission.
402 Payment Required, payment requirements, and a retry path where the client submits a signed payment payload. A facilitator can verify and settle the payment before the server returns the resource.Use x402 for "pay now for this HTTP request." Use ERC-7710/7715 for "this agent may keep paying under these constraints."
When the user has only asked to use or inspect a paid HTTP service, stay in discovery mode:
402 Payment Required.extra.assetTransferMethod when present.Do not draft a subscription, mandate, cadence, schedule, spend cap, expiration, or wallet permission until the user asks for setup or confirms they want to continue. Do not infer "daily", "weekly", or "recurring" authority from a product objective alone; wait for the user to approve delegation design.
Good discovery response shape:
textI found the paid endpoint and its x402 requirements. - Endpoint: GET /path - Network: ... - Token: ... - Price: ... - Payee: ... I have not made a paid request. Do you want me to help set up bounded payment authority for this task?
When the user objects to trusting the agent with money, keep the options distinct:
Do not assign exact route, price, cadence, or expiry values to the Basic option. Those constraints belong in Guarded or Adjudicated setup after the user chooses that path.
When the user selects adjudicated authority, proceed to setup instead of drafting a final mandate artifact immediately.
The right response is operational:
Do not ask for arbitrary expiration, schedule, or spend-cap choices in this beat unless the previous conversation lacks enough facts to create a safe testnet permission request. Do not claim the permission is ready before the user approves it.
For subscriptions, do not make x402 stateful. Keep x402 as the request payment protocol and put recurrence in the delegated spend policy.
Recommended policy fields:
tstype AgentSpendPolicy = { delegator: `0x${string}`; delegate: `0x${string}`; token: `0x${string}`; allowedPayTo: `0x${string}`; allowedResourcePattern: string; maxPerRequest: bigint; maxPerPeriod: bigint; periodSeconds: number; validAfter: number; validUntil: number; chainId: number; revocable: boolean; };
Execution flow:
Build Agent Research Pass unless the user asks otherwise:
/api/evidence/report.When building an exploratory dashboard, use this shape:
erc20-token-periodic for recurring agent spend, erc20-token-allowance for one-shot budgets, and erc20-token-stream only when continuous accrual is central to the demo.extra.assetTransferMethod = "erc7710" or the MetaMask x402 client should refuse the payment.The exported agent package is a bearer capability in demo form. Include explicit warnings, keep caps tiny, and never export production private keys.
The same delegated-wallet pattern can support non-x402 actions when the wallet and delegation manager expose them: ERC-20 allowance, ERC-20 periodic spend, ERC-20 streams, native token permissions, token approval revocation, and general contract executions through delegation scopes.
When the user wants to operate this demo by talking to Codex instead of using a UI, offer a concrete menu before implementing:
extra.assetTransferMethod = "erc7710".continue, warn, constrain, revoke, or escalate.Ask direct implementation choices when the user has not specified them, especially:
State the wallet boundary clearly: Codex can prepare the ERC-7715 request, scripts, and artifact, but the user must approve MetaMask wallet prompts. Do not claim Codex can silently grant wallet permissions.
When the user wants to deploy or configure contracts from MetaMask or WalletConnect:
0x plus 64 hex characters, and EVM addresses are 0x plus 40 hex characters. Malformed values are not receipts.For the local Internet Court x402 demo, WalletSpendReporter takes the Base BridgeSender.sol address 0x7AB80AE93246108bd1e80b8215c5F1147Ca56af0 as initialBridgeSender. Do not use the Base BridgeReceiver address 0xF92d8e5F1620E464eEac5fab5472dA06fbfA5C73 or the GenLayer BridgeSender Intelligent Contract there. The GenLayer BridgeSender Intelligent Contract is only for the GenLayer supervisor constructor.
For the local Internet Court x402 demo, GenLayerDecisionReceiver.initialSourceContract is the GenLayer supervisor address once known. If the supervisor is not deployed yet, ask for an explicit temporary nonzero placeholder and label it as temporary; never silently use the GenLayer BridgeSender Intelligent Contract as that placeholder.
For supervised delegated payments, model review cadence in the mandate and artifact:
continue, warn, constrain, revoke, or escalate;Never say GenLayer directly revokes ERC-7710 unless the EVM-side controller or caveat check has been wired into the redemption path.
When asked to implement or spec a demo, produce:
spent, requestCount, and a generic getDelegatedSpendSnapshot.For paid report or API-resource demos using x402 plus review guardrails:
RevocationController; agent-side route checks alone are not malicious-agent resistant.references/demo-blueprints.md for detailed demo flows and policy variations.| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-08 | fail→pass | 8,644 | 5,854 | -32% | 1 | 1 | 0% | 1,614 | 4,525 | +180% | 0 | 0 | — |
case-09 | fail→pass | 14,327 | 7,763 | -46% | 1 | 1 | 0% | 2,688 | 4,843 | +80% | 0 | 0 | — |
case-01 | fail→pass | 10,862 | 5,074 | -53% | 1 | 1 | 0% | 2,135 | 4,407 | +106% | 0 | 0 | — |
case-02 | fail→pass | 17,340 | 10,323 | -40% | 1 | 1 | 0% | 2,897 | 5,206 | +80% | 0 | 0 | — |
case-03 | fail→fail | 19,823 | 10,560 | -47% | 1 | 1 | 0% | 3,689 | 5,498 | +49% | 0 | 0 | — |
case-04 | fail→pass | 14,311 | 4,020 | -72% | 1 | 1 | 0% | 2,765 | 4,275 | +55% | 0 | 0 | — |
case-05 | fail→pass | 15,297 | 3,150 | -79% | 1 | 1 | 0% | 3,044 | 3,971 | +30% | 0 | 0 | — |
case-06 | pass→pass | 9,041 | 6,201 | -31% | 1 | 1 | 0% | 1,700 | 4,632 | +172% | 0 | 0 | — |
case-07 | fail→pass | 9,401 | 5,422 | -42% | 1 | 1 | 0% | 1,788 | 4,418 | +147% | 0 | 0 | — |
case-10 | fail→pass | 20,819 | 2,543 | -88% | 1 | 1 | 0% | 1,838 | 3,863 | +110% | 0 | 0 | — |
case-11 | fail→pass | 14,849 | 6,615 | -55% | 1 | 1 | 0% | 2,557 | 4,539 | +78% | 0 | 0 | — |
case-12 | fail→pass | 12,998 | 8,498 | -35% | 1 | 1 | 0% | 2,288 | 5,020 | +119% | 0 | 0 | — |
case-13 | pass→pass | 11,452 | 4,797 | -58% | 1 | 1 | 0% | 1,915 | 4,196 | +119% | 0 | 0 | — |
case-14 | pass→pass | 8,133 | 3,901 | -52% | 1 | 1 | 0% | 1,500 | 4,219 | +181% | 0 | 0 | — |
case-15 | pass→pass | 10,348 | 2,890 | -72% | 1 | 1 | 0% | 1,795 | 3,773 | +110% | 0 | 0 | — |
case-16 | pass→pass | 11,830 | 4,214 | -64% | 1 | 1 | 0% | 1,960 | 4,076 | +108% | 0 | 0 | — |
case-17 | fail→pass | 13,848 | 6,398 | -54% | 1 | 1 | 0% | 2,305 | 4,514 | +96% | 0 | 0 | — |
case-18 | fail→pass | 12,857 | 10,876 | -15% | 1 | 1 | 0% | 2,393 | 5,347 | +123% | 0 | 0 | — |
case-19 | fail→pass | 7,456 | 4,532 | -39% | 1 | 1 | 0% | 1,215 | 4,220 | +247% | 0 | 0 | — |
case-20 | pass→pass | 12,367 | 8,484 | -31% | 1 | 1 | 0% | 2,580 | 5,023 | +95% | 0 | 0 | — |
case-21 | pass→pass | 8,539 | 6,265 | -27% | 1 | 1 | 0% | 1,811 | 4,621 | +155% | 0 | 0 | — |
case-22 | pass→pass | 13,345 | 10,199 | -24% | 1 | 1 | 0% | 2,647 | 5,353 | +102% | 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. 22 cases were attempted. The headline lift of +59 percentage points is the difference between those two pass rates over the 22 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.