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.
new X402Server({
client, // Viem PublicClient
facilitator, // Facilitator 实例
network?, // 可选,默认从 client 推断
});
createRequirements(config)
{
asset: string;
maxAmountRequired: string;
network?: string;
scheme?: "exact";
outputSchema?: Record<string, unknown>;
paymentType?: "permit" | "eip3009" | "permit2" | "auto";
resource?: string;
description?: string;
mimeType?: string;
maxTimeoutSeconds?: number;
extra?: Record<string, unknown>;
autoDetect?: boolean; // 默认 true
}
其他方法签名
// 处理完整支付:parse → verify → settle
process(
paymentHeader: string | undefined,
expectedRequirements: PaymentRequirements
): Promise<ProcessResult>;
// 仅解析
parse(
paymentHeader: string | undefined,
expectedRequirements: PaymentRequirements
): ParseResult;
// 仅验证(基于 parse 后的数据)
verify(parsed: ParsedPayment): Promise<VerifyResult>;
// 仅结算(执行链上交易)
settle(parsed: ParsedPayment): Promise<SettleResult>;
// 预热 Token 能力缓存
initialize(tokens: string[]): Promise<InitResult>;
// 生成 402 响应体
get402Response(
requirements: PaymentRequirements,
error?: string,
errorStage?: "parse" | "verify" | "settle"
): Response402;
// 清缓存
clearCache(tokenAddress?: string): Promise<void>;
关键入参与校验
paymentHeader:来自 req.headers["x-payment"],可能为 undefined
expectedRequirements:必须与受保护资源一致(network/asset/payTo/timeout 等)
- 建议在创建后使用 Zod 校验
PaymentRequirementsSchema.parse(requirements)