Facilitator
This page explains the role of the facilitator in the x402 protocol.
The facilitator is an optional but recommended service that simplifies the process of verifying and settling payments between clients (buyers) and servers (sellers).
What is a Facilitator?
The facilitator is a service that:
Verifies payment payloads submitted by clients.
Settles payments on the blockchain on behalf of servers.
By using a facilitator, servers do not need to maintain direct blockchain connectivity or implement payment verification logic themselves. This reduces operational complexity and ensures accurate, real-time validation of transactions.
Facilitator Responsibilities
Verify payments: Confirm that the client's payment payload meets the server's declared payment requirements.
Settle payments: Submit validated payments to the blockchain and monitor for confirmation.
Provide responses: Return verification and settlement results to the server, allowing the server to decide whether to fulfill the client's request.
The facilitator does not hold funds or act as a custodian - it performs verification and execution of onchain transactions based on signed payloads provided by clients.
Why Use a Facilitator?
Using a facilitator provides:
Reduced operational complexity: Servers do not need to interact directly with blockchain nodes.
Protocol consistency: Standardized verification and settlement flows across services.
Faster integration: Services can start accepting payments with minimal blockchain-specific development.
While it is possible to implement verification and settlement locally, using a facilitator accelerates adoption and ensures correct protocol behavior.
Live Facilitators
CDP's facilitator offers fee-free USDC settlement on Base mainnet
As more facilitators go live, we will include them here.
Interaction Flow
Client
makes an HTTP request to aresource server
Resource server
responds with a402 Payment Required
status and aPayment Required Response
JSON object in the response body.Client
selects one of thepaymentDetails
returned by theaccepts
field of the server response and creates aPayment Payload
based on thescheme
of thepaymentDetails
they have selected.Client
sends the HTTP request with theX-PAYMENT
header containing thePayment Payload
to theresource server
Resource server
verifies thePayment Payload
is valid either via local verification or by POSTing thePayment Payload
andPayment Details
to the/verify
endpoint of thefacilitator server
.Facilitator server
performs verification of the object based on thescheme
andnetworkId
of thePayment Payload
and returns aVerification Response
If the
Verification Response
is valid, the resource server performs the work to fulfill the request. If theVerification Response
is invalid, the resource server returns a402 Payment Required
status and aPayment Required Response
JSON object in the response body.Resource server
either settles the payment by interacting with a blockchain directly, or by POSTing thePayment Payload
andPayment Details
to the/settle
endpoint of thefacilitator server
.Facilitator server
submits the payment to the blockchain based on thescheme
andnetworkId
of thePayment Payload
.Facilitator server
waits for the payment to be confirmed on the blockchain.Facilitator server
returns aPayment Execution Response
to the resource server.Resource server
returns a200 OK
response to theClient
with the resource they requested as the body of the HTTP response, and aX-PAYMENT-RESPONSE
header containing theSettlement Response
as Base64 encoded JSON if the payment was executed successfully.
Summary
The facilitator acts as an independent verification and settlement layer within the x402 protocol. It helps servers confirm payments and submit transactions onchain without requiring direct blockchain infrastructure.
Next, explore:
Last updated