Skip to main content
A facilitator is a service that sits between the resource server and the blockchain. It verifies payment proofs and settles transactions on-chain so that merchants never need to manage blockchain infrastructure directly.

Why facilitators exist

Without a facilitator, every merchant would need to:
  • Run blockchain nodes or connect to RPCs
  • Verify cryptographic signatures for each payment scheme
  • Submit transactions and monitor confirmations
  • Handle gas fees and failed transactions
Facilitators abstract all of this. The merchant sends the payment proof to the facilitator, and the facilitator handles verification and settlement.

How they work

Client                    Server                  Facilitator        Blockchain
  |                         |                         |                  |
  |--- request + payment -->|                         |                  |
  |                         |--- verify + settle ---->|                  |
  |                         |                         |--- submit tx --->|
  |                         |                         |<-- confirmation -|
  |                         |<-- settlement result ---|                  |
  |<-- 200 + resource ------|                         |                  |

Facilitator API

Facilitators expose four endpoints:
EndpointMethodPurpose
/acceptsPOSTReturns enriched payment requirements (adds facilitator-specific fields)
/verifyPOSTVerifies a payment proof without settling
/settlePOSTVerifies and settles a payment on-chain
/supportedGETLists supported schemes, networks, and assets

/accepts

The middleware calls /accepts on startup to get the full payment requirements including any facilitator-specific fields. These are cached and returned to clients in 402 responses.

/settle

When a client sends a valid X-PAYMENT header, the middleware forwards it to /settle. The facilitator:
  1. Validates the payment payload structure
  2. Verifies cryptographic signatures
  3. Checks amounts, addresses, and nonces
  4. Submits the transaction on-chain
  5. Returns a settlement result with the transaction hash

Default facilitator

Corbits provides a free production-ready facilitator:
https://facilitator.corbits.dev
This is the default used in faremeter’s middleware and examples. It supports Solana (devnet, mainnet) and EVM (Base Sepolia, Base, Polygon).

Running your own

You can run a facilitator using @faremeter/facilitator. See the Facilitator guide for setup instructions.

Further reading

  • Payment Schemes — What happens inside the facilitator for each chain.
  • Middleware — How to configure the middleware to talk to a facilitator.