Skip to content

Production-ready x402 facilitator server.

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

qntx/facilitator

Facilitator

CI Crates.io Docker License Rust

Production-ready x402 payment protocol facilitator — verifies payment signatures and settles transactions on-chain over HTTP 402.

The facilitator is a trusted third party that acts on behalf of resource servers. It does not hold funds — it only validates payment payloads and broadcasts settlement transactions to the blockchain.

Built on r402, the modular Rust SDK for x402. See Security before using in production.

Quick Start

# Install from crates.io
cargo install facilitator

# Generate a commented config template
facilitator init

# Edit config.toml with your RPC URLs and signer keys, then start
facilitator serve

Docker

# Using pre-built image
docker run -p 8080:8080 -v ./config.toml:/app/config.toml ghcr.io/qntx/facilitator

# Or build from source
docker build -t facilitator .
docker build -t facilitator --build-arg FEATURES=chain-eip155 .   # EVM only
docker run -p 8080:8080 -v ./config.toml:/app/config.toml facilitator

API

Method Path Description
GET /supported List supported payment kinds (version / scheme / network)
POST /verify Verify a payment payload against requirements
POST /settle Settle an accepted payment on-chain
GET /health Health check

CLI

facilitator <COMMAND>

Commands:
  init   Generate a default TOML configuration file
  serve  Start the facilitator HTTP server

Options:
  -h, --help     Print help
  -V, --version  Print version

init

facilitator init [OPTIONS]

Options:
  -o, --output <PATH>  Output path [default: config.toml]
      --force          Overwrite existing file

serve

facilitator serve [OPTIONS]

Options:
  -c, --config <PATH>  Path to TOML config file [default: config.toml]

Configuration

The server loads configuration from a TOML file (default: config.toml). Run facilitator init to generate a fully commented template.

host = "0.0.0.0"
port = 8080

# Global signers — shared across all chains of the same type.
# Env-var references ("$VAR" or "${VAR}") are resolved at startup.
[signers]
evm    = ["$EVM_SIGNER_PRIVATE_KEY"]       # hex, 0x-prefixed
solana = "$SOLANA_SIGNER_PRIVATE_KEY"       # base58, 64-byte keypair

# EVM chains (CAIP-2 key format: "eip155:<chain_id>")
[chains."eip155:8453"]
rpc = [{ http = "https://mainnet.base.org" }]

[chains."eip155:84532"]
rpc = [{ http = "https://sepolia.base.org" }]

# Solana chains
[chains."solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp"]
rpc = "https://api.mainnet-beta.solana.com"

# Scheme registrations (optional — auto-generated from configured chains)
# [[schemes]]
# id = "v2-eip155-exact"
# chains = "eip155:{8453,84532}"

Environment Variables

Variable Default Description
HOST 0.0.0.0 Bind address
PORT 8080 Listen port
CONFIG config.toml Config file path (for serve)
OTEL_* OpenTelemetry configuration

Supported Chains

Family Networks
EVM (EIP-155) Ethereum, Base, Optimism, Arbitrum, Polygon, Avalanche, Celo, Monad, and testnets
Solana (SVM) Mainnet, Devnet, and custom clusters

Feature Flags

Feature Default Description
chain-eip155 EVM chain support via r402-evm
chain-solana Solana chain support via r402-svm
telemetry OpenTelemetry tracing and metrics

Disable unused chains to reduce binary size and compile time:

cargo install facilitator --no-default-features --features chain-eip155

Security

See SECURITY.md for disclaimers, supported versions, and vulnerability reporting.

Acknowledgments

License

Licensed under either of:

at your option.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this project shall be dual-licensed as above, without any additional terms or conditions.

About

Production-ready x402 facilitator server.

Topics

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Sponsor this project

  •  

Packages