Skip to quick start
x402 facilitator

Live on Flare mainnet & Coston2

Settle x402 payments on Flare.

A public x402 v2 facilitator for the Flare network — verification, gas-sponsored settlement, and the canonical Bazaar discovery registry. Free to use: no fee, no spread. Point a stock x402 SDK at the URL below and nothing else changes.

Integrate in 3 minutes
~1.13 s
Mainnet block time
Final at 1 conf
Snowman++ acceptance
~85.3k gas
Per settlement, sponsored

Payment lifecycle

x402 v2
  1. 01

    402 Payment Required

    Your route answers with price, asset and network.

  2. 02

    Client signs an authorization

    EIP-3009 transferWithAuthorization, or Permit2 where available.

  3. 03

    POST /verifyPOST /settle

    We check nonce state and simulate, then broadcast and pay the gas.

  4. 04

    Receipt, already final

    Idempotent by payment-identifier; retries dedupe.

Finality

One confirmation is the end of it

Flare's C-chain runs Snowman++, so acceptance is final and irreversible. We measured latest == safe == finalized on both networks — waiting for more blocks only adds latency.

Discovery

The canonical Bazaar registry

A neutral, public index of paid resources on Flare. Listings that settled through us carry a verifiable settlement count; directly-registered ones report null — never a misleading zero.

Cost

Gas is on us

Payers sign; the facilitator broadcasts and sponsors the gas, bounded by per-payer and per-epoch ceilings enforced in Postgres so they hold across replicas.

How to use it

One config change

The four core endpoints are deliberately unmodified, so a stock x402 SDK works against us with only a URL swap. Flare-specific capability is additive — extra endpoints, extra extensions, never changed core semantics.

Full docs & configuration →
// npm i x402-express
import express from "express";
import { paymentMiddleware } from "x402-express";

const app = express();

app.use(paymentMiddleware(
  "0xYourSellerAddress",
  {
    "GET /v1/quote": { price: "$0.01", network: "flare" },
  },
  { url: "https://facilitator.route402.dev" },
));

app.get("/v1/quote", (_req, res) => res.json({ ok: true }));
app.listen(3000);

With no signer configured the service still verifies payments and serves the registry; /settle reports settlement_unavailable.

API surface

Endpoints

  • POST

    /verify

    Validate a payload against requirements. No gas.

  • POST

    /settle

    Simulate, broadcast, wait for the receipt.

  • GET

    /supported

    Networks, schemes and assets we settle.

  • GET

    /receipts/:paymentId

    Look up a settlement after the fact.

  • GET

    /discovery/resources

    Paginated Bazaar index. Cacheable, public.

  • GET

    /discovery/search

    Full-text query across listings.

  • POST

    /discovery/register

    List a resource. Open, unauthenticated, rate-limited.

  • GET

    /health · /metrics

    Dependency checks and Prometheus counters.

Bazaar

What’s payable on Flare

Every listing below is one row of GET /discovery/resources. Provenance rides in extensions, so a client can tell a measured listing from a claimed one.

origin=settledorigin=registered
  • /v1/ftso/twap

    Time-weighted FTSO price over any window

    type
    data-api
    price
    $0.002
    network
    eip155:14
    settlements
    18,432
  • /v1/attest/evm-tx

    FDC attestation request for an EVM transaction

    type
    attestation
    price
    $0.05
    network
    eip155:14
    settlements
    2,107
  • /agent/summarize

    Long-context document summarisation

    type
    inference
    price
    $0.01
    network
    eip155:14
    settlements
    946
  • /v1/blocks/finality

    Finality proof for a Flare C-chain block

    type
    data-api
    price
    $0.001
    network
    eip155:114
    settlements
    null
  • /market/orderbook

    Aggregated DEX depth across Flare venues

    type
    data-api
    price
    $0.004
    network
    eip155:14
    settlements
    null

Example listings, shown for shape. null means we cannot measure — it never reads as zero.

Where it runs

Deployments & pinned assets

The EIP-712 domain of every settled asset is pinned, not discovered. DOMAIN_SEPARATOR is reconstructed at startup and the process refuses to boot on a mismatch.

Flare mainnet

eip155:14

Live
Base URL
facilitator.route402.dev
Asset
USD₮0 · 6 dec
Address
0xe7cd…C82D
Schemes
exact (EIP-3009)

Coston2 testnet

eip155:114

Testnet
Base URL
coston2.facilitator.route402.dev
Asset
Röute402 ₮USD · 6 dec
Address
0x4D39…A7D5
Schemes
exact · Permit2

Built on Flare’s data layer

Next on the path: FTSO price feeds for non-USD pricing, and FDC-attested receipts a counterparty can verify without trusting us. Both are interfaces today — nothing on the verify or settle path constructs them yet.

  • FTSO pricing
  • FDC receipts
  • batch-settlement
Flare — the blockchain for data

Swap the URL. Ship the route.

Public infrastructure for x402 on Flare — free to use, no fee, no spread.