@aibtc/mcp-server 1.26.0 → 1.27.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
- - **120+ Tools** - Bitcoin L1 + comprehensive Stacks L2 operations
13
+ - **150+ 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
@@ -194,7 +194,7 @@ Claude: Done! Transaction broadcast: abc123...
194
194
 
195
195
  Both addresses are derived from the same recovery phrase, making it easy to manage both Layer 1 (Bitcoin) and Layer 2 (Stacks) assets.
196
196
 
197
- ## Available Tools (120+ total)
197
+ ## Available Tools (150+ total)
198
198
 
199
199
  ### Wallet Management
200
200
  | Tool | Description |
@@ -438,11 +438,13 @@ Or use any SIP-010 token by contract ID: `SP2X...::token-name`
438
438
 
439
439
  | Environment Variable | Description | Default |
440
440
  |---------------------|-------------|---------|
441
- | `NETWORK` | `mainnet` or `testnet` | `mainnet` |
441
+ | `NETWORK` | `mainnet` or `testnet` | `mainnet` (installer) / `testnet` (if unset) |
442
442
  | `API_URL` | Default x402 API base URL | `https://x402.biwas.xyz` |
443
443
  | `CLIENT_MNEMONIC` | (Optional) Pre-configured mnemonic | - |
444
444
  | `HIRO_API_KEY` | (Optional) Hiro API key for higher rate limits | - |
445
445
 
446
+ **Note on `NETWORK`:** The `--install` command writes `NETWORK=mainnet` by default (pass `--testnet` to use testnet). If you omit `NETWORK` from your config entirely, the runtime fallback is `testnet`. Most users should set this explicitly.
447
+
446
448
  **Note:** `CLIENT_MNEMONIC` is optional. The recommended approach is to let Claude create its own wallet. `HIRO_API_KEY` is optional but recommended for production use — without it, you may hit Hiro's public rate limits (429 responses). Get a key at [platform.hiro.so](https://platform.hiro.so).
447
449
 
448
450
  ## Architecture
@@ -82,7 +82,7 @@ export function buildCommitTransaction(options) {
82
82
  const revealScriptData = p2tr_ord_reveal(xOnlyPubkey, [inscriptionData]);
83
83
  // Create P2TR output from the reveal script
84
84
  // For script path spending, we use the internal pubkey and the script tree
85
- const p2trReveal = btc.p2tr(xOnlyPubkey, revealScriptData, btcNetwork);
85
+ const p2trReveal = btc.p2tr(xOnlyPubkey, revealScriptData, btcNetwork, true);
86
86
  if (!p2trReveal.address) {
87
87
  throw new Error("Failed to generate reveal address");
88
88
  }
@@ -212,7 +212,7 @@ export function buildRevealTransaction(options) {
212
212
  }
213
213
  // Build the reveal transaction
214
214
  const btcNetwork = getBtcNetwork(network);
215
- const tx = new btc.Transaction();
215
+ const tx = new btc.Transaction({ allowUnknownOutputs: true, allowUnknownInputs: true });
216
216
  // Add input spending from commit transaction
217
217
  // For Taproot script path spending, we need to provide the witness data
218
218
  tx.addInput({
@@ -1 +1 @@
1
- {"version":3,"file":"inscription-builder.js","sourceRoot":"","sources":["../../src/transactions/inscription-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inscription-builder.js","sourceRoot":"","sources":["../../src/transactions/inscription-builder.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aibtc/mcp-server",
3
- "version": "1.26.0",
3
+ "version": "1.27.0",
4
4
  "description": "Bitcoin-native MCP server for AI agents: BTC/STX wallets, DeFi yield, sBTC peg, NFTs, and x402 payments.",
5
5
  "mcpName": "io.github.aibtcdev/mcp-server",
6
6
  "type": "module",
package/skill/SKILL.md CHANGED
@@ -4,7 +4,7 @@ description: Bitcoin L1 wallet for agents - check balances, send BTC, manage UTX
4
4
  license: MIT
5
5
  metadata:
6
6
  author: aibtcdev
7
- version: 1.14.2
7
+ version: 1.27.0 # x-release-please-version
8
8
  npm: "@aibtc/mcp-server"
9
9
  github: https://github.com/aibtcdev/aibtc-mcp-server
10
10
  ---
package/dist/wallet.d.ts DELETED
@@ -1,114 +0,0 @@
1
- import { PostConditionMode, PostCondition, ClarityValue } from "@stacks/transactions";
2
- import { StacksNetworkName } from "@stacks/network";
3
- /**
4
- * @deprecated This module is superseded by modular replacements.
5
- * - mnemonicToAccount → src/services/x402.service.ts
6
- * - transferStx, callContract, deployContract, sign*, broadcast* → src/transactions/builder.ts
7
- * - getAccountInfo, getStxBalance, getTransactionStatus → src/services/hiro-api.ts
8
- * - parseArgToClarityValue → src/transactions/clarity-values.ts
9
- * - Network, getStacksNetwork, getApiBaseUrl → src/config/networks.ts
10
- * This file will be removed in a future version.
11
- */
12
- /** @deprecated Use Network type from src/config/networks.ts */
13
- export type Network = "mainnet" | "testnet";
14
- /** @deprecated Use Account type from src/services/x402.service.ts */
15
- export interface Account {
16
- address: string;
17
- privateKey: string;
18
- network: Network;
19
- }
20
- /** @deprecated Use TransactionResult from src/transactions/builder.ts */
21
- export interface TransferResult {
22
- txid: string;
23
- rawTx: string;
24
- }
25
- /** @deprecated Use ContractCallOptions from src/transactions/builder.ts */
26
- export interface ContractCallOptions {
27
- contractAddress: string;
28
- contractName: string;
29
- functionName: string;
30
- functionArgs: ClarityValue[];
31
- postConditionMode?: PostConditionMode;
32
- postConditions?: PostCondition[];
33
- }
34
- /** @deprecated Use ContractDeployOptions from src/transactions/builder.ts */
35
- export interface ContractDeployOptions {
36
- contractName: string;
37
- codeBody: string;
38
- }
39
- /** @deprecated Use mnemonicToAccount from src/services/x402.service.ts */
40
- export declare function mnemonicToAccount(mnemonic: string, network: Network): Promise<Account>;
41
- /** @deprecated Use getStacksNetwork from src/config/networks.ts */
42
- export declare function getStacksNetwork(network: Network): StacksNetworkName;
43
- /** @deprecated Use getApiBaseUrl from src/config/networks.ts */
44
- export declare function getApiBaseUrl(network: Network): string;
45
- /**
46
- * Get account info including nonce and balance from the Stacks API
47
- * @deprecated Use HiroApiService.getAccountInfo from src/services/hiro-api.ts
48
- */
49
- export declare function getAccountInfo(address: string, network: Network): Promise<{
50
- nonce: number;
51
- balance: string;
52
- }>;
53
- /**
54
- * Get STX balance for an address
55
- * @deprecated Use HiroApiService.getStxBalance from src/services/hiro-api.ts
56
- */
57
- export declare function getStxBalance(address: string, network: Network): Promise<{
58
- stx: string;
59
- stxLocked: string;
60
- }>;
61
- /**
62
- * Transfer STX tokens to a recipient
63
- * @deprecated Use TransactionBuilder.transferStx from src/transactions/builder.ts
64
- */
65
- export declare function transferStx(account: Account, recipient: string, amount: bigint, memo?: string): Promise<TransferResult>;
66
- /**
67
- * Call a smart contract function
68
- * @deprecated Use TransactionBuilder.callContract from src/transactions/builder.ts
69
- */
70
- export declare function callContract(account: Account, options: ContractCallOptions): Promise<TransferResult>;
71
- /**
72
- * Deploy a smart contract
73
- * @deprecated Use TransactionBuilder.deployContract from src/transactions/builder.ts
74
- */
75
- export declare function deployContract(account: Account, options: ContractDeployOptions): Promise<TransferResult>;
76
- /**
77
- * Sign a transaction without broadcasting (for offline signing)
78
- * @deprecated Use TransactionBuilder.signStxTransfer from src/transactions/builder.ts
79
- */
80
- export declare function signStxTransfer(account: Account, recipient: string, amount: bigint, memo?: string): Promise<{
81
- signedTx: string;
82
- txid: string;
83
- }>;
84
- /**
85
- * Sign a contract call without broadcasting
86
- * @deprecated Use TransactionBuilder.signContractCall from src/transactions/builder.ts
87
- */
88
- export declare function signContractCall(account: Account, options: ContractCallOptions): Promise<{
89
- signedTx: string;
90
- txid: string;
91
- }>;
92
- /**
93
- * Broadcast a pre-signed transaction
94
- * @deprecated Use TransactionBuilder.broadcastSignedTransaction from src/transactions/builder.ts
95
- */
96
- export declare function broadcastSignedTransaction(signedTx: string, network: Network): Promise<{
97
- txid: string;
98
- }>;
99
- /**
100
- * Get transaction status
101
- * @deprecated Use HiroApiService.getTransactionStatus from src/services/hiro-api.ts
102
- */
103
- export declare function getTransactionStatus(txid: string, network: Network): Promise<{
104
- status: string;
105
- block_height?: number;
106
- tx_result?: unknown;
107
- }>;
108
- /**
109
- * Parse a JSON argument into a ClarityValue
110
- * Supports: string, number, boolean, principal, buffer, list, tuple, optional
111
- * @deprecated Use parseArgToClarityValue from src/transactions/clarity-values.ts
112
- */
113
- export declare function parseArgToClarityValue(arg: unknown): ClarityValue;
114
- //# sourceMappingURL=wallet.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../src/wallet.ts"],"names":[],"mappings":"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"}
package/dist/wallet.js DELETED
@@ -1,295 +0,0 @@
1
- import { generateWallet, getStxAddress } from "@stacks/wallet-sdk";
2
- import { makeSTXTokenTransfer, makeContractCall, makeContractDeploy, broadcastTransaction, PostConditionMode, stringAsciiCV, stringUtf8CV, intCV, uintCV, boolCV, principalCV, bufferCV, listCV, tupleCV, noneCV, someCV, } from "@stacks/transactions";
3
- import { hexToBytes } from "@stacks/common";
4
- /** @deprecated Use mnemonicToAccount from src/services/x402.service.ts */
5
- export async function mnemonicToAccount(mnemonic, network) {
6
- const wallet = await generateWallet({
7
- secretKey: mnemonic,
8
- password: "",
9
- });
10
- const account = wallet.accounts[0];
11
- const address = getStxAddress(account, network);
12
- return {
13
- address,
14
- privateKey: account.stxPrivateKey,
15
- network,
16
- };
17
- }
18
- /** @deprecated Use getStacksNetwork from src/config/networks.ts */
19
- export function getStacksNetwork(network) {
20
- return network === "mainnet" ? "mainnet" : "testnet";
21
- }
22
- /** @deprecated Use getApiBaseUrl from src/config/networks.ts */
23
- export function getApiBaseUrl(network) {
24
- return network === "mainnet"
25
- ? "https://api.mainnet.hiro.so"
26
- : "https://api.testnet.hiro.so";
27
- }
28
- /**
29
- * Get account info including nonce and balance from the Stacks API
30
- * @deprecated Use HiroApiService.getAccountInfo from src/services/hiro-api.ts
31
- */
32
- export async function getAccountInfo(address, network) {
33
- const baseUrl = getApiBaseUrl(network);
34
- const response = await fetch(`${baseUrl}/v2/accounts/${address}`);
35
- if (!response.ok) {
36
- throw new Error(`Failed to get account info: ${response.statusText}`);
37
- }
38
- const data = await response.json();
39
- return {
40
- nonce: data.nonce,
41
- balance: data.balance,
42
- };
43
- }
44
- /**
45
- * Get STX balance for an address
46
- * @deprecated Use HiroApiService.getStxBalance from src/services/hiro-api.ts
47
- */
48
- export async function getStxBalance(address, network) {
49
- const baseUrl = getApiBaseUrl(network);
50
- const response = await fetch(`${baseUrl}/extended/v1/address/${address}/stx`);
51
- if (!response.ok) {
52
- throw new Error(`Failed to get STX balance: ${response.statusText}`);
53
- }
54
- const data = await response.json();
55
- return {
56
- stx: data.balance,
57
- stxLocked: data.locked,
58
- };
59
- }
60
- /**
61
- * Transfer STX tokens to a recipient
62
- * @deprecated Use TransactionBuilder.transferStx from src/transactions/builder.ts
63
- */
64
- export async function transferStx(account, recipient, amount, memo) {
65
- const networkName = getStacksNetwork(account.network);
66
- const transaction = await makeSTXTokenTransfer({
67
- recipient,
68
- amount,
69
- senderKey: account.privateKey,
70
- network: networkName,
71
- memo: memo || "",
72
- });
73
- const broadcastResponse = await broadcastTransaction({
74
- transaction,
75
- network: networkName,
76
- });
77
- if ("error" in broadcastResponse) {
78
- throw new Error(`Broadcast failed: ${broadcastResponse.error} - ${broadcastResponse.reason}`);
79
- }
80
- return {
81
- txid: broadcastResponse.txid,
82
- rawTx: transaction.serialize(),
83
- };
84
- }
85
- /**
86
- * Call a smart contract function
87
- * @deprecated Use TransactionBuilder.callContract from src/transactions/builder.ts
88
- */
89
- export async function callContract(account, options) {
90
- const networkName = getStacksNetwork(account.network);
91
- const transaction = await makeContractCall({
92
- contractAddress: options.contractAddress,
93
- contractName: options.contractName,
94
- functionName: options.functionName,
95
- functionArgs: options.functionArgs,
96
- senderKey: account.privateKey,
97
- network: networkName,
98
- postConditionMode: options.postConditionMode || PostConditionMode.Deny,
99
- postConditions: options.postConditions || [],
100
- });
101
- const broadcastResponse = await broadcastTransaction({
102
- transaction,
103
- network: networkName,
104
- });
105
- if ("error" in broadcastResponse) {
106
- throw new Error(`Broadcast failed: ${broadcastResponse.error} - ${broadcastResponse.reason}`);
107
- }
108
- return {
109
- txid: broadcastResponse.txid,
110
- rawTx: transaction.serialize(),
111
- };
112
- }
113
- /**
114
- * Deploy a smart contract
115
- * @deprecated Use TransactionBuilder.deployContract from src/transactions/builder.ts
116
- */
117
- export async function deployContract(account, options) {
118
- const networkName = getStacksNetwork(account.network);
119
- const transaction = await makeContractDeploy({
120
- contractName: options.contractName,
121
- codeBody: options.codeBody,
122
- senderKey: account.privateKey,
123
- network: networkName,
124
- });
125
- const broadcastResponse = await broadcastTransaction({
126
- transaction,
127
- network: networkName,
128
- });
129
- if ("error" in broadcastResponse) {
130
- throw new Error(`Broadcast failed: ${broadcastResponse.error} - ${broadcastResponse.reason}`);
131
- }
132
- return {
133
- txid: broadcastResponse.txid,
134
- rawTx: transaction.serialize(),
135
- };
136
- }
137
- /**
138
- * Sign a transaction without broadcasting (for offline signing)
139
- * @deprecated Use TransactionBuilder.signStxTransfer from src/transactions/builder.ts
140
- */
141
- export async function signStxTransfer(account, recipient, amount, memo) {
142
- const networkName = getStacksNetwork(account.network);
143
- const transaction = await makeSTXTokenTransfer({
144
- recipient,
145
- amount,
146
- senderKey: account.privateKey,
147
- network: networkName,
148
- memo: memo || "",
149
- });
150
- return {
151
- signedTx: transaction.serialize(),
152
- txid: transaction.txid(),
153
- };
154
- }
155
- /**
156
- * Sign a contract call without broadcasting
157
- * @deprecated Use TransactionBuilder.signContractCall from src/transactions/builder.ts
158
- */
159
- export async function signContractCall(account, options) {
160
- const networkName = getStacksNetwork(account.network);
161
- const transaction = await makeContractCall({
162
- contractAddress: options.contractAddress,
163
- contractName: options.contractName,
164
- functionName: options.functionName,
165
- functionArgs: options.functionArgs,
166
- senderKey: account.privateKey,
167
- network: networkName,
168
- postConditionMode: options.postConditionMode || PostConditionMode.Deny,
169
- postConditions: options.postConditions || [],
170
- });
171
- return {
172
- signedTx: transaction.serialize(),
173
- txid: transaction.txid(),
174
- };
175
- }
176
- /**
177
- * Broadcast a pre-signed transaction
178
- * @deprecated Use TransactionBuilder.broadcastSignedTransaction from src/transactions/builder.ts
179
- */
180
- export async function broadcastSignedTransaction(signedTx, network) {
181
- const baseUrl = getApiBaseUrl(network);
182
- const txBytes = Buffer.from(hexToBytes(signedTx));
183
- const response = await fetch(`${baseUrl}/v2/transactions`, {
184
- method: "POST",
185
- headers: {
186
- "Content-Type": "application/octet-stream",
187
- },
188
- body: txBytes,
189
- });
190
- if (!response.ok) {
191
- const errorText = await response.text();
192
- throw new Error(`Broadcast failed: ${response.statusText} - ${errorText}`);
193
- }
194
- const txid = await response.text();
195
- return { txid: txid.replace(/"/g, "") };
196
- }
197
- /**
198
- * Get transaction status
199
- * @deprecated Use HiroApiService.getTransactionStatus from src/services/hiro-api.ts
200
- */
201
- export async function getTransactionStatus(txid, network) {
202
- const baseUrl = getApiBaseUrl(network);
203
- const response = await fetch(`${baseUrl}/extended/v1/tx/${txid}`);
204
- if (!response.ok) {
205
- if (response.status === 404) {
206
- return { status: "pending" };
207
- }
208
- throw new Error(`Failed to get transaction status: ${response.statusText}`);
209
- }
210
- const data = await response.json();
211
- return {
212
- status: data.tx_status,
213
- block_height: data.block_height,
214
- tx_result: data.tx_result,
215
- };
216
- }
217
- /**
218
- * Parse a JSON argument into a ClarityValue
219
- * Supports: string, number, boolean, principal, buffer, list, tuple, optional
220
- * @deprecated Use parseArgToClarityValue from src/transactions/clarity-values.ts
221
- */
222
- export function parseArgToClarityValue(arg) {
223
- if (arg === null || arg === undefined) {
224
- return noneCV();
225
- }
226
- if (typeof arg === "boolean") {
227
- return boolCV(arg);
228
- }
229
- if (typeof arg === "number") {
230
- if (Number.isInteger(arg)) {
231
- return arg >= 0 ? uintCV(arg) : intCV(arg);
232
- }
233
- throw new Error("Floating point numbers not supported in Clarity");
234
- }
235
- if (typeof arg === "string") {
236
- // Check if it's a principal (Stacks address pattern)
237
- if (arg.match(/^S[A-Z0-9]{38,}(\.[a-zA-Z][a-zA-Z0-9-]*)?$/)) {
238
- return principalCV(arg);
239
- }
240
- // Default to string-utf8
241
- return stringUtf8CV(arg);
242
- }
243
- if (Buffer.isBuffer(arg) || arg instanceof Uint8Array) {
244
- return bufferCV(arg);
245
- }
246
- if (Array.isArray(arg)) {
247
- return listCV(arg.map(parseArgToClarityValue));
248
- }
249
- if (typeof arg === "object") {
250
- const obj = arg;
251
- // Check for typed values with explicit type field
252
- if ("type" in obj && "value" in obj) {
253
- const typedArg = obj;
254
- switch (typedArg.type) {
255
- case "uint":
256
- return uintCV(BigInt(typedArg.value));
257
- case "int":
258
- return intCV(BigInt(typedArg.value));
259
- case "string-ascii":
260
- return stringAsciiCV(typedArg.value);
261
- case "string-utf8":
262
- return stringUtf8CV(typedArg.value);
263
- case "bool":
264
- return boolCV(typedArg.value);
265
- case "principal":
266
- return principalCV(typedArg.value);
267
- case "buffer":
268
- return bufferCV(Buffer.from(typedArg.value, "hex"));
269
- case "none":
270
- return noneCV();
271
- case "some":
272
- return someCV(parseArgToClarityValue(typedArg.value));
273
- case "list":
274
- return listCV(typedArg.value.map(parseArgToClarityValue));
275
- case "tuple": {
276
- const tupleData = {};
277
- for (const [key, val] of Object.entries(typedArg.value)) {
278
- tupleData[key] = parseArgToClarityValue(val);
279
- }
280
- return tupleCV(tupleData);
281
- }
282
- default:
283
- throw new Error(`Unknown type: ${typedArg.type}`);
284
- }
285
- }
286
- // Treat as tuple
287
- const tupleData = {};
288
- for (const [key, val] of Object.entries(obj)) {
289
- tupleData[key] = parseArgToClarityValue(val);
290
- }
291
- return tupleCV(tupleData);
292
- }
293
- throw new Error(`Cannot convert argument to ClarityValue: ${JSON.stringify(arg)}`);
294
- }
295
- //# sourceMappingURL=wallet.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wallet.js","sourceRoot":"","sources":["../src/wallet.ts"],"names":[],"mappings":"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"}