Skip to main content

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?
optional accepts: (RelaxedRequirements | RelaxedRequirements[])[]
Defined in: packages/middleware/src/common.ts:280 Payment requirements for the remote facilitator path.
cacheConfig?
optional cacheConfig: AgedLRUCacheOpts & object
Defined in: packages/middleware/src/common.ts:282 Cache configuration for remote facilitator responses.
Type declaration
disable?
optional disable: boolean
facilitatorURL?
optional facilitatorURL: string
Defined in: packages/middleware/src/common.ts:278 URL of a remote facilitator service (backward compat).
mppMethodHandlers?
optional mppMethodHandlers: MPPMethodHandler[]
Defined in: packages/middleware/src/common.ts:273 MPP method handlers for in-process settlement.
pricing?
optional pricing: ResourcePricing[]
Defined in: packages/middleware/src/common.ts:275 Protocol-agnostic pricing for in-process handlers.
supportedVersions?
optional supportedVersions: SupportedVersionsConfig
Defined in: packages/middleware/src/common.ts:285 Which x402 protocol versions to support.
x402Handlers?
optional x402Handlers: FacilitatorHandler[]
Defined in: packages/middleware/src/common.ts:271 x402 handlers for in-process settlement.

CreateRemoteX402HandlersArgs

CreateRemoteX402HandlersArgs = object
Defined in: packages/middleware/src/common.ts:379

Properties

accepts
accepts: (RelaxedRequirements | RelaxedRequirements[])[]
Defined in: packages/middleware/src/common.ts:381
cacheConfig?
optional cacheConfig: AgedLRUCacheOpts & object
Defined in: packages/middleware/src/common.ts:382
Type declaration
disable?
optional disable: boolean
facilitatorURL
facilitatorURL: string
Defined in: packages/middleware/src/common.ts:380

HandleMiddlewareRequestArgs

HandleMiddlewareRequestArgs<MiddlewareResponse> = object
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.

Type Parameters

MiddlewareResponse
MiddlewareResponse = unknown

Properties

body()
body: (context) => Promise<MiddlewareResponse | undefined>
Defined in: packages/middleware/src/common.ts:546 Handler function called when a valid payment is received.
Parameters
context
MiddlewareBodyContext<MiddlewareResponse>
Returns
Promise<MiddlewareResponse | undefined>
getBody()?
optional getBody: () => Promise<ArrayBuffer | null>
Defined in: packages/middleware/src/common.ts:554 Optional accessor for the request body (for RFC 9530 digest).
Returns
Promise<ArrayBuffer | null>
getHeader()
getHeader: (key) => string | undefined
Defined in: packages/middleware/src/common.ts:538 Function to retrieve a request header value.
Parameters
key
string
Returns
string | undefined
mppMethodHandlers?
optional mppMethodHandlers: MPPMethodHandler[]
Defined in: packages/middleware/src/common.ts:530 MPP method handlers for in-process settlement.
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?
optional resourceInfo: x402ResourceInfo
Defined in: packages/middleware/src/common.ts:552 Optional pre-built resource info for the 402 response.
sendJSONResponse()
sendJSONResponse: (status, body?, headers?) => MiddlewareResponse
Defined in: packages/middleware/src/common.ts:540 Function to send a JSON response with optional headers.
Parameters
status
PossibleStatusCodes
body?
PossibleJSONResponse
headers?
Record<string, string>
Returns
MiddlewareResponse
setResponseHeader()?
optional setResponseHeader: (key, value) => void
Defined in: packages/middleware/src/common.ts:550 Optional function to set a response header.
Parameters
key
string
value
string
Returns
void
supportedVersions
supportedVersions: Required<SupportedVersionsConfig>
Defined in: packages/middleware/src/common.ts:536 Resolved supported versions configuration.
x402Handlers?
optional x402Handlers: FacilitatorHandler[]
Defined in: packages/middleware/src/common.ts:528 x402 handlers for in-process settlement.

MiddlewareBodyContext

MiddlewareBodyContext<MiddlewareResponse> = MiddlewareBodyContextV1<MiddlewareResponse> | MiddlewareBodyContextV2<MiddlewareResponse> | MiddlewareBodyContextMPP<MiddlewareResponse>
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.

Type Parameters

MiddlewareResponse
MiddlewareResponse

MiddlewareBodyContextMPP

MiddlewareBodyContextMPP<MiddlewareResponse> = object
Defined in: packages/middleware/src/common.ts:506 Context provided to the middleware body handler for MPP protocol requests.

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: () => Promise<SettleResultMPP<MiddlewareResponse>>
Defined in: packages/middleware/src/common.ts:509
Returns
Promise<SettleResultMPP<MiddlewareResponse>>

MiddlewareBodyContextV1

MiddlewareBodyContextV1<MiddlewareResponse> = object
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.

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: () => Promise<SettleResultV1<MiddlewareResponse>>
Defined in: packages/middleware/src/common.ts:483
Returns
Promise<SettleResultV1<MiddlewareResponse>>
verify()
verify: () => Promise<VerifyResultV1<MiddlewareResponse>>
Defined in: packages/middleware/src/common.ts:484
Returns
Promise<VerifyResultV1<MiddlewareResponse>>

MiddlewareBodyContextV2

MiddlewareBodyContextV2<MiddlewareResponse> = object
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.

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: () => Promise<SettleResultV2<MiddlewareResponse>>
Defined in: packages/middleware/src/common.ts:495
Returns
Promise<SettleResultV2<MiddlewareResponse>>
verify()
verify: () => Promise<VerifyResultV2<MiddlewareResponse>>
Defined in: packages/middleware/src/common.ts:496
Returns
Promise<VerifyResultV2<MiddlewareResponse>>

RelaxedRequirements

RelaxedRequirements = Partial<x402PaymentRequirementsV1>
Defined in: packages/middleware/src/common.ts:169

RelaxedRequirementsV2

RelaxedRequirementsV2 = Partial<x402PaymentRequirements>
Defined in: packages/middleware/src/common.ts:170

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?
optional resourceInfo: x402ResourceInfo
Defined in: packages/middleware/src/common.ts:414

SettleResult

SettleResult<MiddlewareResponse> = SettleResultV1<MiddlewareResponse> | SettleResultV2<MiddlewareResponse>
Defined in: packages/middleware/src/common.ts:459

Type Parameters

MiddlewareResponse
MiddlewareResponse

SettleResultMPP

SettleResultMPP<MiddlewareResponse> = { receipt: mppReceipt; success: true; } | { errorResponse: MiddlewareResponse; success: false; }
Defined in: packages/middleware/src/common.ts:499

Type Parameters

MiddlewareResponse
MiddlewareResponse

SettleResultV1

SettleResultV1<MiddlewareResponse> = { facilitatorResponse: x402SettleResponseV1; success: true; } | { errorResponse: MiddlewareResponse; success: false; }
Defined in: packages/middleware/src/common.ts:451

Type Parameters

MiddlewareResponse
MiddlewareResponse

SettleResultV2

SettleResultV2<MiddlewareResponse> = { facilitatorResponse: x402SettleResponse; success: true; } | { errorResponse: MiddlewareResponse; success: false; }
Defined in: packages/middleware/src/common.ts:455

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?
optional x402v1: boolean
Defined in: packages/middleware/src/common.ts:238 Support x402 v1 protocol (JSON body responses, X-PAYMENT header). Default: true
x402v2?
optional x402v2: boolean
Defined in: packages/middleware/src/common.ts:240 Support x402 v2 protocol (PAYMENT-REQUIRED header, PAYMENT-SIGNATURE header). Default: false

VerifyResult

VerifyResult<MiddlewareResponse> = VerifyResultV1<MiddlewareResponse> | VerifyResultV2<MiddlewareResponse>
Defined in: packages/middleware/src/common.ts:471

Type Parameters

MiddlewareResponse
MiddlewareResponse

VerifyResultV1

VerifyResultV1<MiddlewareResponse> = { facilitatorResponse: x402VerifyResponseV1; success: true; } | { errorResponse: MiddlewareResponse; success: false; }
Defined in: packages/middleware/src/common.ts:463

Type Parameters

MiddlewareResponse
MiddlewareResponse

VerifyResultV2

VerifyResultV2<MiddlewareResponse> = { facilitatorResponse: x402VerifyResponse; success: true; } | { errorResponse: MiddlewareResponse; success: false; }
Defined in: packages/middleware/src/common.ts:467

Type Parameters

MiddlewareResponse
MiddlewareResponse

Functions

acceptsToPricing()

acceptsToPricing(accepts): ResourcePricing[]
Defined in: packages/middleware/src/common.ts:364

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(args): FacilitatorHandler[]
Defined in: packages/middleware/src/common.ts:396 Creates x402 facilitator handlers backed by a remote HTTP facilitator. This is the composable equivalent of the 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(accepts): HandlerCapabilities
Defined in: packages/middleware/src/common.ts:326 Derives 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(accepts, resourceURL): object
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.

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?
optional description: string
mimeType?
optional mimeType: string
url
url: string

findMatchingPaymentRequirements()

findMatchingPaymentRequirements(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; }
Defined in: packages/middleware/src/common.ts:148 Finds the payment requirement that matches the client’s v1 payment payload.

Parameters

accepts
object[] Array of accepted payment requirements from the facilitator
payload
The client’s payment payload
asset?
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(accepts, payload): undefined | { amount: string; asset: string; extra?: object; maxTimeoutSeconds: number; network: string; payTo: string; scheme: string; }
Defined in: packages/middleware/src/common.ts:162 Finds the payment requirement that matches the client’s v2 payment payload.

Parameters

accepts
object[] Array of accepted payment requirements from the facilitator
payload
The client’s v2 payment payload
accepted
{ 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<MiddlewareResponse>(args): Promise<undefined | MiddlewareResponse>
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.

Type Parameters

MiddlewareResponse
MiddlewareResponse

Parameters

args
HandleMiddlewareRequestArgs<MiddlewareResponse>

Returns

Promise<undefined | MiddlewareResponse>

relaxedRequirementsToV2()

relaxedRequirementsToV2(req): Partial
Defined in: packages/middleware/src/common.ts:176 Converts v1 relaxed requirements to v2 format, preserving all fields including extra.

Parameters

req
Partial

Returns

Partial

resolveConfig()

resolveConfig(args): ResolvedConfig
Defined in: packages/middleware/src/common.ts:422 Resolves CommonMiddlewareArgs into the handlers + pricing tuple that handleMiddlewareRequest needs. For the facilitatorURL path, creates an HTTP handler wrapper and converts accepts to pricing.

Parameters

args
CommonMiddlewareArgs

Returns

ResolvedConfig

resolveSupportedVersions()

resolveSupportedVersions(config?): Required<SupportedVersionsConfig>
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.

Parameters

config?
SupportedVersionsConfig

Returns

Required<SupportedVersionsConfig>

validateMiddlewareArgs()

validateMiddlewareArgs(args): void
Defined in: packages/middleware/src/common.ts:291 Validates that CommonMiddlewareArgs has exactly one configuration mode.

Parameters

args
CommonMiddlewareArgs

Returns

void