From f28aeec41b6af11732ce7fa7fd9923d9ccbe2d24 Mon Sep 17 00:00:00 2001 From: AyushBherwani1998 Date: Thu, 21 May 2026 09:15:27 +0530 Subject: [PATCH 1/5] update x402 server template --- templates/node/x402-server/.env.example | 2 +- templates/node/x402-server/package.json | 1 + templates/node/x402-server/src/index.ts | 6 ++-- templates/node/x402-server/src/scheme.ts | 39 ------------------------ 4 files changed, 5 insertions(+), 43 deletions(-) delete mode 100644 templates/node/x402-server/src/scheme.ts diff --git a/templates/node/x402-server/.env.example b/templates/node/x402-server/.env.example index 98bbbeb..68a2f6a 100644 --- a/templates/node/x402-server/.env.example +++ b/templates/node/x402-server/.env.example @@ -2,4 +2,4 @@ PAY_TO_ADDRESS=0x... # Override the default MetaMask Sentinel facilitator URL -FACILITATOR_URL=https://tx-sentinel-base-mainnet.dev-api.cx.metamask.io/platform/v2/x402 +FACILITATOR_URL=https://tx-sentinel-base-sepolia.api.cx.metamask.io/platform/v2/x402 diff --git a/templates/node/x402-server/package.json b/templates/node/x402-server/package.json index 5c5a976..edeb2a0 100644 --- a/templates/node/x402-server/package.json +++ b/templates/node/x402-server/package.json @@ -9,6 +9,7 @@ "start": "node dist/index.js" }, "dependencies": { + "@metamask/x402": "^0.1.0", "@x402/core": "^2.12.0", "@x402/evm": "^2.12.0", "@x402/express": "^2.12.0", diff --git a/templates/node/x402-server/src/index.ts b/templates/node/x402-server/src/index.ts index ca118d4..d503004 100644 --- a/templates/node/x402-server/src/index.ts +++ b/templates/node/x402-server/src/index.ts @@ -3,11 +3,11 @@ import express, { type Request, type Response } from "express"; import cors from "cors"; import { paymentMiddleware } from "@x402/express"; import { x402ResourceServer, HTTPFacilitatorClient } from "@x402/core/server"; -import { Erc7710ExactEvmScheme } from "./scheme.js"; +import { x402ExactEvmErc7710ServerScheme } from "@metamask/x402"; config(); -const NETWORK_ID = "eip155:8453"; +const NETWORK_ID = "eip155:84532"; const PORT = 4402; const payToAddress = process.env.PAY_TO_ADDRESS as string; @@ -45,7 +45,7 @@ app.use( }, new x402ResourceServer(facilitatorClient).register( NETWORK_ID, - new Erc7710ExactEvmScheme(facilitatorClient), + new x402ExactEvmErc7710ServerScheme(), ), ), ); diff --git a/templates/node/x402-server/src/scheme.ts b/templates/node/x402-server/src/scheme.ts deleted file mode 100644 index 900b3eb..0000000 --- a/templates/node/x402-server/src/scheme.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { ExactEvmScheme } from "@x402/evm/exact/server"; -import type { - PaymentRequirements, - SupportedKind, -} from "@x402/core/types"; -import type { FacilitatorClient } from "@x402/core/server"; - -export class Erc7710ExactEvmScheme extends ExactEvmScheme { - constructor(private readonly facilitatorClient: FacilitatorClient) { - super(); - } - - async enhancePaymentRequirements( - paymentRequirements: PaymentRequirements, - supportedKind: SupportedKind, - facilitatorExtensions: string[], - ): Promise { - const enhanced = await super.enhancePaymentRequirements( - paymentRequirements, - supportedKind, - facilitatorExtensions, - ); - - const supported = await this.facilitatorClient.getSupported(); - const facilitators = [ - ...(supported.signers[paymentRequirements.network] ?? []), - ...(supported.signers["eip155:*"] ?? []) - ]; - - return { - ...enhanced, - extra: { - ...enhanced.extra, - assetTransferMethod: "erc7710", - facilitators, - }, - }; - } -} From 89815282c5c3ccad436d3fef3e2d5d306e018941 Mon Sep 17 00:00:00 2001 From: AyushBherwani1998 Date: Thu, 21 May 2026 09:19:56 +0530 Subject: [PATCH 2/5] remove unused package --- templates/node/x402-server/package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/templates/node/x402-server/package.json b/templates/node/x402-server/package.json index edeb2a0..7c5a737 100644 --- a/templates/node/x402-server/package.json +++ b/templates/node/x402-server/package.json @@ -11,7 +11,6 @@ "dependencies": { "@metamask/x402": "^0.1.0", "@x402/core": "^2.12.0", - "@x402/evm": "^2.12.0", "@x402/express": "^2.12.0", "cors": "^2.8.5", "dotenv": "^16.4.7", From 62b77ec47ebed7b472b83758e39d5d200fb658ec Mon Sep 17 00:00:00 2001 From: AyushBherwani1998 Date: Thu, 21 May 2026 09:35:53 +0530 Subject: [PATCH 3/5] bump node dependency --- package.json | 2 +- yarn.lock | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index 63670fd..a91da62 100644 --- a/package.json +++ b/package.json @@ -68,7 +68,7 @@ "@types/cross-spawn": "^6.0.6", "@types/fs-extra": "^9.0.13", "@types/inquirer": "^8.2.4", - "@types/node": "^18.18", + "@types/node": "^20.19.0", "@typescript-eslint/utils": "^8.6.0", "@vitest/coverage-istanbul": "^3.0.7", "@vitest/eslint-plugin": "^1.1.4", diff --git a/yarn.lock b/yarn.lock index 1aafa4b..6f9a64b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -923,7 +923,7 @@ __metadata: "@types/cross-spawn": "npm:^6.0.6" "@types/fs-extra": "npm:^9.0.13" "@types/inquirer": "npm:^8.2.4" - "@types/node": "npm:^18.18" + "@types/node": "npm:^20.19.0" "@typescript-eslint/utils": "npm:^8.6.0" "@vitest/coverage-istanbul": "npm:^3.0.7" "@vitest/eslint-plugin": "npm:^1.1.4" @@ -1686,12 +1686,12 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:^18.18": - version: 18.19.130 - resolution: "@types/node@npm:18.19.130" +"@types/node@npm:^20.19.0": + version: 20.19.41 + resolution: "@types/node@npm:20.19.41" dependencies: - undici-types: "npm:~5.26.4" - checksum: 10/ebb85c6edcec78df926de27d828ecbeb1b3d77c165ceef95bfc26e171edbc1924245db4eb2d7d6230206fe6b1a1f7665714fe1c70739e9f5980d8ce31af6ef82 + undici-types: "npm:~6.21.0" + checksum: 10/5eb38cabe687130093681fe35e2ee2230c0717ee44a784881229c8ea9ecfb3626be87edb3940c9b60886dc93b5cb5c66a58a4ff44f1de3936e6af92b65a029b2 languageName: node linkType: hard @@ -6419,10 +6419,10 @@ __metadata: languageName: node linkType: hard -"undici-types@npm:~5.26.4": - version: 5.26.5 - resolution: "undici-types@npm:5.26.5" - checksum: 10/0097779d94bc0fd26f0418b3a05472410408877279141ded2bd449167be1aed7ea5b76f756562cb3586a07f251b90799bab22d9019ceba49c037c76445f7cddd +"undici-types@npm:~6.21.0": + version: 6.21.0 + resolution: "undici-types@npm:6.21.0" + checksum: 10/ec8f41aa4359d50f9b59fa61fe3efce3477cc681908c8f84354d8567bb3701fafdddf36ef6bff307024d3feb42c837cf6f670314ba37fc8145e219560e473d14 languageName: node linkType: hard From c9da3019cbd37d9c3047dd9db31cc596ecbf4605 Mon Sep 17 00:00:00 2001 From: AyushBherwani1998 Date: Thu, 21 May 2026 16:17:04 +0530 Subject: [PATCH 4/5] update deps --- package.json | 2 +- templates/node/x402-server/package.json | 5 +++-- yarn.lock | 20 ++++++++++---------- 3 files changed, 14 insertions(+), 13 deletions(-) diff --git a/package.json b/package.json index a91da62..63670fd 100644 --- a/package.json +++ b/package.json @@ -68,7 +68,7 @@ "@types/cross-spawn": "^6.0.6", "@types/fs-extra": "^9.0.13", "@types/inquirer": "^8.2.4", - "@types/node": "^20.19.0", + "@types/node": "^18.18", "@typescript-eslint/utils": "^8.6.0", "@vitest/coverage-istanbul": "^3.0.7", "@vitest/eslint-plugin": "^1.1.4", diff --git a/templates/node/x402-server/package.json b/templates/node/x402-server/package.json index 7c5a737..bfda5ea 100644 --- a/templates/node/x402-server/package.json +++ b/templates/node/x402-server/package.json @@ -11,7 +11,8 @@ "dependencies": { "@metamask/x402": "^0.1.0", "@x402/core": "^2.12.0", - "@x402/express": "^2.12.0", + "@x402/evm": "^2.12.0", + "viem": "^2.31.4", "cors": "^2.8.5", "dotenv": "^16.4.7", "express": "^4.21.2" @@ -19,7 +20,7 @@ "devDependencies": { "@types/cors": "^2.8.17", "@types/express": "^5.0.2", - "@types/node": "^22.15.3", + "@types/node": "^18.18", "tsx": "^4.19.4", "typescript": "^5.8.3" } diff --git a/yarn.lock b/yarn.lock index 6f9a64b..1aafa4b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -923,7 +923,7 @@ __metadata: "@types/cross-spawn": "npm:^6.0.6" "@types/fs-extra": "npm:^9.0.13" "@types/inquirer": "npm:^8.2.4" - "@types/node": "npm:^20.19.0" + "@types/node": "npm:^18.18" "@typescript-eslint/utils": "npm:^8.6.0" "@vitest/coverage-istanbul": "npm:^3.0.7" "@vitest/eslint-plugin": "npm:^1.1.4" @@ -1686,12 +1686,12 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:^20.19.0": - version: 20.19.41 - resolution: "@types/node@npm:20.19.41" +"@types/node@npm:^18.18": + version: 18.19.130 + resolution: "@types/node@npm:18.19.130" dependencies: - undici-types: "npm:~6.21.0" - checksum: 10/5eb38cabe687130093681fe35e2ee2230c0717ee44a784881229c8ea9ecfb3626be87edb3940c9b60886dc93b5cb5c66a58a4ff44f1de3936e6af92b65a029b2 + undici-types: "npm:~5.26.4" + checksum: 10/ebb85c6edcec78df926de27d828ecbeb1b3d77c165ceef95bfc26e171edbc1924245db4eb2d7d6230206fe6b1a1f7665714fe1c70739e9f5980d8ce31af6ef82 languageName: node linkType: hard @@ -6419,10 +6419,10 @@ __metadata: languageName: node linkType: hard -"undici-types@npm:~6.21.0": - version: 6.21.0 - resolution: "undici-types@npm:6.21.0" - checksum: 10/ec8f41aa4359d50f9b59fa61fe3efce3477cc681908c8f84354d8567bb3701fafdddf36ef6bff307024d3feb42c837cf6f670314ba37fc8145e219560e473d14 +"undici-types@npm:~5.26.4": + version: 5.26.5 + resolution: "undici-types@npm:5.26.5" + checksum: 10/0097779d94bc0fd26f0418b3a05472410408877279141ded2bd449167be1aed7ea5b76f756562cb3586a07f251b90799bab22d9019ceba49c037c76445f7cddd languageName: node linkType: hard From 1e7b1696f63c2b6892d9ba2493fdef5c2d3e2683 Mon Sep 17 00:00:00 2001 From: AyushBherwani1998 Date: Thu, 21 May 2026 16:30:44 +0530 Subject: [PATCH 5/5] fix lint issues --- templates/node/x402-server/package.json | 4 ++-- tsconfig.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/templates/node/x402-server/package.json b/templates/node/x402-server/package.json index bfda5ea..d85b968 100644 --- a/templates/node/x402-server/package.json +++ b/templates/node/x402-server/package.json @@ -12,10 +12,10 @@ "@metamask/x402": "^0.1.0", "@x402/core": "^2.12.0", "@x402/evm": "^2.12.0", - "viem": "^2.31.4", "cors": "^2.8.5", "dotenv": "^16.4.7", - "express": "^4.21.2" + "express": "^4.21.2", + "viem": "^2.31.4" }, "devDependencies": { "@types/cors": "^2.8.17", diff --git a/tsconfig.json b/tsconfig.json index 27a1f34..9405d69 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -14,5 +14,5 @@ "skipLibCheck": true, "target": "ES2020" }, - "exclude": ["./dist", "**/node_modules"] + "exclude": ["./dist", "./templates", "**/node_modules"] }