@aibtc/mcp-server 1.36.1 → 1.37.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/dist/tools/index.d.ts.map +1 -1
  2. package/dist/tools/index.js +15 -0
  3. package/dist/tools/index.js.map +1 -1
  4. package/dist/tools/jingswap.tools.d.ts +3 -0
  5. package/dist/tools/jingswap.tools.d.ts.map +1 -0
  6. package/dist/tools/jingswap.tools.js +471 -0
  7. package/dist/tools/jingswap.tools.js.map +1 -0
  8. package/dist/tools/nostr.tools.d.ts +3 -0
  9. package/dist/tools/nostr.tools.d.ts.map +1 -0
  10. package/dist/tools/nostr.tools.js +409 -0
  11. package/dist/tools/nostr.tools.js.map +1 -0
  12. package/dist/tools/ordinals-p2p.tools.d.ts +21 -0
  13. package/dist/tools/ordinals-p2p.tools.d.ts.map +1 -0
  14. package/dist/tools/ordinals-p2p.tools.js +621 -0
  15. package/dist/tools/ordinals-p2p.tools.js.map +1 -0
  16. package/dist/tools/skill-mappings.d.ts.map +1 -1
  17. package/dist/tools/skill-mappings.js +13 -1
  18. package/dist/tools/skill-mappings.js.map +1 -1
  19. package/dist/tools/stacks-market.tools.d.ts +22 -0
  20. package/dist/tools/stacks-market.tools.d.ts.map +1 -0
  21. package/dist/tools/stacks-market.tools.js +630 -0
  22. package/dist/tools/stacks-market.tools.js.map +1 -0
  23. package/dist/tools/taproot-multisig.tools.d.ts +17 -0
  24. package/dist/tools/taproot-multisig.tools.d.ts.map +1 -0
  25. package/dist/tools/taproot-multisig.tools.js +236 -0
  26. package/dist/tools/taproot-multisig.tools.js.map +1 -0
  27. package/dist/transactions/builder.d.ts +23 -0
  28. package/dist/transactions/builder.d.ts.map +1 -1
  29. package/dist/transactions/builder.js +41 -1
  30. package/dist/transactions/builder.js.map +1 -1
  31. package/package.json +4 -1
  32. package/skill/SKILL.md +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stacks-market.tools.js","sourceRoot":"","sources":["../../src/tools/stacks-market.tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Taproot Multisig Tools
3
+ *
4
+ * MCP tools for Taproot M-of-N multisig coordination between agents.
5
+ *
6
+ * - taproot_get_pubkey: Derive the x-only Taproot public key from the active wallet
7
+ * (BIP-86 path m/86'/0'/0'/0/0). Requires wallet unlock.
8
+ *
9
+ * - taproot_verify_cosig: Verify a Schnorr signature against a BIP-341 sighash.
10
+ * Read-only — no wallet needed.
11
+ *
12
+ * - taproot_multisig_guide: Return a step-by-step guide for M-of-N Taproot multisig
13
+ * coordination using OP_CHECKSIGADD (BIP-341/342). Read-only.
14
+ */
15
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
16
+ export declare function registerTaprootMultisigTools(server: McpServer): void;
17
+ //# sourceMappingURL=taproot-multisig.tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taproot-multisig.tools.d.ts","sourceRoot":"","sources":["../../src/tools/taproot-multisig.tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMpE,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAoQpE"}
@@ -0,0 +1,236 @@
1
+ /**
2
+ * Taproot Multisig Tools
3
+ *
4
+ * MCP tools for Taproot M-of-N multisig coordination between agents.
5
+ *
6
+ * - taproot_get_pubkey: Derive the x-only Taproot public key from the active wallet
7
+ * (BIP-86 path m/86'/0'/0'/0/0). Requires wallet unlock.
8
+ *
9
+ * - taproot_verify_cosig: Verify a Schnorr signature against a BIP-341 sighash.
10
+ * Read-only — no wallet needed.
11
+ *
12
+ * - taproot_multisig_guide: Return a step-by-step guide for M-of-N Taproot multisig
13
+ * coordination using OP_CHECKSIGADD (BIP-341/342). Read-only.
14
+ */
15
+ import { schnorr } from "@noble/curves/secp256k1.js";
16
+ import { z } from "zod";
17
+ import { getWalletManager } from "../services/wallet-manager.js";
18
+ import { createErrorResponse, createJsonResponse } from "../utils/index.js";
19
+ export function registerTaprootMultisigTools(server) {
20
+ // ---------------------------------------------------------------------------
21
+ // taproot_get_pubkey
22
+ // ---------------------------------------------------------------------------
23
+ server.registerTool("taproot_get_pubkey", {
24
+ description: "Derive the x-only Taproot public key (32 bytes hex) from the active wallet using the " +
25
+ "BIP-86 derivation path m/86'/0'/0'/0/0. " +
26
+ "Share this pubkey with co-signers to construct a Taproot multisig script tree. " +
27
+ "Requires the wallet to be unlocked (use wallet_unlock first).",
28
+ inputSchema: {},
29
+ }, async () => {
30
+ try {
31
+ const walletManager = getWalletManager();
32
+ const account = walletManager.getActiveAccount();
33
+ if (!account?.taprootPublicKey) {
34
+ throw new Error("Taproot key not available. Unlock your wallet first with wallet_unlock.");
35
+ }
36
+ if (account.taprootPublicKey.length !== 32) {
37
+ throw new Error(`Unexpected taproot public key length: ${account.taprootPublicKey.length} bytes (expected 32).`);
38
+ }
39
+ const pubkeyHex = Buffer.from(account.taprootPublicKey).toString("hex");
40
+ return createJsonResponse({
41
+ success: true,
42
+ pubkey: pubkeyHex,
43
+ encoding: "x-only (BIP-340, 32 bytes hex)",
44
+ derivationPath: "m/86'/0'/0'/0/0",
45
+ note: "Share this pubkey with co-signers. Use taproot_multisig_guide for coordination steps.",
46
+ });
47
+ }
48
+ catch (error) {
49
+ return createErrorResponse(error);
50
+ }
51
+ });
52
+ // ---------------------------------------------------------------------------
53
+ // taproot_verify_cosig
54
+ // ---------------------------------------------------------------------------
55
+ server.registerTool("taproot_verify_cosig", {
56
+ description: "Verify a Schnorr co-signature against a BIP-341 sighash. " +
57
+ "Use this to confirm that a co-signer's signature is valid before combining and broadcasting. " +
58
+ "Read-only — no wallet unlock required.",
59
+ inputSchema: {
60
+ sighash: z
61
+ .string()
62
+ .length(64)
63
+ .regex(/^[0-9a-fA-F]+$/, "must be valid hex")
64
+ .describe("BIP-341 sighash as 32-byte hex string (64 hex chars). " +
65
+ "This is the transaction commitment that was signed."),
66
+ signature: z
67
+ .string()
68
+ .length(128)
69
+ .regex(/^[0-9a-fA-F]+$/, "must be valid hex")
70
+ .describe("Schnorr signature as 64-byte hex string (128 hex chars, BIP-340 format)."),
71
+ pubkey: z
72
+ .string()
73
+ .length(64)
74
+ .regex(/^[0-9a-fA-F]+$/, "must be valid hex")
75
+ .describe("Signer's x-only public key as 32-byte hex string (64 hex chars). " +
76
+ "Obtain via taproot_get_pubkey from each co-signer."),
77
+ },
78
+ }, async ({ sighash, signature, pubkey }) => {
79
+ try {
80
+ const sighashBytes = Buffer.from(sighash, "hex");
81
+ const signatureBytes = Buffer.from(signature, "hex");
82
+ const pubkeyBytes = Buffer.from(pubkey, "hex");
83
+ if (sighashBytes.length !== 32) {
84
+ throw new Error(`sighash must be exactly 32 bytes (64 hex chars), got ${sighashBytes.length} bytes.`);
85
+ }
86
+ if (signatureBytes.length !== 64) {
87
+ throw new Error(`signature must be exactly 64 bytes (128 hex chars), got ${signatureBytes.length} bytes.`);
88
+ }
89
+ if (pubkeyBytes.length !== 32) {
90
+ throw new Error(`pubkey must be exactly 32 bytes (64 hex chars), got ${pubkeyBytes.length} bytes.`);
91
+ }
92
+ const valid = schnorr.verify(signatureBytes, sighashBytes, pubkeyBytes);
93
+ return createJsonResponse({
94
+ valid,
95
+ sighash,
96
+ signature,
97
+ pubkey,
98
+ message: valid
99
+ ? "Signature is valid. This co-signer's Schnorr signature is authentic."
100
+ : "Signature is INVALID. Do not proceed with this co-signer's input.",
101
+ });
102
+ }
103
+ catch (error) {
104
+ return createErrorResponse(error);
105
+ }
106
+ });
107
+ // ---------------------------------------------------------------------------
108
+ // taproot_multisig_guide
109
+ // ---------------------------------------------------------------------------
110
+ server.registerTool("taproot_multisig_guide", {
111
+ description: "Return a step-by-step guide for M-of-N Taproot multisig coordination between agents " +
112
+ "using OP_CHECKSIGADD (BIP-341/342). Read-only — no wallet needed.",
113
+ inputSchema: {
114
+ m: z
115
+ .number()
116
+ .int()
117
+ .min(1)
118
+ .max(20)
119
+ .optional()
120
+ .default(2)
121
+ .describe("Number of required signatures (default: 2)."),
122
+ n: z
123
+ .number()
124
+ .int()
125
+ .min(1)
126
+ .max(20)
127
+ .optional()
128
+ .default(3)
129
+ .describe("Total number of co-signers (default: 3)."),
130
+ },
131
+ }, async ({ m, n }) => {
132
+ if (m > n) {
133
+ return createErrorResponse(new Error(`Invalid parameters: m (${m}) cannot exceed n (${n}).`));
134
+ }
135
+ const guide = {
136
+ title: `${m}-of-${n} Taproot Multisig Coordination Guide`,
137
+ overview: `Taproot M-of-N multisig uses OP_CHECKSIGADD (BIP-342) inside a Taproot script leaf (BIP-341). ` +
138
+ `Each co-signer holds an independent BIP-86 keypair and signs the same BIP-341 sighash ` +
139
+ `with a Schnorr signature. No interaction is required during signing — co-signers collect ` +
140
+ `each other's signatures and combine them off-chain before broadcast.`,
141
+ steps: [
142
+ {
143
+ step: 1,
144
+ title: "Exchange x-only public keys",
145
+ details: [
146
+ `Each of the ${n} co-signers calls taproot_get_pubkey to obtain their x-only BIP-86 pubkey (32 bytes).`,
147
+ "Share pubkeys out-of-band (e.g. via the AIBTC inbox or a shared coordination channel).",
148
+ "Agree on a canonical ordering of the pubkeys (e.g. lexicographic ascending). This order must be consistent across all participants.",
149
+ ],
150
+ bip: "BIP-86 (key derivation), BIP-340 (x-only pubkey encoding)",
151
+ },
152
+ {
153
+ step: 2,
154
+ title: "Construct the Taproot script leaf with OP_CHECKSIGADD",
155
+ details: [
156
+ `Assemble the ${m}-of-${n} script using the agreed pubkey order:`,
157
+ ` <pubkey_1> OP_CHECKSIG <pubkey_2> OP_CHECKSIGADD ... <pubkey_${n}> OP_CHECKSIGADD OP_${m} OP_NUMEQUAL`,
158
+ "Compute the TapLeaf hash: SHA256(0xC0 || compact_size(script_len) || script).",
159
+ "Build the Taproot output key: internalKey = KeyAgg(pubkeys) tweaked by TapTweak.",
160
+ "The final P2TR address is: OP_1 <32-byte_output_key>.",
161
+ "All co-signers must independently verify they compute the same P2TR address before funding.",
162
+ ],
163
+ bip: "BIP-341 (Taproot output construction), BIP-342 (Tapscript OP_CHECKSIGADD)",
164
+ },
165
+ {
166
+ step: 3,
167
+ title: "Create the PSBT",
168
+ details: [
169
+ "One co-signer (the initiator) constructs the unsigned PSBT encoding the spending transaction.",
170
+ "The PSBT input must include: witnessUtxo (the P2TR output being spent), tapLeafScript (the multisig leaf), and tapBip32Derivation for each signer.",
171
+ "Compute the BIP-341 sighash (SIGHASH_DEFAULT = 0x00) over the PSBT using the script-path spending rules.",
172
+ "Distribute the PSBT and the sighash hex to all co-signers.",
173
+ ],
174
+ bip: "BIP-174 (PSBT), BIP-341 §Common signature message",
175
+ },
176
+ {
177
+ step: 4,
178
+ title: "Sign independently with Schnorr",
179
+ details: [
180
+ "Each co-signer receives the PSBT and signs the BIP-341 sighash with their BIP-86 Taproot private key.",
181
+ "Use psbt_sign (or use raw sighash signing when available) to produce a 64-byte BIP-340 Schnorr signature.",
182
+ `Only ${m} of the ${n} co-signers need to sign — but all ${n} must verify.`,
183
+ "Each signer returns their (pubkey, signature) pair to the combiner.",
184
+ ],
185
+ bip: "BIP-340 (Schnorr signatures), BIP-342 (script-path spending)",
186
+ },
187
+ {
188
+ step: 5,
189
+ title: "Verify co-signatures with taproot_verify_cosig",
190
+ details: [
191
+ "The combiner calls taproot_verify_cosig for each received (sighash, signature, pubkey) tuple.",
192
+ `Collect at least ${m} valid signatures before proceeding.`,
193
+ "Reject any signature that returns valid: false.",
194
+ "This step ensures no invalid or malformed signatures enter the final PSBT.",
195
+ ],
196
+ tool: "taproot_verify_cosig",
197
+ },
198
+ {
199
+ step: 6,
200
+ title: "Combine signatures and broadcast",
201
+ details: [
202
+ `Insert the ${m} valid Schnorr signatures into the PSBT as tapScriptSig entries (one per signer).`,
203
+ "The witness stack for OP_CHECKSIGADD script-path spending is: [sig_1, sig_2, ..., sig_m, script, control_block].",
204
+ "Absent signers (in an M < N setup) provide an empty stack item (0x00) as placeholder.",
205
+ "Finalize the PSBT (psbt_broadcast or psbt_sign with finalizeSignedInputs: true).",
206
+ "Broadcast the finalized transaction to the Bitcoin network.",
207
+ ],
208
+ bip: "BIP-341 §Script path spending, BIP-342 §Validation",
209
+ tool: "psbt_broadcast",
210
+ },
211
+ ],
212
+ securityNotes: [
213
+ "Never share your private key. Only share x-only public keys and signatures.",
214
+ "Always verify the P2TR address before funding — an incorrect script tree cannot be spent.",
215
+ "Verify co-signatures with taproot_verify_cosig before broadcasting.",
216
+ "Use a fresh nonce for each signing session to avoid nonce reuse attacks (handled automatically by @noble/curves).",
217
+ "For high-value multisig, use an air-gapped signer and verify the sighash independently.",
218
+ ],
219
+ tools: {
220
+ get_pubkey: "taproot_get_pubkey",
221
+ verify_cosig: "taproot_verify_cosig",
222
+ sign_psbt: "psbt_sign",
223
+ broadcast: "psbt_broadcast",
224
+ decode_psbt: "psbt_decode",
225
+ },
226
+ references: [
227
+ "BIP-340: https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki",
228
+ "BIP-341: https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki",
229
+ "BIP-342: https://github.com/bitcoin/bips/blob/master/bip-0342.mediawiki",
230
+ "BIP-86: https://github.com/bitcoin/bips/blob/master/bip-0086.mediawiki",
231
+ ],
232
+ };
233
+ return createJsonResponse(guide);
234
+ });
235
+ }
236
+ //# sourceMappingURL=taproot-multisig.tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taproot-multisig.tools.js","sourceRoot":"","sources":["../../src/tools/taproot-multisig.tools.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,22 @@
1
1
  import { ClarityValue, PostConditionMode, PostCondition } from "@stacks/transactions";
2
2
  import { type Network } from "../config/networks.js";
3
3
  import type { WalletAddresses } from "../utils/storage.js";
4
+ /**
5
+ * Maximum number of addresses tracked simultaneously in pendingNonces and
6
+ * pendingNonceTimestamps. When this limit is reached the oldest entry (by
7
+ * insertion order) is evicted before a new one is added. This prevents
8
+ * unbounded memory growth in long-running server processes (issue #336).
9
+ */
10
+ export declare const MAX_NONCE_ENTRIES = 100;
11
+ /**
12
+ * Exported references to the internal nonce Maps for unit testing only.
13
+ * Do not use these outside of test files.
14
+ */
15
+ export declare const _testingNonceMaps: {
16
+ pendingNonces: Map<string, bigint>;
17
+ pendingNonceTimestamps: Map<string, number>;
18
+ STALE_NONCE_MS: number;
19
+ };
4
20
  /**
5
21
  * Reset the pending nonce for an address (called on wallet unlock/lock/switch
6
22
  * so the counter re-syncs with the chain on the next transaction).
@@ -12,6 +28,13 @@ export declare function resetPendingNonce(address: string): void;
12
28
  * intent clear for the recover_sponsor_nonce tool's resync-local-nonce action.
13
29
  */
14
30
  export declare function forceResyncNonce(address: string): void;
31
+ /**
32
+ * Record that a transaction with `nonce` was successfully broadcast for
33
+ * `address`, so the next call advances past it.
34
+ *
35
+ * Exported for unit testing. Not part of the public API.
36
+ */
37
+ export declare function advancePendingNonce(address: string, nonce: bigint): void;
15
38
  export interface Account extends WalletAddresses {
16
39
  privateKey: string;
17
40
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/transactions/builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/transactions/builder.ts"],"names":[],"mappings":"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"}
@@ -13,18 +13,49 @@ import { resolveDefaultFee } from "../utils/fee.js";
13
13
  * network value on the next call.
14
14
  */
15
15
  const STALE_NONCE_MS = 10 * 60 * 1000; // 10 minutes
16
+ /**
17
+ * Maximum number of addresses tracked simultaneously in pendingNonces and
18
+ * pendingNonceTimestamps. When this limit is reached the oldest entry (by
19
+ * insertion order) is evicted before a new one is added. This prevents
20
+ * unbounded memory growth in long-running server processes (issue #336).
21
+ */
22
+ export const MAX_NONCE_ENTRIES = 100;
23
+ /**
24
+ * Evict the oldest entry from a Map when it has reached MAX_NONCE_ENTRIES.
25
+ * JS Maps iterate in insertion order, so map.keys().next() yields the oldest
26
+ * key — no additional bookkeeping is needed.
27
+ */
28
+ function evictOldestIfFull(map) {
29
+ if (map.size >= MAX_NONCE_ENTRIES) {
30
+ const oldestKey = map.keys().next().value;
31
+ if (oldestKey !== undefined) {
32
+ map.delete(oldestKey);
33
+ }
34
+ }
35
+ }
16
36
  /**
17
37
  * In-memory map of STX address -> next expected nonce for non-sponsored txs.
18
38
  * Updated after each successful broadcast so sequential calls don't re-use
19
39
  * the same network nonce before the first tx lands in the mempool.
40
+ * Bounded to MAX_NONCE_ENTRIES entries; oldest evicted on overflow (issue #336).
20
41
  */
21
42
  const pendingNonces = new Map();
22
43
  /**
23
44
  * Tracks when each address last advanced its local nonce counter.
24
45
  * Used to detect stale entries: if no transaction was sent within STALE_NONCE_MS
25
46
  * the counter is expired and the network value is authoritative again.
47
+ * Bounded to MAX_NONCE_ENTRIES entries; oldest evicted on overflow (issue #336).
26
48
  */
27
49
  const pendingNonceTimestamps = new Map();
50
+ /**
51
+ * Exported references to the internal nonce Maps for unit testing only.
52
+ * Do not use these outside of test files.
53
+ */
54
+ export const _testingNonceMaps = {
55
+ pendingNonces,
56
+ pendingNonceTimestamps,
57
+ STALE_NONCE_MS,
58
+ };
28
59
  /**
29
60
  * Reset the pending nonce for an address (called on wallet unlock/lock/switch
30
61
  * so the counter re-syncs with the chain on the next transaction).
@@ -86,11 +117,20 @@ async function getNextNonce(address, network) {
86
117
  /**
87
118
  * Record that a transaction with `nonce` was successfully broadcast for
88
119
  * `address`, so the next call advances past it.
120
+ *
121
+ * Exported for unit testing. Not part of the public API.
89
122
  */
90
- function advancePendingNonce(address, nonce) {
123
+ export function advancePendingNonce(address, nonce) {
91
124
  const next = nonce + 1n;
92
125
  const current = pendingNonces.get(address) ?? 0n;
93
126
  if (next > current) {
127
+ // Evict oldest entry before inserting a new address to keep maps bounded.
128
+ // Only evict when this is a new address — updates to existing keys don't
129
+ // change Map size so no eviction is needed.
130
+ if (!pendingNonces.has(address)) {
131
+ evictOldestIfFull(pendingNonces);
132
+ evictOldestIfFull(pendingNonceTimestamps);
133
+ }
94
134
  pendingNonces.set(address, next);
95
135
  pendingNonceTimestamps.set(address, Date.now());
96
136
  }
@@ -1 +1 @@
1
- {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/transactions/builder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EAEpB,iBAAiB,GAElB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAgB,MAAM,uBAAuB,CAAC;AACtF,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGpD,8EAA8E;AAC9E,6EAA6E;AAC7E,8EAA8E;AAE9E;;;;;GAKG;AACH,MAAM,cAAc,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,aAAa;AAEpD;;;;GAIG;AACH,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;AAEhD;;;;GAIG;AACH,MAAM,sBAAsB,GAAG,IAAI,GAAG,EAAkB,CAAC;AAEzD;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAe;IAC/C,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9B,sBAAsB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACzC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,iBAAiB,CAAC,OAAO,CAAC,CAAC;AAC7B,CAAC;AAED;;;;;;;;;;;GAWG;AACH,KAAK,UAAU,YAAY,CAAC,OAAe,EAAE,OAAgB;IAC3D,6EAA6E;IAC7E,MAAM,YAAY,GAAG,sBAAsB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,YAAY,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,GAAG,cAAc,CAAC;IACzF,IAAI,OAAO,EAAE,CAAC;QACZ,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC9B,sBAAsB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IAEjD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;QACpC,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACtD,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;QAE1D,6DAA6D;QAC7D,IAAI,SAAS,CAAC,uBAAuB,IAAI,SAAS,CAAC,uBAAuB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtF,OAAO,CAAC,IAAI,CACV,uCAAuC,OAAO,MAAM,SAAS,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;gBACrG,wGAAwG,CACzG,CAAC;QACJ,CAAC;QAED,OAAO,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC;IACvD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,8EAA8E;QAC9E,oFAAoF;QACpF,IAAI,OAAO,GAAG,EAAE,EAAE,CAAC;YACjB,OAAO,CAAC,IAAI,CAAC,yDAAyD,OAAO,SAAS,OAAO,GAAG,EAAE,GAAG,CAAC,CAAC;YACvG,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,mBAAmB,CAAC,OAAe,EAAE,KAAa;IACzD,MAAM,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;IACxB,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACjD,IAAI,IAAI,GAAG,OAAO,EAAE,CAAC;QACnB,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACjC,sBAAsB,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAClD,CAAC;AACH,CAAC;AA4DD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAAgB,EAChB,SAAiB,EACjB,MAAc,EACd,IAAa,EACb,GAAY;IAEZ,MAAM,WAAW,GAAG,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACtD,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAEnE,qFAAqF;IACrF,MAAM,WAAW,GAAG,GAAG,IAAI,MAAM,iBAAiB,CAAC,OAAO,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IAEtF,MAAM,WAAW,GAAG,MAAM,oBAAoB,CAAC;QAC7C,SAAS;QACT,MAAM;QACN,SAAS,EAAE,OAAO,CAAC,UAAU;QAC7B,OAAO,EAAE,WAAW;QACpB,IAAI,EAAE,IAAI,IAAI,EAAE;QAChB,KAAK;QACL,GAAG,EAAE,WAAW;KACjB,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAAG,MAAM,oBAAoB,CAAC;QACnD,WAAW;QACX,OAAO,EAAE,WAAW;KACrB,CAAC,CAAC;IAEH,IAAI,OAAO,IAAI,iBAAiB,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CACb,qBAAqB,iBAAiB,CAAC,KAAK,MAAM,iBAAiB,CAAC,MAAM,EAAE,CAC7E,CAAC;IACJ,CAAC;IAED,mBAAmB,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAE5C,OAAO;QACL,IAAI,EAAE,iBAAiB,CAAC,IAAI;QAC5B,KAAK,EAAE,WAAW,CAAC,SAAS,EAAE;KAC/B,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAAgB,EAChB,OAA4B;IAE5B,MAAM,WAAW,GAAG,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACtD,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAEnE,qFAAqF;IACrF,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,IAAI,MAAM,iBAAiB,CAAC,OAAO,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IAE7F,MAAM,WAAW,GAAG,MAAM,gBAAgB,CAAC;QACzC,eAAe,EAAE,OAAO,CAAC,eAAe;QACxC,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,SAAS,EAAE,OAAO,CAAC,UAAU;QAC7B,OAAO,EAAE,WAAW;QACpB,KAAK;QACL,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,IAAI,iBAAiB,CAAC,IAAI;QACtE,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,EAAE;QAC5C,GAAG,EAAE,WAAW;KACjB,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAAG,MAAM,oBAAoB,CAAC;QACnD,WAAW;QACX,OAAO,EAAE,WAAW;KACrB,CAAC,CAAC;IAEH,IAAI,OAAO,IAAI,iBAAiB,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CACb,qBAAqB,iBAAiB,CAAC,KAAK,MAAM,iBAAiB,CAAC,MAAM,EAAE,CAC7E,CAAC;IACJ,CAAC;IAED,mBAAmB,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAE5C,OAAO;QACL,IAAI,EAAE,iBAAiB,CAAC,IAAI;QAC5B,KAAK,EAAE,WAAW,CAAC,SAAS,EAAE;KAC/B,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAAgB,EAChB,OAA8B;IAE9B,MAAM,WAAW,GAAG,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACtD,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAEnE,qFAAqF;IACrF,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,IAAI,MAAM,iBAAiB,CAAC,OAAO,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IAE9F,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC;QAC3C,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,SAAS,EAAE,OAAO,CAAC,UAAU;QAC7B,OAAO,EAAE,WAAW;QACpB,KAAK;QACL,GAAG,EAAE,WAAW;KACjB,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAAG,MAAM,oBAAoB,CAAC;QACnD,WAAW;QACX,OAAO,EAAE,WAAW;KACrB,CAAC,CAAC;IAEH,IAAI,OAAO,IAAI,iBAAiB,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CACb,qBAAqB,iBAAiB,CAAC,KAAK,MAAM,iBAAiB,CAAC,MAAM,EAAE,CAC7E,CAAC;IACJ,CAAC;IAED,mBAAmB,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAE5C,OAAO;QACL,IAAI,EAAE,iBAAiB,CAAC,IAAI;QAC5B,KAAK,EAAE,WAAW,CAAC,SAAS,EAAE;KAC/B,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,OAAgB,EAChB,SAAiB,EACjB,MAAc,EACd,IAAa,EACb,GAAY;IAEZ,MAAM,WAAW,GAAG,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAEtD,MAAM,WAAW,GAAG,MAAM,oBAAoB,CAAC;QAC7C,SAAS;QACT,MAAM;QACN,SAAS,EAAE,OAAO,CAAC,UAAU;QAC7B,OAAO,EAAE,WAAW;QACpB,IAAI,EAAE,IAAI,IAAI,EAAE;QAChB,GAAG,CAAC,GAAG,KAAK,SAAS,IAAI,EAAE,GAAG,EAAE,CAAC;KAClC,CAAC,CAAC;IAEH,OAAO;QACL,QAAQ,EAAE,WAAW,CAAC,SAAS,EAAE;QACjC,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE;KACzB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAgB,EAChB,OAA4B;IAE5B,MAAM,WAAW,GAAG,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAEtD,MAAM,WAAW,GAAG,MAAM,gBAAgB,CAAC;QACzC,eAAe,EAAE,OAAO,CAAC,eAAe;QACxC,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,SAAS,EAAE,OAAO,CAAC,UAAU;QAC7B,OAAO,EAAE,WAAW;QACpB,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,IAAI,iBAAiB,CAAC,IAAI;QACtE,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,EAAE;QAC5C,GAAG,CAAC,OAAO,CAAC,GAAG,KAAK,SAAS,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;KACvD,CAAC,CAAC;IAEH,OAAO;QACL,QAAQ,EAAE,WAAW,CAAC,SAAS,EAAE;QACjC,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE;KACzB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,QAAgB,EAChB,OAAgB;IAEhB,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;IAElD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,kBAAkB,EAAE;QACzD,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,0BAA0B;SAC3C;QACD,IAAI,EAAE,OAAO;KACd,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,qBAAqB,QAAQ,CAAC,UAAU,MAAM,SAAS,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACnC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;AAC1C,CAAC;AAED,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/transactions/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.36.1",
3
+ "version": "1.37.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",
@@ -60,12 +60,15 @@
60
60
  "axios": "^1.13.6",
61
61
  "dotenv": "^17.3.1",
62
62
  "micro-ordinals": "^0.3.0",
63
+ "nostr-tools": "^2.23.3",
63
64
  "sbtc": "^0.3.2",
64
65
  "tslib": "^2.8.1",
66
+ "ws": "^8.19.0",
65
67
  "zod": "^4.3.6"
66
68
  },
67
69
  "devDependencies": {
68
70
  "@types/node": "^22.19.13",
71
+ "@types/ws": "^8.18.1",
69
72
  "tsx": "^4.21.0",
70
73
  "typescript": "^5.9.3",
71
74
  "vitest": "^4.0.18"
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.36.1 # x-release-please-version
7
+ version: 1.37.0 # x-release-please-version
8
8
  npm: "@aibtc/mcp-server"
9
9
  github: https://github.com/aibtcdev/aibtc-mcp-server
10
10
  ---