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.
Constructor
new X402Server({
client, // Viem PublicClient
facilitator, // Facilitator instance
network?, // optional, default inferred from 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; // default true
}
Other method signatures
// Full payment handling: parse → verify → settle
process(
paymentHeader: string | undefined,
expectedRequirements: PaymentRequirements
): Promise<ProcessResult>;
// Parse only
parse(
paymentHeader: string | undefined,
expectedRequirements: PaymentRequirements
): ParseResult;
// Verify only (after parse)
verify(parsed: ParsedPayment): Promise<VerifyResult>;
// Settle only (on-chain)
settle(parsed: ParsedPayment): Promise<SettleResult>;
// Warm up token capability cache
initialize(tokens: string[]): Promise<InitResult>;
// Build 402 response
get402Response(
requirements: PaymentRequirements,
error?: string,
errorStage?: "parse" | "verify" | "settle"
): Response402;
// Clear cache
clearCache(tokenAddress?: string): Promise<void>;
paymentHeader: from req.headers["x-payment"], may be undefined
expectedRequirements: must match the protected resource (network/asset/payTo/timeout, etc.)
- After creation, consider validating with
PaymentRequirementsSchema.parse(requirements) (Zod)