@shroud-fi/x402 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/README.md +28 -3
  2. package/dist/cjs/client.d.ts.map +1 -1
  3. package/dist/cjs/client.js +5 -6
  4. package/dist/cjs/client.js.map +1 -1
  5. package/dist/cjs/facilitator.d.ts +39 -0
  6. package/dist/cjs/facilitator.d.ts.map +1 -1
  7. package/dist/cjs/facilitator.js +59 -3
  8. package/dist/cjs/facilitator.js.map +1 -1
  9. package/dist/cjs/index.d.ts +3 -1
  10. package/dist/cjs/index.d.ts.map +1 -1
  11. package/dist/cjs/index.js +8 -1
  12. package/dist/cjs/index.js.map +1 -1
  13. package/dist/cjs/protocol.d.ts +10 -0
  14. package/dist/cjs/protocol.d.ts.map +1 -1
  15. package/dist/cjs/protocol.js +17 -0
  16. package/dist/cjs/protocol.js.map +1 -1
  17. package/dist/cjs/server.d.ts.map +1 -1
  18. package/dist/cjs/server.js +16 -16
  19. package/dist/cjs/server.js.map +1 -1
  20. package/dist/cjs/signing.d.ts +6 -3
  21. package/dist/cjs/signing.d.ts.map +1 -1
  22. package/dist/cjs/signing.js +14 -11
  23. package/dist/cjs/signing.js.map +1 -1
  24. package/dist/esm/client.d.ts.map +1 -1
  25. package/dist/esm/client.js +6 -7
  26. package/dist/esm/client.js.map +1 -1
  27. package/dist/esm/facilitator.d.ts +39 -0
  28. package/dist/esm/facilitator.d.ts.map +1 -1
  29. package/dist/esm/facilitator.js +59 -4
  30. package/dist/esm/facilitator.js.map +1 -1
  31. package/dist/esm/index.d.ts +3 -1
  32. package/dist/esm/index.d.ts.map +1 -1
  33. package/dist/esm/index.js +3 -1
  34. package/dist/esm/index.js.map +1 -1
  35. package/dist/esm/protocol.d.ts +10 -0
  36. package/dist/esm/protocol.d.ts.map +1 -1
  37. package/dist/esm/protocol.js +16 -0
  38. package/dist/esm/protocol.js.map +1 -1
  39. package/dist/esm/server.d.ts.map +1 -1
  40. package/dist/esm/server.js +18 -18
  41. package/dist/esm/server.js.map +1 -1
  42. package/dist/esm/signing.d.ts +6 -3
  43. package/dist/esm/signing.d.ts.map +1 -1
  44. package/dist/esm/signing.js +15 -12
  45. package/dist/esm/signing.js.map +1 -1
  46. package/dist/tsconfig.cjs.tsbuildinfo +1 -1
  47. package/dist/tsconfig.esm.tsbuildinfo +1 -1
  48. package/package.json +3 -3
package/README.md CHANGED
@@ -11,9 +11,19 @@ npm i @shroud-fi/x402 viem
11
11
 
12
12
  ## What it does
13
13
 
14
- `@shroud-fi/x402` wraps the HTTP 402 protocol with ShroudFi's stealth-address layer. Any endpoint can issue a 402 challenge, and any agent can pay it — but the USDC settlement lands at a **fresh, one-time stealth address** derived from the seller's meta-address.
14
+ `@shroud-fi/x402` wraps the HTTP 402 protocol with ShroudFi's stealth-address layer. Any endpoint can issue a 402 challenge, and any agent can pay it — but the EIP-3009 settlement lands at a **fresh, one-time stealth address** derived from the seller's meta-address.
15
15
 
16
- Call the same `/pay/signal` URL ten times — get ten unlinkable USDC destinations. The customer graph never forms on-chain.
16
+ Call the same `/pay/signal` URL ten times — get ten unlinkable destinations. The customer graph never forms on-chain.
17
+
18
+ ## Supported assets
19
+
20
+ | Asset | Chain | Decimals | Why |
21
+ |---|---|---|---|
22
+ | **USDC** | Base mainnet | 6 | Circle-issued, EIP-3009 native |
23
+ | **EURC** | Base mainnet | 6 | Circle-issued (EUR), EIP-3009 native |
24
+ | USDC | Base Sepolia | 6 | testnet |
25
+
26
+ USDT and DAI are deliberately **not supported** at the x402 layer — they don't implement EIP-3009 `transferWithAuthorization`. Adding them would require a separate settlement primitive (USDT: plain approve+transferFrom; DAI: DAI-style permit). Tracked for a later release.
17
27
 
18
28
  ## Why it matters
19
29
 
@@ -64,10 +74,25 @@ if (!verified.ok) return reply.code(402).send({ error: verified.reason });
64
74
 
65
75
  Full API reference: [shroudfi.live/sdk#x402](https://shroudfi.live/sdk#x402)
66
76
 
77
+ ## Facilitators
78
+
79
+ Settlement can run through an external x402 facilitator (which broadcasts the EIP-3009 tx and pays gas) or via your own settler EOA (`skipFacilitator: true`).
80
+
81
+ **PayAI facilitator is supported out of the box** (v0.1.2). The SDK speaks x402 v2 / CAIP-2 internally and translates to the facilitator's v1 / legacy-network wire format at the boundary via `toFacilitatorRequest`. Proven end-to-end on Base mainnet — a 0.01 USDC agent-to-agent payment settled to a one-time stealth address ([tx `0x57d84d53…`](https://base.blockscout.com/tx/0x57d84d53212fdaddd5c178fa722943c559b0628070e1705267d31d72723158ec)). PayAI pays the gas; the buyer needs only USDC, no ETH.
82
+
83
+ ```ts
84
+ const x402 = createX402Server({
85
+ transport, recipientMetaAddress, asset: USDC, chainId: 8453,
86
+ defaultPriceAtomic: 10_000n,
87
+ // facilitator defaults to PayAI free tier; omit to use it.
88
+ });
89
+ const v = await x402.verify({ signedPayload, challenge }); // verifies + settles via PayAI
90
+ ```
91
+
67
92
  ## Standards used
68
93
 
69
94
  - **HTTP 402 Payment Required** + **`x402` extension** ([x402.org](https://x402.org/))
70
- - **EIP-3009** `transferWithAuthorization` for USDC settlement
95
+ - **EIP-3009** `transferWithAuthorization` for USDC + EURC settlement
71
96
  - **EIP-5564 / 6538** for stealth-address derivation
72
97
 
73
98
  ## License
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAkBH,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAMtE;;;GAGG;AACH,MAAM,WAAW,YAAa,SAAQ,QAAQ;IAC5C,cAAc,CAAC,EAAE,iBAAiB,CAAC;CACpC;AAED,MAAM,WAAW,UAAU;IACzB;;;;;;OAMG;IACH,KAAK,CACH,KAAK,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,EAC7B,IAAI,CAAC,EAAE,WAAW,GAAG;QAAE,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,GAC/C,OAAO,CAAC,YAAY,CAAC,CAAC;CAC1B;AAyED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,UAAU,CA6HrE;AAED,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAkBH,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAMtE;;;GAGG;AACH,MAAM,WAAW,YAAa,SAAQ,QAAQ;IAC5C,cAAc,CAAC,EAAE,iBAAiB,CAAC;CACpC;AAED,MAAM,WAAW,UAAU;IACzB;;;;;;OAMG;IACH,KAAK,CACH,KAAK,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,EAC7B,IAAI,CAAC,EAAE,WAAW,GAAG;QAAE,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,GAC/C,OAAO,CAAC,YAAY,CAAC,CAAC;CAC1B;AAyED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,UAAU,CA0HrE;AAED,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC"}
@@ -122,12 +122,11 @@ function createX402Client(config) {
122
122
  if (requirements.scheme !== protocol_js_1.X402_SCHEME_EXACT) {
123
123
  throw new errors_js_1.X402InvalidChallengeError();
124
124
  }
125
- const canonicalUsdc = (0, transport_1.getUSDC)(chain.id);
126
- if (canonicalUsdc === undefined) {
127
- throw new errors_js_1.X402AssetNotSupportedError();
128
- }
129
- if (requirements.asset.toLowerCase() !==
130
- canonicalUsdc.toLowerCase()) {
125
+ // v0.1.1: accept any EIP-3009 asset registered for this chain (USDC, EURC).
126
+ // The exact asset is challenge-driven — the server picks; we validate
127
+ // membership in the registry rather than pinning to one symbol.
128
+ const challengedAsset = (0, transport_1.getEip3009Token)(chain.id, requirements.asset);
129
+ if (challengedAsset === undefined) {
131
130
  throw new errors_js_1.X402AssetNotSupportedError();
132
131
  }
133
132
  const expectedNetwork = `eip155:${chain.id}`;
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
@@ -30,6 +30,45 @@ export interface FacilitatorSettleResult {
30
30
  }
31
31
  /** Resolve the facilitator config, defaulting to PayAI free tier. */
32
32
  export declare function resolveFacilitator(config: X402FacilitatorConfig | undefined): X402FacilitatorConfig;
33
+ /**
34
+ * Translate our internal x402 v2 / CAIP-2 verify+settle body into the v1 /
35
+ * legacy-network shape that PayAI (and the wider facilitator ecosystem)
36
+ * accepts on the wire. Proven end-to-end on Base mainnet (tx 0x57d84d53…)
37
+ * before this shipped.
38
+ *
39
+ * Transformations:
40
+ * - x402Version 2 → 1 (top-level and on the payload)
41
+ * - network CAIP-2 (`eip155:8453`) → legacy name (`base`) on both the
42
+ * payload and the requirements
43
+ * - requirements.extra trimmed to `{ name, version }` — the facilitator
44
+ * does not consume our `shroudfiAnnouncement` extension and some reject
45
+ * unknown extra keys
46
+ * - requirements gains `mimeType: ''` (present in the canonical v1 shape)
47
+ *
48
+ * Pure — never mutates its inputs. Throws X402FacilitatorError('network') for
49
+ * a chain with no mapped facilitator network name.
50
+ */
51
+ export declare function toFacilitatorRequest(args: {
52
+ readonly chainId: number;
53
+ readonly paymentRequirements: Record<string, unknown> & {
54
+ readonly extra?: Record<string, unknown>;
55
+ };
56
+ readonly paymentPayload: Record<string, unknown>;
57
+ }): {
58
+ x402Version: 1;
59
+ paymentPayload: Record<string, unknown> & {
60
+ x402Version: 1;
61
+ network: string;
62
+ };
63
+ paymentRequirements: Record<string, unknown> & {
64
+ network: string;
65
+ mimeType: string;
66
+ extra: {
67
+ name: string;
68
+ version: string;
69
+ };
70
+ };
71
+ };
33
72
  /**
34
73
  * Build standard headers for a facilitator request. When an Ed25519 auth
35
74
  * token is configured, attach `Authorization: Bearer <token>`. Otherwise
@@ -1 +1 @@
1
- {"version":3,"file":"facilitator.d.ts","sourceRoot":"","sources":["../../src/facilitator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAChC,OAAO,EAAyB,KAAK,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAGlF,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,qEAAqE;AACrE,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,qBAAqB,GAAG,SAAS,GACxC,qBAAqB,CAKvB;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,qBAAqB,GAC5B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CASxB;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,qBAAqB,EAC7B,IAAI,EAAE,OAAO,EACb,SAAS,GAAE,OAAO,KAAa,GAC9B,OAAO,CAAC,uBAAuB,CAAC,CAsBlC;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,qBAAqB,EAC7B,IAAI,EAAE,OAAO,EACb,SAAS,GAAE,OAAO,KAAa,GAC9B,OAAO,CAAC,uBAAuB,CAAC,CAsBlC"}
1
+ {"version":3,"file":"facilitator.d.ts","sourceRoot":"","sources":["../../src/facilitator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAChC,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,eAAe,CAAC;AAGvB,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,qEAAqE;AACrE,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,qBAAqB,GAAG,SAAS,GACxC,qBAAqB,CAKvB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE;IACzC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;QACtD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC1C,CAAC;IACF,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClD,GAAG;IACF,WAAW,EAAE,CAAC,CAAC;IACf,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;QAAE,WAAW,EAAE,CAAC,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9E,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;QAC7C,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;KAC1C,CAAC;CACH,CAgCA;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,qBAAqB,GAC5B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CASxB;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,qBAAqB,EAC7B,IAAI,EAAE,OAAO,EACb,SAAS,GAAE,OAAO,KAAa,GAC9B,OAAO,CAAC,uBAAuB,CAAC,CAsBlC;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,qBAAqB,EAC7B,IAAI,EAAE,OAAO,EACb,SAAS,GAAE,OAAO,KAAa,GAC9B,OAAO,CAAC,uBAAuB,CAAC,CAoClC"}
@@ -17,6 +17,7 @@
17
17
  */
18
18
  Object.defineProperty(exports, "__esModule", { value: true });
19
19
  exports.resolveFacilitator = resolveFacilitator;
20
+ exports.toFacilitatorRequest = toFacilitatorRequest;
20
21
  exports.buildFacilitatorHeaders = buildFacilitatorHeaders;
21
22
  exports.facilitatorVerify = facilitatorVerify;
22
23
  exports.facilitatorSettle = facilitatorSettle;
@@ -29,6 +30,49 @@ function resolveFacilitator(config) {
29
30
  }
30
31
  return config;
31
32
  }
33
+ /**
34
+ * Translate our internal x402 v2 / CAIP-2 verify+settle body into the v1 /
35
+ * legacy-network shape that PayAI (and the wider facilitator ecosystem)
36
+ * accepts on the wire. Proven end-to-end on Base mainnet (tx 0x57d84d53…)
37
+ * before this shipped.
38
+ *
39
+ * Transformations:
40
+ * - x402Version 2 → 1 (top-level and on the payload)
41
+ * - network CAIP-2 (`eip155:8453`) → legacy name (`base`) on both the
42
+ * payload and the requirements
43
+ * - requirements.extra trimmed to `{ name, version }` — the facilitator
44
+ * does not consume our `shroudfiAnnouncement` extension and some reject
45
+ * unknown extra keys
46
+ * - requirements gains `mimeType: ''` (present in the canonical v1 shape)
47
+ *
48
+ * Pure — never mutates its inputs. Throws X402FacilitatorError('network') for
49
+ * a chain with no mapped facilitator network name.
50
+ */
51
+ function toFacilitatorRequest(args) {
52
+ const network = (0, protocol_js_1.facilitatorNetworkName)(args.chainId);
53
+ if (network === undefined) {
54
+ throw new errors_js_1.X402FacilitatorError('network');
55
+ }
56
+ const srcExtra = (args.paymentRequirements.extra ?? {});
57
+ const extra = {
58
+ name: String(srcExtra.name ?? ''),
59
+ version: String(srcExtra.version ?? ''),
60
+ };
61
+ const paymentRequirements = {
62
+ ...args.paymentRequirements,
63
+ network,
64
+ mimeType: typeof args.paymentRequirements.mimeType === 'string'
65
+ ? args.paymentRequirements.mimeType
66
+ : '',
67
+ extra,
68
+ };
69
+ const paymentPayload = {
70
+ ...args.paymentPayload,
71
+ x402Version: 1,
72
+ network,
73
+ };
74
+ return { x402Version: 1, paymentPayload, paymentRequirements };
75
+ }
32
76
  /**
33
77
  * Build standard headers for a facilitator request. When an Ed25519 auth
34
78
  * token is configured, attach `Authorization: Bearer <token>`. Otherwise
@@ -94,13 +138,25 @@ async function facilitatorSettle(config, body, fetchImpl = fetch) {
94
138
  if (!res.ok) {
95
139
  throw new errors_js_1.X402FacilitatorError('settle');
96
140
  }
97
- let parsed;
141
+ let raw;
98
142
  try {
99
- parsed = (await res.json());
143
+ raw = (await res.json());
100
144
  }
101
145
  catch {
102
146
  throw new errors_js_1.X402FacilitatorError('settle');
103
147
  }
104
- return parsed;
148
+ // Normalize the tx-hash field. The x402 facilitator spec drifted: PayAI
149
+ // returns `transaction`, some return `transactionHash`, our own type uses
150
+ // `txHash`. Accept all three so callers get a populated txHash on success.
151
+ const txHash = (raw.txHash ?? raw.transaction ?? raw.transactionHash);
152
+ return {
153
+ success: raw.success === true,
154
+ ...(txHash !== undefined ? { txHash } : {}),
155
+ ...(typeof raw.errorReason === 'string'
156
+ ? { errorReason: raw.errorReason }
157
+ : {}),
158
+ ...(typeof raw.payer === 'string' ? { payer: raw.payer } : {}),
159
+ ...(typeof raw.network === 'string' ? { network: raw.network } : {}),
160
+ };
105
161
  }
106
162
  //# sourceMappingURL=facilitator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"facilitator.js","sourceRoot":"","sources":["../../src/facilitator.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;AAqBH,gDAOC;AAOD,0DAWC;AAOD,8CA0BC;AAMD,8CA0BC;AA5GD,+CAAkF;AAClF,2CAAmD;AAgBnD,qEAAqE;AACrE,SAAgB,kBAAkB,CAChC,MAAyC;IAEzC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,EAAE,GAAG,EAAE,mCAAqB,EAAE,CAAC;IACxC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,SAAgB,uBAAuB,CACrC,MAA6B;IAE7B,MAAM,OAAO,GAA2B;QACtC,cAAc,EAAE,kBAAkB;QAClC,MAAM,EAAE,kBAAkB;KAC3B,CAAC;IACF,IAAI,MAAM,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,MAAM,CAAC,gBAAgB,EAAE,CAAC;IACjE,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,iBAAiB,CACrC,MAA6B,EAC7B,IAAa,EACb,YAA0B,KAAK;IAE/B,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC;IACvD,IAAI,GAAa,CAAC;IAClB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE;YACzB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,uBAAuB,CAAC,MAAM,CAAC;YACxC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,gCAAoB,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,gCAAoB,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;IACD,IAAI,MAA+B,CAAC;IACpC,IAAI,CAAC;QACH,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAA4B,CAAC;IACzD,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,gCAAoB,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,iBAAiB,CACrC,MAA6B,EAC7B,IAAa,EACb,YAA0B,KAAK;IAE/B,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC;IACvD,IAAI,GAAa,CAAC;IAClB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE;YACzB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,uBAAuB,CAAC,MAAM,CAAC;YACxC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,gCAAoB,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,gCAAoB,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;IACD,IAAI,MAA+B,CAAC;IACpC,IAAI,CAAC;QACH,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAA4B,CAAC;IACzD,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,gCAAoB,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"facilitator.js","sourceRoot":"","sources":["../../src/facilitator.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,9 @@ export { createX402Server } from './server.js';
2
2
  export type { X402Server, X402ServerConfig, X402Challenge, X402PaymentRequirements, X402PaymentVerification, } from './server.js';
3
3
  export { createX402Client } from './client.js';
4
4
  export type { X402Client, X402ClientConfig, X402PaymentResult, } from './client.js';
5
- export { X402_PAYMENT_REQUIRED_HEADER, X402_PAYMENT_SIGNATURE_HEADER, X402_PAYMENT_RESPONSE_HEADER, X402_SCHEME_EXACT, PAYAI_FACILITATOR_URL, COINBASE_FACILITATOR_URL, } from './protocol.js';
5
+ export { X402_PAYMENT_REQUIRED_HEADER, X402_PAYMENT_SIGNATURE_HEADER, X402_PAYMENT_RESPONSE_HEADER, X402_SCHEME_EXACT, PAYAI_FACILITATOR_URL, COINBASE_FACILITATOR_URL, facilitatorNetworkName, } from './protocol.js';
6
+ export { resolveFacilitator, toFacilitatorRequest, facilitatorVerify, facilitatorSettle, } from './facilitator.js';
7
+ export type { FacilitatorVerifyResult, FacilitatorSettleResult, } from './facilitator.js';
6
8
  export type { X402PaymentPayload, X402SchemeId, X402FacilitatorConfig, } from './protocol.js';
7
9
  export { X402Error, X402InvalidChallengeError, X402SignatureVerificationError, X402FacilitatorError, X402AssetNotSupportedError, X402AmountMismatchError, } from './errors.js';
8
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,YAAY,EACV,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,YAAY,EACV,UAAU,EACV,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,4BAA4B,EAC5B,6BAA6B,EAC7B,4BAA4B,EAC5B,iBAAiB,EACjB,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,kBAAkB,EAClB,YAAY,EACZ,qBAAqB,GACtB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,SAAS,EACT,yBAAyB,EACzB,8BAA8B,EAC9B,oBAAoB,EACpB,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,YAAY,EACV,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,YAAY,EACV,UAAU,EACV,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,4BAA4B,EAC5B,6BAA6B,EAC7B,4BAA4B,EAC5B,iBAAiB,EACjB,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,kBAAkB,EAClB,YAAY,EACZ,qBAAqB,GACtB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,SAAS,EACT,yBAAyB,EACzB,8BAA8B,EAC9B,oBAAoB,EACpB,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,aAAa,CAAC"}
package/dist/cjs/index.js CHANGED
@@ -3,7 +3,7 @@
3
3
  // HTTP 402 + stealth-address payment routing for AI agents on Base.
4
4
  // See packages/x402/README and docs/research/competitive/x402-spec-and-ecosystem.md.
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.X402AmountMismatchError = exports.X402AssetNotSupportedError = exports.X402FacilitatorError = exports.X402SignatureVerificationError = exports.X402InvalidChallengeError = exports.X402Error = exports.COINBASE_FACILITATOR_URL = exports.PAYAI_FACILITATOR_URL = exports.X402_SCHEME_EXACT = exports.X402_PAYMENT_RESPONSE_HEADER = exports.X402_PAYMENT_SIGNATURE_HEADER = exports.X402_PAYMENT_REQUIRED_HEADER = exports.createX402Client = exports.createX402Server = void 0;
6
+ exports.X402AmountMismatchError = exports.X402AssetNotSupportedError = exports.X402FacilitatorError = exports.X402SignatureVerificationError = exports.X402InvalidChallengeError = exports.X402Error = exports.facilitatorSettle = exports.facilitatorVerify = exports.toFacilitatorRequest = exports.resolveFacilitator = exports.facilitatorNetworkName = exports.COINBASE_FACILITATOR_URL = exports.PAYAI_FACILITATOR_URL = exports.X402_SCHEME_EXACT = exports.X402_PAYMENT_RESPONSE_HEADER = exports.X402_PAYMENT_SIGNATURE_HEADER = exports.X402_PAYMENT_REQUIRED_HEADER = exports.createX402Client = exports.createX402Server = void 0;
7
7
  // Server side
8
8
  var server_js_1 = require("./server.js");
9
9
  Object.defineProperty(exports, "createX402Server", { enumerable: true, get: function () { return server_js_1.createX402Server; } });
@@ -18,6 +18,13 @@ Object.defineProperty(exports, "X402_PAYMENT_RESPONSE_HEADER", { enumerable: tru
18
18
  Object.defineProperty(exports, "X402_SCHEME_EXACT", { enumerable: true, get: function () { return protocol_js_1.X402_SCHEME_EXACT; } });
19
19
  Object.defineProperty(exports, "PAYAI_FACILITATOR_URL", { enumerable: true, get: function () { return protocol_js_1.PAYAI_FACILITATOR_URL; } });
20
20
  Object.defineProperty(exports, "COINBASE_FACILITATOR_URL", { enumerable: true, get: function () { return protocol_js_1.COINBASE_FACILITATOR_URL; } });
21
+ Object.defineProperty(exports, "facilitatorNetworkName", { enumerable: true, get: function () { return protocol_js_1.facilitatorNetworkName; } });
22
+ // Facilitator client + adapter (v0.1.2)
23
+ var facilitator_js_1 = require("./facilitator.js");
24
+ Object.defineProperty(exports, "resolveFacilitator", { enumerable: true, get: function () { return facilitator_js_1.resolveFacilitator; } });
25
+ Object.defineProperty(exports, "toFacilitatorRequest", { enumerable: true, get: function () { return facilitator_js_1.toFacilitatorRequest; } });
26
+ Object.defineProperty(exports, "facilitatorVerify", { enumerable: true, get: function () { return facilitator_js_1.facilitatorVerify; } });
27
+ Object.defineProperty(exports, "facilitatorSettle", { enumerable: true, get: function () { return facilitator_js_1.facilitatorSettle; } });
21
28
  // Errors
22
29
  var errors_js_1 = require("./errors.js");
23
30
  Object.defineProperty(exports, "X402Error", { enumerable: true, get: function () { return errors_js_1.X402Error; } });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA,mCAAmC;AACnC,oEAAoE;AACpE,qFAAqF;;;AAErF,cAAc;AACd,yCAA+C;AAAtC,6GAAA,gBAAgB,OAAA;AASzB,cAAc;AACd,yCAA+C;AAAtC,6GAAA,gBAAgB,OAAA;AAOzB,6BAA6B;AAC7B,6CAOuB;AANrB,2HAAA,4BAA4B,OAAA;AAC5B,4HAAA,6BAA6B,OAAA;AAC7B,2HAAA,4BAA4B,OAAA;AAC5B,gHAAA,iBAAiB,OAAA;AACjB,oHAAA,qBAAqB,OAAA;AACrB,uHAAA,wBAAwB,OAAA;AAQ1B,SAAS;AACT,yCAOqB;AANnB,sGAAA,SAAS,OAAA;AACT,sHAAA,yBAAyB,OAAA;AACzB,2HAAA,8BAA8B,OAAA;AAC9B,iHAAA,oBAAoB,OAAA;AACpB,uHAAA,0BAA0B,OAAA;AAC1B,oHAAA,uBAAuB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA,mCAAmC;AACnC,oEAAoE;AACpE,qFAAqF;;;AAErF,cAAc;AACd,yCAA+C;AAAtC,6GAAA,gBAAgB,OAAA;AASzB,cAAc;AACd,yCAA+C;AAAtC,6GAAA,gBAAgB,OAAA;AAOzB,6BAA6B;AAC7B,6CAQuB;AAPrB,2HAAA,4BAA4B,OAAA;AAC5B,4HAAA,6BAA6B,OAAA;AAC7B,2HAAA,4BAA4B,OAAA;AAC5B,gHAAA,iBAAiB,OAAA;AACjB,oHAAA,qBAAqB,OAAA;AACrB,uHAAA,wBAAwB,OAAA;AACxB,qHAAA,sBAAsB,OAAA;AAGxB,wCAAwC;AACxC,mDAK0B;AAJxB,oHAAA,kBAAkB,OAAA;AAClB,sHAAA,oBAAoB,OAAA;AACpB,mHAAA,iBAAiB,OAAA;AACjB,mHAAA,iBAAiB,OAAA;AAYnB,SAAS;AACT,yCAOqB;AANnB,sGAAA,SAAS,OAAA;AACT,sHAAA,yBAAyB,OAAA;AACzB,2HAAA,8BAA8B,OAAA;AAC9B,iHAAA,oBAAoB,OAAA;AACpB,uHAAA,0BAA0B,OAAA;AAC1B,oHAAA,uBAAuB,OAAA"}
@@ -32,6 +32,16 @@ export declare const PAYAI_FACILITATOR_URL: "https://facilitator.payai.network";
32
32
  * URL verified against research doc §3 (cdp.coinbase.com/platform/v2/x402).
33
33
  */
34
34
  export declare const COINBASE_FACILITATOR_URL: "https://api.cdp.coinbase.com/platform/v2/x402";
35
+ /**
36
+ * Map an EVM chain id to the x402 v1 legacy network name that facilitators
37
+ * (PayAI, Coinbase CDP, etc.) expect on the wire. The facilitator ecosystem
38
+ * standardized on these short names, NOT CAIP-2 (`eip155:8453`). Our SDK uses
39
+ * CAIP-2 internally and translates only at the facilitator boundary.
40
+ *
41
+ * Verified against PayAI `/supported` (2026-06-04) — Base mainnet = "base",
42
+ * Base Sepolia = "base-sepolia". Returns undefined for chains we don't map.
43
+ */
44
+ export declare function facilitatorNetworkName(chainId: number): string | undefined;
35
45
  /**
36
46
  * The `accepts[N]` entry from a v2 `PaymentRequired` object — the exact shape
37
47
  * a client receives over the wire.
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/protocol.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAIzC,2EAA2E;AAC3E,eAAO,MAAM,4BAA4B,EAAG,oBAA6B,CAAC;AAE1E;;;;;;;GAOG;AACH,eAAO,MAAM,6BAA6B,EAAG,WAAoB,CAAC;AAElE,8EAA8E;AAC9E,eAAO,MAAM,4BAA4B,EAAG,oBAA6B,CAAC;AAI1E,kFAAkF;AAClF,eAAO,MAAM,iBAAiB,EAAG,OAAgB,CAAC;AAElD,MAAM,MAAM,YAAY,GAAG,OAAO,iBAAiB,CAAC;AAIpD;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAChC,mCAA4C,CAAC;AAE/C;;;GAGG;AACH,eAAO,MAAM,wBAAwB,EACnC,+CAAwD,CAAC;AAI3D;;;;;;GAMG;AACH,MAAM,WAAW,uBAAuB;IACtC,iDAAiD;IACjD,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,+CAA+C;IAC/C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB;;;;;OAKG;IACH,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,4CAA4C;IAC5C,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,+CAA+C;IAC/C,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,mDAAmD;IACnD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,2CAA2C;IAC3C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE;QACd,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB;;;;WAIG;QACH,QAAQ,CAAC,oBAAoB,CAAC,EAAE;YAC9B,QAAQ,CAAC,eAAe,EAAE,GAAG,CAAC;YAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;SAC1B,CAAC;KACH,CAAC;CACH;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE;QAChB,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC;QACxB,QAAQ,CAAC,aAAa,EAAE;YACtB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;YACvB,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;YACrB,yBAAyB;YACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;YACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;YAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;YAC7B,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC;SACrB,CAAC;KACH,CAAC;CACH;AAED;;;;;GAKG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACpC"}
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/protocol.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAIzC,2EAA2E;AAC3E,eAAO,MAAM,4BAA4B,EAAG,oBAA6B,CAAC;AAE1E;;;;;;;GAOG;AACH,eAAO,MAAM,6BAA6B,EAAG,WAAoB,CAAC;AAElE,8EAA8E;AAC9E,eAAO,MAAM,4BAA4B,EAAG,oBAA6B,CAAC;AAI1E,kFAAkF;AAClF,eAAO,MAAM,iBAAiB,EAAG,OAAgB,CAAC;AAElD,MAAM,MAAM,YAAY,GAAG,OAAO,iBAAiB,CAAC;AAIpD;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAChC,mCAA4C,CAAC;AAE/C;;;GAGG;AACH,eAAO,MAAM,wBAAwB,EACnC,+CAAwD,CAAC;AAE3D;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAM1E;AAID;;;;;;GAMG;AACH,MAAM,WAAW,uBAAuB;IACtC,iDAAiD;IACjD,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,+CAA+C;IAC/C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB;;;;;OAKG;IACH,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,4CAA4C;IAC5C,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,+CAA+C;IAC/C,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,mDAAmD;IACnD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,2CAA2C;IAC3C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE;QACd,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB;;;;WAIG;QACH,QAAQ,CAAC,oBAAoB,CAAC,EAAE;YAC9B,QAAQ,CAAC,eAAe,EAAE,GAAG,CAAC;YAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;SAC1B,CAAC;KACH,CAAC;CACH;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE;QAChB,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC;QACxB,QAAQ,CAAC,aAAa,EAAE;YACtB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;YACvB,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;YACrB,yBAAyB;YACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;YACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;YAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;YAC7B,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC;SACrB,CAAC;KACH,CAAC;CACH;AAED;;;;;GAKG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACpC"}
@@ -8,6 +8,7 @@
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.COINBASE_FACILITATOR_URL = exports.PAYAI_FACILITATOR_URL = exports.X402_SCHEME_EXACT = exports.X402_PAYMENT_RESPONSE_HEADER = exports.X402_PAYMENT_SIGNATURE_HEADER = exports.X402_PAYMENT_REQUIRED_HEADER = void 0;
11
+ exports.facilitatorNetworkName = facilitatorNetworkName;
11
12
  // ─── HTTP header names ───────────────────────────────────────────────────────
12
13
  /** Server → client: 402 challenge envelope (raw JSON, no base64 in v2). */
13
14
  exports.X402_PAYMENT_REQUIRED_HEADER = 'X-PAYMENT-REQUIRED';
@@ -36,4 +37,20 @@ exports.PAYAI_FACILITATOR_URL = 'https://facilitator.payai.network';
36
37
  * URL verified against research doc §3 (cdp.coinbase.com/platform/v2/x402).
37
38
  */
38
39
  exports.COINBASE_FACILITATOR_URL = 'https://api.cdp.coinbase.com/platform/v2/x402';
40
+ /**
41
+ * Map an EVM chain id to the x402 v1 legacy network name that facilitators
42
+ * (PayAI, Coinbase CDP, etc.) expect on the wire. The facilitator ecosystem
43
+ * standardized on these short names, NOT CAIP-2 (`eip155:8453`). Our SDK uses
44
+ * CAIP-2 internally and translates only at the facilitator boundary.
45
+ *
46
+ * Verified against PayAI `/supported` (2026-06-04) — Base mainnet = "base",
47
+ * Base Sepolia = "base-sepolia". Returns undefined for chains we don't map.
48
+ */
49
+ function facilitatorNetworkName(chainId) {
50
+ const NAMES = {
51
+ 8453: 'base',
52
+ 84532: 'base-sepolia',
53
+ };
54
+ return NAMES[chainId];
55
+ }
39
56
  //# sourceMappingURL=protocol.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/protocol.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAIH,gFAAgF;AAEhF,2EAA2E;AAC9D,QAAA,4BAA4B,GAAG,oBAA6B,CAAC;AAE1E;;;;;;;GAOG;AACU,QAAA,6BAA6B,GAAG,WAAoB,CAAC;AAElE,8EAA8E;AACjE,QAAA,4BAA4B,GAAG,oBAA6B,CAAC;AAE1E,gFAAgF;AAEhF,kFAAkF;AACrE,QAAA,iBAAiB,GAAG,OAAgB,CAAC;AAIlD,gFAAgF;AAEhF;;;GAGG;AACU,QAAA,qBAAqB,GAChC,mCAA4C,CAAC;AAE/C;;;GAGG;AACU,QAAA,wBAAwB,GACnC,+CAAwD,CAAC"}
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/protocol.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAsDH,wDAMC;AAxDD,gFAAgF;AAEhF,2EAA2E;AAC9D,QAAA,4BAA4B,GAAG,oBAA6B,CAAC;AAE1E;;;;;;;GAOG;AACU,QAAA,6BAA6B,GAAG,WAAoB,CAAC;AAElE,8EAA8E;AACjE,QAAA,4BAA4B,GAAG,oBAA6B,CAAC;AAE1E,gFAAgF;AAEhF,kFAAkF;AACrE,QAAA,iBAAiB,GAAG,OAAgB,CAAC;AAIlD,gFAAgF;AAEhF;;;GAGG;AACU,QAAA,qBAAqB,GAChC,mCAA4C,CAAC;AAE/C;;;GAGG;AACU,QAAA,wBAAwB,GACnC,+CAAwD,CAAC;AAE3D;;;;;;;;GAQG;AACH,SAAgB,sBAAsB,CAAC,OAAe;IACpD,MAAM,KAAK,GAAqC;QAC9C,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,cAAc;KACtB,CAAC;IACF,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC;AACxB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,EAGL,KAAK,kBAAkB,EAExB,MAAM,eAAe,CAAC;AAMvB,OAAO,KAAK,EACV,aAAa,EACb,uBAAuB,EACvB,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAmCpB,MAAM,WAAW,UAAU;IACzB;;;OAGG;IACH,SAAS,CAAC,IAAI,EAAE;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAC3B;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,IAAI,EAAE;QACX,aAAa,EAAE,MAAM,GAAG,kBAAkB,CAAC;QAC3C,SAAS,EAAE,aAAa,CAAC;QACzB,eAAe,CAAC,EAAE,OAAO,CAAC;KAC3B,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;CACtC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,UAAU,CA2MrE;AAED,8DAA8D;AAC9D,YAAY,EACV,aAAa,EACb,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,EAGL,KAAK,kBAAkB,EAExB,MAAM,eAAe,CAAC;AAMvB,OAAO,KAAK,EACV,aAAa,EACb,uBAAuB,EACvB,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAoCpB,MAAM,WAAW,UAAU;IACzB;;;OAGG;IACH,SAAS,CAAC,IAAI,EAAE;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAC3B;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,IAAI,EAAE;QACX,aAAa,EAAE,MAAM,GAAG,kBAAkB,CAAC;QAC3C,SAAS,EAAE,aAAa,CAAC;QACzB,eAAe,CAAC,EAAE,OAAO,CAAC;KAC3B,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;CACtC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,UAAU,CA8MrE;AAED,8DAA8D;AAC9D,YAAY,EACV,aAAa,EACb,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC"}
@@ -49,15 +49,15 @@ function toBigInt(v) {
49
49
  * Build an X402Server bound to a single recipient meta-address + asset.
50
50
  */
51
51
  function createX402Server(config) {
52
- // Validate asset is canonical USDC for the chain. Fail-fast at construction.
53
- const canonicalUsdc = (0, transport_1.getUSDC)(config.chainId);
54
- const usdcDomain = (0, transport_1.getUSDCDomain)(config.chainId);
55
- if (canonicalUsdc === undefined || usdcDomain === undefined) {
56
- throw new errors_js_1.X402AssetNotSupportedError();
57
- }
58
- if (config.asset.toLowerCase() !== canonicalUsdc.toLowerCase()) {
52
+ // v0.1.1: validate the asset is an EIP-3009 token registered for the chain.
53
+ // Previously hardcoded to USDC; the EIP-3009 registry now also lists EURC on
54
+ // Base mainnet, with room for future Circle-issued assets without changing
55
+ // this file. Lookup is case-insensitive on the asset address.
56
+ const token = (0, transport_1.getEip3009Token)(config.chainId, config.asset);
57
+ if (token === undefined) {
59
58
  throw new errors_js_1.X402AssetNotSupportedError();
60
59
  }
60
+ const assetDomain = token.domain;
61
61
  // Pre-decode the meta-address ONCE — repeated decodes would waste cycles.
62
62
  // The decode validates curve membership; downstream errors become
63
63
  // X402InvalidChallengeError.
@@ -85,8 +85,8 @@ function createX402Server(config) {
85
85
  resource,
86
86
  ...(description !== undefined ? { description } : {}),
87
87
  extra: {
88
- name: usdcDomain.name,
89
- version: usdcDomain.version,
88
+ name: assetDomain.name,
89
+ version: assetDomain.version,
90
90
  shroudfiAnnouncement: {
91
91
  ephemeralPubKey: prepared.ephemeralPubKey,
92
92
  viewTag: prepared.viewTag,
@@ -206,19 +206,19 @@ function createX402Server(config) {
206
206
  // signed payload. The recipient's main wallet is never in this body
207
207
  // because `accepted.payTo` is the freshly derived stealth address.
208
208
  try {
209
- const verifyResult = await (0, facilitator_js_1.facilitatorVerify)(facilitator, {
210
- x402Version: constants_js_1.X402_VERSION,
209
+ // Translate our v2/CAIP-2 body into the v1/legacy-network shape the
210
+ // facilitator expects. Proven against PayAI on Base mainnet
211
+ // (tx 0x57d84d53…). Same body drives both /verify and /settle.
212
+ const facilitatorBody = (0, facilitator_js_1.toFacilitatorRequest)({
213
+ chainId: config.chainId,
211
214
  paymentRequirements: accepted,
212
215
  paymentPayload: payload,
213
216
  });
217
+ const verifyResult = await (0, facilitator_js_1.facilitatorVerify)(facilitator, facilitatorBody);
214
218
  if (!verifyResult.isValid) {
215
219
  return { valid: false, error: 'facilitator_rejected' };
216
220
  }
217
- const settle = await (0, facilitator_js_1.facilitatorSettle)(facilitator, {
218
- x402Version: constants_js_1.X402_VERSION,
219
- paymentRequirements: accepted,
220
- paymentPayload: payload,
221
- });
221
+ const settle = await (0, facilitator_js_1.facilitatorSettle)(facilitator, facilitatorBody);
222
222
  if (!settle.success || settle.txHash === undefined) {
223
223
  return { valid: false, error: 'facilitator_settle_failed' };
224
224
  }
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"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"}
@@ -65,10 +65,13 @@ export interface SignedTransferWithAuthorization {
65
65
  */
66
66
  export declare function generateAuthorizationNonce(): Hex;
67
67
  /**
68
- * Sign an EIP-3009 `TransferWithAuthorization` over USDC. Returns the
69
- * 65-byte signature + the authorization fields the server will replay.
68
+ * Sign an EIP-3009 `TransferWithAuthorization` over any registered EIP-3009
69
+ * asset (USDC, EURC). The EIP-712 domain is derived from the asset's entry in
70
+ * the EIP-3009 registry — using the wrong domain would silently produce an
71
+ * invalid signature.
70
72
  *
71
- * @throws X402AssetNotSupportedError if USDC is not configured for this chain.
73
+ * @throws X402AssetNotSupportedError if the verifyingContract address is not
74
+ * registered as an EIP-3009 token on the chain.
72
75
  */
73
76
  export declare function signTransferWithAuthorization(args: {
74
77
  readonly account: Account;
@@ -1 +1 @@
1
- {"version":3,"file":"signing.d.ts","sourceRoot":"","sources":["../../src/signing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAIzD;;;GAGG;AACH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;CASjC,CAAC;AAEX;;;;GAIG;AACH,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC;CACrB;AAED,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,IAAI,GAAG,CAUhD;AAED;;;;;GAKG;AACH,wBAAsB,6BAA6B,CAAC,IAAI,EAAE;IACxD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,8BAA8B,CAAC;CAChD,GAAG,OAAO,CAAC,+BAA+B,CAAC,CA4C3C;AAED;;;;;;;GAOG;AACH,wBAAsB,wCAAwC,CAAC,IAAI,EAAE;IACnE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,aAAa,EAAE,8BAA8B,CAAC;IACvD,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC;CACzB,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CA6B1B"}
1
+ {"version":3,"file":"signing.d.ts","sourceRoot":"","sources":["../../src/signing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAIzD;;;GAGG;AACH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;CASjC,CAAC;AAEX;;;;GAIG;AACH,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC;CACrB;AAED,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,IAAI,GAAG,CAUhD;AAED;;;;;;;;GAQG;AACH,wBAAsB,6BAA6B,CAAC,IAAI,EAAE;IACxD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,8BAA8B,CAAC;CAChD,GAAG,OAAO,CAAC,+BAA+B,CAAC,CA4C3C;AAED;;;;;;;GAOG;AACH,wBAAsB,wCAAwC,CAAC,IAAI,EAAE;IACnE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,aAAa,EAAE,8BAA8B,CAAC;IACvD,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC;CACzB,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CA6B1B"}
@@ -82,20 +82,23 @@ function generateAuthorizationNonce() {
82
82
  return hex;
83
83
  }
84
84
  /**
85
- * Sign an EIP-3009 `TransferWithAuthorization` over USDC. Returns the
86
- * 65-byte signature + the authorization fields the server will replay.
85
+ * Sign an EIP-3009 `TransferWithAuthorization` over any registered EIP-3009
86
+ * asset (USDC, EURC). The EIP-712 domain is derived from the asset's entry in
87
+ * the EIP-3009 registry — using the wrong domain would silently produce an
88
+ * invalid signature.
87
89
  *
88
- * @throws X402AssetNotSupportedError if USDC is not configured for this chain.
90
+ * @throws X402AssetNotSupportedError if the verifyingContract address is not
91
+ * registered as an EIP-3009 token on the chain.
89
92
  */
90
93
  async function signTransferWithAuthorization(args) {
91
94
  const { account, chain, verifyingContract, input } = args;
92
- const usdcDomain = (0, transport_1.getUSDCDomain)(chain.id);
93
- if (usdcDomain === undefined) {
95
+ const token = (0, transport_1.getEip3009Token)(chain.id, verifyingContract);
96
+ if (token === undefined) {
94
97
  throw new errors_js_1.X402AssetNotSupportedError();
95
98
  }
96
99
  const domain = {
97
- name: usdcDomain.name,
98
- version: usdcDomain.version,
100
+ name: token.domain.name,
101
+ version: token.domain.version,
99
102
  chainId: chain.id,
100
103
  verifyingContract,
101
104
  };
@@ -138,15 +141,15 @@ async function signTransferWithAuthorization(args) {
138
141
  */
139
142
  async function verifyTransferWithAuthorizationSignature(args) {
140
143
  const { chainId, verifyingContract, authorization, signature } = args;
141
- const usdcDomain = (0, transport_1.getUSDCDomain)(chainId);
142
- if (usdcDomain === undefined)
144
+ const token = (0, transport_1.getEip3009Token)(chainId, verifyingContract);
145
+ if (token === undefined)
143
146
  return null;
144
147
  const { recoverTypedDataAddress } = await Promise.resolve().then(() => __importStar(require('viem')));
145
148
  try {
146
149
  return await recoverTypedDataAddress({
147
150
  domain: {
148
- name: usdcDomain.name,
149
- version: usdcDomain.version,
151
+ name: token.domain.name,
152
+ version: token.domain.version,
150
153
  chainId,
151
154
  verifyingContract,
152
155
  },
@@ -1 +1 @@
1
- {"version":3,"file":"signing.js","sourceRoot":"","sources":["../../src/signing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"signing.js","sourceRoot":"","sources":["../../src/signing.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAkBH,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAMtE;;;GAGG;AACH,MAAM,WAAW,YAAa,SAAQ,QAAQ;IAC5C,cAAc,CAAC,EAAE,iBAAiB,CAAC;CACpC;AAED,MAAM,WAAW,UAAU;IACzB;;;;;;OAMG;IACH,KAAK,CACH,KAAK,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,EAC7B,IAAI,CAAC,EAAE,WAAW,GAAG;QAAE,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,GAC/C,OAAO,CAAC,YAAY,CAAC,CAAC;CAC1B;AAyED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,UAAU,CA6HrE;AAED,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAkBH,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAMtE;;;GAGG;AACH,MAAM,WAAW,YAAa,SAAQ,QAAQ;IAC5C,cAAc,CAAC,EAAE,iBAAiB,CAAC;CACpC;AAED,MAAM,WAAW,UAAU;IACzB;;;;;;OAMG;IACH,KAAK,CACH,KAAK,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,EAC7B,IAAI,CAAC,EAAE,WAAW,GAAG;QAAE,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,GAC/C,OAAO,CAAC,YAAY,CAAC,CAAC;CAC1B;AAyED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,UAAU,CA0HrE;AAED,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC"}