# x402-mesh is now rail-agnostic: born on x402, rides everywhere _x402-mesh is now rail-agnostic and rides Stripe MPP, ACP and Google AP2 in addition to x402. It still turns a 402 Payment Required into a signed peer menu and pays the referrer a commission when the agent picks a competitor._ **Published:** 2026-10-21 **Source:** https://www.startuphub.ai/ai-news/opinions/2026/x402-mesh-rail-agnostic --- Two days ago we landed [c9a70d2](https://github.com/StartupHub-AI/x402-mesh/commit/c9a70d2): Make x402-mesh rail-agnostic: add Stripe MPP, ACP, AP2 (+ L402, card). It sounds like a small README change. It's actually a protocol shift. [x402-mesh](/ai-news/opinions/2026/x402-mesh-open-market-agent-economy) started as a fix for a very specific dead end: an AI agent hits a 402 Payment Required, sees one price from one vendor, and has no way to compare. We turned that dead end into a market by adding two backward-compatible primitives to the 402 body: - **A peer menu:** a signed list of competing offers in the same category - **Settlement:** if the agent picks a competitor, that competitor pays the referrer a commission Vanilla x402 clients ignore it. Mesh-aware agents get a market. But that problem isn't x402-specific. It's every agent payment rail that shipped in the last year. ## The door is the problem, on every rail - **Stripe MPP** (Machine Payments Protocol, Stripe + Tempo, Mar 2026): metered per-call billing for APIs, stablecoin and fiat (cards, Klarna, Affirm) via Shared Payment Tokens - **ACP** (Agentic Commerce Protocol, OpenAI + Stripe): agent checkout, live in ChatGPT Instant Checkout - **Google AP2** (Agent Payments Protocol, 60+ partners including PayPal, Mastercard, Amex, Adyen, Coinbase): the rail-agnostic authorization layer over cards, bank and stablecoin Every one of them presented the agent with the same single-vendor door. So we made the mesh ride on all of them. ## What changed in v0.1 The protocol core is untouched. Sections 2-7 of SPEC.md (the Ed25519 JWT referral token with `iss`, `aud`, `exp`, `jti`, `cpct`; discovery via `/.well-known/x402-mesh.json`; registry with public key mapping; identity composition; 5% default commission; 5-min TTL) are now explicitly rail-neutral. A rail binding is just two functions: 1. Where does the menu ride? 2. And how does the commission split? [SPEC.md §8](https://github.com/StartupHub-AI/x402-mesh/blob/main/SPEC.md#8-rail-bindings) now defines the official bindings: | Rail | Menu carrier | Commission split | Proof | | --- | --- | --- | --- | | x402 (Coinbase) | mesh object in 402 body | atomic MeshSplitter.sol on Base | tx_hash | | L402 (Lightning) | mesh object in 402 body | payout over Lightning | preimage | | Stripe MPP | mesh in payment-required / session response | Stripe Connect application_fee on same charge | charge_id | | ACP | mesh attached to product feed / checkout | Stripe Connect application_fee | charge_id | | Google AP2 | alternatives[] during Cart / Intent Mandate exchange | commission terms inside signed Payment Mandate | mandate_id | The `referral_token` itself is unchanged across rails. On x402/L402 it travels in the follow-up request. On MPP/ACP it travels in the Shared Payment Token metadata. On AP2 it is referenced by the Payment Mandate. That has two big consequences: ### 1. No escrow for fiat vendors On x402, the reference adapter is still the non-custodial `MeshSplitter.sol`: agent pays contract, contract atomically forwards vendor share + referrer commission. No float, no trust. On MPP and ACP, vendors skip the contract entirely. The commission is a native Stripe Connect `application_fee`. The `/settle` endpoint becomes optional for moving money. It's still used for the cross-vendor redemption ledger, which is the foundation for the open agent-reputation primitive. Crypto-native onboarding is still one field: a Base wallet address. No Stripe account, no KYC. ### 2. Card-network agent programs just work Visa Trusted Agent Protocol and Mastercard Agent Pay aren't separate bindings. They settle underneath AP2 or ACP, which already carry the mesh fields. A vendor can support several rails at once by listing them in `payout_rails` in the registry. The menu advertises each peer's accepted rails, so the agent settles on one both sides share. ## The name is historical The name is historical. The protocol was first specified on x402 and still ships its reference adapter there, but it is not limited to it. That's now in the [README](https://github.com/StartupHub-AI/x402-mesh) verbatim. x402-mesh is not "the x402 referral thing" anymore. It's the commerce layer that composes with whatever identity standard wins (Catena ACK-ID with DIDs + VCs, WIMSE / RFC 8693 Token Exchange actor-chain, WorkOS auth.md, A2A / AGNTCY) and settles the money on whatever rail the agent brought. The full wire details are in [SPEC.md §8](https://github.com/StartupHub-AI/x402-mesh/blob/main/SPEC.md#8-rail-bindings), and the reference middleware is still npm [x402-mesh](https://www.npmjs.com/package/x402-mesh). MIT as always. Copy it, fork it, [run your own registry](/docs/x402-mesh). --- Original analysis from [startuphub.ai](https://www.startuphub.ai), the #1 AI startup directory. © StartupHub.ai. All rights reserved. You may not republish this article in full without a license. Search engines and AI research tools may crawl and summarize for reference. Bulk reproduction or model training on this content requires a license. See https://www.startuphub.ai/terms.