Skip to main content
Faremeter API
Faremeter API / facilitator/src

facilitator/src

Type Aliases

LegacyFacilitatorHandler

LegacyFacilitatorHandler = object
Defined in: packages/facilitator/src/adapters.ts:38 Legacy facilitator handler interface using pre-spec field names. Use this to wrap old handlers that return txHash/networkId/error.

Properties

getRequirements()
getRequirements: (req) => Promise<x402.x402PaymentRequirements[]>
Defined in: packages/facilitator/src/adapters.ts:40
Parameters
req
x402PaymentRequirementsV1Strict[]
Returns
Promise<x402.x402PaymentRequirements[]>
getSupported()?
optional getSupported: () => Promise<x402.x402SupportedKind>[]
Defined in: packages/facilitator/src/adapters.ts:39
Returns
Promise<x402.x402SupportedKind>[]
handleSettle()
handleSettle: (requirements, payment) => Promise<x402.x402SettleResponseLegacy | null>
Defined in: packages/facilitator/src/adapters.ts:47
Parameters
requirements
x402PaymentRequirementsV1Strict
payment
x402.x402PaymentPayload
Returns
Promise<x402.x402SettleResponseLegacy | null>
handleVerify()?
optional handleVerify: (requirements, payment) => Promise<x402.x402VerifyResponse | null>
Defined in: packages/facilitator/src/adapters.ts:43
Parameters
requirements
x402PaymentRequirementsV1Strict
payment
x402.x402PaymentPayload
Returns
Promise<x402.x402VerifyResponse | null>

Functions

adaptHandlerV1ToV2()

adaptHandlerV1ToV2(handler): FacilitatorHandler
Defined in: packages/facilitator/src/adapters.ts:57 Adapts a v1 FacilitatorHandler to the v2 interface. Use this to wrap handlers from external packages that haven’t been updated to v2 types.

Parameters

handler
LegacyFacilitatorHandler

Returns

FacilitatorHandler

adaptPayloadV1ToV2()

adaptPayloadV1ToV2(payload, requirements, translateNetwork): object
Defined in: packages/types/dist/src/x402-adapters.d.ts:53 Converts a v1 payment payload to v2 format.

Parameters

payload
The v1 payment payload
asset?
string
network
string
payload
object
scheme
string
x402Version
number
requirements
The v1 requirements used for resource extraction
asset
string
description
string
extra?
object
maxAmountRequired
string
maxTimeoutSeconds
number
mimeType?
string
network
string
outputSchema?
object
payTo
string
resource
string
scheme
string
translateNetwork
NetworkTranslator Function to translate legacy network IDs to CAIP-2

Returns

object The v2 payment payload
accepted
accepted: object
accepted.amount
amount: string
accepted.asset
asset: string
accepted.extra?
optional extra: object
accepted.maxTimeoutSeconds
maxTimeoutSeconds: number
accepted.network
network: string
accepted.payTo
payTo: string
accepted.scheme
scheme: string
extensions?
optional extensions: object
payload
payload: object
resource?
optional resource: object
resource.description?
optional description: string
resource.mimeType?
optional mimeType: string
resource.url
url: string
x402Version
x402Version: 2

adaptPaymentRequiredResponseV1ToV2()

adaptPaymentRequiredResponseV1ToV2(v1Response, resourceURL, translateNetwork): object
Defined in: packages/types/dist/src/x402-adapters.d.ts:62 Converts a v1 payment required response to v2 format.

Parameters

v1Response
The v1 payment required response
accepts
object[]
error?
string
x402Version
number
resourceURL
string The URL of the protected resource
translateNetwork
NetworkTranslator Function to translate legacy network IDs to CAIP-2

Returns

object The v2 payment required response
accepts
accepts: object[]
error?
optional error: string
extensions?
optional extensions: object
resource
resource: object
resource.description?
optional description: string
resource.mimeType?
optional mimeType: string
resource.url
url: string
x402Version
x402Version: 2

adaptPaymentRequiredResponseV2ToV1()

adaptPaymentRequiredResponseV2ToV1(v2Response, translateNetwork?): object
Defined in: packages/types/dist/src/x402-adapters.d.ts:70 Converts a v2 payment required response to v1 format.

Parameters

v2Response
The v2 payment required response
accepts
object[]
error?
string
extensions?
object
resource
{ description?: string; mimeType?: string; url: string; }
resource.description?
string
resource.mimeType?
string
resource.url
string
x402Version
2
translateNetwork?
NetworkTranslator Optional function to translate CAIP-2 to legacy IDs

Returns

object The v1 payment required response
accepts
accepts: object[]
error
error: string
x402Version
x402Version: number

adaptRequirementsV1ToV2()

adaptRequirementsV1ToV2(req, translateNetwork): object
Defined in: packages/types/dist/src/x402-adapters.d.ts:26 Converts v1 payment requirements to v2 format.

Parameters

req
The v1 payment requirements
asset
string
description
string
extra?
object
maxAmountRequired
string
maxTimeoutSeconds
number
mimeType?
string
network
string
outputSchema?
object
payTo
string
resource
string
scheme
string
translateNetwork
NetworkTranslator Function to translate legacy network IDs to CAIP-2

Returns

object The v2 payment requirements
amount
amount: string
asset
asset: string
extra?
optional extra: object
maxTimeoutSeconds
maxTimeoutSeconds: number
network
network: string
payTo
payTo: string
scheme
scheme: string

adaptRequirementsV2ToV1()

adaptRequirementsV2ToV1(req, resource, translateNetwork?): object & object
Defined in: packages/types/dist/src/x402-adapters.d.ts:35 Converts v2 payment requirements to v1 format.

Parameters

req
The v2 payment requirements
amount
string
asset
string
extra?
object
maxTimeoutSeconds
number
network
string
payTo
string
scheme
string
resource
Resource information to populate v1 fields
description?
string
mimeType?
string
url
string
translateNetwork?
NetworkTranslator Optional function to translate CAIP-2 to legacy IDs

Returns

object & object The v1 payment requirements with mimeType guaranteed

adaptSettleResponseLegacyToV2()

adaptSettleResponseLegacyToV2(res): object
Defined in: packages/types/dist/src/x402-adapters.d.ts:107 Adapt legacy v1 settle response (with txHash/networkId/error) to v2 format. Use this when receiving data from older clients that use legacy field names.

Parameters

res
error?
null | string
networkId
null | string
payer?
string
success
boolean
txHash
null | string

Returns

object
errorReason?
optional errorReason: string
extensions?
optional extensions: object
network
network: string
payer?
optional payer: string
success
success: boolean
transaction
transaction: string

adaptSettleResponseLenientToV2()

adaptSettleResponseLenientToV2(res): object
Defined in: packages/types/dist/src/x402-adapters.d.ts:113 Adapt a lenient v1 settle response (accepting either legacy or spec-compliant field names) to v2 format. This is the most flexible adapter for parsing incoming settle responses from unknown sources.

Parameters

res
error?
null | string
errorReason?
null | string
network?
null | string
networkId?
null | string
payer?
string
success
boolean
transaction?
null | string
txHash?
null | string

Returns

object
errorReason?
optional errorReason: string
extensions?
optional extensions: object
network
network: string
payer?
optional payer: string
success
success: boolean
transaction
transaction: string

adaptSettleResponseV1ToV2()

adaptSettleResponseV1ToV2(res): object
Defined in: packages/types/dist/src/x402-adapters.d.ts:102 Adapt v1 settle response to v2 format. Accepts lenient input that may have optional/nullable fields from older handlers.

Parameters

res
error?
null | string
errorReason?
null | string
network?
null | string
networkId?
null | string
payer?
string
success
boolean
transaction?
null | string
txHash?
null | string

Returns

object
errorReason?
optional errorReason: string
extensions?
optional extensions: object
network
network: string
payer?
optional payer: string
success
success: boolean
transaction
transaction: string

adaptSettleResponseV2ToV1()

adaptSettleResponseV2ToV1(res, translateNetwork?): object
Defined in: packages/types/dist/src/x402-adapters.d.ts:90 Adapt v2 settle response to spec-compliant v1 format. Since v1 spec uses the same field names as v2 (transaction, network, errorReason), this is primarily a network translation pass.

Parameters

res
errorReason?
string
extensions?
object
network
string
payer?
string
success
boolean
transaction
string
translateNetwork?
NetworkTranslator

Returns

object
errorReason?
optional errorReason: string
network
network: string
payer
payer: string
success
success: boolean
transaction
transaction: string

adaptSettleResponseV2ToV1Legacy()

adaptSettleResponseV2ToV1Legacy(res, translateNetwork?): object
Defined in: packages/types/dist/src/x402-adapters.d.ts:97 Adapt v2 settle response to legacy v1 format with old field names. Use this only for backward compatibility with clients expecting txHash/networkId/error field names.

Parameters

res
errorReason?
string
extensions?
object
network
string
payer?
string
success
boolean
transaction
string
translateNetwork?
NetworkTranslator

Returns

object
error?
optional error: null | string
networkId
networkId: null | string
payer?
optional payer: string
success
success: boolean
txHash
txHash: null | string

Deprecated

Prefer adaptSettleResponseV2ToV1 for spec-compliant output

adaptSupportedKindV1ToV2()

adaptSupportedKindV1ToV2(kind, translateNetwork): object
Defined in: packages/types/dist/src/x402-adapters.d.ts:129 Converts a v1 supported kind to v2 format.

Parameters

kind
The v1 supported kind
extra?
object
network
string
scheme
string
x402Version
number
translateNetwork
NetworkTranslator Function to translate legacy network IDs to CAIP-2

Returns

object The v2 supported kind
extra?
optional extra: object
network
network: string
scheme
scheme: string
x402Version
x402Version: 2

adaptSupportedKindV2ToV1()

adaptSupportedKindV2ToV1(kind, translateNetwork?): object
Defined in: packages/types/dist/src/x402-adapters.d.ts:121 Converts a v2 supported kind to v1 format.

Parameters

kind
The v2 supported kind
extra?
object
network
string
scheme
string
x402Version
2
translateNetwork?
NetworkTranslator Optional function to translate CAIP-2 to legacy IDs

Returns

object The v1 supported kind
extra?
optional extra: object
network
network: string
scheme
scheme: string
x402Version
x402Version: 1 | 2

adaptVerifyResponseV1ToV2()

adaptVerifyResponseV1ToV2(res): object
Defined in: packages/types/dist/src/x402-adapters.d.ts:84 Converts a v1 verify response to v2 format.

Parameters

res
The v1 verify response (lenient)
invalidReason?
null | string
isValid
boolean
payer?
string

Returns

object The v2 verify response
invalidReason?
optional invalidReason: string
isValid
isValid: boolean
payer?
optional payer: string

adaptVerifyResponseV2ToV1()

adaptVerifyResponseV2ToV1(res): object
Defined in: packages/types/dist/src/x402-adapters.d.ts:77 Converts a v2 verify response to v1 format.

Parameters

res
The v2 verify response
invalidReason?
string
isValid
boolean
payer?
string

Returns

object The v1 verify response
invalidReason?
optional invalidReason: string
isValid
isValid: boolean
payer
payer: string

createFacilitatorRoutes()

createFacilitatorRoutes(args): Hono<BlankEnv, BlankSchema, "/">
Defined in: packages/facilitator/src/routes.ts:121 Creates a Hono router with x402 facilitator endpoints. The router provides the following endpoints:
  • POST /verify - Verify a payment without settling
  • POST /settle - Verify and settle a payment
  • POST /accepts - Get payment requirements for a resource
  • GET /supported - List supported payment schemes and networks
Both v1 and v2 protocol formats are supported on all endpoints.

Parameters

args
CreateFacilitatorRoutesArgs Configuration including payment handlers and timeouts

Returns

Hono<BlankEnv, BlankSchema, "/"> A Hono router instance with facilitator endpoints

extractResourceInfoV1()

extractResourceInfoV1(req): object
Defined in: packages/types/dist/src/x402-adapters.d.ts:44 Extracts resource information from v1 payment requirements.

Parameters

req
The v1 payment requirements containing resource fields
asset
string
description
string
extra?
object
maxAmountRequired
string
maxTimeoutSeconds
number
mimeType?
string
network
string
outputSchema?
object
payTo
string
resource
string
scheme
string

Returns

object The extracted resource information
description?
optional description: string
mimeType?
optional mimeType: string
url
url: string

getClientIP()

getClientIP(c): undefined | string
Defined in: packages/facilitator/src/routes.ts:86

Parameters

c
Context

Returns

undefined | string