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: (Defined in: packages/facilitator/src/adapters.ts:40req) =>Promise<x402.x402PaymentRequirements[]>
Parameters
req
x402PaymentRequirementsV1Strict[]
Returns
Promise<x402.x402PaymentRequirements[]>
getSupported()?
Defined in: packages/facilitator/src/adapters.ts:39optionalgetSupported: () =>Promise<x402.x402SupportedKind>[]
Returns
Promise<x402.x402SupportedKind>[]
handleSettle()
handleSettle: (Defined in: packages/facilitator/src/adapters.ts:47requirements,payment) =>Promise<x402.x402SettleResponseLegacy|null>
Parameters
requirements
x402PaymentRequirementsV1Strict
payment
x402.x402PaymentPayload
Returns
Promise<x402.x402SettleResponseLegacy | null>
handleVerify()?
Defined in: packages/facilitator/src/adapters.ts:43optionalhandleVerify: (requirements,payment) =>Promise<x402.x402VerifyResponse|null>
Parameters
requirements
x402PaymentRequirementsV1Strict
payment
x402.x402PaymentPayload
Returns
Promise<x402.x402VerifyResponse | null>
Functions
adaptHandlerV1ToV2()
adaptHandlerV1ToV2(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.handler):FacilitatorHandler
Parameters
handler
LegacyFacilitatorHandler
Returns
FacilitatorHandler
adaptPayloadV1ToV2()
adaptPayloadV1ToV2(Defined in: packages/types/dist/src/x402-adapters.d.ts:53 Converts a v1 payment payload to v2 format.payload,requirements,translateNetwork):object
Parameters
payload
The v1 payment payloadasset?
string
network
string
payload
object
scheme
string
x402Version
number
requirements
The v1 requirements used for resource extractionasset
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?
optionalextra:object
accepted.maxTimeoutSeconds
maxTimeoutSeconds: number
accepted.network
network: string
accepted.payTo
payTo: string
accepted.scheme
scheme: string
extensions?
optionalextensions:object
payload
payload: object
resource?
optionalresource:object
resource.description?
optionaldescription:string
resource.mimeType?
optionalmimeType:string
resource.url
url: string
x402Version
x402Version: 2
adaptPaymentRequiredResponseV1ToV2()
adaptPaymentRequiredResponseV1ToV2(Defined in: packages/types/dist/src/x402-adapters.d.ts:62 Converts a v1 payment required response to v2 format.v1Response,resourceURL,translateNetwork):object
Parameters
v1Response
The v1 payment required responseaccepts
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?
optionalerror:string
extensions?
optionalextensions:object
resource
resource: object
resource.description?
optionaldescription:string
resource.mimeType?
optionalmimeType:string
resource.url
url: string
x402Version
x402Version: 2
adaptPaymentRequiredResponseV2ToV1()
adaptPaymentRequiredResponseV2ToV1(Defined in: packages/types/dist/src/x402-adapters.d.ts:70 Converts a v2 payment required response to v1 format.v2Response,translateNetwork?):object
Parameters
v2Response
The v2 payment required responseaccepts
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(Defined in: packages/types/dist/src/x402-adapters.d.ts:26 Converts v1 payment requirements to v2 format.req,translateNetwork):object
Parameters
req
The v1 payment requirementsasset
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?
optionalextra:object
maxTimeoutSeconds
maxTimeoutSeconds: number
network
network: string
payTo
payTo: string
scheme
scheme: string
adaptRequirementsV2ToV1()
adaptRequirementsV2ToV1(Defined in: packages/types/dist/src/x402-adapters.d.ts:35 Converts v2 payment requirements to v1 format.req,resource,translateNetwork?):object&object
Parameters
req
The v2 payment requirementsamount
string
asset
string
extra?
object
maxTimeoutSeconds
number
network
string
payTo
string
scheme
string
resource
Resource information to populate v1 fieldsdescription?
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(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.res):object
Parameters
res
error?
null | string
networkId
null | string
payer?
string
success
boolean
txHash
null | string
Returns
object
errorReason?
optionalerrorReason:string
extensions?
optionalextensions:object
network
network: string
payer?
optionalpayer:string
success
success: boolean
transaction
transaction: string
adaptSettleResponseLenientToV2()
adaptSettleResponseLenientToV2(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.res):object
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?
optionalerrorReason:string
extensions?
optionalextensions:object
network
network: string
payer?
optionalpayer:string
success
success: boolean
transaction
transaction: string
adaptSettleResponseV1ToV2()
adaptSettleResponseV1ToV2(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.res):object
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?
optionalerrorReason:string
extensions?
optionalextensions:object
network
network: string
payer?
optionalpayer:string
success
success: boolean
transaction
transaction: string
adaptSettleResponseV2ToV1()
adaptSettleResponseV2ToV1(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.res,translateNetwork?):object
Parameters
res
errorReason?
string
extensions?
object
network
string
payer?
string
success
boolean
transaction
string
translateNetwork?
NetworkTranslator
Returns
object
errorReason?
optionalerrorReason:string
network
network: string
payer
payer: string
success
success: boolean
transaction
transaction: string
adaptSettleResponseV2ToV1Legacy()
adaptSettleResponseV2ToV1Legacy(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.res,translateNetwork?):object
Parameters
res
errorReason?
string
extensions?
object
network
string
payer?
string
success
boolean
transaction
string
translateNetwork?
NetworkTranslator
Returns
object
error?
optionalerror:null|string
networkId
networkId:null|string
payer?
optionalpayer:string
success
success: boolean
txHash
txHash:null|string
Deprecated
Prefer adaptSettleResponseV2ToV1 for spec-compliant outputadaptSupportedKindV1ToV2()
adaptSupportedKindV1ToV2(Defined in: packages/types/dist/src/x402-adapters.d.ts:129 Converts a v1 supported kind to v2 format.kind,translateNetwork):object
Parameters
kind
The v1 supported kindextra?
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?
optionalextra:object
network
network: string
scheme
scheme: string
x402Version
x402Version: 2
adaptSupportedKindV2ToV1()
adaptSupportedKindV2ToV1(Defined in: packages/types/dist/src/x402-adapters.d.ts:121 Converts a v2 supported kind to v1 format.kind,translateNetwork?):object
Parameters
kind
The v2 supported kindextra?
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?
optionalextra:object
network
network: string
scheme
scheme: string
x402Version
x402Version:1|2
adaptVerifyResponseV1ToV2()
adaptVerifyResponseV1ToV2(Defined in: packages/types/dist/src/x402-adapters.d.ts:84 Converts a v1 verify response to v2 format.res):object
Parameters
res
The v1 verify response (lenient)invalidReason?
null | string
isValid
boolean
payer?
string
Returns
object
The v2 verify response
invalidReason?
optionalinvalidReason:string
isValid
isValid: boolean
payer?
optionalpayer:string
adaptVerifyResponseV2ToV1()
adaptVerifyResponseV2ToV1(Defined in: packages/types/dist/src/x402-adapters.d.ts:77 Converts a v2 verify response to v1 format.res):object
Parameters
res
The v2 verify responseinvalidReason?
string
isValid
boolean
payer?
string
Returns
object
The v1 verify response
invalidReason?
optionalinvalidReason:string
isValid
isValid: boolean
payer
payer: string
createFacilitatorRoutes()
createFacilitatorRoutes(Defined in: packages/facilitator/src/routes.ts:121 Creates a Hono router with x402 facilitator endpoints. The router provides the following endpoints:args):Hono<BlankEnv,BlankSchema,"/">
- 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
Parameters
args
CreateFacilitatorRoutesArgs
Configuration including payment handlers and timeouts
Returns
Hono<BlankEnv, BlankSchema, "/">
A Hono router instance with facilitator endpoints
extractResourceInfoV1()
extractResourceInfoV1(Defined in: packages/types/dist/src/x402-adapters.d.ts:44 Extracts resource information from v1 payment requirements.req):object
Parameters
req
The v1 payment requirements containing resource fieldsasset
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?
optionaldescription:string
mimeType?
optionalmimeType:string
url
url: string
getClientIP()
getClientIP(Defined in: packages/facilitator/src/routes.ts:86c):undefined|string
Parameters
c
Context
Returns
undefined | string