No facilitator fee
The payer signs the USDC authorization, and the facilitator covers gas.
Use the public x402 facilitator to settle USDC on HyperEVM and Base without running your own relay.
https://facilitator.0xarchive.ioSupported: checking live support
GET /supported -> checking live supportChecking health and support endpoints.
See the exact network, scheme, USDC contract, and explorer before you point a server at the facilitator.
eip155:999
0xb88339cb7199b77e23db6e890353e22632ba630feip155:8453
0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913Use the public facilitator when you want settlement without another relay, another fee layer, or an account gate.
The payer signs the USDC authorization, and the facilitator covers gas.
Point the server at the public exact EVM facilitator instead of running your own settlement service.
Anyone can inspect the public endpoints and point a server at them.
Check support first, use /verify before settlement, call /settle last, and keep /health for a quick service check.
/supportedShows the live networks, scheme, and signer sets.
/verifyChecks payment data before settlement.
Use this after the client prepares payment data and before you settle.
/settleSubmits a verified USDC payment on-chain.
Use this after verify succeeds and the payment is ready to settle.
/healthReturns a quick health check for the public service.
Register the public facilitator on the server, then give the client a signer so paid requests can settle cleanly.
Start with the exact chain and recipient so the server and client stay aligned.
Tell the resource server which network to accept and which public facilitator to call.
Once the client can sign exact EVM payments, paid retries can settle automatically.
Point the resource server at the public facilitator and choose the exact network it should accept.
import express from "express";
import { paymentMiddleware, x402ResourceServer } from "@x402/express";
import { ExactEvmScheme } from "@x402/evm/exact/server";
import { HTTPFacilitatorClient } from "@x402/core/server";
const app = express();
const facilitatorClient = new HTTPFacilitatorClient({
url: "https://facilitator.0xarchive.io",
});
const payTo = "0xYourHyperEvmAddress";
app.use(
paymentMiddleware(
{
"GET /data": {
accepts: [{
scheme: "exact",
price: "$0.001",
network: "eip155:999",
payTo,
}],
description: "Market data endpoint",
mimeType: "application/json",
},
},
new x402ResourceServer(facilitatorClient)
.register("eip155:999", new ExactEvmScheme()),
),
);
app.listen(4021);Once the client can sign exact EVM payments, paid retries can settle without another service in the middle.
import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";
const signer = privateKeyToAccount(
process.env.EVM_PRIVATE_KEY as `0x${string}`,
);
const client = new x402Client();
client.register("eip155:*", new ExactEvmScheme(signer));
const fetchWithPayment = wrapFetchWithPayment(fetch, client);
const response = await fetchWithPayment(
"https://api.0xarchive.io/v1/hyperliquid/orderbook/BTC",
);Use the facilitator on its own for settlement. Add wallet auth only if you also need sign-in, subscriptions, or billing.