uvd-x402-sdk 2.4.0 → 2.6.0

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 (63) hide show
  1. package/dist/adapters/index.d.mts +7 -1
  2. package/dist/adapters/index.d.ts +7 -1
  3. package/dist/adapters/index.js +32 -3
  4. package/dist/adapters/index.js.map +1 -1
  5. package/dist/adapters/index.mjs +32 -3
  6. package/dist/adapters/index.mjs.map +1 -1
  7. package/dist/{index-DR2vXt-c.d.mts → index-BR1o8JZQ.d.mts} +33 -1
  8. package/dist/{index-DR2vXt-c.d.ts → index-BR1o8JZQ.d.ts} +33 -1
  9. package/dist/{index-BrFeSWKm.d.mts → index-DKbWiaJ9.d.mts} +1 -1
  10. package/dist/{index-BYX9BU79.d.ts → index-fwbSkart.d.ts} +1 -1
  11. package/dist/index.d.mts +3 -3
  12. package/dist/index.d.ts +3 -3
  13. package/dist/index.js +43 -12
  14. package/dist/index.js.map +1 -1
  15. package/dist/index.mjs +40 -13
  16. package/dist/index.mjs.map +1 -1
  17. package/dist/providers/evm/index.d.mts +7 -2
  18. package/dist/providers/evm/index.d.ts +7 -2
  19. package/dist/providers/evm/index.js +42 -13
  20. package/dist/providers/evm/index.js.map +1 -1
  21. package/dist/providers/evm/index.mjs +42 -13
  22. package/dist/providers/evm/index.mjs.map +1 -1
  23. package/dist/providers/near/index.d.mts +6 -2
  24. package/dist/providers/near/index.d.ts +6 -2
  25. package/dist/providers/near/index.js +562 -5
  26. package/dist/providers/near/index.js.map +1 -1
  27. package/dist/providers/near/index.mjs +562 -5
  28. package/dist/providers/near/index.mjs.map +1 -1
  29. package/dist/providers/solana/index.d.mts +6 -4
  30. package/dist/providers/solana/index.d.ts +6 -4
  31. package/dist/providers/solana/index.js +33 -7
  32. package/dist/providers/solana/index.js.map +1 -1
  33. package/dist/providers/solana/index.mjs +33 -7
  34. package/dist/providers/solana/index.mjs.map +1 -1
  35. package/dist/providers/stellar/index.d.mts +6 -2
  36. package/dist/providers/stellar/index.d.ts +6 -2
  37. package/dist/providers/stellar/index.js +568 -11
  38. package/dist/providers/stellar/index.js.map +1 -1
  39. package/dist/providers/stellar/index.mjs +568 -11
  40. package/dist/providers/stellar/index.mjs.map +1 -1
  41. package/dist/react/index.d.mts +3 -3
  42. package/dist/react/index.d.ts +3 -3
  43. package/dist/react/index.js +41 -12
  44. package/dist/react/index.js.map +1 -1
  45. package/dist/react/index.mjs +41 -12
  46. package/dist/react/index.mjs.map +1 -1
  47. package/dist/utils/index.d.mts +57 -5
  48. package/dist/utils/index.d.ts +57 -5
  49. package/dist/utils/index.js +18 -0
  50. package/dist/utils/index.js.map +1 -1
  51. package/dist/utils/index.mjs +15 -1
  52. package/dist/utils/index.mjs.map +1 -1
  53. package/package.json +1 -1
  54. package/src/adapters/wagmi.ts +21 -5
  55. package/src/client/X402Client.ts +33 -16
  56. package/src/index.ts +7 -0
  57. package/src/providers/evm/index.ts +37 -16
  58. package/src/providers/near/index.ts +25 -8
  59. package/src/providers/solana/index.ts +29 -10
  60. package/src/providers/stellar/index.ts +31 -14
  61. package/src/types/index.ts +34 -0
  62. package/src/utils/index.ts +4 -0
  63. package/src/utils/validation.ts +76 -3
@@ -40,6 +40,551 @@ var X402Error = class _X402Error extends Error {
40
40
  }
41
41
  };
42
42
 
43
+ // src/chains/index.ts
44
+ var DEFAULT_FACILITATOR_URL = "https://facilitator.ultravioletadao.xyz";
45
+ var SUPPORTED_CHAINS = {
46
+ // ============================================================================
47
+ // EVM CHAINS (10 networks)
48
+ // ============================================================================
49
+ base: {
50
+ chainId: 8453,
51
+ chainIdHex: "0x2105",
52
+ name: "base",
53
+ displayName: "Base",
54
+ networkType: "evm",
55
+ rpcUrl: "https://mainnet.base.org",
56
+ explorerUrl: "https://basescan.org",
57
+ nativeCurrency: {
58
+ name: "Ethereum",
59
+ symbol: "ETH",
60
+ decimals: 18
61
+ },
62
+ usdc: {
63
+ address: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
64
+ decimals: 6,
65
+ name: "USD Coin",
66
+ version: "2"
67
+ },
68
+ tokens: {
69
+ usdc: {
70
+ address: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
71
+ decimals: 6,
72
+ name: "USD Coin",
73
+ version: "2"
74
+ },
75
+ eurc: {
76
+ address: "0x60a3E35Cc302bFA44Cb288Bc5a4F316Fdb1adb42",
77
+ decimals: 6,
78
+ name: "EURC",
79
+ version: "2"
80
+ }
81
+ },
82
+ x402: {
83
+ facilitatorUrl: DEFAULT_FACILITATOR_URL,
84
+ enabled: true
85
+ }
86
+ },
87
+ avalanche: {
88
+ chainId: 43114,
89
+ chainIdHex: "0xa86a",
90
+ name: "avalanche",
91
+ displayName: "Avalanche C-Chain",
92
+ networkType: "evm",
93
+ rpcUrl: "https://avalanche-c-chain-rpc.publicnode.com",
94
+ explorerUrl: "https://snowtrace.io",
95
+ nativeCurrency: {
96
+ name: "Avalanche",
97
+ symbol: "AVAX",
98
+ decimals: 18
99
+ },
100
+ usdc: {
101
+ address: "0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E",
102
+ decimals: 6,
103
+ name: "USD Coin",
104
+ version: "2"
105
+ },
106
+ tokens: {
107
+ usdc: {
108
+ address: "0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E",
109
+ decimals: 6,
110
+ name: "USD Coin",
111
+ version: "2"
112
+ },
113
+ eurc: {
114
+ address: "0xC891EB4cbdEFf6e073e859e987815Ed1505c2ACD",
115
+ decimals: 6,
116
+ name: "EURC",
117
+ version: "2"
118
+ },
119
+ ausd: {
120
+ address: "0x00000000eFE302BEAA2b3e6e1b18d08D69a9012a",
121
+ decimals: 6,
122
+ name: "Agora Dollar",
123
+ version: "1"
124
+ }
125
+ },
126
+ x402: {
127
+ facilitatorUrl: DEFAULT_FACILITATOR_URL,
128
+ enabled: true
129
+ }
130
+ },
131
+ ethereum: {
132
+ chainId: 1,
133
+ chainIdHex: "0x1",
134
+ name: "ethereum",
135
+ displayName: "Ethereum",
136
+ networkType: "evm",
137
+ rpcUrl: "https://eth.llamarpc.com",
138
+ explorerUrl: "https://etherscan.io",
139
+ nativeCurrency: {
140
+ name: "Ethereum",
141
+ symbol: "ETH",
142
+ decimals: 18
143
+ },
144
+ usdc: {
145
+ address: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
146
+ decimals: 6,
147
+ name: "USD Coin",
148
+ version: "2"
149
+ },
150
+ tokens: {
151
+ usdc: {
152
+ address: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
153
+ decimals: 6,
154
+ name: "USD Coin",
155
+ version: "2"
156
+ },
157
+ eurc: {
158
+ address: "0x1aBaEA1f7C830bD89Acc67eC4af516284b1bC33c",
159
+ decimals: 6,
160
+ name: "Euro Coin",
161
+ version: "2"
162
+ },
163
+ ausd: {
164
+ address: "0x00000000eFE302BEAA2b3e6e1b18d08D69a9012a",
165
+ decimals: 6,
166
+ name: "Agora Dollar",
167
+ version: "1"
168
+ },
169
+ pyusd: {
170
+ address: "0x6c3ea9036406852006290770BEdFcAbA0e23A0e8",
171
+ decimals: 6,
172
+ name: "PayPal USD",
173
+ version: "1"
174
+ }
175
+ },
176
+ x402: {
177
+ facilitatorUrl: DEFAULT_FACILITATOR_URL,
178
+ enabled: true
179
+ }
180
+ },
181
+ polygon: {
182
+ chainId: 137,
183
+ chainIdHex: "0x89",
184
+ name: "polygon",
185
+ displayName: "Polygon",
186
+ networkType: "evm",
187
+ rpcUrl: "https://polygon-rpc.com",
188
+ explorerUrl: "https://polygonscan.com",
189
+ nativeCurrency: {
190
+ name: "Polygon",
191
+ symbol: "POL",
192
+ decimals: 18
193
+ },
194
+ usdc: {
195
+ address: "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
196
+ decimals: 6,
197
+ name: "USD Coin",
198
+ version: "2"
199
+ },
200
+ tokens: {
201
+ usdc: {
202
+ address: "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
203
+ decimals: 6,
204
+ name: "USD Coin",
205
+ version: "2"
206
+ },
207
+ ausd: {
208
+ address: "0x00000000eFE302BEAA2b3e6e1b18d08D69a9012a",
209
+ decimals: 6,
210
+ name: "Agora Dollar",
211
+ version: "1"
212
+ }
213
+ },
214
+ x402: {
215
+ facilitatorUrl: DEFAULT_FACILITATOR_URL,
216
+ enabled: true
217
+ }
218
+ },
219
+ arbitrum: {
220
+ chainId: 42161,
221
+ chainIdHex: "0xa4b1",
222
+ name: "arbitrum",
223
+ displayName: "Arbitrum One",
224
+ networkType: "evm",
225
+ rpcUrl: "https://arb1.arbitrum.io/rpc",
226
+ explorerUrl: "https://arbiscan.io",
227
+ nativeCurrency: {
228
+ name: "Ethereum",
229
+ symbol: "ETH",
230
+ decimals: 18
231
+ },
232
+ usdc: {
233
+ address: "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
234
+ decimals: 6,
235
+ name: "USD Coin",
236
+ version: "2"
237
+ },
238
+ tokens: {
239
+ usdc: {
240
+ address: "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
241
+ decimals: 6,
242
+ name: "USD Coin",
243
+ version: "2"
244
+ },
245
+ ausd: {
246
+ address: "0x00000000eFE302BEAA2b3e6e1b18d08D69a9012a",
247
+ decimals: 6,
248
+ name: "Agora Dollar",
249
+ version: "1"
250
+ },
251
+ usdt: {
252
+ address: "0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9",
253
+ decimals: 6,
254
+ name: "USD\u20AE0",
255
+ version: "1"
256
+ }
257
+ },
258
+ x402: {
259
+ facilitatorUrl: DEFAULT_FACILITATOR_URL,
260
+ enabled: true
261
+ }
262
+ },
263
+ optimism: {
264
+ chainId: 10,
265
+ chainIdHex: "0xa",
266
+ name: "optimism",
267
+ displayName: "Optimism",
268
+ networkType: "evm",
269
+ rpcUrl: "https://mainnet.optimism.io",
270
+ explorerUrl: "https://optimistic.etherscan.io",
271
+ nativeCurrency: {
272
+ name: "Ethereum",
273
+ symbol: "ETH",
274
+ decimals: 18
275
+ },
276
+ usdc: {
277
+ address: "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85",
278
+ decimals: 6,
279
+ name: "USD Coin",
280
+ version: "2"
281
+ },
282
+ tokens: {
283
+ usdc: {
284
+ address: "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85",
285
+ decimals: 6,
286
+ name: "USD Coin",
287
+ version: "2"
288
+ },
289
+ usdt: {
290
+ address: "0x01bff41798a0bcf287b996046ca68b395dbc1071",
291
+ decimals: 6,
292
+ name: "USD\u20AE0",
293
+ version: "1"
294
+ }
295
+ },
296
+ x402: {
297
+ facilitatorUrl: DEFAULT_FACILITATOR_URL,
298
+ enabled: true
299
+ }
300
+ },
301
+ celo: {
302
+ chainId: 42220,
303
+ chainIdHex: "0xa4ec",
304
+ name: "celo",
305
+ displayName: "Celo",
306
+ networkType: "evm",
307
+ rpcUrl: "https://forno.celo.org",
308
+ explorerUrl: "https://celoscan.io",
309
+ nativeCurrency: {
310
+ name: "Celo",
311
+ symbol: "CELO",
312
+ decimals: 18
313
+ },
314
+ usdc: {
315
+ address: "0xcebA9300f2b948710d2653dD7B07f33A8B32118C",
316
+ decimals: 6,
317
+ name: "USDC",
318
+ // Celo uses "USDC" not "USD Coin" for EIP-712
319
+ version: "2"
320
+ },
321
+ tokens: {
322
+ usdc: {
323
+ address: "0xcebA9300f2b948710d2653dD7B07f33A8B32118C",
324
+ decimals: 6,
325
+ name: "USDC",
326
+ // Celo uses "USDC" not "USD Coin" for EIP-712
327
+ version: "2"
328
+ },
329
+ usdt: {
330
+ address: "0x48065fbBE25f71C9282ddf5e1cD6D6A887483D5e",
331
+ decimals: 6,
332
+ name: "Tether USD",
333
+ // Celo USDT uses "Tether USD" for EIP-712
334
+ version: "1"
335
+ }
336
+ },
337
+ x402: {
338
+ facilitatorUrl: DEFAULT_FACILITATOR_URL,
339
+ enabled: true
340
+ }
341
+ },
342
+ hyperevm: {
343
+ chainId: 999,
344
+ chainIdHex: "0x3e7",
345
+ name: "hyperevm",
346
+ displayName: "HyperEVM",
347
+ networkType: "evm",
348
+ rpcUrl: "https://rpc.hyperliquid.xyz/evm",
349
+ explorerUrl: "https://hyperevmscan.io",
350
+ nativeCurrency: {
351
+ name: "Ethereum",
352
+ symbol: "ETH",
353
+ decimals: 18
354
+ },
355
+ usdc: {
356
+ address: "0xb88339CB7199b77E23DB6E890353E22632Ba630f",
357
+ decimals: 6,
358
+ name: "USDC",
359
+ // HyperEVM uses "USDC" not "USD Coin"
360
+ version: "2"
361
+ },
362
+ tokens: {
363
+ usdc: {
364
+ address: "0xb88339CB7199b77E23DB6E890353E22632Ba630f",
365
+ decimals: 6,
366
+ name: "USDC",
367
+ // HyperEVM uses "USDC" not "USD Coin"
368
+ version: "2"
369
+ }
370
+ },
371
+ x402: {
372
+ facilitatorUrl: DEFAULT_FACILITATOR_URL,
373
+ enabled: true
374
+ }
375
+ },
376
+ unichain: {
377
+ chainId: 130,
378
+ chainIdHex: "0x82",
379
+ name: "unichain",
380
+ displayName: "Unichain",
381
+ networkType: "evm",
382
+ rpcUrl: "https://unichain-rpc.publicnode.com",
383
+ explorerUrl: "https://uniscan.xyz",
384
+ nativeCurrency: {
385
+ name: "Ethereum",
386
+ symbol: "ETH",
387
+ decimals: 18
388
+ },
389
+ usdc: {
390
+ address: "0x078d782b760474a361dda0af3839290b0ef57ad6",
391
+ decimals: 6,
392
+ name: "USDC",
393
+ // Unichain uses "USDC" not "USD Coin"
394
+ version: "2"
395
+ },
396
+ tokens: {
397
+ usdc: {
398
+ address: "0x078d782b760474a361dda0af3839290b0ef57ad6",
399
+ decimals: 6,
400
+ name: "USDC",
401
+ // Unichain uses "USDC" not "USD Coin"
402
+ version: "2"
403
+ }
404
+ },
405
+ x402: {
406
+ facilitatorUrl: DEFAULT_FACILITATOR_URL,
407
+ enabled: true
408
+ }
409
+ },
410
+ monad: {
411
+ chainId: 143,
412
+ chainIdHex: "0x8f",
413
+ name: "monad",
414
+ displayName: "Monad",
415
+ networkType: "evm",
416
+ rpcUrl: "https://rpc.monad.xyz",
417
+ explorerUrl: "https://monad.socialscan.io",
418
+ nativeCurrency: {
419
+ name: "Monad",
420
+ symbol: "MON",
421
+ decimals: 18
422
+ },
423
+ usdc: {
424
+ address: "0x754704bc059f8c67012fed69bc8a327a5aafb603",
425
+ decimals: 6,
426
+ name: "USDC",
427
+ // Monad uses "USDC" not "USD Coin"
428
+ version: "2"
429
+ },
430
+ tokens: {
431
+ usdc: {
432
+ address: "0x754704bc059f8c67012fed69bc8a327a5aafb603",
433
+ decimals: 6,
434
+ name: "USDC",
435
+ // Monad uses "USDC" not "USD Coin"
436
+ version: "2"
437
+ },
438
+ ausd: {
439
+ address: "0x00000000eFE302BEAA2b3e6e1b18d08D69a9012a",
440
+ decimals: 6,
441
+ name: "Agora Dollar",
442
+ version: "1"
443
+ }
444
+ },
445
+ x402: {
446
+ facilitatorUrl: DEFAULT_FACILITATOR_URL,
447
+ enabled: true
448
+ }
449
+ },
450
+ // ============================================================================
451
+ // SVM CHAINS (2 networks) - Solana Virtual Machine
452
+ // ============================================================================
453
+ solana: {
454
+ chainId: 0,
455
+ // Non-EVM
456
+ chainIdHex: "0x0",
457
+ name: "solana",
458
+ displayName: "Solana",
459
+ networkType: "svm",
460
+ rpcUrl: "https://api.mainnet-beta.solana.com",
461
+ explorerUrl: "https://solscan.io",
462
+ nativeCurrency: {
463
+ name: "Solana",
464
+ symbol: "SOL",
465
+ decimals: 9
466
+ },
467
+ usdc: {
468
+ address: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
469
+ // USDC SPL token mint
470
+ decimals: 6,
471
+ name: "USD Coin",
472
+ version: "1"
473
+ },
474
+ x402: {
475
+ facilitatorUrl: DEFAULT_FACILITATOR_URL,
476
+ enabled: true
477
+ }
478
+ },
479
+ fogo: {
480
+ chainId: 0,
481
+ // Non-EVM (SVM)
482
+ chainIdHex: "0x0",
483
+ name: "fogo",
484
+ displayName: "Fogo",
485
+ networkType: "svm",
486
+ rpcUrl: "https://rpc.fogo.nightly.app/",
487
+ explorerUrl: "https://explorer.fogo.nightly.app",
488
+ nativeCurrency: {
489
+ name: "Fogo",
490
+ symbol: "FOGO",
491
+ decimals: 9
492
+ },
493
+ usdc: {
494
+ address: "uSd2czE61Evaf76RNbq4KPpXnkiL3irdzgLFUMe3NoG",
495
+ // Fogo USDC mint
496
+ decimals: 6,
497
+ name: "USDC",
498
+ version: "1"
499
+ },
500
+ x402: {
501
+ facilitatorUrl: DEFAULT_FACILITATOR_URL,
502
+ enabled: true
503
+ }
504
+ },
505
+ // ============================================================================
506
+ // STELLAR (1 network)
507
+ // ============================================================================
508
+ stellar: {
509
+ chainId: 0,
510
+ // Non-EVM
511
+ chainIdHex: "0x0",
512
+ name: "stellar",
513
+ displayName: "Stellar",
514
+ networkType: "stellar",
515
+ rpcUrl: "https://horizon.stellar.org",
516
+ explorerUrl: "https://stellar.expert/explorer/public",
517
+ nativeCurrency: {
518
+ name: "Lumens",
519
+ symbol: "XLM",
520
+ decimals: 7
521
+ // Stellar uses 7 decimals (stroops)
522
+ },
523
+ usdc: {
524
+ address: "CCW67TSZV3SSS2HXMBQ5JFGCKJNXKZM7UQUWUZPUTHXSTZLEO7SJMI75",
525
+ // Soroban Asset Contract
526
+ decimals: 7,
527
+ // Stellar USDC uses 7 decimals
528
+ name: "USDC",
529
+ version: "1"
530
+ },
531
+ x402: {
532
+ facilitatorUrl: DEFAULT_FACILITATOR_URL,
533
+ enabled: true
534
+ }
535
+ },
536
+ // ============================================================================
537
+ // NEAR (1 network) - Uses NEP-366 meta-transactions
538
+ // ============================================================================
539
+ near: {
540
+ chainId: 0,
541
+ // Non-EVM
542
+ chainIdHex: "0x0",
543
+ name: "near",
544
+ displayName: "NEAR Protocol",
545
+ networkType: "near",
546
+ rpcUrl: "https://rpc.mainnet.near.org",
547
+ explorerUrl: "https://nearblocks.io",
548
+ nativeCurrency: {
549
+ name: "NEAR",
550
+ symbol: "NEAR",
551
+ decimals: 24
552
+ // NEAR uses 24 decimals (yoctoNEAR)
553
+ },
554
+ usdc: {
555
+ address: "17208628f84f5d6ad33f0da3bbbeb27ffcb398eac501a31bd6ad2011e36133a1",
556
+ // Native Circle USDC
557
+ decimals: 6,
558
+ name: "USDC",
559
+ version: "1"
560
+ },
561
+ x402: {
562
+ facilitatorUrl: DEFAULT_FACILITATOR_URL,
563
+ enabled: true
564
+ // NEP-366 meta-transactions supported
565
+ }
566
+ }
567
+ };
568
+ function getChainByName(name) {
569
+ return SUPPORTED_CHAINS[name.toLowerCase()];
570
+ }
571
+
572
+ // src/utils/x402.ts
573
+ function chainToCAIP2(chainName) {
574
+ const caip2 = CAIP2_IDENTIFIERS[chainName.toLowerCase()];
575
+ if (caip2) {
576
+ return caip2;
577
+ }
578
+ const chain = getChainByName(chainName);
579
+ if (chain) {
580
+ if (chain.networkType === "evm") {
581
+ return `eip155:${chain.chainId}`;
582
+ }
583
+ return `${chain.networkType}:${chainName}`;
584
+ }
585
+ return chainName;
586
+ }
587
+
43
588
  // src/providers/stellar/index.ts
44
589
  function stringToUint8Array(str) {
45
590
  return new TextEncoder().encode(str);
@@ -272,22 +817,34 @@ var StellarProvider = class {
272
817
  }
273
818
  /**
274
819
  * Encode Stellar payment as X-PAYMENT header
820
+ *
821
+ * @param paymentPayload - JSON-encoded payment payload from signPayment()
822
+ * @param version - x402 protocol version (1 or 2, defaults to 1)
823
+ * @returns Base64-encoded X-PAYMENT header value
275
824
  */
276
- encodePaymentHeader(paymentPayload) {
825
+ encodePaymentHeader(paymentPayload, version = 1) {
277
826
  const payload = JSON.parse(paymentPayload);
278
- const x402Payload = {
827
+ const payloadData = {
828
+ from: payload.from,
829
+ to: payload.to,
830
+ amount: payload.amount,
831
+ tokenContract: payload.tokenContract,
832
+ authorizationEntryXdr: payload.authorizationEntryXdr,
833
+ nonce: payload.nonce,
834
+ signatureExpirationLedger: payload.signatureExpirationLedger
835
+ };
836
+ const x402Payload = version === 2 ? {
837
+ x402Version: 2,
838
+ scheme: "exact",
839
+ network: chainToCAIP2("stellar"),
840
+ // CAIP-2 format for v2
841
+ payload: payloadData
842
+ } : {
279
843
  x402Version: 1,
280
844
  scheme: "exact",
281
845
  network: "stellar",
282
- payload: {
283
- from: payload.from,
284
- to: payload.to,
285
- amount: payload.amount,
286
- tokenContract: payload.tokenContract,
287
- authorizationEntryXdr: payload.authorizationEntryXdr,
288
- nonce: payload.nonce,
289
- signatureExpirationLedger: payload.signatureExpirationLedger
290
- }
846
+ // Plain chain name for v1
847
+ payload: payloadData
291
848
  };
292
849
  return btoa(JSON.stringify(x402Payload));
293
850
  }