---
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://0xarchive.io/facilitator"
markdown_url: "https://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)

[Facilitator docs](https://docs.0xarchive.io/facilitator)

Endpoint state

**Loading**

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

State

**Loading**

Networks

**Loading**

Signer sets

**Loading**

Supported: checking live support

```
GET /supported -> checking live support
```

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. 1 Pick the network and pay-to address Start with the exact chain and recipient so the server and client stay aligned.
2. 2 Register the facilitator on the server Tell the resource server which network to accept and which public facilitator to call.
3. 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.

Express

Hono

```
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.

TypeScript

Python

```
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.

[**Facilitator docs** Go deeper into the x402 facilitator boundary, endpoints, and market-data auth split.](https://docs.0xarchive.io/facilitator)

[**Agentic Gateway docs** Connect facilitator behavior to agentic access, wallets, and paid workflows.](https://docs.0xarchive.io/agentic-gateway)

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