Each integration page shows its example in full.
Which one do I use?
I use Express with @x402/express
I use Express with @x402/express
Express. One line:
app.use(forge.middleware()) before paymentMiddleware.I use Express with x402-express (v1)
I use Express with x402-express (v1)
Express (x402 v1). Same one line. v1 challenges carry no extensions, so agents see the description sentence only.
I use Hono (on Node, Bun, Deno or Workers)
I use Hono (on Node, Bun, Deno or Workers)
Hono. One line:
app.use(forge.middleware()) before paymentMiddleware.I use Next.js
I use Next.js
Next.js. Wrap each paid route:
forge.withForge(withX402(…)), plus one route file for Forge’s routes.I use Fastify, Koa or something else
I use Fastify, Koa or something else
Use the core until there’s an adapter. You call a few functions at the points where your server already builds the 402 and the paid response.
How integrations are tested
Each integration runs the same conformance suite (packages/conformance) against the real x402 packages for its framework, using the published SDK entry points (only the facilitator is faked): Express with @x402/express, Hono with @x402/hono, Next.js with @x402/next, and the core with @x402/core. It checks that:
- the challenge gets the sentence once and the extension after the merchant’s own, with
acceptsunchanged - a real
@x402/coreclient echoes the extension back, and the payment still verifies and settles - paid JSON gets the feedback fields and header; strict schemas and text get the header only
- the OpenAPI document is enriched, and the rating routes validate and forward correctly
- the payment receipt carries the extension with the real ID, and the
lifecycletone reaches the challenge and body - agent context is reported with the call and never reaches the merchant’s handler (body and query)
- challenge and interaction events are reported