Documentation Index
Fetch the complete documentation index at: https://docs.faremeter.xyz/llms.txt
Use this file to discover all available pages before exploring further.
common
Type Aliases
CommonMiddlewareArgs
CommonMiddlewareArgs = object
Defined in: packages/middleware/src/common.ts:269
Common configuration arguments shared by all middleware implementations.
Supports two mutually exclusive modes: in-process handlers or remote facilitator.
Properties
accepts?
Defined in: packages/middleware/src/common.ts:280 Payment requirements for the remote facilitator path.optionalaccepts: (RelaxedRequirements|RelaxedRequirements[])[]
cacheConfig?
Defined in: packages/middleware/src/common.ts:282 Cache configuration for remote facilitator responses.optionalcacheConfig:AgedLRUCacheOpts&object
Type declaration
disable?
optionaldisable:boolean
facilitatorURL?
Defined in: packages/middleware/src/common.ts:278 URL of a remote facilitator service (backward compat).optionalfacilitatorURL:string
mppMethodHandlers?
Defined in: packages/middleware/src/common.ts:273 MPP method handlers for in-process settlement.optionalmppMethodHandlers:MPPMethodHandler[]
pricing?
Defined in: packages/middleware/src/common.ts:275 Protocol-agnostic pricing for in-process handlers.optionalpricing:ResourcePricing[]
supportedVersions?
Defined in: packages/middleware/src/common.ts:285 Which x402 protocol versions to support.optionalsupportedVersions:SupportedVersionsConfig
x402Handlers?
Defined in: packages/middleware/src/common.ts:271 x402 handlers for in-process settlement.optionalx402Handlers:FacilitatorHandler[]
CreateRemoteX402HandlersArgs
CreateRemoteX402HandlersArgs = object
Defined in: packages/middleware/src/common.ts:379
Properties
accepts
accepts: (Defined in: packages/middleware/src/common.ts:381RelaxedRequirements|RelaxedRequirements[])[]
cacheConfig?
Defined in: packages/middleware/src/common.ts:382optionalcacheConfig:AgedLRUCacheOpts&object
Type declaration
disable?
optionaldisable:boolean
facilitatorURL
facilitatorURL: string
Defined in: packages/middleware/src/common.ts:380
HandleMiddlewareRequestArgs
HandleMiddlewareRequestArgs<Defined in: packages/middleware/src/common.ts:526 Arguments for the core middleware request handler. Framework-specific middleware implementations adapt their request/response objects to this interface.MiddlewareResponse> =object
Type Parameters
MiddlewareResponse
MiddlewareResponse = unknown
Properties
body()
body: (Defined in: packages/middleware/src/common.ts:546 Handler function called when a valid payment is received.context) =>Promise<MiddlewareResponse|undefined>
Parameters
context
MiddlewareBodyContext<MiddlewareResponse>
Returns
Promise<MiddlewareResponse | undefined>
getBody()?
Defined in: packages/middleware/src/common.ts:554 Optional accessor for the request body (for RFC 9530 digest).optionalgetBody: () =>Promise<ArrayBuffer|null>
Returns
Promise<ArrayBuffer | null>
getHeader()
getHeader: (Defined in: packages/middleware/src/common.ts:538 Function to retrieve a request header value.key) =>string|undefined
Parameters
key
string
Returns
string | undefined
mppMethodHandlers?
Defined in: packages/middleware/src/common.ts:530 MPP method handlers for in-process settlement.optionalmppMethodHandlers:MPPMethodHandler[]
pricing
pricing: ResourcePricing[]
Defined in: packages/middleware/src/common.ts:532
Protocol-agnostic pricing entries for the current request.
resource
resource: string
Defined in: packages/middleware/src/common.ts:534
The resource URL being accessed.
resourceInfo?
Defined in: packages/middleware/src/common.ts:552 Optional pre-built resource info for the 402 response.optionalresourceInfo:x402ResourceInfo
sendJSONResponse()
sendJSONResponse: (Defined in: packages/middleware/src/common.ts:540 Function to send a JSON response with optional headers.status,body?,headers?) =>MiddlewareResponse
Parameters
status
PossibleStatusCodes
body?
PossibleJSONResponse
headers?
Record<string, string>
Returns
MiddlewareResponse
setResponseHeader()?
Defined in: packages/middleware/src/common.ts:550 Optional function to set a response header.optionalsetResponseHeader: (key,value) =>void
Parameters
key
string
value
string
Returns
void
supportedVersions
supportedVersions:Defined in: packages/middleware/src/common.ts:536 Resolved supported versions configuration.Required<SupportedVersionsConfig>
x402Handlers?
Defined in: packages/middleware/src/common.ts:528 x402 handlers for in-process settlement.optionalx402Handlers:FacilitatorHandler[]
MiddlewareBodyContext
MiddlewareBodyContext<Defined in: packages/middleware/src/common.ts:516 Context provided to the middleware body handler. Use protocolVersion to discriminate between v1, v2, and mpp request types.MiddlewareResponse> =MiddlewareBodyContextV1<MiddlewareResponse> |MiddlewareBodyContextV2<MiddlewareResponse> |MiddlewareBodyContextMPP<MiddlewareResponse>
Type Parameters
MiddlewareResponse
MiddlewareResponse
MiddlewareBodyContextMPP
MiddlewareBodyContextMPP<Defined in: packages/middleware/src/common.ts:506 Context provided to the middleware body handler for MPP protocol requests.MiddlewareResponse> =object
Type Parameters
MiddlewareResponse
MiddlewareResponse
Properties
credential
credential: mppCredential
Defined in: packages/middleware/src/common.ts:508
protocolVersion
protocolVersion: "mpp"
Defined in: packages/middleware/src/common.ts:507
settle()
settle: () =>Defined in: packages/middleware/src/common.ts:509Promise<SettleResultMPP<MiddlewareResponse>>
Returns
Promise<SettleResultMPP<MiddlewareResponse>>
MiddlewareBodyContextV1
MiddlewareBodyContextV1<Defined in: packages/middleware/src/common.ts:479 Context provided to the middleware body handler for v1 protocol requests. Contains payment information and functions to verify or settle the payment.MiddlewareResponse> =object
Type Parameters
MiddlewareResponse
MiddlewareResponse
Properties
paymentPayload
paymentPayload: x402PaymentPayloadV1
Defined in: packages/middleware/src/common.ts:482
paymentRequirements
paymentRequirements: x402PaymentRequirementsV1
Defined in: packages/middleware/src/common.ts:481
protocolVersion
protocolVersion: 1
Defined in: packages/middleware/src/common.ts:480
settle()
settle: () =>Defined in: packages/middleware/src/common.ts:483Promise<SettleResultV1<MiddlewareResponse>>
Returns
Promise<SettleResultV1<MiddlewareResponse>>
verify()
verify: () =>Defined in: packages/middleware/src/common.ts:484Promise<VerifyResultV1<MiddlewareResponse>>
Returns
Promise<VerifyResultV1<MiddlewareResponse>>
MiddlewareBodyContextV2
MiddlewareBodyContextV2<Defined in: packages/middleware/src/common.ts:491 Context provided to the middleware body handler for v2 protocol requests. Contains payment information and functions to verify or settle the payment.MiddlewareResponse> =object
Type Parameters
MiddlewareResponse
MiddlewareResponse
Properties
paymentPayload
paymentPayload: x402PaymentPayload
Defined in: packages/middleware/src/common.ts:494
paymentRequirements
paymentRequirements: x402PaymentRequirements
Defined in: packages/middleware/src/common.ts:493
protocolVersion
protocolVersion: 2
Defined in: packages/middleware/src/common.ts:492
settle()
settle: () =>Defined in: packages/middleware/src/common.ts:495Promise<SettleResultV2<MiddlewareResponse>>
Returns
Promise<SettleResultV2<MiddlewareResponse>>
verify()
verify: () =>Defined in: packages/middleware/src/common.ts:496Promise<VerifyResultV2<MiddlewareResponse>>
Returns
Promise<VerifyResultV2<MiddlewareResponse>>
RelaxedRequirements
RelaxedRequirements =Defined in: packages/middleware/src/common.ts:169Partial<x402PaymentRequirementsV1>
RelaxedRequirementsV2
RelaxedRequirementsV2 =Defined in: packages/middleware/src/common.ts:170Partial<x402PaymentRequirements>
ResolvedConfig
ResolvedConfig = object
Defined in: packages/middleware/src/common.ts:410
Properties
handlers
handlers: FacilitatorHandler[]
Defined in: packages/middleware/src/common.ts:411
mppHandlers
mppHandlers: MPPMethodHandler[]
Defined in: packages/middleware/src/common.ts:413
pricing
pricing: ResourcePricing[]
Defined in: packages/middleware/src/common.ts:412
resourceInfo?
Defined in: packages/middleware/src/common.ts:414optionalresourceInfo:x402ResourceInfo
SettleResult
SettleResult<Defined in: packages/middleware/src/common.ts:459MiddlewareResponse> =SettleResultV1<MiddlewareResponse> |SettleResultV2<MiddlewareResponse>
Type Parameters
MiddlewareResponse
MiddlewareResponse
SettleResultMPP
SettleResultMPP<Defined in: packages/middleware/src/common.ts:499MiddlewareResponse> = {receipt:mppReceipt;success:true; } | {errorResponse:MiddlewareResponse;success:false; }
Type Parameters
MiddlewareResponse
MiddlewareResponse
SettleResultV1
SettleResultV1<Defined in: packages/middleware/src/common.ts:451MiddlewareResponse> = {facilitatorResponse:x402SettleResponseV1;success:true; } | {errorResponse:MiddlewareResponse;success:false; }
Type Parameters
MiddlewareResponse
MiddlewareResponse
SettleResultV2
SettleResultV2<Defined in: packages/middleware/src/common.ts:455MiddlewareResponse> = {facilitatorResponse:x402SettleResponse;success:true; } | {errorResponse:MiddlewareResponse;success:false; }
Type Parameters
MiddlewareResponse
MiddlewareResponse
SupportedVersionsConfig
SupportedVersionsConfig = object
Defined in: packages/middleware/src/common.ts:236
Configuration for which x402 protocol versions the middleware supports.
At least one version must be enabled.
Properties
x402v1?
Defined in: packages/middleware/src/common.ts:238 Support x402 v1 protocol (JSON body responses, X-PAYMENT header). Default: trueoptionalx402v1:boolean
x402v2?
Defined in: packages/middleware/src/common.ts:240 Support x402 v2 protocol (PAYMENT-REQUIRED header, PAYMENT-SIGNATURE header). Default: falseoptionalx402v2:boolean
VerifyResult
VerifyResult<Defined in: packages/middleware/src/common.ts:471MiddlewareResponse> =VerifyResultV1<MiddlewareResponse> |VerifyResultV2<MiddlewareResponse>
Type Parameters
MiddlewareResponse
MiddlewareResponse
VerifyResultV1
VerifyResultV1<Defined in: packages/middleware/src/common.ts:463MiddlewareResponse> = {facilitatorResponse:x402VerifyResponseV1;success:true; } | {errorResponse:MiddlewareResponse;success:false; }
Type Parameters
MiddlewareResponse
MiddlewareResponse
VerifyResultV2
VerifyResultV2<Defined in: packages/middleware/src/common.ts:467MiddlewareResponse> = {facilitatorResponse:x402VerifyResponse;success:true; } | {errorResponse:MiddlewareResponse;success:false; }
Type Parameters
MiddlewareResponse
MiddlewareResponse
Functions
acceptsToPricing()
acceptsToPricing(Defined in: packages/middleware/src/common.ts:364accepts):ResourcePricing[]
Parameters
accepts
Partial<{ asset: string; description: string; extra?: object; maxAmountRequired: string; maxTimeoutSeconds: number; mimeType?: string; network: string; outputSchema?: object; payTo: string; resource: string; scheme: string; }>[]
Returns
ResourcePricing[]
createRemoteX402Handlers()
createRemoteX402Handlers(Defined in: packages/middleware/src/common.ts:396 Creates x402 facilitator handlers backed by a remote HTTP facilitator. This is the composable equivalent of theargs):FacilitatorHandler[]
facilitatorURL + accepts
shorthand on CommonMiddlewareArgs. Use it when you need to
combine a remote x402 facilitator with in-process MPP handlers in the
same middleware.
Parameters
args
CreateRemoteX402HandlersArgs
Returns
FacilitatorHandler[]
An array of FacilitatorHandler suitable for
createMiddleware({ x402Handlers: ... }).
deriveCapabilities()
deriveCapabilities(Defined in: packages/middleware/src/common.ts:326 Derivesaccepts):HandlerCapabilities
HandlerCapabilities from relaxed v1 requirements.
Used by framework adapters to construct capabilities for the HTTP wrapper
from the legacy accepts configuration.
Parameters
accepts
Partial<{ asset: string; description: string; extra?: object; maxAmountRequired: string; maxTimeoutSeconds: number; mimeType?: string; network: string; outputSchema?: object; payTo: string; resource: string; scheme: string; }>[]
Returns
HandlerCapabilities
deriveResourceInfo()
deriveResourceInfo(Defined in: packages/middleware/src/common.ts:351 Extracts resource info from v1 accepts entries. Used by framework adapters to build the resource info for the 402 response.accepts,resourceURL):object
Parameters
accepts
Partial<{ asset: string; description: string; extra?: object; maxAmountRequired: string; maxTimeoutSeconds: number; mimeType?: string; network: string; outputSchema?: object; payTo: string; resource: string; scheme: string; }>[]
resourceURL
string
Returns
object
description?
optionaldescription:string
mimeType?
optionalmimeType:string
url
url: string
findMatchingPaymentRequirements()
findMatchingPaymentRequirements(Defined in: packages/middleware/src/common.ts:148 Finds the payment requirement that matches the client’s v1 payment payload.accepts,payload):undefined| {asset:string;description:string;extra?:object;maxAmountRequired:string;maxTimeoutSeconds:number;mimeType?:string;network:string;outputSchema?:object;payTo:string;resource:string;scheme:string; }
Parameters
accepts
object[]
Array of accepted payment requirements from the facilitator
payload
The client’s payment payloadasset?
string
network
string
payload
object
scheme
string
x402Version
number
Returns
undefined | { asset: string; description: string; extra?: object; maxAmountRequired: string; maxTimeoutSeconds: number; mimeType?: string; network: string; outputSchema?: object; payTo: string; resource: string; scheme: string; }
The matching requirement, or undefined if no match found
findMatchingPaymentRequirementsV2()
findMatchingPaymentRequirementsV2(Defined in: packages/middleware/src/common.ts:162 Finds the payment requirement that matches the client’s v2 payment payload.accepts,payload):undefined| {amount:string;asset:string;extra?:object;maxTimeoutSeconds:number;network:string;payTo:string;scheme:string; }
Parameters
accepts
object[]
Array of accepted payment requirements from the facilitator
payload
The client’s v2 payment payloadaccepted
{amount: string; asset: string; extra?: object; maxTimeoutSeconds: number; network: string; payTo: string; scheme: string; }
accepted.amount
string
accepted.asset
string
accepted.extra?
object
accepted.maxTimeoutSeconds
number
accepted.network
string
accepted.payTo
string
accepted.scheme
string
extensions?
object
payload
object
resource?
{description?: string; mimeType?: string; url: string; }
resource.description?
string
resource.mimeType?
string
resource.url
string
x402Version
2
Returns
undefined | { amount: string; asset: string; extra?: object; maxTimeoutSeconds: number; network: string; payTo: string; scheme: string; }
The matching requirement, or undefined if no match found
handleMiddlewareRequest()
handleMiddlewareRequest<Defined in: packages/middleware/src/common.ts:564 Core middleware request handler that processes x402 and MPP payment flows. Delegates to protocol-specific glue layers for challenge generation, settlement, and verification. The middleware formats HTTP responses but never constructs protocol types directly.MiddlewareResponse>(args):Promise<undefined|MiddlewareResponse>
Type Parameters
MiddlewareResponse
MiddlewareResponse
Parameters
args
HandleMiddlewareRequestArgs<MiddlewareResponse>
Returns
Promise<undefined | MiddlewareResponse>
relaxedRequirementsToV2()
relaxedRequirementsToV2(Defined in: packages/middleware/src/common.ts:176 Converts v1 relaxed requirements to v2 format, preserving all fields includingreq):Partial
extra.
Parameters
req
Partial
Returns
Partial
resolveConfig()
resolveConfig(Defined in: packages/middleware/src/common.ts:422 Resolves CommonMiddlewareArgs into the handlers + pricing tuple that handleMiddlewareRequest needs. For theargs):ResolvedConfig
facilitatorURL path,
creates an HTTP handler wrapper and converts accepts to pricing.
Parameters
args
CommonMiddlewareArgs
Returns
ResolvedConfig
resolveSupportedVersions()
resolveSupportedVersions(Defined in: packages/middleware/src/common.ts:248 Resolve and validate supported versions config. Returns resolved config with defaults applied. Throws if configuration is invalid.config?):Required<SupportedVersionsConfig>
Parameters
config?
SupportedVersionsConfig
Returns
Required<SupportedVersionsConfig>
validateMiddlewareArgs()
validateMiddlewareArgs(Defined in: packages/middleware/src/common.ts:291 Validates that CommonMiddlewareArgs has exactly one configuration mode.args):void
Parameters
args
CommonMiddlewareArgs
Returns
void