across-pay-x402
v1.2.0
Published
Crosschain x402 payments via Across Protocol. Bridge from any chain, pay on Base.
Readme
x402 Coinbase Buyer Demo
Coinbase-first x402 buyer demo with Across pre-funding.
What Lives Here
src/buyer/contains the x402 buyer flow and Across funding logic.src/demo/contains the runnable buyer demo entrypoint.src/dev/contains local-only helpers and the local x402 seller.
Wallet Surface
The demo uses a Coinbase CDP server wallet via @coinbase/cdp-sdk. The buyer's private key never leaves Coinbase infrastructure — signing happens via the CDP API.
The wallet is resolved through src/buyer/coinbase-wallet.ts, which calls cdp.evm.getOrCreateAccount({ name: 'x402-buyer' }) to create or retrieve a persistent server-managed wallet.
Environment
CDP_API_KEY_ID— CDP API key IDCDP_API_KEY_SECRET— CDP API key secretCDP_WALLET_SECRET— CDP wallet secret (required for signing)MERCHANT_KEY— merchant private key (local seller only)PORT
Create a local .env.local in this folder:
cp .env.example .env.localCommands
npm install
npm run preflight
npm run demo:local
npm run demo:local:strict
npm run demo:external
npm run dev:serverNotes
- Mainnet target is Base (
eip155:8453). - The x402 seller requires CDP credentials for verify and settlement.
- The buyer does not reimplement x402; it funds first, then lets the x402 SDK create the payment payload and replay the request.
demo:localuses the local seller by default.demo:externaltargets the CoinGecko x402 endpoint.
