uvd-x402-sdk 2.26.0 → 2.29.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.
- package/README.md +106 -7
- package/dist/adapters/index.d.mts +1 -1
- package/dist/adapters/index.d.ts +1 -1
- package/dist/adapters/index.js +24 -24
- package/dist/adapters/index.js.map +1 -1
- package/dist/adapters/index.mjs +24 -24
- package/dist/adapters/index.mjs.map +1 -1
- package/dist/backend/index.d.mts +134 -26
- package/dist/backend/index.d.ts +134 -26
- package/dist/backend/index.js +214 -40
- package/dist/backend/index.js.map +1 -1
- package/dist/backend/index.mjs +214 -40
- package/dist/backend/index.mjs.map +1 -1
- package/dist/{index-Df7wrPNp.d.mts → index-DdLgLOkq.d.mts} +2 -2
- package/dist/{index-BNDjK-t2.d.ts → index-DsqgQKiS.d.ts} +2 -2
- package/dist/{index-B49n9gXd.d.mts → index-MNVg3WMv.d.mts} +20 -2
- package/dist/{index-B49n9gXd.d.ts → index-MNVg3WMv.d.ts} +20 -2
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +24 -24
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +24 -24
- package/dist/index.mjs.map +1 -1
- package/dist/providers/algorand/index.d.mts +1 -1
- package/dist/providers/algorand/index.d.ts +1 -1
- package/dist/providers/algorand/index.js +24 -24
- package/dist/providers/algorand/index.js.map +1 -1
- package/dist/providers/algorand/index.mjs +24 -24
- package/dist/providers/algorand/index.mjs.map +1 -1
- package/dist/providers/evm/index.d.mts +1 -1
- package/dist/providers/evm/index.d.ts +1 -1
- package/dist/providers/evm/index.js +24 -24
- package/dist/providers/evm/index.js.map +1 -1
- package/dist/providers/evm/index.mjs +24 -24
- package/dist/providers/evm/index.mjs.map +1 -1
- package/dist/providers/near/index.d.mts +1 -1
- package/dist/providers/near/index.d.ts +1 -1
- package/dist/providers/near/index.js +24 -24
- package/dist/providers/near/index.js.map +1 -1
- package/dist/providers/near/index.mjs +24 -24
- package/dist/providers/near/index.mjs.map +1 -1
- package/dist/providers/solana/index.d.mts +1 -1
- package/dist/providers/solana/index.d.ts +1 -1
- package/dist/providers/solana/index.js +24 -24
- package/dist/providers/solana/index.js.map +1 -1
- package/dist/providers/solana/index.mjs +24 -24
- package/dist/providers/solana/index.mjs.map +1 -1
- package/dist/providers/stellar/index.d.mts +1 -1
- package/dist/providers/stellar/index.d.ts +1 -1
- package/dist/providers/stellar/index.js +24 -24
- package/dist/providers/stellar/index.js.map +1 -1
- package/dist/providers/stellar/index.mjs +24 -24
- package/dist/providers/stellar/index.mjs.map +1 -1
- package/dist/providers/sui/index.d.mts +1 -1
- package/dist/providers/sui/index.d.ts +1 -1
- package/dist/providers/sui/index.js +24 -24
- package/dist/providers/sui/index.js.map +1 -1
- package/dist/providers/sui/index.mjs +24 -24
- package/dist/providers/sui/index.mjs.map +1 -1
- package/dist/react/index.d.mts +3 -3
- package/dist/react/index.d.ts +3 -3
- package/dist/react/index.js +24 -24
- package/dist/react/index.js.map +1 -1
- package/dist/react/index.mjs +24 -24
- package/dist/react/index.mjs.map +1 -1
- package/dist/utils/index.d.mts +1 -1
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.js +24 -24
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/index.mjs +24 -24
- package/dist/utils/index.mjs.map +1 -1
- package/package.json +2 -2
- package/src/backend/index.ts +256 -42
- package/src/chains/index.ts +19 -19
- package/src/index.ts +1 -0
- package/src/types/index.ts +22 -2
package/README.md
CHANGED
|
@@ -6,14 +6,17 @@ Users sign a message or transaction, and the Ultravioleta facilitator handles on
|
|
|
6
6
|
|
|
7
7
|
## Features
|
|
8
8
|
|
|
9
|
-
- **21 Networks**: EVM (13 including Scroll, SKALE), Solana, Fogo, Stellar, NEAR, Algorand, Sui
|
|
9
|
+
- **21 Networks**: EVM (13 including Scroll, SKALE Base), 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
|
|
15
|
+
- **ERC-8004 Trustless Agents**: On-chain reputation and identity (EVM + Solana)
|
|
16
16
|
- **Escrow & Refunds**: Hold payments with dispute resolution
|
|
17
|
+
- **`/accepts` Negotiation**: Discover facilitator capabilities before constructing payments
|
|
18
|
+
- **Bazaar Discovery**: Register and discover paid resources across the x402 network
|
|
19
|
+
- **Facilitator Info**: Query version, supported networks, blacklist, and health
|
|
17
20
|
|
|
18
21
|
## Installation
|
|
19
22
|
|
|
@@ -449,8 +452,8 @@ const header = svm.encodePaymentHeader(payload, chainConfig);
|
|
|
449
452
|
| Unichain | 130 | USDC |
|
|
450
453
|
| Monad | 143 | USDC, AUSD |
|
|
451
454
|
| Scroll | 534352 | USDC |
|
|
452
|
-
| SKALE | 1187947933 | USDC |
|
|
453
|
-
| SKALE
|
|
455
|
+
| SKALE Base | 1187947933 | USDC.e |
|
|
456
|
+
| SKALE Base Sepolia | 324705682 | USDC.e |
|
|
454
457
|
|
|
455
458
|
### SVM (2)
|
|
456
459
|
|
|
@@ -591,17 +594,23 @@ try {
|
|
|
591
594
|
|
|
592
595
|
## ERC-8004 Trustless Agents
|
|
593
596
|
|
|
594
|
-
Build verifiable on-chain reputation for AI agents and services.
|
|
597
|
+
Build verifiable on-chain reputation for AI agents and services. Supports **18 networks** (16 EVM + Solana + Solana devnet).
|
|
598
|
+
|
|
599
|
+
On EVM networks, agent IDs are sequential numbers. On Solana, agent IDs are base58 pubkey strings. The `AgentId` type (`number | string`) handles both.
|
|
595
600
|
|
|
596
601
|
```typescript
|
|
597
|
-
import { Erc8004Client } from 'uvd-x402-sdk/backend';
|
|
602
|
+
import { Erc8004Client, AgentId } from 'uvd-x402-sdk/backend';
|
|
598
603
|
|
|
599
604
|
const erc8004 = new Erc8004Client();
|
|
600
605
|
|
|
601
|
-
//
|
|
606
|
+
// EVM: agent ID is a number
|
|
602
607
|
const identity = await erc8004.getIdentity('ethereum', 42);
|
|
603
608
|
console.log(identity.agentUri);
|
|
604
609
|
|
|
610
|
+
// Solana: agent ID is a base58 pubkey string
|
|
611
|
+
const solIdentity = await erc8004.getIdentity('solana', '8oo4dC4JvBLwy5...');
|
|
612
|
+
console.log(solIdentity.agentUri);
|
|
613
|
+
|
|
605
614
|
// Get agent reputation
|
|
606
615
|
const reputation = await erc8004.getReputation('ethereum', 42);
|
|
607
616
|
console.log(`Score: ${reputation.summary.summaryValue}`);
|
|
@@ -620,9 +629,32 @@ const result = await erc8004.submitFeedback({
|
|
|
620
629
|
});
|
|
621
630
|
|
|
622
631
|
// Respond to feedback (agents only)
|
|
632
|
+
// sealHash is required for Solana, optional for EVM
|
|
623
633
|
await erc8004.appendResponse('ethereum', 42, 1, 'Thank you for your feedback!');
|
|
624
634
|
```
|
|
625
635
|
|
|
636
|
+
## `/accepts` Negotiation
|
|
637
|
+
|
|
638
|
+
Discover what the facilitator can settle before constructing payment authorizations. Used by Faremeter middleware and clients.
|
|
639
|
+
|
|
640
|
+
```typescript
|
|
641
|
+
import { FacilitatorClient } from 'uvd-x402-sdk/backend';
|
|
642
|
+
|
|
643
|
+
const client = new FacilitatorClient();
|
|
644
|
+
|
|
645
|
+
// Ask facilitator what it can settle
|
|
646
|
+
const enriched = await client.accepts([
|
|
647
|
+
{
|
|
648
|
+
scheme: 'exact',
|
|
649
|
+
network: 'base-mainnet',
|
|
650
|
+
maxAmountRequired: '1000000',
|
|
651
|
+
resource: 'https://api.example.com/data',
|
|
652
|
+
payTo: '0xMerchant...',
|
|
653
|
+
},
|
|
654
|
+
]);
|
|
655
|
+
// enriched[0].extra now has feePayer, tokens, escrow config
|
|
656
|
+
```
|
|
657
|
+
|
|
626
658
|
## Escrow & Refunds
|
|
627
659
|
|
|
628
660
|
Hold payments in escrow with dispute resolution.
|
|
@@ -647,6 +679,73 @@ await escrow.requestRefund({
|
|
|
647
679
|
escrowId: escrowPayment.id,
|
|
648
680
|
reason: 'Service not delivered',
|
|
649
681
|
});
|
|
682
|
+
|
|
683
|
+
// Query on-chain escrow state
|
|
684
|
+
const state = await escrow.getEscrowState({
|
|
685
|
+
network: 'base-mainnet',
|
|
686
|
+
payer: '0xPayer...',
|
|
687
|
+
recipient: '0xRecipient...',
|
|
688
|
+
nonce: '0x1234...',
|
|
689
|
+
});
|
|
690
|
+
```
|
|
691
|
+
|
|
692
|
+
## Bazaar Discovery
|
|
693
|
+
|
|
694
|
+
Register and discover paid x402 resources across the network.
|
|
695
|
+
|
|
696
|
+
```typescript
|
|
697
|
+
import { BazaarClient } from 'uvd-x402-sdk/backend';
|
|
698
|
+
|
|
699
|
+
const bazaar = new BazaarClient({ apiKey: 'your-api-key' });
|
|
700
|
+
|
|
701
|
+
// Discover resources
|
|
702
|
+
const results = await bazaar.discover({
|
|
703
|
+
category: 'ai',
|
|
704
|
+
network: 'base',
|
|
705
|
+
maxPrice: '0.10',
|
|
706
|
+
});
|
|
707
|
+
|
|
708
|
+
for (const resource of results.resources) {
|
|
709
|
+
console.log(`${resource.name}: ${resource.url}`);
|
|
710
|
+
}
|
|
711
|
+
|
|
712
|
+
// Register a resource
|
|
713
|
+
const resource = await bazaar.register({
|
|
714
|
+
url: 'https://api.example.com/v1/generate',
|
|
715
|
+
name: 'Image Generator API',
|
|
716
|
+
description: 'Generate images with AI',
|
|
717
|
+
category: 'ai',
|
|
718
|
+
networks: ['base', 'ethereum'],
|
|
719
|
+
price: '0.05',
|
|
720
|
+
payTo: '0x1234...',
|
|
721
|
+
});
|
|
722
|
+
```
|
|
723
|
+
|
|
724
|
+
## Facilitator Info
|
|
725
|
+
|
|
726
|
+
Query the facilitator for version, supported networks, and compliance data.
|
|
727
|
+
|
|
728
|
+
```typescript
|
|
729
|
+
import { FacilitatorClient } from 'uvd-x402-sdk/backend';
|
|
730
|
+
|
|
731
|
+
const client = new FacilitatorClient();
|
|
732
|
+
|
|
733
|
+
// Check version
|
|
734
|
+
const { version } = await client.getVersion();
|
|
735
|
+
console.log(`Facilitator: v${version}`);
|
|
736
|
+
|
|
737
|
+
// List supported networks
|
|
738
|
+
const supported = await client.getSupported();
|
|
739
|
+
for (const kind of supported.kinds) {
|
|
740
|
+
console.log(` ${kind.network} - ${kind.scheme}`);
|
|
741
|
+
}
|
|
742
|
+
|
|
743
|
+
// Check blacklist
|
|
744
|
+
const bl = await client.getBlacklist();
|
|
745
|
+
console.log(`Blocked addresses: ${bl.totalBlocked}`);
|
|
746
|
+
|
|
747
|
+
// Health check
|
|
748
|
+
const isHealthy = await client.healthCheck();
|
|
650
749
|
```
|
|
651
750
|
|
|
652
751
|
## Links
|
package/dist/adapters/index.d.ts
CHANGED
package/dist/adapters/index.js
CHANGED
|
@@ -446,32 +446,32 @@ var SUPPORTED_CHAINS = {
|
|
|
446
446
|
enabled: true
|
|
447
447
|
}
|
|
448
448
|
},
|
|
449
|
-
skale: {
|
|
449
|
+
"skale-base": {
|
|
450
450
|
chainId: 1187947933,
|
|
451
451
|
chainIdHex: "0x46cea59d",
|
|
452
|
-
name: "skale",
|
|
453
|
-
displayName: "SKALE",
|
|
452
|
+
name: "skale-base",
|
|
453
|
+
displayName: "SKALE Base",
|
|
454
454
|
networkType: "evm",
|
|
455
|
-
rpcUrl: "https://
|
|
456
|
-
explorerUrl: "https://
|
|
455
|
+
rpcUrl: "https://skale-base.skalenodes.com/v1/base",
|
|
456
|
+
explorerUrl: "https://skale-base-explorer.skalenodes.com",
|
|
457
457
|
nativeCurrency: {
|
|
458
|
-
name: "
|
|
459
|
-
symbol: "
|
|
458
|
+
name: "CREDIT",
|
|
459
|
+
symbol: "CREDIT",
|
|
460
460
|
decimals: 18
|
|
461
461
|
},
|
|
462
462
|
usdc: {
|
|
463
463
|
address: "0x85889c8c714505E0c94b30fcfcF64fE3Ac8FCb20",
|
|
464
464
|
decimals: 6,
|
|
465
|
-
name: "USDC",
|
|
466
|
-
//
|
|
465
|
+
name: "Bridged USDC (SKALE Bridge)",
|
|
466
|
+
// Must match on-chain EIP-712 domain exactly
|
|
467
467
|
version: "2"
|
|
468
468
|
},
|
|
469
469
|
tokens: {
|
|
470
470
|
usdc: {
|
|
471
471
|
address: "0x85889c8c714505E0c94b30fcfcF64fE3Ac8FCb20",
|
|
472
472
|
decimals: 6,
|
|
473
|
-
name: "USDC",
|
|
474
|
-
//
|
|
473
|
+
name: "Bridged USDC (SKALE Bridge)",
|
|
474
|
+
// Must match on-chain EIP-712 domain exactly
|
|
475
475
|
version: "2"
|
|
476
476
|
}
|
|
477
477
|
},
|
|
@@ -480,32 +480,32 @@ var SUPPORTED_CHAINS = {
|
|
|
480
480
|
enabled: true
|
|
481
481
|
}
|
|
482
482
|
},
|
|
483
|
-
"skale-
|
|
483
|
+
"skale-base-sepolia": {
|
|
484
484
|
chainId: 324705682,
|
|
485
485
|
chainIdHex: "0x135a9d92",
|
|
486
|
-
name: "skale-
|
|
487
|
-
displayName: "SKALE
|
|
486
|
+
name: "skale-base-sepolia",
|
|
487
|
+
displayName: "SKALE Base Sepolia",
|
|
488
488
|
networkType: "evm",
|
|
489
|
-
rpcUrl: "https://testnet.skalenodes.com/v1/
|
|
490
|
-
explorerUrl: "https://
|
|
489
|
+
rpcUrl: "https://base-sepolia-testnet.skalenodes.com/v1/jubilant-horrible-ancha",
|
|
490
|
+
explorerUrl: "https://base-sepolia-testnet-explorer.skalenodes.com",
|
|
491
491
|
nativeCurrency: {
|
|
492
|
-
name: "
|
|
493
|
-
symbol: "
|
|
492
|
+
name: "CREDIT",
|
|
493
|
+
symbol: "CREDIT",
|
|
494
494
|
decimals: 18
|
|
495
495
|
},
|
|
496
496
|
usdc: {
|
|
497
497
|
address: "0x2e08028E3C4c2356572E096d8EF835cD5C6030bD",
|
|
498
498
|
decimals: 6,
|
|
499
|
-
name: "USDC",
|
|
500
|
-
//
|
|
499
|
+
name: "Bridged USDC (SKALE Bridge)",
|
|
500
|
+
// Must match on-chain EIP-712 domain exactly
|
|
501
501
|
version: "2"
|
|
502
502
|
},
|
|
503
503
|
tokens: {
|
|
504
504
|
usdc: {
|
|
505
505
|
address: "0x2e08028E3C4c2356572E096d8EF835cD5C6030bD",
|
|
506
506
|
decimals: 6,
|
|
507
|
-
name: "USDC",
|
|
508
|
-
//
|
|
507
|
+
name: "Bridged USDC (SKALE Bridge)",
|
|
508
|
+
// Must match on-chain EIP-712 domain exactly
|
|
509
509
|
version: "2"
|
|
510
510
|
}
|
|
511
511
|
},
|
|
@@ -818,8 +818,8 @@ var CAIP2_IDENTIFIERS = {
|
|
|
818
818
|
unichain: "eip155:130",
|
|
819
819
|
monad: "eip155:143",
|
|
820
820
|
scroll: "eip155:534352",
|
|
821
|
-
skale: "eip155:1187947933",
|
|
822
|
-
"skale-
|
|
821
|
+
"skale-base": "eip155:1187947933",
|
|
822
|
+
"skale-base-sepolia": "eip155:324705682",
|
|
823
823
|
// SVM chains
|
|
824
824
|
solana: "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
|
|
825
825
|
fogo: "svm:fogo",
|