---
title: "x402 Facilitator | 0xArchive"
description: "Fee-free x402 facilitator for HyperEVM and Base, with live network checks, ordered endpoints, and server/client integration guidance for exact USDC settlement."
canonical_url: "https://www.0xarchive.io/facilitator/"
markdown_url: "https://www.0xarchive.io/facilitator.md"
route: "/facilitator"
robots: "index, follow"
generated_from: "prerendered_html"
---

Public facilitator

# x402 settlement without running a relay.

Use the public x402 facilitator to settle USDC on HyperEVM and Base without running your own relay.

[Open /supported](https://facilitator.0xarchive.io/supported)

[Agentic Gateway docs](https://www.0xarchive.io/docs/wallet-automation/)

Live check Public facilitator URL One public URL for support, verify, settle, and health checks.

`https://facilitator.0xarchive.io`

State Loading Networks Loading Signer sets Loading

Checking health and support endpoints.

## Live networks

See the exact network, scheme, USDC contract, and explorer before you point a server at the facilitator.

### HyperEVM

eip155:999

Checking

Scheme

**exact**

Asset standard

**EIP-3009 USDC**

USDC contract

`0xb88339cb7199b77e23db6e890353e22632ba630f`

Explorer

[Open explorer](https://hypurrscan.io)

### Base

eip155:8453

Checking

Scheme

**exact**

Asset standard

**EIP-3009 USDC**

USDC contract

`0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913`

Explorer

[Open explorer](https://basescan.org)

## What this removes

Use the public facilitator when you want settlement without another relay, another fee layer, or an account gate.

Costs

### No facilitator fee

The payer signs the USDC authorization, and the facilitator covers gas.

Infra

### No extra relay to run

Point the server at the public exact EVM facilitator instead of running your own settlement service.

Access

### No account gate

Anyone can inspect the public endpoints and point a server at them.

## Endpoints in order

Check support first, use /verify before settlement, call /settle last, and keep /health for a quick service check.

[1 GET `/supported` Shows the live networks, scheme, and signer sets. Open endpoint](https://facilitator.0xarchive.io/supported)

2

POST

`/verify`

Checks payment data before settlement.

Used when

Use this after the client prepares payment data and before you settle.

3

POST

`/settle`

Submits a verified USDC payment on-chain.

Used when

Use this after verify succeeds and the payment is ready to settle.

[4 GET `/health` Returns a quick health check for the public service. Open endpoint](https://facilitator.0xarchive.io/health)

## Set up the server and client

Register the public facilitator on the server, then give the client a signer so paid requests can settle cleanly.

1

### Pick the network and pay-to address

Start with the exact chain and recipient so the server and client stay aligned.

2

### Register the facilitator on the server

Tell the resource server which network to accept and which public facilitator to call.

3

### Give the client a signer

Once the client can sign exact EVM payments, paid retries can settle automatically.

Register the facilitator on the server

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);
```

Give the client a signer

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",
);
```

## Continue into wallet auth

Use the facilitator on its own for settlement. Add wallet auth only if you also need sign-in, subscriptions, or billing.

[Agentic Gateway docs Go deeper into wallet sign-in, subscriptions, and paid access.](https://www.0xarchive.io/docs/wallet-automation/)

[x402 docs Read the broader protocol documentation and client behavior details.](https://docs.x402.org/introduction)
