Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.x402x.ai/llms.txt

Use this file to discover all available pages before exploring further.

Overview

This Facilitator is provided by WTF Academy, currently focusing on stable support for BSC and USD1.

Quick integration (server)

import { X402Server } from "x402x-server";
import { Facilitator } from "x402x-facilitator";
import { createPublicClient, http } from "viem";
import { bsc } from "viem/chains";

const client = createPublicClient({ chain: bsc, transport: http() });
const facilitator = new Facilitator({
  recipientAddress: process.env.RECIPIENT_ADDRESS!,          // obtained from app.x402x.ai
  baseUrl: "https://facilitator.x402x.ai",                   // default: WTF Facilitator
});

const server = new X402Server({ client, facilitator });

Example: create and process a payment

// USD1 (BSC) example address (18 decimals)
const USD1 = "0x8d0D000Ee44948FC98c9B98A4FA4921476f08B0d";

// 1) Create payment requirements (auto-detect or specify paymentType)
const requirements = await server.createRequirements({
  asset: USD1,
  maxAmountRequired: "1000000000000000000", // 1 USD1
  description: "Premium API",
});

// 2) Process (parse → verify → settle)
const result = await server.process(req.headers["x-payment"] as string, requirements);
if (!result.success) return res.status(result.status).json(result.response);

// 3) Return the resource
return res.json({ data: "ok", payer: result.data.payer, txHash: result.data.txHash });

Query supported capabilities

const supported = await facilitator.supported();
// { kinds: ["eip3009","permit","permit2"], networks: ["bsc", ...] } (example)

Notes

  • Works only on BSC; the current token is USD1
  • Use an EIP-7702 recipient address (see: Payment Platform)
  • In production, prefer waitUntil: "confirmed" and record txHash

Payment Platform

Obtain EIP-7702 recipient address

Server SDK

Integrated server-side solution