diff --git a/apps/scan/public/xpay.svg b/apps/scan/public/xpay.svg new file mode 100644 index 000000000..1aa3ed808 --- /dev/null +++ b/apps/scan/public/xpay.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/external/facilitators/README.md b/packages/external/facilitators/README.md index bc44e7886..eff20a6fd 100644 --- a/packages/external/facilitators/README.md +++ b/packages/external/facilitators/README.md @@ -74,6 +74,7 @@ The following facilitators currently support resource discovery: - **PayAI** - AI-payment infrastructure - **Ultravioleta DAO** - Community-driven multichain facilitator - **RelAI** - AI infrastructure platform +- **Xpay** - x402 payment facilitator ### Enumerate All Discoverable Facilitators @@ -124,6 +125,7 @@ This package includes pre-configured integrations for the following X402 facilit | **RelAI** | BASE, SOLANA | ✅ Yes | No | | **Bitrefill** | BASE, SOLANA | No | No | | **Cascade** | BASE, SOLANA | No | No | +| **Xpay** | BASE | ✅ Yes | No | ### Import Individual Facilitators @@ -153,6 +155,7 @@ import { relai, bitrefill, cascade, + xpay, } from 'facilitators'; // Facilitators requiring setup diff --git a/packages/external/facilitators/src/discovery/index.ts b/packages/external/facilitators/src/discovery/index.ts index 5d9a7f9a0..ce9f3f3cf 100644 --- a/packages/external/facilitators/src/discovery/index.ts +++ b/packages/external/facilitators/src/discovery/index.ts @@ -11,5 +11,6 @@ export { questflowDiscovery } from '../facilitators/questflow'; export { ultravioletadaoDiscovery } from '../facilitators/ultravioletadao'; export { anyspendDiscovery } from '../facilitators/anyspend'; export { relaiDiscovery } from '../facilitators/relai'; +export { xpayDiscovery } from '../facilitators/xpay'; export { discoverableFacilitators } from './facilitators'; diff --git a/packages/external/facilitators/src/facilitators/index.ts b/packages/external/facilitators/src/facilitators/index.ts index 5af4471dd..3b15272c6 100644 --- a/packages/external/facilitators/src/facilitators/index.ts +++ b/packages/external/facilitators/src/facilitators/index.ts @@ -27,3 +27,4 @@ export { openfacilitator, openfacilitatorFacilitator } from './openfacilitator'; export { relai, relaiFacilitator } from './relai'; export { bitrefill, bitrefillFacilitator } from './bitrefill'; export { cascade, cascadeFacilitator } from './cascade'; +export { xpay, xpayFacilitator, xpayDiscovery } from './xpay'; diff --git a/packages/external/facilitators/src/facilitators/xpay.ts b/packages/external/facilitators/src/facilitators/xpay.ts new file mode 100644 index 000000000..dca6f7fe6 --- /dev/null +++ b/packages/external/facilitators/src/facilitators/xpay.ts @@ -0,0 +1,33 @@ +import { Network } from '../types'; +import { USDC_BASE_TOKEN } from '../constants'; + +import type { Facilitator, FacilitatorConfig } from '../types'; + +export const xpay: FacilitatorConfig = { + url: 'https://facilitator.xpay.sh', +}; + +export const xpayDiscovery: FacilitatorConfig = { + url: 'https://facilitator.xpay.sh', +}; + +export const xpayFacilitator = { + id: 'xpay', + metadata: { + name: 'Xpay', + image: '/xpay.svg', + docsUrl: 'https://docs.xpay.sh', + color: '#00DC9C', + }, + config: xpay, + discoveryConfig: xpayDiscovery, + addresses: { + [Network.BASE]: [ + { + address: '0x2772f7f74ac0aca38c6238aa5ece72b27beb8c17', + tokens: [USDC_BASE_TOKEN], + dateOfFirstTransaction: new Date('2026-04-01'), + }, + ], + }, +} as const satisfies Facilitator; diff --git a/packages/external/facilitators/src/lists/all.ts b/packages/external/facilitators/src/lists/all.ts index dbfb259a9..d4585281d 100644 --- a/packages/external/facilitators/src/lists/all.ts +++ b/packages/external/facilitators/src/lists/all.ts @@ -27,6 +27,7 @@ import { relaiFacilitator, bitrefillFacilitator, cascadeFacilitator, + xpayFacilitator, } from '../facilitators'; import { validateUniqueFacilitators } from './validate'; @@ -62,6 +63,7 @@ const FACILITATORS = validateUniqueFacilitators([ relaiFacilitator, bitrefillFacilitator, cascadeFacilitator, + xpayFacilitator, ]); export const allFacilitators: Facilitator[] =