coinbase / coinbase/cdp-sdk

Hosted x402 facilitator: exact-SVM compute-limit ceiling tightened into a ~20k–100k band (Aug 23–26), rejecting spec-shaped envelopes; reason diverges from OSS main

Open
#795 3 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
200
Forks
191
Avg merge
6h 16m
Merged PRs (30d)
17

Description

**Component:** hosted x402 facilitator — `api.cdp.coinbase.com/platform/v2/x402`, exact-SVM (Solana mainnet, USDC).

Cross-post of x402-foundation/x402#3268. An x402 contributor has since verified against current `x402` `main` that the compute-limit half **does not reproduce there** (fix pending maintainer review), which points at the CDP-hosted deployment's config/revision — so raising it here on the CDP-managed side.

## What happened
Between **2026-08-23 and 2026-08-26**, the hosted facilitator began rejecting spec-shaped exact-SVM payments that previously settled. Two behaviors:

1. **Compute-limit ceiling tightened into a ~20k–100k band.** A 100,000-CU envelope that **settled on Aug 23** (Solana tx `274cKmt1…Fqu1J`) is now rejected with:
`invalid_exact_svm_payload_transaction_instructions_compute_limit_instruction`
~20,000 CU settles; ~100,000 CU is rejected. No client change across the window.
2. **No compute-limit instruction → SPL Token program rejected:**
`smart_wallet_program_not_allowed: TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA`
(This half *does* reproduce in OSS `main`; an x402 contributor has a focused fallback fix prepared, pending maintainer review — see #3268.)

## Why this looks like the hosted deployment, not `main`
- **Reason-string divergence:** OSS `main` returns `...compute_limit_instruction_too_high` when a configured ceiling is exceeded; the hosted facilitator returned `invalid_exact_svm_payload_transaction_instructions_compute_limit_instruction` for the same 100k-CU envelope. Different code path / revision.
- **Timeline:** identical envelope shape settled Aug 23, rejected by Aug 26 — a deployment window, not a client or spec change.
- The protocol doc (§2.2.1) references a 400k-CU maximum and (§2.3) permits stricter operator policy, but the ~20k–100k band is **not specified anywhere**, and the change was undocumented.

## Impact
Standard x402 clients that omit a compute-limit instruction, or default it high (e.g. 100k, well under the 400k reference), now **fail on the hosted Solana rail** — silently, for envelopes that worked days earlier.

## Ask
- Document / version the hosted facilitator's exact-SVM compute-limit policy, or realign the ceiling toward the §2.2.1 400k reference.
- Surface the `...compute_limit_instruction_too_high` reason for over-ceiling envelopes so clients can self-correct (the current `invalid_...` string is opaque).

## Evidence
Signed, on-chain-verifiable deterministic A/B (pre-change settlement; post-change 20k-settles vs 100k-rejects; identical behavior across two independent endpoints on the same facilitator) is linked in #3268 via Cairn's conformance reports. Happy to re-run against the current hosted revision if a fresh capture helps.

— anchor-x402 (resource server; hit this on its advertised Solana rail)

Contributor guide

Open the contributing guide

Research direction

Start with the linked x402-foundation/x402#3268 thread and its conformance reports, then compare the hosted facilitator’s observed behavior with protocol sections §2.2.1 and §2.3. The issue asks for the hosted compute-limit policy to be documented or realigned and for over-limit errors to use a clearer reason; confirm the current hosted behavior before assessing whether either change is appropriate.

Written by the indexing model from the issue text.

Assessment

Domain
api, backend-api-design, payments
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.