<!--
Parallel Documentation — this page, as markdown.
Index of every page: https://docs.parallel.best/llms.txt
The whole documentation in one file: https://docs.parallel.best/llms-full.txt
-->

# Migrate from Coinbase x402 to Parallel

If you already use the Coinbase x402 facilitator, switching to Parallel takes a few minutes. x402 is a standard — your routes, your pricing, and your existing agent clients keep working.

## The change

**Before (Coinbase x402):**

```ts
import { paymentMiddleware } from "x402-express";

app.use(paymentMiddleware(
  "0x71C7656EC7ab88b098defB751B7401B5f6d8976F",
  { "/api/search": { price: "$0.01", network: "base" } },
  { url: "https://x402.org/facilitator" }
));
```

**After (Parallel x402):**

```ts
import { paymentMiddleware } from "@parallel-protocol/x402/express";

app.use(paymentMiddleware({
  facilitator: { url: "https://agents.parallel.best" },
  routes: {
    "/api/search": {
      price: "0.01",
      network: "base",
      payTo: "0x71C7656EC7ab88b098defB751B7401B5f6d8976F"
    }
  }
}));
```

Install `@parallel-protocol/x402` 0.8.2 or later: since 1 October 2026 the facilitator refuses a settle that does not present the token it issued at verify, and versions before 0.8.0 do not send it. Version 0.8.1 adds the URL checks below.

Keep the facilitator's URL in https, as above. Since 0.8.1, the SDK refuses a plain http URL outside `localhost`, `127.0.0.1` and `[::1]` with an `X402ConfigError` when the middleware is created. It calls that address only and never follows a redirect, which fails the call with `FACILITATOR_UNAVAILABLE`.

The shape changes — `payTo` moves into the route, and prices drop the `$` prefix — but every concept maps one-to-one. Agents paying in USDC keep paying in USDC. Agents holding USDp can now pay you natively, with the facilitator handling conversion at no extra fee.

## What you gain

* **Automatic conversion** when the agent holds one token and you accept another — no extra platform fee.
* **Gas sponsored** on Base, HyperEVM, and Avalanche.
* **More tokens accepted** — USDp, USDC, and sUSDp (yield-bearing: your revenue earns from the moment it settles).
* **Same x402 standard** — no API change, no breaking change, no agent migration required.

## What stays the same

* Your handler signatures.
* Your existing agent clients.
* Your wallet address — funds still settle directly to it.

## Comparison

|  | Coinbase x402 | **Parallel x402** |
|---|---|---|
| Tokens accepted | USDC only | **USDC, USDp, and sUSDp** |
| Conversion | — | **Automatic, no extra platform fee** |
| Gas | Standard | **Sponsored on Base, HyperEVM, and Avalanche** |
| Settles to | Your wallet | **Your wallet** |
| Standard | x402 | **x402 (compatible)** |

## FAQ

**Do I lose access to USDC payments?** No. USDC is fully supported.

**Do I need to update my agent clients?** No. x402 is a standard — agents sending standard USDC payment payloads keep working.

**Can I run both facilitators in parallel?** Yes — point different routes (or different deployments) at different facilitators.

