@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 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
- - **60+ Tools** - Bitcoin L1 + comprehensive Stacks L2 operations
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 (50+ total)
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 # Bitcoin L1 core workflows
451
+ ├── SKILL.md # Bitcoin L1 core workflows
408
452
  └── references/
409
- ├── pillar-wallet.md # Pillar smart wallet guide
410
- ├── stacks-defi.md # Stacks L2 / DeFi operations
411
- └── troubleshooting.md # Common issues and solutions
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;;;;;;;;;;;;;;;;CA2BpB,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;;;;;;;CAcpB,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"}
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"}
@@ -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":"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"}
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":"AAAA;;;;;GAKG;AAcH,OAAO,EAAwC,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACxF,OAAO,EAAgB,KAAK,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAM7F,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAMD,qBAAa,cAAc;IAIb,OAAO,CAAC,OAAO;IAH3B,OAAO,CAAC,IAAI,CAAiB;IAC7B,OAAO,CAAC,SAAS,CAAyC;gBAEtC,OAAO,EAAE,OAAO;IASpC;;OAEG;IACG,gBAAgB,CACpB,OAAO,EAAE,OAAO,EAChB,GAAG,CAAC,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,EAChD,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,cAAc,CAAC;IAuC1B;;OAEG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IA8DvF;;OAEG;IACG,iBAAiB,CACrB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,cAAc,CAAC;IAgB1B;;OAEG;IACG,YAAY,CAChB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,MAAM,EACrB,IAAI,CAAC,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE,MAAM,EACjB,WAAW,CAAC,EAAE,MAAM,EACpB,YAAY,CAAC,EAAE,MAAM,EACrB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,cAAc,CAAC;IAqB1B;;OAEG;IACG,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA8BvF;;OAEG;IACG,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAoB/E;;OAEG;IACG,WAAW,CACf,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAiChC;;OAEG;IACG,iBAAiB,CACrB,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,cAAc,CAAC;IAiB1B;;OAEG;IACG,mBAAmB,CACvB,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IA6BnC;;OAEG;IACG,oBAAoB,CACxB,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,iBAAiB,CAAC;CA2B9B"}
@@ -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"}