uvd-x402-sdk 2.16.1 → 2.17.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 (76) hide show
  1. package/README.md +106 -8
  2. package/dist/adapters/index.d.mts +1 -1
  3. package/dist/adapters/index.d.ts +1 -1
  4. package/dist/adapters/index.js +103 -0
  5. package/dist/adapters/index.js.map +1 -1
  6. package/dist/adapters/index.mjs +103 -0
  7. package/dist/adapters/index.mjs.map +1 -1
  8. package/dist/backend/index.d.mts +393 -3
  9. package/dist/backend/index.d.ts +393 -3
  10. package/dist/backend/index.js +448 -0
  11. package/dist/backend/index.js.map +1 -1
  12. package/dist/backend/index.mjs +445 -1
  13. package/dist/backend/index.mjs.map +1 -1
  14. package/dist/{index-BYsQM8ga.d.ts → index-BDLgm-Sg.d.mts} +4 -3
  15. package/dist/{index-B_reIs-L.d.mts → index-BE5cH7oS.d.mts} +4 -2
  16. package/dist/{index-B_reIs-L.d.ts → index-BE5cH7oS.d.ts} +4 -2
  17. package/dist/{index-1CWNFuXP.d.mts → index-DDrvK4em.d.ts} +4 -3
  18. package/dist/index.d.mts +2 -2
  19. package/dist/index.d.ts +2 -2
  20. package/dist/index.js +103 -0
  21. package/dist/index.js.map +1 -1
  22. package/dist/index.mjs +103 -0
  23. package/dist/index.mjs.map +1 -1
  24. package/dist/providers/algorand/index.d.mts +1 -1
  25. package/dist/providers/algorand/index.d.ts +1 -1
  26. package/dist/providers/algorand/index.js +103 -0
  27. package/dist/providers/algorand/index.js.map +1 -1
  28. package/dist/providers/algorand/index.mjs +103 -0
  29. package/dist/providers/algorand/index.mjs.map +1 -1
  30. package/dist/providers/evm/index.d.mts +1 -1
  31. package/dist/providers/evm/index.d.ts +1 -1
  32. package/dist/providers/evm/index.js +103 -0
  33. package/dist/providers/evm/index.js.map +1 -1
  34. package/dist/providers/evm/index.mjs +103 -0
  35. package/dist/providers/evm/index.mjs.map +1 -1
  36. package/dist/providers/near/index.d.mts +1 -1
  37. package/dist/providers/near/index.d.ts +1 -1
  38. package/dist/providers/near/index.js +103 -0
  39. package/dist/providers/near/index.js.map +1 -1
  40. package/dist/providers/near/index.mjs +103 -0
  41. package/dist/providers/near/index.mjs.map +1 -1
  42. package/dist/providers/solana/index.d.mts +1 -1
  43. package/dist/providers/solana/index.d.ts +1 -1
  44. package/dist/providers/solana/index.js +103 -0
  45. package/dist/providers/solana/index.js.map +1 -1
  46. package/dist/providers/solana/index.mjs +103 -0
  47. package/dist/providers/solana/index.mjs.map +1 -1
  48. package/dist/providers/stellar/index.d.mts +1 -1
  49. package/dist/providers/stellar/index.d.ts +1 -1
  50. package/dist/providers/stellar/index.js +103 -0
  51. package/dist/providers/stellar/index.js.map +1 -1
  52. package/dist/providers/stellar/index.mjs +103 -0
  53. package/dist/providers/stellar/index.mjs.map +1 -1
  54. package/dist/providers/sui/index.d.mts +1 -1
  55. package/dist/providers/sui/index.d.ts +1 -1
  56. package/dist/providers/sui/index.js +105 -1
  57. package/dist/providers/sui/index.js.map +1 -1
  58. package/dist/providers/sui/index.mjs +105 -1
  59. package/dist/providers/sui/index.mjs.map +1 -1
  60. package/dist/react/index.d.mts +3 -3
  61. package/dist/react/index.d.ts +3 -3
  62. package/dist/react/index.js +103 -0
  63. package/dist/react/index.js.map +1 -1
  64. package/dist/react/index.mjs +103 -0
  65. package/dist/react/index.mjs.map +1 -1
  66. package/dist/utils/index.d.mts +1 -1
  67. package/dist/utils/index.d.ts +1 -1
  68. package/dist/utils/index.js +103 -0
  69. package/dist/utils/index.js.map +1 -1
  70. package/dist/utils/index.mjs +103 -0
  71. package/dist/utils/index.mjs.map +1 -1
  72. package/package.json +9 -3
  73. package/src/backend/index.ts +695 -1
  74. package/src/chains/index.ts +102 -2
  75. package/src/providers/sui/index.ts +2 -0
  76. package/src/types/index.ts +7 -2
package/README.md CHANGED
@@ -1,17 +1,19 @@
1
1
  # uvd-x402-sdk
2
2
 
3
- Gasless crypto payments across 16 blockchain networks using the x402 protocol.
3
+ Gasless crypto payments across 21 blockchain networks using the x402 protocol.
4
4
 
5
5
  Users sign a message or transaction, and the Ultravioleta facilitator handles on-chain settlement. No gas fees for users.
6
6
 
7
7
  ## Features
8
8
 
9
- - **16 Networks**: EVM (10), Solana, Fogo, Stellar, NEAR, Algorand (2)
9
+ - **21 Networks**: EVM (13 including Scroll, SKALE), Solana, Fogo, Stellar, NEAR, Algorand, Sui
10
10
  - **Multi-Stablecoin**: USDC, EURC, AUSD, PYUSD, USDT
11
11
  - **x402 v1 & v2**: Both protocol versions with auto-detection
12
12
  - **Gasless**: Facilitator pays all network fees
13
13
  - **Type-Safe**: Full TypeScript support
14
14
  - **React & Wagmi**: First-class integrations
15
+ - **ERC-8004 Trustless Agents**: On-chain reputation and identity
16
+ - **Escrow & Refunds**: Hold payments with dispute resolution
15
17
 
16
18
  ## Installation
17
19
 
@@ -36,6 +38,9 @@ npm install @near-wallet-selector/core @near-wallet-selector/my-near-wallet
36
38
 
37
39
  # Algorand
38
40
  npm install algosdk lute-connect
41
+
42
+ # Sui
43
+ npm install @mysten/sui
39
44
  ```
40
45
 
41
46
  ## Quick Start
@@ -98,6 +103,29 @@ Algorand uses atomic transaction groups:
98
103
  - Transaction 0: Fee payment (unsigned, facilitator signs)
99
104
  - Transaction 1: USDC ASA transfer (signed by user)
100
105
 
106
+ ### Sui
107
+
108
+ ```typescript
109
+ import { SuiProvider } from 'uvd-x402-sdk/sui';
110
+ import { getChainByName } from 'uvd-x402-sdk';
111
+
112
+ const sui = new SuiProvider();
113
+ const address = await sui.connect(); // Sui Wallet
114
+ const chainConfig = getChainByName('sui')!;
115
+
116
+ const payload = await sui.signPayment({
117
+ recipient: '0x1234...', // 66-char Sui address
118
+ amount: '10.00',
119
+ }, chainConfig);
120
+
121
+ const header = sui.encodePaymentHeader(payload, chainConfig);
122
+ ```
123
+
124
+ Sui uses sponsored transactions:
125
+ - User creates and signs a programmable transaction block
126
+ - Facilitator sponsors gas (pays in SUI)
127
+ - User pays zero gas fees
128
+
101
129
  ### Stellar
102
130
 
103
131
  ```typescript
@@ -406,7 +434,7 @@ const header = svm.encodePaymentHeader(payload, chainConfig);
406
434
 
407
435
  ## Supported Networks
408
436
 
409
- ### EVM (10)
437
+ ### EVM (13)
410
438
 
411
439
  | Network | Chain ID | Tokens |
412
440
  |---------|----------|--------|
@@ -414,12 +442,15 @@ const header = svm.encodePaymentHeader(payload, chainConfig);
414
442
  | Ethereum | 1 | USDC, EURC, AUSD, PYUSD, USDT |
415
443
  | Polygon | 137 | USDC, AUSD |
416
444
  | Arbitrum | 42161 | USDC, AUSD, USDT |
417
- | Optimism | 10 | USDC |
445
+ | Optimism | 10 | USDC, USDT |
418
446
  | Avalanche | 43114 | USDC, EURC, AUSD |
419
- | Celo | 42220 | USDC |
447
+ | Celo | 42220 | USDC, USDT |
420
448
  | HyperEVM | 999 | USDC |
421
449
  | Unichain | 130 | USDC |
422
450
  | Monad | 143 | USDC, AUSD |
451
+ | Scroll | 534352 | USDC |
452
+ | SKALE | 1187947933 | USDC |
453
+ | SKALE Testnet | 324705682 | USDC |
423
454
 
424
455
  ### SVM (2)
425
456
 
@@ -428,14 +459,19 @@ const header = svm.encodePaymentHeader(payload, chainConfig);
428
459
  | Solana | USDC, AUSD | Phantom |
429
460
  | Fogo | USDC | Phantom |
430
461
 
431
- ### Algorand (2)
462
+ ### Algorand
432
463
 
433
464
  | Network | USDC ASA | Wallet |
434
465
  |---------|----------|--------|
435
466
  | Algorand | 31566704 | Lute, Pera |
436
- | Algorand Testnet | 10458941 | Lute, Pera |
437
467
 
438
- ### Other (2)
468
+ ### Sui
469
+
470
+ | Network | Tokens | Wallet |
471
+ |---------|--------|--------|
472
+ | Sui | USDC, AUSD | Sui Wallet |
473
+
474
+ ### Other
439
475
 
440
476
  | Network | Wallet |
441
477
  |---------|--------|
@@ -455,10 +491,12 @@ FACILITATOR_ADDRESSES.solana; // F742C4VfFLQ9zRQyithoj5229ZgtX2WqKCSFKgH2EThq
455
491
  FACILITATOR_ADDRESSES.algorand; // KIMS5H6QLCUDL65L5UBTOXDPWLMTS7N3AAC3I6B2NCONEI5QIVK7LH2C2I
456
492
  FACILITATOR_ADDRESSES.stellar; // GCHPGXJT2WFFRFCA5TV4G4E3PMMXLNIDUH27PKDYA4QJ2XGYZWGFZNHB
457
493
  FACILITATOR_ADDRESSES.near; // uvd-facilitator.near
494
+ FACILITATOR_ADDRESSES.sui; // 0xe7bbf2b13f7d72714760aa16e024fa1b35a978793f9893d0568a4fbf356a764a
458
495
 
459
496
  // Or get by chain name
460
497
  getFacilitatorAddress('algorand'); // KIMS5H6...
461
498
  getFacilitatorAddress('base', 'evm'); // 0x1030...
499
+ getFacilitatorAddress('sui'); // 0xe7bbf...
462
500
  ```
463
501
 
464
502
  ## Backend
@@ -551,6 +589,66 @@ try {
551
589
  }
552
590
  ```
553
591
 
592
+ ## ERC-8004 Trustless Agents
593
+
594
+ Build verifiable on-chain reputation for AI agents and services.
595
+
596
+ ```typescript
597
+ import { Erc8004Client } from 'uvd-x402-sdk/backend';
598
+
599
+ const erc8004 = new Erc8004Client();
600
+
601
+ // Get agent identity
602
+ const identity = await erc8004.getIdentity('ethereum', 42);
603
+ console.log(identity.agentUri);
604
+
605
+ // Get agent reputation
606
+ const reputation = await erc8004.getReputation('ethereum', 42);
607
+ console.log(`Score: ${reputation.summary.summaryValue}`);
608
+
609
+ // Submit feedback after payment
610
+ const result = await erc8004.submitFeedback({
611
+ x402Version: 1,
612
+ network: 'ethereum',
613
+ feedback: {
614
+ agentId: 42,
615
+ value: 95,
616
+ valueDecimals: 0,
617
+ tag1: 'quality',
618
+ proof: settleResponse.proofOfPayment,
619
+ },
620
+ });
621
+
622
+ // Respond to feedback (agents only)
623
+ await erc8004.appendResponse('ethereum', 42, 1, 'Thank you for your feedback!');
624
+ ```
625
+
626
+ ## Escrow & Refunds
627
+
628
+ Hold payments in escrow with dispute resolution.
629
+
630
+ ```typescript
631
+ import { EscrowClient } from 'uvd-x402-sdk/backend';
632
+
633
+ const escrow = new EscrowClient();
634
+
635
+ // Create escrow payment
636
+ const escrowPayment = await escrow.createEscrow({
637
+ paymentHeader: req.headers['x-payment'],
638
+ requirements: paymentRequirements,
639
+ escrowDuration: 86400, // 24 hours
640
+ });
641
+
642
+ // Release after service delivery
643
+ await escrow.release(escrowPayment.id);
644
+
645
+ // Or request refund if service failed
646
+ await escrow.requestRefund({
647
+ escrowId: escrowPayment.id,
648
+ reason: 'Service not delivered',
649
+ });
650
+ ```
651
+
554
652
  ## Links
555
653
 
556
654
  - [x402 Protocol](https://x402.org)
@@ -1,4 +1,4 @@
1
- import { m as X402Version, f as PaymentResult } from '../index-B_reIs-L.mjs';
1
+ import { m as X402Version, f as PaymentResult } from '../index-BE5cH7oS.mjs';
2
2
 
3
3
  /**
4
4
  * uvd-x402-sdk - Wagmi/Viem Adapter
@@ -1,4 +1,4 @@
1
- import { m as X402Version, f as PaymentResult } from '../index-B_reIs-L.js';
1
+ import { m as X402Version, f as PaymentResult } from '../index-BE5cH7oS.js';
2
2
 
3
3
  /**
4
4
  * uvd-x402-sdk - Wagmi/Viem Adapter
@@ -407,6 +407,106 @@ var SUPPORTED_CHAINS = {
407
407
  enabled: true
408
408
  }
409
409
  },
410
+ scroll: {
411
+ chainId: 534352,
412
+ chainIdHex: "0x82750",
413
+ name: "scroll",
414
+ displayName: "Scroll",
415
+ networkType: "evm",
416
+ rpcUrl: "https://rpc.scroll.io",
417
+ explorerUrl: "https://scrollscan.com",
418
+ nativeCurrency: {
419
+ name: "Ethereum",
420
+ symbol: "ETH",
421
+ decimals: 18
422
+ },
423
+ usdc: {
424
+ address: "0x06eFdBFf2a14a7c8E15944D1F4A48F9F95F663A4",
425
+ decimals: 6,
426
+ name: "USD Coin",
427
+ version: "2"
428
+ },
429
+ tokens: {
430
+ usdc: {
431
+ address: "0x06eFdBFf2a14a7c8E15944D1F4A48F9F95F663A4",
432
+ decimals: 6,
433
+ name: "USD Coin",
434
+ version: "2"
435
+ }
436
+ },
437
+ x402: {
438
+ facilitatorUrl: DEFAULT_FACILITATOR_URL,
439
+ enabled: true
440
+ }
441
+ },
442
+ skale: {
443
+ chainId: 1187947933,
444
+ chainIdHex: "0x46cea59d",
445
+ name: "skale",
446
+ displayName: "SKALE",
447
+ networkType: "evm",
448
+ rpcUrl: "https://mainnet.skalenodes.com/v1/honorable-steel-rasalhague",
449
+ explorerUrl: "https://honorable-steel-rasalhague.explorer.mainnet.skalenodes.com",
450
+ nativeCurrency: {
451
+ name: "sFUEL",
452
+ symbol: "sFUEL",
453
+ decimals: 18
454
+ },
455
+ usdc: {
456
+ address: "0x85889c8c714505E0c94b30fcfcF64fE3Ac8FCb20",
457
+ decimals: 6,
458
+ name: "USDC",
459
+ // SKALE uses "USDC"
460
+ version: "2"
461
+ },
462
+ tokens: {
463
+ usdc: {
464
+ address: "0x85889c8c714505E0c94b30fcfcF64fE3Ac8FCb20",
465
+ decimals: 6,
466
+ name: "USDC",
467
+ // SKALE uses "USDC"
468
+ version: "2"
469
+ }
470
+ },
471
+ x402: {
472
+ facilitatorUrl: DEFAULT_FACILITATOR_URL,
473
+ enabled: true
474
+ }
475
+ },
476
+ "skale-testnet": {
477
+ chainId: 324705682,
478
+ chainIdHex: "0x135a9d92",
479
+ name: "skale-testnet",
480
+ displayName: "SKALE Testnet",
481
+ networkType: "evm",
482
+ rpcUrl: "https://testnet.skalenodes.com/v1/lanky-ill-funny-testnet",
483
+ explorerUrl: "https://lanky-ill-funny-testnet.explorer.testnet.skalenodes.com",
484
+ nativeCurrency: {
485
+ name: "sFUEL",
486
+ symbol: "sFUEL",
487
+ decimals: 18
488
+ },
489
+ usdc: {
490
+ address: "0x2e08028E3C4c2356572E096d8EF835cD5C6030bD",
491
+ decimals: 6,
492
+ name: "USDC",
493
+ // SKALE testnet uses "USDC"
494
+ version: "2"
495
+ },
496
+ tokens: {
497
+ usdc: {
498
+ address: "0x2e08028E3C4c2356572E096d8EF835cD5C6030bD",
499
+ decimals: 6,
500
+ name: "USDC",
501
+ // SKALE testnet uses "USDC"
502
+ version: "2"
503
+ }
504
+ },
505
+ x402: {
506
+ facilitatorUrl: DEFAULT_FACILITATOR_URL,
507
+ enabled: true
508
+ }
509
+ },
410
510
  // ============================================================================
411
511
  // SVM CHAINS (2 networks) - Solana Virtual Machine
412
512
  // ============================================================================
@@ -710,6 +810,9 @@ var CAIP2_IDENTIFIERS = {
710
810
  hyperevm: "eip155:999",
711
811
  unichain: "eip155:130",
712
812
  monad: "eip155:143",
813
+ scroll: "eip155:534352",
814
+ skale: "eip155:1187947933",
815
+ "skale-testnet": "eip155:324705682",
713
816
  // SVM chains
714
817
  solana: "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
715
818
  fogo: "svm:fogo",