v2.3.0: Typed 402s, tokenized assets, MPP on the edge, and two alarms that stopped lying
LatestThirty PRs merged on 2026-09-02, every one verified on production the same day.
Buyers
- Typed 402s. Every challenge carries the typed output schema as
accepts[0].outputSchema(one copy, first accept) as well as in thebazaarextension, and every route validates under@x402/core's own schemas. Stock x402 clients, native MPP buyers and mppx x402 buyers all still settle. - Tokenized real-world assets.
rwa-list,rwa-markets,rwa-asset,rwa-issuers,rwa-issuer: 649 tokenized stocks, ETFs and commodities with onchain market data and the 33 issuers behind them, $0.003 to $0.006. - Router honesty.
executeViaappears only on rows the router will pay now (executeViaCallableNow); every row and index seller carriesrouterDispatchEligibleandrouterDispatchReason; a manifest-priced route is read live once and then weekly so a seller's newly added rail reaches the index without a manifest change. - Models. gpt-4.1-nano and the
openai/o4prefix retired ahead of OpenAI's dates (gpt-5.6-luna is the nano default, gpt-5-nano stays, gpt-5.6-terra joins premium);/v1/images/fastfails over to gpt-5-image-mini. A refused MCP credential answers the spec's-32043.
Sellers
- agent402-tollbooth 0.10.0. The edge build (Cloudflare Workers, Next.js edge, Deno, Bun) takes MPP through the same
verifyX402callback: aWWW-Authenticate: Paymentchallenge beside the x402 quote, HMAC- and resource-bound credentials translated toPAYMENT-SIGNATURE. The wire codec is a runtime-agnostic module shared with the Node build. - Index. Solana seller leaderboard scanned incrementally; a learned verb no longer flips a path's other method; row-level network inheritance; Base chain-truth on a refused payment.
Reliability and money-safety
- Tempo subscriptions: a slow-RPC failure retries in minutes, and a send that timed out is settled by reading the chain (memo bound to subscription and period) before anything is signed again.
- In-flight report composites are cut off on SIGTERM, so a deploy never spends upstream and then discards the answer.
- Every skill pack runs every tool it advertises; feed-watch walks the newest feed items instead of betting on the first.
- The Postgres alarm no longer confirms a failure against its own cache; the paid canary proves the Tempo subscription rail after every deploy.
- Security review of the day's changes: one Medium found and fixed the same day. Solana leaderboard evidence (attributed by seller-advertised payTo) no longer counts toward the Base router floor; Solana proven-ness is a pay-time chain read against the accept's own payTo.
- mppx 0.9.2, fast-uri 3.1.7, qs 6.16.0 (four same-day CVEs cleared).
Full detail per change on https://agent402.tools/changelog.