@aibtc/mcp-server 1.14.2 → 1.16.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 +52 -6
- package/dist/config/contracts.d.ts +20 -0
- package/dist/config/contracts.d.ts.map +1 -1
- package/dist/config/contracts.js +19 -0
- package/dist/config/contracts.js.map +1 -1
- package/dist/services/erc8004.service.d.ts +92 -0
- package/dist/services/erc8004.service.d.ts.map +1 -0
- package/dist/services/erc8004.service.js +259 -0
- package/dist/services/erc8004.service.js.map +1 -0
- package/dist/tools/erc8004.tools.d.ts +21 -0
- package/dist/tools/erc8004.tools.d.ts.map +1 -0
- package/dist/tools/erc8004.tools.js +347 -0
- package/dist/tools/erc8004.tools.js.map +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +2 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/ordinals.tools.js +1 -1
- package/dist/tools/ordinals.tools.js.map +1 -1
- package/package.json +1 -1
- package/skill/SKILL.md +20 -1
- package/skill/references/genesis-lifecycle.md +348 -0
- package/skill/references/inscription-workflow.md +297 -0
package/README.md
CHANGED
|
@@ -10,7 +10,7 @@ Bitcoin-native MCP server for AI agents: BTC/STX wallets, DeFi yield, sBTC peg,
|
|
|
10
10
|
- **Bitcoin L1** - Check balances, send BTC, manage UTXOs via mempool.space
|
|
11
11
|
- **Agent's Own Wallet** - Agents get their own wallet to perform blockchain transactions
|
|
12
12
|
- **Secure Storage** - Wallets encrypted with AES-256-GCM and stored locally
|
|
13
|
-
- **
|
|
13
|
+
- **120+ Tools** - Bitcoin L1 + comprehensive Stacks L2 operations
|
|
14
14
|
- **sBTC Support** - Native Bitcoin on Stacks operations
|
|
15
15
|
- **Token Operations** - SIP-010 fungible token transfers and queries
|
|
16
16
|
- **NFT Support** - SIP-009 NFT holdings, transfers, and metadata
|
|
@@ -133,7 +133,7 @@ Claude: Done! Transaction broadcast: abc123...
|
|
|
133
133
|
|
|
134
134
|
Both addresses are derived from the same recovery phrase, making it easy to manage both Layer 1 (Bitcoin) and Layer 2 (Stacks) assets.
|
|
135
135
|
|
|
136
|
-
## Available Tools (
|
|
136
|
+
## Available Tools (120+ total)
|
|
137
137
|
|
|
138
138
|
### Wallet Management
|
|
139
139
|
| Tool | Description |
|
|
@@ -149,11 +149,43 @@ Both addresses are derived from the same recovery phrase, making it easy to mana
|
|
|
149
149
|
| `wallet_status` | Check if Claude's wallet is ready (includes Stacks and Bitcoin addresses) |
|
|
150
150
|
| `wallet_set_timeout` | Set how long wallet stays unlocked |
|
|
151
151
|
|
|
152
|
+
### Bitcoin L1
|
|
153
|
+
| Tool | Description |
|
|
154
|
+
|------|-------------|
|
|
155
|
+
| `get_btc_balance` | Get BTC balance (total, confirmed, unconfirmed) |
|
|
156
|
+
| `get_btc_fees` | Get fee estimates (fast, medium, slow) |
|
|
157
|
+
| `get_btc_utxos` | List UTXOs for an address |
|
|
158
|
+
| `transfer_btc` | Send BTC to a recipient |
|
|
159
|
+
| `get_cardinal_utxos` | UTXOs safe to spend (no inscriptions) |
|
|
160
|
+
| `get_ordinal_utxos` | UTXOs containing inscriptions |
|
|
161
|
+
|
|
162
|
+
### Bitcoin Inscriptions
|
|
163
|
+
| Tool | Description |
|
|
164
|
+
|------|-------------|
|
|
165
|
+
| `get_taproot_address` | Get wallet's Taproot (P2TR) address |
|
|
166
|
+
| `estimate_inscription_fee` | Calculate inscription cost |
|
|
167
|
+
| `inscribe` | Create inscription commit transaction |
|
|
168
|
+
| `inscribe_reveal` | Complete inscription reveal transaction |
|
|
169
|
+
| `get_inscription` | Fetch inscription content from reveal tx |
|
|
170
|
+
| `get_inscriptions_by_address` | List inscriptions owned by address |
|
|
171
|
+
|
|
172
|
+
### Message Signing
|
|
173
|
+
| Tool | Description |
|
|
174
|
+
|------|-------------|
|
|
175
|
+
| `sip018_sign` | Sign structured Clarity data (SIP-018) |
|
|
176
|
+
| `sip018_verify` | Verify SIP-018 signature |
|
|
177
|
+
| `sip018_hash` | Compute SIP-018 hash without signing |
|
|
178
|
+
| `stacks_sign_message` | Sign plain text (SIWS-compatible) |
|
|
179
|
+
| `stacks_verify_message` | Verify Stacks message signature |
|
|
180
|
+
| `btc_sign_message` | Sign with Bitcoin key (BIP-137) |
|
|
181
|
+
| `btc_verify_message` | Verify BIP-137 signature |
|
|
182
|
+
|
|
152
183
|
### Wallet & Balance
|
|
153
184
|
| Tool | Description |
|
|
154
185
|
|------|-------------|
|
|
155
186
|
| `get_wallet_info` | Get Claude's wallet addresses (Stacks + Bitcoin) and status |
|
|
156
187
|
| `get_stx_balance` | Get STX balance for any address |
|
|
188
|
+
| `get_stx_fees` | Get STX fee estimates (low, medium, high) |
|
|
157
189
|
|
|
158
190
|
### STX Transfers
|
|
159
191
|
| Tool | Description |
|
|
@@ -205,6 +237,8 @@ Both addresses are derived from the same recovery phrase, making it easy to mana
|
|
|
205
237
|
| `check_bns_availability` | Check if domain is available |
|
|
206
238
|
| `get_bns_price` | Get registration price |
|
|
207
239
|
| `list_user_domains` | List domains owned |
|
|
240
|
+
| `preorder_bns_name` | Preorder a .btc domain (step 1 of 2) |
|
|
241
|
+
| `register_bns_name` | Register a .btc domain (step 2 of 2) |
|
|
208
242
|
|
|
209
243
|
### Smart Contracts
|
|
210
244
|
| Tool | Description |
|
|
@@ -272,11 +306,21 @@ For autonomous agents, use `pillar_direct_*` tools (no browser needed).
|
|
|
272
306
|
| `get_contract_events` | Get contract event history |
|
|
273
307
|
| `get_network_status` | Get network health status |
|
|
274
308
|
|
|
309
|
+
### Yield Hunter (Autonomous)
|
|
310
|
+
| Tool | Description |
|
|
311
|
+
|------|-------------|
|
|
312
|
+
| `yield_hunter_start` | Start autonomous sBTC→Zest deposits |
|
|
313
|
+
| `yield_hunter_stop` | Stop yield hunting |
|
|
314
|
+
| `yield_hunter_status` | Check yield hunter status |
|
|
315
|
+
| `yield_hunter_configure` | Adjust threshold, reserve, interval |
|
|
316
|
+
|
|
275
317
|
### x402 API Endpoints
|
|
276
318
|
| Tool | Description |
|
|
277
319
|
|------|-------------|
|
|
278
320
|
| `list_x402_endpoints` | Discover x402 endpoints |
|
|
279
321
|
| `execute_x402_endpoint` | Execute x402 endpoint with auto-payment |
|
|
322
|
+
| `scaffold_x402_endpoint` | Generate x402 Cloudflare Worker project |
|
|
323
|
+
| `scaffold_x402_ai_endpoint` | Generate x402 AI API with OpenRouter |
|
|
280
324
|
|
|
281
325
|
## Usage Examples
|
|
282
326
|
|
|
@@ -404,11 +448,13 @@ The skill is automatically included when you install the MCP server. Find it at:
|
|
|
404
448
|
|
|
405
449
|
```
|
|
406
450
|
skill/
|
|
407
|
-
├── SKILL.md
|
|
451
|
+
├── SKILL.md # Bitcoin L1 core workflows
|
|
408
452
|
└── references/
|
|
409
|
-
├──
|
|
410
|
-
├──
|
|
411
|
-
|
|
453
|
+
├── genesis-lifecycle.md # Agent registration & check-in
|
|
454
|
+
├── inscription-workflow.md # Bitcoin inscription guide
|
|
455
|
+
├── pillar-wallet.md # Pillar smart wallet guide
|
|
456
|
+
├── stacks-defi.md # Stacks L2 / DeFi operations
|
|
457
|
+
└── troubleshooting.md # Common issues and solutions
|
|
412
458
|
```
|
|
413
459
|
|
|
414
460
|
## Development
|
|
@@ -18,6 +18,9 @@ export declare const MAINNET_CONTRACTS: {
|
|
|
18
18
|
readonly ZEST_FEES_CALCULATOR: "SM3VDXK3WZZSA84XXFKAFAF15NNZX32CTSG82JFQ4.fees-calculator";
|
|
19
19
|
readonly ZEST_INCENTIVES: "SP2VCQJGH7PHP2DJK7Z0V48AGBHQAW3R3ZW1QF4N.incentives-v2-2";
|
|
20
20
|
readonly ZEST_WSTX: "SP2VCQJGH7PHP2DJK7Z0V48AGBHQAW3R3ZW1QF4N.wstx";
|
|
21
|
+
readonly IDENTITY_REGISTRY: "SP1NMR7MY0TJ1QA7WQBZ6504KC79PZNTRQH4YGFJD.identity-registry-v2";
|
|
22
|
+
readonly REPUTATION_REGISTRY: "SP1NMR7MY0TJ1QA7WQBZ6504KC79PZNTRQH4YGFJD.reputation-registry-v2";
|
|
23
|
+
readonly VALIDATION_REGISTRY: "SP1NMR7MY0TJ1QA7WQBZ6504KC79PZNTRQH4YGFJD.validation-registry-v2";
|
|
21
24
|
};
|
|
22
25
|
/**
|
|
23
26
|
* Zest Protocol asset configuration
|
|
@@ -47,6 +50,9 @@ export declare const TESTNET_CONTRACTS: {
|
|
|
47
50
|
readonly USDCX: "ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM.usdcx";
|
|
48
51
|
readonly BNS: "ST000000000000000000002AMW42H.bns";
|
|
49
52
|
readonly POX_4: "ST000000000000000000002AMW42H.pox-4";
|
|
53
|
+
readonly IDENTITY_REGISTRY: "ST3YT0XW92E6T2FE59B2G5N2WNNFSBZ6MZKQS5D18.identity-registry-v2";
|
|
54
|
+
readonly REPUTATION_REGISTRY: "ST3YT0XW92E6T2FE59B2G5N2WNNFSBZ6MZKQS5D18.reputation-registry-v2";
|
|
55
|
+
readonly VALIDATION_REGISTRY: "ST3YT0XW92E6T2FE59B2G5N2WNNFSBZ6MZKQS5D18.validation-registry-v2";
|
|
50
56
|
};
|
|
51
57
|
/**
|
|
52
58
|
* Get contract addresses for the specified network
|
|
@@ -67,6 +73,9 @@ export declare function getContracts(network: Network): {
|
|
|
67
73
|
readonly ZEST_FEES_CALCULATOR: "SM3VDXK3WZZSA84XXFKAFAF15NNZX32CTSG82JFQ4.fees-calculator";
|
|
68
74
|
readonly ZEST_INCENTIVES: "SP2VCQJGH7PHP2DJK7Z0V48AGBHQAW3R3ZW1QF4N.incentives-v2-2";
|
|
69
75
|
readonly ZEST_WSTX: "SP2VCQJGH7PHP2DJK7Z0V48AGBHQAW3R3ZW1QF4N.wstx";
|
|
76
|
+
readonly IDENTITY_REGISTRY: "SP1NMR7MY0TJ1QA7WQBZ6504KC79PZNTRQH4YGFJD.identity-registry-v2";
|
|
77
|
+
readonly REPUTATION_REGISTRY: "SP1NMR7MY0TJ1QA7WQBZ6504KC79PZNTRQH4YGFJD.reputation-registry-v2";
|
|
78
|
+
readonly VALIDATION_REGISTRY: "SP1NMR7MY0TJ1QA7WQBZ6504KC79PZNTRQH4YGFJD.validation-registry-v2";
|
|
70
79
|
} | {
|
|
71
80
|
readonly SBTC_TOKEN: "ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM.sbtc-token";
|
|
72
81
|
readonly SBTC_DEPOSIT: "ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM.sbtc-deposit";
|
|
@@ -74,6 +83,9 @@ export declare function getContracts(network: Network): {
|
|
|
74
83
|
readonly USDCX: "ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM.usdcx";
|
|
75
84
|
readonly BNS: "ST000000000000000000002AMW42H.bns";
|
|
76
85
|
readonly POX_4: "ST000000000000000000002AMW42H.pox-4";
|
|
86
|
+
readonly IDENTITY_REGISTRY: "ST3YT0XW92E6T2FE59B2G5N2WNNFSBZ6MZKQS5D18.identity-registry-v2";
|
|
87
|
+
readonly REPUTATION_REGISTRY: "ST3YT0XW92E6T2FE59B2G5N2WNNFSBZ6MZKQS5D18.reputation-registry-v2";
|
|
88
|
+
readonly VALIDATION_REGISTRY: "ST3YT0XW92E6T2FE59B2G5N2WNNFSBZ6MZKQS5D18.validation-registry-v2";
|
|
77
89
|
};
|
|
78
90
|
/**
|
|
79
91
|
* Parse a contract identifier into address and name
|
|
@@ -175,4 +187,12 @@ export declare function getBitflowContracts(network: Network): {
|
|
|
175
187
|
* Bitflow public API base URL (no API key required)
|
|
176
188
|
*/
|
|
177
189
|
export declare const BITFLOW_PUBLIC_API = "https://bitflow-sdk-api-gateway-7owjsmt8.uc.gateway.dev";
|
|
190
|
+
/**
|
|
191
|
+
* Get ERC-8004 contract addresses for the network
|
|
192
|
+
*/
|
|
193
|
+
export declare function getErc8004Contracts(network: Network): {
|
|
194
|
+
identityRegistry: "SP1NMR7MY0TJ1QA7WQBZ6504KC79PZNTRQH4YGFJD.identity-registry-v2" | "ST3YT0XW92E6T2FE59B2G5N2WNNFSBZ6MZKQS5D18.identity-registry-v2";
|
|
195
|
+
reputationRegistry: "SP1NMR7MY0TJ1QA7WQBZ6504KC79PZNTRQH4YGFJD.reputation-registry-v2" | "ST3YT0XW92E6T2FE59B2G5N2WNNFSBZ6MZKQS5D18.reputation-registry-v2";
|
|
196
|
+
validationRegistry: "SP1NMR7MY0TJ1QA7WQBZ6504KC79PZNTRQH4YGFJD.validation-registry-v2" | "ST3YT0XW92E6T2FE59B2G5N2WNNFSBZ6MZKQS5D18.validation-registry-v2";
|
|
197
|
+
};
|
|
178
198
|
//# sourceMappingURL=contracts.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../src/config/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC;;GAEG;AACH,eAAO,MAAM,iBAAiB
|
|
1
|
+
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../src/config/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;CAgCpB,CAAC;AAEX;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAiFvD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,eAAe,EAW7C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;CAmBpB,CAAC;AAEX;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAE5C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAMrF;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;CAapB,CAAC;AAEX;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO;;SAQhD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO;;;;;;;SAahD;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO;;;;;;;;;;EAElD;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;CAWpB,CAAC;AAEX;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,GAAG,IAAI,CAiBvD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO;;;;;;EAEnD;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,4DAA4D,CAAC;AAE5F;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO;;;;EAOnD"}
|
package/dist/config/contracts.js
CHANGED
|
@@ -23,6 +23,10 @@ export const MAINNET_CONTRACTS = {
|
|
|
23
23
|
ZEST_FEES_CALCULATOR: "SM3VDXK3WZZSA84XXFKAFAF15NNZX32CTSG82JFQ4.fees-calculator",
|
|
24
24
|
ZEST_INCENTIVES: "SP2VCQJGH7PHP2DJK7Z0V48AGBHQAW3R3ZW1QF4N.incentives-v2-2",
|
|
25
25
|
ZEST_WSTX: "SP2VCQJGH7PHP2DJK7Z0V48AGBHQAW3R3ZW1QF4N.wstx",
|
|
26
|
+
// ERC-8004 Identity & Reputation
|
|
27
|
+
IDENTITY_REGISTRY: "SP1NMR7MY0TJ1QA7WQBZ6504KC79PZNTRQH4YGFJD.identity-registry-v2",
|
|
28
|
+
REPUTATION_REGISTRY: "SP1NMR7MY0TJ1QA7WQBZ6504KC79PZNTRQH4YGFJD.reputation-registry-v2",
|
|
29
|
+
VALIDATION_REGISTRY: "SP1NMR7MY0TJ1QA7WQBZ6504KC79PZNTRQH4YGFJD.validation-registry-v2",
|
|
26
30
|
};
|
|
27
31
|
export const ZEST_ASSETS = {
|
|
28
32
|
sBTC: {
|
|
@@ -136,6 +140,10 @@ export const TESTNET_CONTRACTS = {
|
|
|
136
140
|
BNS: "ST000000000000000000002AMW42H.bns",
|
|
137
141
|
// Stacking
|
|
138
142
|
POX_4: "ST000000000000000000002AMW42H.pox-4",
|
|
143
|
+
// ERC-8004 Identity & Reputation
|
|
144
|
+
IDENTITY_REGISTRY: "ST3YT0XW92E6T2FE59B2G5N2WNNFSBZ6MZKQS5D18.identity-registry-v2",
|
|
145
|
+
REPUTATION_REGISTRY: "ST3YT0XW92E6T2FE59B2G5N2WNNFSBZ6MZKQS5D18.reputation-registry-v2",
|
|
146
|
+
VALIDATION_REGISTRY: "ST3YT0XW92E6T2FE59B2G5N2WNNFSBZ6MZKQS5D18.validation-registry-v2",
|
|
139
147
|
};
|
|
140
148
|
/**
|
|
141
149
|
* Get contract addresses for the specified network
|
|
@@ -253,4 +261,15 @@ export function getBitflowContracts(network) {
|
|
|
253
261
|
* Bitflow public API base URL (no API key required)
|
|
254
262
|
*/
|
|
255
263
|
export const BITFLOW_PUBLIC_API = "https://bitflow-sdk-api-gateway-7owjsmt8.uc.gateway.dev";
|
|
264
|
+
/**
|
|
265
|
+
* Get ERC-8004 contract addresses for the network
|
|
266
|
+
*/
|
|
267
|
+
export function getErc8004Contracts(network) {
|
|
268
|
+
const contracts = network === "mainnet" ? MAINNET_CONTRACTS : TESTNET_CONTRACTS;
|
|
269
|
+
return {
|
|
270
|
+
identityRegistry: contracts.IDENTITY_REGISTRY,
|
|
271
|
+
reputationRegistry: contracts.REPUTATION_REGISTRY,
|
|
272
|
+
validationRegistry: contracts.VALIDATION_REGISTRY,
|
|
273
|
+
};
|
|
274
|
+
}
|
|
256
275
|
//# sourceMappingURL=contracts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../src/config/contracts.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,OAAO;IACP,UAAU,EAAE,sDAAsD;IAClE,YAAY,EAAE,wDAAwD;IACtE,aAAa,EAAE,yDAAyD;IAExE,cAAc;IACd,KAAK,EAAE,iDAAiD;IAExD,MAAM;IACN,GAAG,EAAE,mCAAmC;IAExC,WAAW;IACX,KAAK,EAAE,qCAAqC;IAE5C,gFAAgF;IAChF,aAAa,EAAE,8DAA8D;IAC7E,UAAU,EAAE,sDAAsD;IAClE,SAAS,EAAE,yDAAyD;IAEpE,gBAAgB;IAChB,gBAAgB,EAAE,2DAA2D;IAC7E,kBAAkB,EAAE,+DAA+D;IACnF,iBAAiB,EAAE,8DAA8D;IACjF,oBAAoB,EAAE,2DAA2D;IACjF,eAAe,EAAE,0DAA0D;IAC3E,SAAS,EAAE,+CAA+C;
|
|
1
|
+
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../src/config/contracts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ERC-8004 Service
|
|
3
|
+
*
|
|
4
|
+
* Service for interacting with ERC-8004 identity, reputation, and validation contracts.
|
|
5
|
+
* Deployed on mainnet and testnet with identical interfaces.
|
|
6
|
+
*/
|
|
7
|
+
import { type Network } from "../config/index.js";
|
|
8
|
+
import { type Account, type TransferResult } from "../transactions/builder.js";
|
|
9
|
+
export interface IdentityInfo {
|
|
10
|
+
agentId: number;
|
|
11
|
+
owner: string;
|
|
12
|
+
uri: string;
|
|
13
|
+
wallet?: string;
|
|
14
|
+
}
|
|
15
|
+
export interface ReputationSummary {
|
|
16
|
+
agentId: number;
|
|
17
|
+
averageRatingWad: string;
|
|
18
|
+
totalFeedback: number;
|
|
19
|
+
sumWadValue: string;
|
|
20
|
+
}
|
|
21
|
+
export interface FeedbackEntry {
|
|
22
|
+
client: string;
|
|
23
|
+
value: number;
|
|
24
|
+
valueDecimals: number;
|
|
25
|
+
wadValue: string;
|
|
26
|
+
tag1: string;
|
|
27
|
+
tag2: string;
|
|
28
|
+
timestamp: number;
|
|
29
|
+
}
|
|
30
|
+
export interface ValidationStatus {
|
|
31
|
+
validator: string;
|
|
32
|
+
agentId: number;
|
|
33
|
+
response: number;
|
|
34
|
+
responseHash: string;
|
|
35
|
+
tag: string;
|
|
36
|
+
lastUpdate: number;
|
|
37
|
+
hasResponse: boolean;
|
|
38
|
+
}
|
|
39
|
+
export interface ValidationSummary {
|
|
40
|
+
count: number;
|
|
41
|
+
avgResponse: number;
|
|
42
|
+
}
|
|
43
|
+
export declare class Erc8004Service {
|
|
44
|
+
private network;
|
|
45
|
+
private hiro;
|
|
46
|
+
private contracts;
|
|
47
|
+
constructor(network: Network);
|
|
48
|
+
/**
|
|
49
|
+
* Register a new agent identity
|
|
50
|
+
*/
|
|
51
|
+
registerIdentity(account: Account, uri?: string, metadata?: Array<{
|
|
52
|
+
key: string;
|
|
53
|
+
value: Buffer;
|
|
54
|
+
}>, fee?: bigint): Promise<TransferResult>;
|
|
55
|
+
/**
|
|
56
|
+
* Get agent identity information
|
|
57
|
+
*/
|
|
58
|
+
getIdentity(agentId: number, callerAddress: string): Promise<IdentityInfo | null>;
|
|
59
|
+
/**
|
|
60
|
+
* Update identity URI
|
|
61
|
+
*/
|
|
62
|
+
updateIdentityUri(account: Account, agentId: number, newUri: string, fee?: bigint): Promise<TransferResult>;
|
|
63
|
+
/**
|
|
64
|
+
* Give feedback for an agent
|
|
65
|
+
*/
|
|
66
|
+
giveFeedback(account: Account, agentId: number, value: number, valueDecimals: number, tag1?: string, tag2?: string, endpoint?: string, feedbackUri?: string, feedbackHash?: Buffer, fee?: bigint): Promise<TransferResult>;
|
|
67
|
+
/**
|
|
68
|
+
* Get aggregated reputation for an agent
|
|
69
|
+
*/
|
|
70
|
+
getReputation(agentId: number, callerAddress: string): Promise<ReputationSummary>;
|
|
71
|
+
/**
|
|
72
|
+
* Get total feedback count for an agent
|
|
73
|
+
*/
|
|
74
|
+
getFeedbackCount(agentId: number, callerAddress: string): Promise<number>;
|
|
75
|
+
/**
|
|
76
|
+
* Get specific feedback entry by index
|
|
77
|
+
*/
|
|
78
|
+
getFeedback(agentId: number, index: number, callerAddress: string): Promise<FeedbackEntry | null>;
|
|
79
|
+
/**
|
|
80
|
+
* Request validation from a validator
|
|
81
|
+
*/
|
|
82
|
+
requestValidation(account: Account, validator: string, agentId: number, requestUri: string, requestHash: Buffer, fee?: bigint): Promise<TransferResult>;
|
|
83
|
+
/**
|
|
84
|
+
* Get validation status for a request
|
|
85
|
+
*/
|
|
86
|
+
getValidationStatus(requestHash: Buffer, callerAddress: string): Promise<ValidationStatus | null>;
|
|
87
|
+
/**
|
|
88
|
+
* Get validation summary for an agent
|
|
89
|
+
*/
|
|
90
|
+
getValidationSummary(agentId: number, callerAddress: string): Promise<ValidationSummary>;
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=erc8004.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"erc8004.service.d.ts","sourceRoot":"","sources":["../../src/services/erc8004.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ERC-8004 Service
|
|
3
|
+
*
|
|
4
|
+
* Service for interacting with ERC-8004 identity, reputation, and validation contracts.
|
|
5
|
+
* Deployed on mainnet and testnet with identical interfaces.
|
|
6
|
+
*/
|
|
7
|
+
import { uintCV, stringUtf8CV, bufferCV, principalCV, listCV, tupleCV, cvToJSON, hexToCV, } from "@stacks/transactions";
|
|
8
|
+
import { getHiroApi } from "./hiro-api.js";
|
|
9
|
+
import { getErc8004Contracts, parseContractId } from "../config/index.js";
|
|
10
|
+
import { callContract } from "../transactions/builder.js";
|
|
11
|
+
// ============================================================================
|
|
12
|
+
// ERC8004 Service
|
|
13
|
+
// ============================================================================
|
|
14
|
+
export class Erc8004Service {
|
|
15
|
+
network;
|
|
16
|
+
hiro;
|
|
17
|
+
contracts;
|
|
18
|
+
constructor(network) {
|
|
19
|
+
this.network = network;
|
|
20
|
+
this.hiro = getHiroApi(network);
|
|
21
|
+
this.contracts = getErc8004Contracts(network);
|
|
22
|
+
}
|
|
23
|
+
// ==========================================================================
|
|
24
|
+
// Identity Registry
|
|
25
|
+
// ==========================================================================
|
|
26
|
+
/**
|
|
27
|
+
* Register a new agent identity
|
|
28
|
+
*/
|
|
29
|
+
async registerIdentity(account, uri, metadata, fee) {
|
|
30
|
+
const { address, name } = parseContractId(this.contracts.identityRegistry);
|
|
31
|
+
let functionName;
|
|
32
|
+
let functionArgs;
|
|
33
|
+
if (metadata && metadata.length > 0) {
|
|
34
|
+
// Use register-full with metadata
|
|
35
|
+
functionName = "register-full";
|
|
36
|
+
functionArgs = [
|
|
37
|
+
stringUtf8CV(uri || ""),
|
|
38
|
+
listCV(metadata.map((m) => tupleCV({
|
|
39
|
+
key: stringUtf8CV(m.key),
|
|
40
|
+
value: bufferCV(m.value),
|
|
41
|
+
}))),
|
|
42
|
+
];
|
|
43
|
+
}
|
|
44
|
+
else if (uri) {
|
|
45
|
+
// Use register-with-uri
|
|
46
|
+
functionName = "register-with-uri";
|
|
47
|
+
functionArgs = [stringUtf8CV(uri)];
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
// Use basic register
|
|
51
|
+
functionName = "register";
|
|
52
|
+
functionArgs = [];
|
|
53
|
+
}
|
|
54
|
+
return callContract(account, {
|
|
55
|
+
contractAddress: address,
|
|
56
|
+
contractName: name,
|
|
57
|
+
functionName,
|
|
58
|
+
functionArgs,
|
|
59
|
+
fee,
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Get agent identity information
|
|
64
|
+
*/
|
|
65
|
+
async getIdentity(agentId, callerAddress) {
|
|
66
|
+
// Get owner
|
|
67
|
+
const ownerResult = await this.hiro.callReadOnlyFunction(this.contracts.identityRegistry, "owner-of", [uintCV(agentId)], callerAddress);
|
|
68
|
+
if (!ownerResult.okay || !ownerResult.result) {
|
|
69
|
+
throw new Error(`Failed to read identity for agent ${agentId}: ${ownerResult.cause || "read-only call failed"}`);
|
|
70
|
+
}
|
|
71
|
+
const ownerData = cvToJSON(hexToCV(ownerResult.result));
|
|
72
|
+
if (!ownerData.success || ownerData.value.value === null) {
|
|
73
|
+
return null; // Contract returned (none) — agent not found
|
|
74
|
+
}
|
|
75
|
+
const owner = ownerData.value.value.value;
|
|
76
|
+
// Get URI
|
|
77
|
+
const uriResult = await this.hiro.callReadOnlyFunction(this.contracts.identityRegistry, "get-uri", [uintCV(agentId)], callerAddress);
|
|
78
|
+
let uri = "";
|
|
79
|
+
if (uriResult.okay && uriResult.result) {
|
|
80
|
+
const uriData = cvToJSON(hexToCV(uriResult.result));
|
|
81
|
+
if (uriData.success && uriData.value.value !== null) {
|
|
82
|
+
uri = uriData.value.value.value;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
// Get agent wallet
|
|
86
|
+
const walletResult = await this.hiro.callReadOnlyFunction(this.contracts.identityRegistry, "get-agent-wallet", [uintCV(agentId)], callerAddress);
|
|
87
|
+
let wallet;
|
|
88
|
+
if (walletResult.okay && walletResult.result) {
|
|
89
|
+
const walletData = cvToJSON(hexToCV(walletResult.result));
|
|
90
|
+
if (walletData.success && walletData.value.value !== null) {
|
|
91
|
+
wallet = walletData.value.value.value;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return {
|
|
95
|
+
agentId,
|
|
96
|
+
owner,
|
|
97
|
+
uri,
|
|
98
|
+
wallet,
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Update identity URI
|
|
103
|
+
*/
|
|
104
|
+
async updateIdentityUri(account, agentId, newUri, fee) {
|
|
105
|
+
const { address, name } = parseContractId(this.contracts.identityRegistry);
|
|
106
|
+
return callContract(account, {
|
|
107
|
+
contractAddress: address,
|
|
108
|
+
contractName: name,
|
|
109
|
+
functionName: "set-agent-uri",
|
|
110
|
+
functionArgs: [uintCV(agentId), stringUtf8CV(newUri)],
|
|
111
|
+
fee,
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
// ==========================================================================
|
|
115
|
+
// Reputation Registry
|
|
116
|
+
// ==========================================================================
|
|
117
|
+
/**
|
|
118
|
+
* Give feedback for an agent
|
|
119
|
+
*/
|
|
120
|
+
async giveFeedback(account, agentId, value, valueDecimals, tag1, tag2, endpoint, feedbackUri, feedbackHash, fee) {
|
|
121
|
+
const { address, name } = parseContractId(this.contracts.reputationRegistry);
|
|
122
|
+
return callContract(account, {
|
|
123
|
+
contractAddress: address,
|
|
124
|
+
contractName: name,
|
|
125
|
+
functionName: "give-feedback",
|
|
126
|
+
functionArgs: [
|
|
127
|
+
uintCV(agentId),
|
|
128
|
+
uintCV(value),
|
|
129
|
+
uintCV(valueDecimals),
|
|
130
|
+
stringUtf8CV(tag1 || ""),
|
|
131
|
+
stringUtf8CV(tag2 || ""),
|
|
132
|
+
stringUtf8CV(endpoint || ""),
|
|
133
|
+
stringUtf8CV(feedbackUri || ""),
|
|
134
|
+
bufferCV(feedbackHash || Buffer.alloc(32)),
|
|
135
|
+
],
|
|
136
|
+
fee,
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Get aggregated reputation for an agent
|
|
141
|
+
*/
|
|
142
|
+
async getReputation(agentId, callerAddress) {
|
|
143
|
+
const result = await this.hiro.callReadOnlyFunction(this.contracts.reputationRegistry, "get-agent-reputation", [uintCV(agentId)], callerAddress);
|
|
144
|
+
if (!result.okay || !result.result) {
|
|
145
|
+
throw new Error(`Failed to read reputation for agent ${agentId}: ${result.cause || "unknown error"}`);
|
|
146
|
+
}
|
|
147
|
+
const data = cvToJSON(hexToCV(result.result));
|
|
148
|
+
if (!data.success) {
|
|
149
|
+
throw new Error(`Failed to parse reputation response for agent ${agentId}`);
|
|
150
|
+
}
|
|
151
|
+
const rep = data.value.value;
|
|
152
|
+
return {
|
|
153
|
+
agentId,
|
|
154
|
+
averageRatingWad: rep["avg-rating"].value,
|
|
155
|
+
totalFeedback: parseInt(rep.count.value, 10),
|
|
156
|
+
sumWadValue: rep["sum-wad-value"].value,
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Get total feedback count for an agent
|
|
161
|
+
*/
|
|
162
|
+
async getFeedbackCount(agentId, callerAddress) {
|
|
163
|
+
const result = await this.hiro.callReadOnlyFunction(this.contracts.reputationRegistry, "get-agent-feedback-count", [uintCV(agentId)], callerAddress);
|
|
164
|
+
if (!result.okay || !result.result) {
|
|
165
|
+
return 0;
|
|
166
|
+
}
|
|
167
|
+
const data = cvToJSON(hexToCV(result.result));
|
|
168
|
+
if (!data.success) {
|
|
169
|
+
return 0;
|
|
170
|
+
}
|
|
171
|
+
return parseInt(data.value.value, 10);
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Get specific feedback entry by index
|
|
175
|
+
*/
|
|
176
|
+
async getFeedback(agentId, index, callerAddress) {
|
|
177
|
+
const result = await this.hiro.callReadOnlyFunction(this.contracts.reputationRegistry, "get-feedback-at-index", [uintCV(agentId), uintCV(index)], callerAddress);
|
|
178
|
+
if (!result.okay || !result.result) {
|
|
179
|
+
return null;
|
|
180
|
+
}
|
|
181
|
+
const data = cvToJSON(hexToCV(result.result));
|
|
182
|
+
if (!data.success || data.value.value === null) {
|
|
183
|
+
return null;
|
|
184
|
+
}
|
|
185
|
+
const fb = data.value.value.value;
|
|
186
|
+
return {
|
|
187
|
+
client: fb.client.value,
|
|
188
|
+
value: parseInt(fb.value.value, 10),
|
|
189
|
+
valueDecimals: parseInt(fb["value-decimals"].value, 10),
|
|
190
|
+
wadValue: fb["wad-value"].value,
|
|
191
|
+
tag1: fb.tag1.value,
|
|
192
|
+
tag2: fb.tag2.value,
|
|
193
|
+
timestamp: parseInt(fb.timestamp.value, 10),
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
// ==========================================================================
|
|
197
|
+
// Validation Registry
|
|
198
|
+
// ==========================================================================
|
|
199
|
+
/**
|
|
200
|
+
* Request validation from a validator
|
|
201
|
+
*/
|
|
202
|
+
async requestValidation(account, validator, agentId, requestUri, requestHash, fee) {
|
|
203
|
+
const { address, name } = parseContractId(this.contracts.validationRegistry);
|
|
204
|
+
return callContract(account, {
|
|
205
|
+
contractAddress: address,
|
|
206
|
+
contractName: name,
|
|
207
|
+
functionName: "validation-request",
|
|
208
|
+
functionArgs: [
|
|
209
|
+
principalCV(validator),
|
|
210
|
+
uintCV(agentId),
|
|
211
|
+
stringUtf8CV(requestUri),
|
|
212
|
+
bufferCV(requestHash),
|
|
213
|
+
],
|
|
214
|
+
fee,
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Get validation status for a request
|
|
219
|
+
*/
|
|
220
|
+
async getValidationStatus(requestHash, callerAddress) {
|
|
221
|
+
const result = await this.hiro.callReadOnlyFunction(this.contracts.validationRegistry, "get-validation-status", [bufferCV(requestHash)], callerAddress);
|
|
222
|
+
if (!result.okay || !result.result) {
|
|
223
|
+
return null;
|
|
224
|
+
}
|
|
225
|
+
const data = cvToJSON(hexToCV(result.result));
|
|
226
|
+
if (!data.success || data.value.value === null) {
|
|
227
|
+
return null;
|
|
228
|
+
}
|
|
229
|
+
const vs = data.value.value.value;
|
|
230
|
+
return {
|
|
231
|
+
validator: vs.validator.value,
|
|
232
|
+
agentId: parseInt(vs["agent-id"].value, 10),
|
|
233
|
+
response: parseInt(vs.response.value, 10),
|
|
234
|
+
responseHash: vs["response-hash"].value,
|
|
235
|
+
tag: vs.tag.value,
|
|
236
|
+
lastUpdate: parseInt(vs["last-update"].value, 10),
|
|
237
|
+
hasResponse: vs["has-response"].value,
|
|
238
|
+
};
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Get validation summary for an agent
|
|
242
|
+
*/
|
|
243
|
+
async getValidationSummary(agentId, callerAddress) {
|
|
244
|
+
const result = await this.hiro.callReadOnlyFunction(this.contracts.validationRegistry, "get-summary", [uintCV(agentId)], callerAddress);
|
|
245
|
+
if (!result.okay || !result.result) {
|
|
246
|
+
throw new Error(`Failed to read validation summary for agent ${agentId}: ${result.cause || "read-only call failed"}`);
|
|
247
|
+
}
|
|
248
|
+
const data = cvToJSON(hexToCV(result.result));
|
|
249
|
+
if (!data.success) {
|
|
250
|
+
throw new Error(`Failed to parse validation summary for agent ${agentId}`);
|
|
251
|
+
}
|
|
252
|
+
const summary = data.value.value;
|
|
253
|
+
return {
|
|
254
|
+
count: parseInt(summary.count.value, 10),
|
|
255
|
+
avgResponse: parseInt(summary["avg-response"].value, 10),
|
|
256
|
+
};
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
//# sourceMappingURL=erc8004.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"erc8004.service.js","sourceRoot":"","sources":["../../src/services/erc8004.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ERC-8004 Identity and Reputation Tools
|
|
3
|
+
*
|
|
4
|
+
* These tools provide on-chain agent identity and reputation management:
|
|
5
|
+
*
|
|
6
|
+
* Identity Tools:
|
|
7
|
+
* - register_identity: Register new agent identity on-chain
|
|
8
|
+
* - get_identity: Get agent identity info (owner, URI, wallet)
|
|
9
|
+
*
|
|
10
|
+
* Reputation Tools:
|
|
11
|
+
* - give_feedback: Submit feedback for an agent
|
|
12
|
+
* - get_reputation: Get aggregated reputation score
|
|
13
|
+
*
|
|
14
|
+
* Validation Tools:
|
|
15
|
+
* - request_validation: Request third-party validation
|
|
16
|
+
* - get_validation_status: Check validation request status
|
|
17
|
+
* - get_validation_summary: Get validation summary for agent
|
|
18
|
+
*/
|
|
19
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
20
|
+
export declare function registerErc8004Tools(server: McpServer): void;
|
|
21
|
+
//# sourceMappingURL=erc8004.tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"erc8004.tools.d.ts","sourceRoot":"","sources":["../../src/tools/erc8004.tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAsCpE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAsX5D"}
|