@aibtc/mcp-server 1.30.3 → 1.32.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.
@@ -1 +1 @@
1
- {"version":3,"file":"bitflow.tools.d.ts","sourceRoot":"","sources":["../../src/tools/bitflow.tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAwLpE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA8jB5D"}
1
+ {"version":3,"file":"bitflow.tools.d.ts","sourceRoot":"","sources":["../../src/tools/bitflow.tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAuOpE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA2kB5D"}
@@ -24,7 +24,8 @@ class AmountUnitMismatchError extends Error {
24
24
  }
25
25
  }
26
26
  /**
27
- * Resolve amountIn to the human-unit number the Bitflow SDK expects.
27
+ * Resolve amountIn to the human-unit number the Bitflow SDK expects,
28
+ * and return full interpretation metadata for auditability.
28
29
  * When amountUnit is "human" (default), validates and passes through.
29
30
  * When amountUnit is "base", converts from smallest units using token decimals.
30
31
  */
@@ -42,13 +43,47 @@ async function resolveAmountIn(bitflowService, tokenX, amountIn, amountUnit) {
42
43
  if (!Number.isFinite(numeric)) {
43
44
  throw new Error("Converted amount is too large to handle safely");
44
45
  }
45
- return numeric;
46
+ const amountMetadata = {
47
+ amountInRawInput: amountIn,
48
+ amountUnit: "base",
49
+ tokenDecimals: tokenIn.decimals,
50
+ amountInHuman: numeric,
51
+ amountInBase: amountIn,
52
+ interpretation: `Input '${amountIn}' interpreted as base units; converted to ${numeric} human units using ${tokenIn.decimals} decimals`,
53
+ };
54
+ return { normalizedAmountIn: numeric, amountMetadata };
46
55
  }
47
56
  const numeric = Number(amountIn);
48
57
  if (!Number.isFinite(numeric) || numeric <= 0) {
49
58
  throw new Error("amountIn must be a positive number");
50
59
  }
51
- return numeric;
60
+ // For human units we don't need decimals from the token list; base = round(human * 10^decimals).
61
+ // Since we don't know decimals without an extra fetch, we omit the base string here and
62
+ // attempt a best-effort lookup so the metadata is as complete as possible.
63
+ let tokenDecimals = null;
64
+ let amountInBase = "unknown (decimals not fetched for human-unit input)";
65
+ try {
66
+ const tokens = await bitflowService.getAvailableTokens();
67
+ const tokenIn = tokens.find((t) => t.id === tokenX);
68
+ if (tokenIn) {
69
+ tokenDecimals = tokenIn.decimals;
70
+ amountInBase = String(Math.round(numeric * 10 ** tokenIn.decimals));
71
+ }
72
+ }
73
+ catch {
74
+ // Non-fatal: metadata degrades gracefully if token list is unavailable
75
+ }
76
+ const amountMetadata = {
77
+ amountInRawInput: amountIn,
78
+ amountUnit: "human",
79
+ tokenDecimals,
80
+ amountInHuman: numeric,
81
+ amountInBase,
82
+ interpretation: tokenDecimals !== null
83
+ ? `Input '${amountIn}' interpreted as human units (${tokenDecimals} decimals); base unit equivalent is ${amountInBase}`
84
+ : `Input '${amountIn}' interpreted as human units; token decimals unavailable so base unit string is omitted`,
85
+ };
86
+ return { normalizedAmountIn: numeric, amountMetadata };
52
87
  }
53
88
  /**
54
89
  * Preflight guardrail: detect likely base-unit / human-unit confusion.
@@ -295,7 +330,7 @@ Note: Bitflow is only available on mainnet.`,
295
330
  });
296
331
  }
297
332
  const bitflowService = getBitflowService(NETWORK);
298
- const normalizedAmountIn = await resolveAmountIn(bitflowService, tokenX, amountIn, amountUnit);
333
+ const { normalizedAmountIn, amountMetadata } = await resolveAmountIn(bitflowService, tokenX, amountIn, amountUnit);
299
334
  await checkAmountScaling(bitflowService, tokenX, normalizedAmountIn, amountIn, amountUnit);
300
335
  const quote = await bitflowService.getSwapQuote(tokenX, tokenY, normalizedAmountIn);
301
336
  const priceImpact = quote.priceImpact;
@@ -311,6 +346,7 @@ Note: Bitflow is only available on mainnet.`,
311
346
  amountUnit,
312
347
  normalizedAmountIn,
313
348
  },
349
+ amountMetadata,
314
350
  quote,
315
351
  priceImpact,
316
352
  highImpactWarning,
@@ -401,7 +437,7 @@ Note: Bitflow is only available on mainnet.`,
401
437
  });
402
438
  }
403
439
  const bitflowService = getBitflowService(NETWORK);
404
- const normalizedAmountIn = await resolveAmountIn(bitflowService, tokenX, amountIn, amountUnit);
440
+ const { normalizedAmountIn, amountMetadata } = await resolveAmountIn(bitflowService, tokenX, amountIn, amountUnit);
405
441
  await checkAmountScaling(bitflowService, tokenX, normalizedAmountIn, amountIn, amountUnit);
406
442
  // Safety check: require explicit confirmation for high-impact swaps
407
443
  const quote = await bitflowService.getSwapQuote(tokenX, tokenY, normalizedAmountIn);
@@ -410,6 +446,7 @@ Note: Bitflow is only available on mainnet.`,
410
446
  return createJsonResponse({
411
447
  error: "High price impact swap requires explicit confirmation",
412
448
  message: `This swap has ${impact.combinedImpactPct} price impact (${impact.severity}). Set confirmHighImpact=true to proceed.`,
449
+ amountMetadata,
413
450
  quote,
414
451
  threshold: `${(HIGH_IMPACT_THRESHOLD * 100).toFixed(0)}%`,
415
452
  requiredParam: "confirmHighImpact",
@@ -430,6 +467,7 @@ Note: Bitflow is only available on mainnet.`,
430
467
  slippageTolerance: slippageTolerance || 0.01,
431
468
  priceImpact: impact,
432
469
  },
470
+ amountMetadata,
433
471
  network: NETWORK,
434
472
  explorerUrl: getExplorerTxUrl(result.txid, NETWORK),
435
473
  });
@@ -1 +1 @@
1
- {"version":3,"file":"bitflow.tools.js","sourceRoot":"","sources":["../../src/tools/bitflow.tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bitflow.tools.js","sourceRoot":"","sources":["../../src/tools/bitflow.tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Child inscription tools
3
+ *
4
+ * Parent-child inscriptions per the Ordinals provenance spec.
5
+ * The owner of a parent inscription creates child inscriptions,
6
+ * establishing on-chain provenance.
7
+ *
8
+ * Tools:
9
+ * - estimate_child_inscription_fee: Calculate cost for a child inscription
10
+ * - inscribe_child: Step 1 - Broadcast commit tx for child inscription
11
+ * - inscribe_child_reveal: Step 2 - Broadcast reveal tx after commit confirms
12
+ */
13
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
14
+ export declare function registerChildInscriptionTools(server: McpServer): void;
15
+ //# sourceMappingURL=child-inscription.tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"child-inscription.tools.d.ts","sourceRoot":"","sources":["../../src/tools/child-inscription.tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAwBpE,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA6arE"}
@@ -0,0 +1,338 @@
1
+ /**
2
+ * Child inscription tools
3
+ *
4
+ * Parent-child inscriptions per the Ordinals provenance spec.
5
+ * The owner of a parent inscription creates child inscriptions,
6
+ * establishing on-chain provenance.
7
+ *
8
+ * Tools:
9
+ * - estimate_child_inscription_fee: Calculate cost for a child inscription
10
+ * - inscribe_child: Step 1 - Broadcast commit tx for child inscription
11
+ * - inscribe_child_reveal: Step 2 - Broadcast reveal tx after commit confirms
12
+ */
13
+ import { z } from "zod";
14
+ import { NETWORK } from "../config/networks.js";
15
+ import { P2WPKH_INPUT_VBYTES, P2WPKH_OUTPUT_VBYTES, P2TR_OUTPUT_VBYTES, P2TR_INPUT_BASE_VBYTES, TX_OVERHEAD_VBYTES, DUST_THRESHOLD, WITNESS_OVERHEAD_VBYTES, } from "../config/bitcoin-constants.js";
16
+ import { createJsonResponse, createErrorResponse } from "../utils/index.js";
17
+ import { MempoolApi, getMempoolTxUrl } from "../services/mempool-api.js";
18
+ import { getWalletManager } from "../services/wallet-manager.js";
19
+ import { signBtcTransaction } from "../transactions/bitcoin-builder.js";
20
+ import { buildChildCommitTransaction, buildChildRevealTransaction, deriveChildRevealScript, lookupParentInscription, } from "../transactions/child-inscription-builder.js";
21
+ export function registerChildInscriptionTools(server) {
22
+ // Estimate child inscription fee
23
+ server.registerTool("estimate_child_inscription_fee", {
24
+ description: "Calculate the total cost (in satoshis) for creating a child inscription. " +
25
+ "Accounts for the extra parent UTXO input and parent return output in the reveal transaction. " +
26
+ "Content should be provided as base64-encoded string.",
27
+ inputSchema: {
28
+ contentType: z
29
+ .string()
30
+ .describe("MIME type (e.g., 'text/plain', 'image/png')"),
31
+ contentBase64: z
32
+ .string()
33
+ .describe("Content as base64-encoded string"),
34
+ feeRate: z
35
+ .number()
36
+ .positive()
37
+ .optional()
38
+ .describe("Fee rate in sat/vB (optional, defaults to current medium fee)"),
39
+ },
40
+ }, async ({ contentType, contentBase64, feeRate }) => {
41
+ try {
42
+ const body = Buffer.from(contentBase64, "base64");
43
+ let actualFeeRate = feeRate;
44
+ if (!actualFeeRate) {
45
+ const mempoolApi = new MempoolApi(NETWORK);
46
+ const fees = await mempoolApi.getFeeEstimates();
47
+ actualFeeRate = fees.halfHourFee;
48
+ }
49
+ // Commit tx size (assuming 1-2 inputs)
50
+ const commitInputs = 2;
51
+ const commitSize = TX_OVERHEAD_VBYTES +
52
+ commitInputs * P2WPKH_INPUT_VBYTES +
53
+ P2TR_OUTPUT_VBYTES +
54
+ P2WPKH_OUTPUT_VBYTES;
55
+ const commitFee = Math.ceil(commitSize * actualFeeRate);
56
+ // Reveal tx size: 2 inputs (commit + parent), 2 outputs (parent return + child)
57
+ const revealWitnessSize = Math.ceil((body.length / 4) * 1.25) + WITNESS_OVERHEAD_VBYTES;
58
+ const revealSize = TX_OVERHEAD_VBYTES +
59
+ P2TR_INPUT_BASE_VBYTES + // commit input (script-path)
60
+ P2TR_INPUT_BASE_VBYTES + // parent input (key-path)
61
+ revealWitnessSize +
62
+ P2TR_OUTPUT_VBYTES * 2; // parent return + child output
63
+ const revealFee = Math.ceil(revealSize * actualFeeRate);
64
+ // Amount locked in reveal output
65
+ const revealAmount = revealFee + DUST_THRESHOLD * 2 + 1000;
66
+ const totalCost = commitFee + revealAmount;
67
+ return createJsonResponse({
68
+ contentType,
69
+ contentSize: body.length,
70
+ feeRate: actualFeeRate,
71
+ fees: {
72
+ commitFee,
73
+ revealFee,
74
+ revealAmount,
75
+ totalCost,
76
+ },
77
+ breakdown: `Commit tx: ${commitFee} sats | Reveal amount: ${revealAmount} sats (includes ${revealFee} reveal fee) | Total: ${totalCost} sats`,
78
+ note: "This is an estimate. Actual fees may vary based on UTXO selection. Includes extra cost for parent UTXO input and parent return output.",
79
+ });
80
+ }
81
+ catch (error) {
82
+ return createErrorResponse(error);
83
+ }
84
+ });
85
+ // Create child inscription - Step 1: Commit
86
+ server.registerTool("inscribe_child", {
87
+ description: "Create a child inscription - STEP 1: Broadcast commit transaction.\n\n" +
88
+ "Creates a child inscription linked to a parent, establishing on-chain provenance " +
89
+ "per the Ordinals provenance spec. You must own the parent inscription.\n\n" +
90
+ "This broadcasts the commit tx and returns immediately. After it confirms " +
91
+ "(typically 10-60 min), use `inscribe_child_reveal` to complete.\n\n" +
92
+ "Returns: commitTxid, revealAddress, revealAmount, parentInscriptionId, feeRate",
93
+ inputSchema: {
94
+ contentType: z
95
+ .string()
96
+ .describe("MIME type (e.g., 'text/plain', 'image/png', 'text/html')"),
97
+ contentBase64: z
98
+ .string()
99
+ .describe("Content as base64-encoded string"),
100
+ parentInscriptionId: z
101
+ .string()
102
+ .describe("Parent inscription ID (e.g., 'abc123...i0'). You must own this inscription."),
103
+ feeRate: z
104
+ .union([z.enum(["fast", "medium", "slow"]), z.number().positive()])
105
+ .optional()
106
+ .describe("Fee rate: 'fast' (~10 min), 'medium' (~30 min), 'slow' (~1 hr), or number in sat/vB (default: medium)"),
107
+ },
108
+ }, async ({ contentType, contentBase64, parentInscriptionId, feeRate }) => {
109
+ try {
110
+ // Check wallet session
111
+ const walletManager = getWalletManager();
112
+ const sessionInfo = walletManager.getSessionInfo();
113
+ if (!sessionInfo) {
114
+ return createErrorResponse(new Error("Wallet not unlocked. Use wallet_unlock first."));
115
+ }
116
+ if (!sessionInfo.btcAddress || !sessionInfo.taprootAddress) {
117
+ return createErrorResponse(new Error("Wallet doesn't have Bitcoin addresses. Use a managed wallet."));
118
+ }
119
+ const account = walletManager.getAccount();
120
+ if (!account ||
121
+ !account.btcPrivateKey ||
122
+ !account.btcPublicKey ||
123
+ !account.taprootPrivateKey ||
124
+ !account.taprootPublicKey) {
125
+ return createErrorResponse(new Error("Bitcoin and Taproot keys not available. Wallet may not be unlocked."));
126
+ }
127
+ // Look up parent inscription and validate ownership
128
+ const parentInfo = await lookupParentInscription(parentInscriptionId);
129
+ if (parentInfo.address !== sessionInfo.taprootAddress) {
130
+ return createErrorResponse(new Error(`Parent inscription is owned by ${parentInfo.address}, but your Taproot address is ${sessionInfo.taprootAddress}. You must own the parent inscription.`));
131
+ }
132
+ // Decode content
133
+ const body = Buffer.from(contentBase64, "base64");
134
+ const inscription = { contentType, body };
135
+ // Get fee rate
136
+ const mempoolApi = new MempoolApi(NETWORK);
137
+ let actualFeeRate;
138
+ if (typeof feeRate === "string") {
139
+ const fees = await mempoolApi.getFeeEstimates();
140
+ switch (feeRate) {
141
+ case "fast":
142
+ actualFeeRate = fees.fastestFee;
143
+ break;
144
+ case "slow":
145
+ actualFeeRate = fees.hourFee;
146
+ break;
147
+ default:
148
+ actualFeeRate = fees.halfHourFee;
149
+ }
150
+ }
151
+ else {
152
+ actualFeeRate =
153
+ feeRate || (await mempoolApi.getFeeEstimates()).halfHourFee;
154
+ }
155
+ // Get UTXOs for funding (from BIP84 address)
156
+ const utxos = await mempoolApi.getUtxos(sessionInfo.btcAddress);
157
+ if (utxos.length === 0) {
158
+ return createErrorResponse(new Error(`No UTXOs available for address ${sessionInfo.btcAddress}. Send some BTC first.`));
159
+ }
160
+ // Build and broadcast commit transaction
161
+ const commitResult = buildChildCommitTransaction({
162
+ utxos,
163
+ inscription,
164
+ parentInscriptionId,
165
+ feeRate: actualFeeRate,
166
+ senderPubKey: account.btcPublicKey,
167
+ senderAddress: sessionInfo.btcAddress,
168
+ network: NETWORK,
169
+ });
170
+ const commitSigned = signBtcTransaction(commitResult.tx, account.btcPrivateKey);
171
+ const commitTxid = await mempoolApi.broadcastTransaction(commitSigned.txHex);
172
+ const commitExplorerUrl = getMempoolTxUrl(commitTxid, NETWORK);
173
+ return createJsonResponse({
174
+ status: "commit_broadcast",
175
+ message: "Child inscription commit transaction broadcast successfully. " +
176
+ "Wait for confirmation (typically 10-60 min), then call inscribe_child_reveal to complete.",
177
+ commitTxid,
178
+ commitExplorerUrl,
179
+ revealAddress: commitResult.revealAddress,
180
+ revealAmount: commitResult.revealAmount,
181
+ commitFee: commitResult.fee,
182
+ feeRate: actualFeeRate,
183
+ parentInscriptionId,
184
+ parentUtxo: {
185
+ txid: parentInfo.txid,
186
+ vout: parentInfo.vout,
187
+ value: parentInfo.value,
188
+ },
189
+ contentType,
190
+ contentSize: body.length,
191
+ nextStep: "After commit confirms, call inscribe_child_reveal with the same contentType, contentBase64, " +
192
+ "parentInscriptionId, plus commitTxid and revealAmount from this response.",
193
+ });
194
+ }
195
+ catch (error) {
196
+ return createErrorResponse(error);
197
+ }
198
+ });
199
+ // Complete child inscription - Step 2: Reveal
200
+ server.registerTool("inscribe_child_reveal", {
201
+ description: "Complete a child inscription - STEP 2: Broadcast reveal transaction.\n\n" +
202
+ "Call this AFTER the commit transaction from `inscribe_child` has confirmed.\n" +
203
+ "You must provide the same contentType, contentBase64, and parentInscriptionId " +
204
+ "used in the commit step.\n\n" +
205
+ "The reveal tx spends both the commit output and the parent inscription UTXO, " +
206
+ "returning the parent to your address and creating the child inscription.\n\n" +
207
+ "Returns: inscriptionId ({revealTxid}i0), parentInscriptionId on success",
208
+ inputSchema: {
209
+ commitTxid: z
210
+ .string()
211
+ .length(64)
212
+ .describe("Transaction ID of the confirmed commit transaction (from inscribe_child)"),
213
+ revealAmount: z
214
+ .number()
215
+ .positive()
216
+ .describe("Amount in the commit output (from inscribe_child response)"),
217
+ contentType: z
218
+ .string()
219
+ .describe("MIME type (must match the commit step)"),
220
+ contentBase64: z
221
+ .string()
222
+ .describe("Content as base64-encoded string (must match the commit step)"),
223
+ parentInscriptionId: z
224
+ .string()
225
+ .describe("Parent inscription ID (must match the commit step)"),
226
+ feeRate: z
227
+ .union([z.enum(["fast", "medium", "slow"]), z.number().positive()])
228
+ .optional()
229
+ .describe("Fee rate for reveal tx (default: medium)"),
230
+ },
231
+ }, async ({ commitTxid, revealAmount, contentType, contentBase64, parentInscriptionId, feeRate, }) => {
232
+ try {
233
+ // Check wallet session
234
+ const walletManager = getWalletManager();
235
+ const sessionInfo = walletManager.getSessionInfo();
236
+ if (!sessionInfo) {
237
+ return createErrorResponse(new Error("Wallet not unlocked. Use wallet_unlock first."));
238
+ }
239
+ if (!sessionInfo.taprootAddress) {
240
+ return createErrorResponse(new Error("Wallet doesn't have Taproot address. Use a managed wallet."));
241
+ }
242
+ const account = walletManager.getAccount();
243
+ if (!account ||
244
+ !account.btcPrivateKey ||
245
+ !account.btcPublicKey ||
246
+ !account.taprootPrivateKey ||
247
+ !account.taprootPublicKey) {
248
+ return createErrorResponse(new Error("Bitcoin and Taproot keys not available. Wallet may not be unlocked."));
249
+ }
250
+ // Look up parent inscription fresh (may have moved since commit)
251
+ const parentInfo = await lookupParentInscription(parentInscriptionId);
252
+ if (parentInfo.address !== sessionInfo.taprootAddress) {
253
+ return createErrorResponse(new Error(`Parent inscription is no longer owned by your wallet. Current owner: ${parentInfo.address}`));
254
+ }
255
+ // Reconstruct the inscription and child reveal script
256
+ const body = Buffer.from(contentBase64, "base64");
257
+ const inscription = { contentType, body };
258
+ // Get fee rate
259
+ const mempoolApi = new MempoolApi(NETWORK);
260
+ let actualFeeRate;
261
+ if (typeof feeRate === "string") {
262
+ const fees = await mempoolApi.getFeeEstimates();
263
+ switch (feeRate) {
264
+ case "fast":
265
+ actualFeeRate = fees.fastestFee;
266
+ break;
267
+ case "slow":
268
+ actualFeeRate = fees.hourFee;
269
+ break;
270
+ default:
271
+ actualFeeRate = fees.halfHourFee;
272
+ }
273
+ }
274
+ else {
275
+ actualFeeRate =
276
+ feeRate || (await mempoolApi.getFeeEstimates()).halfHourFee;
277
+ }
278
+ // Derive the child reveal script deterministically
279
+ const p2trReveal = deriveChildRevealScript({
280
+ inscription,
281
+ parentInscriptionId,
282
+ senderPubKey: account.btcPublicKey,
283
+ network: NETWORK,
284
+ });
285
+ // Build child reveal transaction
286
+ const revealResult = buildChildRevealTransaction({
287
+ commitTxid,
288
+ commitVout: 0,
289
+ commitAmount: revealAmount,
290
+ revealScript: p2trReveal,
291
+ parentUtxo: {
292
+ txid: parentInfo.txid,
293
+ vout: parentInfo.vout,
294
+ value: parentInfo.value,
295
+ },
296
+ parentOwnerTaprootInternalPubKey: account.taprootPublicKey,
297
+ recipientAddress: sessionInfo.taprootAddress,
298
+ feeRate: actualFeeRate,
299
+ network: NETWORK,
300
+ });
301
+ // Sign both inputs:
302
+ // Input[0] (commit output): script-path → btcPrivateKey
303
+ // Input[1] (parent UTXO): key-path → taprootPrivateKey
304
+ // @scure/btc-signer matches keys to inputs automatically
305
+ revealResult.tx.sign(account.btcPrivateKey);
306
+ revealResult.tx.sign(account.taprootPrivateKey);
307
+ revealResult.tx.finalize();
308
+ const revealTxHex = revealResult.tx.hex;
309
+ const revealTxid = await mempoolApi.broadcastTransaction(revealTxHex);
310
+ const inscriptionId = `${revealTxid}i0`;
311
+ const revealExplorerUrl = getMempoolTxUrl(revealTxid, NETWORK);
312
+ const commitExplorerUrl = getMempoolTxUrl(commitTxid, NETWORK);
313
+ return createJsonResponse({
314
+ status: "success",
315
+ message: "Child inscription created successfully!",
316
+ inscriptionId,
317
+ parentInscriptionId,
318
+ contentType,
319
+ contentSize: body.length,
320
+ commit: {
321
+ txid: commitTxid,
322
+ explorerUrl: commitExplorerUrl,
323
+ },
324
+ reveal: {
325
+ txid: revealTxid,
326
+ fee: revealResult.fee,
327
+ explorerUrl: revealExplorerUrl,
328
+ },
329
+ recipientAddress: sessionInfo.taprootAddress,
330
+ note: "Child inscription will appear at the recipient address once the reveal transaction confirms. The parent inscription has been returned to your address.",
331
+ });
332
+ }
333
+ catch (error) {
334
+ return createErrorResponse(error);
335
+ }
336
+ });
337
+ }
338
+ //# sourceMappingURL=child-inscription.tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"child-inscription.tools.js","sourceRoot":"","sources":["../../src/tools/child-inscription.tools.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAsCpE;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAmDxD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAuCpE;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAoDxD"}
@@ -1,6 +1,7 @@
1
1
  // Layer 1: Bitcoin L1 (Primary)
2
2
  import { registerBitcoinTools } from "./bitcoin.tools.js";
3
3
  import { registerOrdinalsTools } from "./ordinals.tools.js";
4
+ import { registerChildInscriptionTools } from "./child-inscription.tools.js";
4
5
  import { registerPsbtTools } from "./psbt.tools.js";
5
6
  import { registerWalletTools } from "./wallet.tools.js";
6
7
  import { registerWalletManagementTools } from "./wallet-management.tools.js";
@@ -46,6 +47,7 @@ export function registerAllTools(server) {
46
47
  // =========================================================================
47
48
  registerBitcoinTools(server);
48
49
  registerOrdinalsTools(server);
50
+ registerChildInscriptionTools(server);
49
51
  registerPsbtTools(server);
50
52
  registerWalletTools(server);
51
53
  registerWalletManagementTools(server);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,112 @@
1
+ /**
2
+ * Parent-child inscription transaction building
3
+ *
4
+ * Implements the commit/reveal pattern for child inscriptions per the
5
+ * Ordinals provenance spec (https://docs.ordinals.com/inscriptions/provenance.html).
6
+ *
7
+ * The owner of a parent inscription creates child inscriptions, establishing
8
+ * on-chain provenance. Uses micro-ordinals parent tag (tag 3) support.
9
+ */
10
+ import * as btc from "@scure/btc-signer";
11
+ import type { Network } from "../config/networks.js";
12
+ import type { UTXO } from "../services/mempool-api.js";
13
+ import type { InscriptionData } from "./inscription-builder.js";
14
+ /**
15
+ * Parent inscription info from Xverse API lookup
16
+ */
17
+ export interface ParentInscriptionInfo {
18
+ txid: string;
19
+ vout: number;
20
+ value: number;
21
+ address: string;
22
+ output: string;
23
+ }
24
+ /**
25
+ * Options for deriving a child reveal script
26
+ */
27
+ export interface DeriveChildRevealScriptOptions {
28
+ inscription: InscriptionData;
29
+ parentInscriptionId: string;
30
+ senderPubKey: Uint8Array;
31
+ network: Network;
32
+ }
33
+ /**
34
+ * Options for building a child commit transaction
35
+ */
36
+ export interface BuildChildCommitTransactionOptions {
37
+ utxos: UTXO[];
38
+ inscription: InscriptionData;
39
+ parentInscriptionId: string;
40
+ feeRate: number;
41
+ senderPubKey: Uint8Array;
42
+ senderAddress: string;
43
+ network: Network;
44
+ }
45
+ /**
46
+ * Result from building a child commit transaction
47
+ */
48
+ export interface BuildChildCommitTransactionResult {
49
+ tx: btc.Transaction;
50
+ fee: number;
51
+ revealAddress: string;
52
+ revealAmount: number;
53
+ revealScript: ReturnType<typeof btc.p2tr>;
54
+ }
55
+ /**
56
+ * Options for building a child reveal transaction
57
+ */
58
+ export interface BuildChildRevealTransactionOptions {
59
+ commitTxid: string;
60
+ commitVout: number;
61
+ commitAmount: number;
62
+ revealScript: ReturnType<typeof btc.p2tr>;
63
+ parentUtxo: {
64
+ txid: string;
65
+ vout: number;
66
+ value: number;
67
+ };
68
+ parentOwnerTaprootInternalPubKey: Uint8Array;
69
+ recipientAddress: string;
70
+ feeRate: number;
71
+ network: Network;
72
+ }
73
+ /**
74
+ * Result from building a child reveal transaction
75
+ */
76
+ export interface BuildChildRevealTransactionResult {
77
+ tx: btc.Transaction;
78
+ fee: number;
79
+ outputAmount: number;
80
+ }
81
+ /**
82
+ * Derive the Taproot P2TR reveal script for a child inscription.
83
+ *
84
+ * Same as deriveRevealScript but includes the parent inscription ID tag,
85
+ * establishing provenance per the Ordinals spec.
86
+ */
87
+ export declare function deriveChildRevealScript(options: DeriveChildRevealScriptOptions): ReturnType<typeof btc.p2tr>;
88
+ /**
89
+ * Build a commit transaction for a child inscription.
90
+ *
91
+ * Same logic as buildCommitTransaction but accounts for the extra input
92
+ * (parent UTXO) and extra output (parent return) in the reveal tx fee estimate.
93
+ */
94
+ export declare function buildChildCommitTransaction(options: BuildChildCommitTransactionOptions): BuildChildCommitTransactionResult;
95
+ /**
96
+ * Build a child reveal transaction.
97
+ *
98
+ * 2 inputs, 2 outputs:
99
+ * Input[0]: Commit output (P2TR script-path spend with inscription witness)
100
+ * Input[1]: Parent UTXO (P2TR key-path spend)
101
+ * Output[0]: Parent return → owner's P2TR address (546 sats dust)
102
+ * Output[1]: Child inscription → recipient P2TR address (remaining sats)
103
+ */
104
+ export declare function buildChildRevealTransaction(options: BuildChildRevealTransactionOptions): BuildChildRevealTransactionResult;
105
+ /**
106
+ * Look up a parent inscription's current UTXO location via Xverse API.
107
+ *
108
+ * @param inscriptionId - Inscription ID (e.g., "abc123...i0")
109
+ * @returns Parent inscription UTXO info
110
+ */
111
+ export declare function lookupParentInscription(inscriptionId: string): Promise<ParentInscriptionInfo>;
112
+ //# sourceMappingURL=child-inscription-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"child-inscription-builder.d.ts","sourceRoot":"","sources":["../../src/transactions/child-inscription-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,GAAG,MAAM,mBAAmB,CAAC;AAEzC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAUrD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAEvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEhE;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC7C,WAAW,EAAE,eAAe,CAAC;IAC7B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,YAAY,EAAE,UAAU,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,kCAAkC;IACjD,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,WAAW,EAAE,eAAe,CAAC;IAC7B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,UAAU,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,iCAAiC;IAChD,EAAE,EAAE,GAAG,CAAC,WAAW,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,UAAU,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC;CAC3C;AAED;;GAEG;AACH,MAAM,WAAW,kCAAkC;IACjD,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,UAAU,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC;IAC1C,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1D,gCAAgC,EAAE,UAAU,CAAC;IAC7C,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,iCAAiC;IAChD,EAAE,EAAE,GAAG,CAAC,WAAW,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,8BAA8B,GACtC,UAAU,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,CA6B7B;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,kCAAkC,GAC1C,iCAAiC,CAmJnC;AAED;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,kCAAkC,GAC1C,iCAAiC,CAmGnC;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAC3C,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,qBAAqB,CAAC,CA+BhC"}
@@ -0,0 +1,258 @@
1
+ /**
2
+ * Parent-child inscription transaction building
3
+ *
4
+ * Implements the commit/reveal pattern for child inscriptions per the
5
+ * Ordinals provenance spec (https://docs.ordinals.com/inscriptions/provenance.html).
6
+ *
7
+ * The owner of a parent inscription creates child inscriptions, establishing
8
+ * on-chain provenance. Uses micro-ordinals parent tag (tag 3) support.
9
+ */
10
+ import * as btc from "@scure/btc-signer";
11
+ import { p2tr_ord_reveal } from "micro-ordinals";
12
+ import { P2WPKH_INPUT_VBYTES, P2WPKH_OUTPUT_VBYTES, P2TR_OUTPUT_VBYTES, P2TR_INPUT_BASE_VBYTES, TX_OVERHEAD_VBYTES, DUST_THRESHOLD, WITNESS_OVERHEAD_VBYTES, } from "../config/bitcoin-constants.js";
13
+ import { getBtcNetwork } from "./bitcoin-builder.js";
14
+ /**
15
+ * Derive the Taproot P2TR reveal script for a child inscription.
16
+ *
17
+ * Same as deriveRevealScript but includes the parent inscription ID tag,
18
+ * establishing provenance per the Ordinals spec.
19
+ */
20
+ export function deriveChildRevealScript(options) {
21
+ const { inscription, parentInscriptionId, senderPubKey, network } = options;
22
+ const btcNetwork = getBtcNetwork(network);
23
+ // micro-ordinals handles parent tag encoding (tag 3) including txid byte
24
+ // reversal and index serialization. At runtime, TagCoders.parent.encode()
25
+ // accepts a string inscription ID, but the TS types resolve parent to
26
+ // Coder<string, Uint8Array> due to UnwrapCoder not unwrapping asymmetric coders.
27
+ const inscriptionData = {
28
+ tags: {
29
+ contentType: inscription.contentType,
30
+ parent: parentInscriptionId,
31
+ },
32
+ body: inscription.body,
33
+ };
34
+ // Convert compressed pubkey (33 bytes) to x-only pubkey (32 bytes) for Taproot
35
+ const xOnlyPubkey = senderPubKey.slice(1);
36
+ const revealScriptData = p2tr_ord_reveal(xOnlyPubkey, [inscriptionData]);
37
+ // Create P2TR output for script-path spending
38
+ const p2trReveal = btc.p2tr(xOnlyPubkey, revealScriptData, btcNetwork, true);
39
+ if (!p2trReveal.address) {
40
+ throw new Error("Failed to generate child reveal address");
41
+ }
42
+ return p2trReveal;
43
+ }
44
+ /**
45
+ * Build a commit transaction for a child inscription.
46
+ *
47
+ * Same logic as buildCommitTransaction but accounts for the extra input
48
+ * (parent UTXO) and extra output (parent return) in the reveal tx fee estimate.
49
+ */
50
+ export function buildChildCommitTransaction(options) {
51
+ const { utxos, inscription, parentInscriptionId, feeRate, senderPubKey, senderAddress, network, } = options;
52
+ if (utxos.length === 0) {
53
+ throw new Error("No UTXOs provided");
54
+ }
55
+ if (feeRate <= 0) {
56
+ throw new Error("Fee rate must be positive");
57
+ }
58
+ if (!inscription.contentType) {
59
+ throw new Error("Content type is required");
60
+ }
61
+ if (!inscription.body || inscription.body.length === 0) {
62
+ throw new Error("Content body is required");
63
+ }
64
+ if (senderPubKey.length !== 33) {
65
+ throw new Error("Sender public key must be 33 bytes (compressed)");
66
+ }
67
+ // Sort UTXOs by value descending for better coin selection
68
+ const sortedUtxos = [...utxos]
69
+ .filter((utxo) => utxo.status.confirmed)
70
+ .sort((a, b) => b.value - a.value);
71
+ if (sortedUtxos.length === 0) {
72
+ throw new Error("No confirmed UTXOs available");
73
+ }
74
+ // Derive the child reveal script
75
+ const p2trReveal = deriveChildRevealScript({
76
+ inscription,
77
+ parentInscriptionId,
78
+ senderPubKey,
79
+ network,
80
+ });
81
+ const btcNetwork = getBtcNetwork(network);
82
+ // Estimate reveal tx size: 2 inputs, 2 outputs
83
+ // Input[0]: commit output (Taproot script-path with inscription witness)
84
+ // Input[1]: parent UTXO (Taproot key-path: P2TR_INPUT_BASE_VBYTES)
85
+ // Output[0]: parent return (P2TR: P2TR_OUTPUT_VBYTES)
86
+ // Output[1]: child inscription recipient (P2TR: P2TR_OUTPUT_VBYTES)
87
+ const revealInputSize = P2TR_INPUT_BASE_VBYTES; // commit input
88
+ const parentInputSize = P2TR_INPUT_BASE_VBYTES; // parent key-path input
89
+ const revealWitnessSize = Math.ceil((inscription.body.length / 4) * 1.25) + WITNESS_OVERHEAD_VBYTES;
90
+ const revealTxSize = TX_OVERHEAD_VBYTES +
91
+ revealInputSize +
92
+ parentInputSize +
93
+ revealWitnessSize +
94
+ P2TR_OUTPUT_VBYTES * 2; // parent return + child output
95
+ const revealFee = Math.ceil(revealTxSize * feeRate);
96
+ // Amount to send to reveal address must cover reveal fee + dust for both outputs
97
+ const revealAmount = revealFee + DUST_THRESHOLD * 2 + 1000;
98
+ // Calculate total available
99
+ const totalAvailable = sortedUtxos.reduce((sum, utxo) => sum + utxo.value, 0);
100
+ // Estimate commit transaction size with change output
101
+ const estimatedVsize = TX_OVERHEAD_VBYTES +
102
+ sortedUtxos.length * P2WPKH_INPUT_VBYTES +
103
+ P2TR_OUTPUT_VBYTES + // Reveal output
104
+ P2WPKH_OUTPUT_VBYTES; // Change output
105
+ const estimatedFee = Math.ceil(estimatedVsize * feeRate);
106
+ const requiredTotal = revealAmount + estimatedFee;
107
+ if (totalAvailable < requiredTotal) {
108
+ throw new Error(`Insufficient funds: have ${totalAvailable} sats, need ${requiredTotal} sats (${revealAmount} reveal + ${estimatedFee} commit fee)`);
109
+ }
110
+ // Select UTXOs
111
+ let selectedTotal = 0;
112
+ const selectedUtxos = [];
113
+ for (const utxo of sortedUtxos) {
114
+ selectedUtxos.push(utxo);
115
+ selectedTotal += utxo.value;
116
+ if (selectedTotal >= requiredTotal) {
117
+ break;
118
+ }
119
+ }
120
+ // Final calculation
121
+ const finalVsize = TX_OVERHEAD_VBYTES +
122
+ selectedUtxos.length * P2WPKH_INPUT_VBYTES +
123
+ P2TR_OUTPUT_VBYTES +
124
+ P2WPKH_OUTPUT_VBYTES;
125
+ const finalFee = Math.ceil(finalVsize * feeRate);
126
+ const changeAmount = selectedTotal - revealAmount - finalFee;
127
+ if (selectedTotal < revealAmount + finalFee) {
128
+ throw new Error(`Insufficient funds after UTXO selection: have ${selectedTotal} sats, need ${revealAmount + finalFee} sats`);
129
+ }
130
+ if (changeAmount < DUST_THRESHOLD) {
131
+ throw new Error(`Change amount ${changeAmount} is below dust threshold (${DUST_THRESHOLD} sats). Need more UTXOs or lower fee rate.`);
132
+ }
133
+ // Build the commit transaction
134
+ const tx = new btc.Transaction();
135
+ const senderP2wpkh = btc.p2wpkh(senderPubKey, btcNetwork);
136
+ for (const utxo of selectedUtxos) {
137
+ tx.addInput({
138
+ txid: utxo.txid,
139
+ index: utxo.vout,
140
+ witnessUtxo: {
141
+ script: senderP2wpkh.script,
142
+ amount: BigInt(utxo.value),
143
+ },
144
+ });
145
+ }
146
+ // Reveal output (Taproot address from child reveal script)
147
+ tx.addOutputAddress(p2trReveal.address, BigInt(revealAmount), btcNetwork);
148
+ // Change output
149
+ tx.addOutputAddress(senderAddress, BigInt(changeAmount), btcNetwork);
150
+ return {
151
+ tx,
152
+ fee: finalFee,
153
+ revealAddress: p2trReveal.address,
154
+ revealAmount,
155
+ revealScript: p2trReveal,
156
+ };
157
+ }
158
+ /**
159
+ * Build a child reveal transaction.
160
+ *
161
+ * 2 inputs, 2 outputs:
162
+ * Input[0]: Commit output (P2TR script-path spend with inscription witness)
163
+ * Input[1]: Parent UTXO (P2TR key-path spend)
164
+ * Output[0]: Parent return → owner's P2TR address (546 sats dust)
165
+ * Output[1]: Child inscription → recipient P2TR address (remaining sats)
166
+ */
167
+ export function buildChildRevealTransaction(options) {
168
+ const { commitTxid, commitVout, commitAmount, revealScript, parentUtxo, parentOwnerTaprootInternalPubKey, recipientAddress, feeRate, network, } = options;
169
+ if (!commitTxid || commitTxid.length !== 64) {
170
+ throw new Error("Invalid commit transaction ID");
171
+ }
172
+ if (commitVout < 0) {
173
+ throw new Error("Invalid commit output index");
174
+ }
175
+ if (commitAmount <= 0) {
176
+ throw new Error("Commit amount must be positive");
177
+ }
178
+ if (feeRate <= 0) {
179
+ throw new Error("Fee rate must be positive");
180
+ }
181
+ // Estimate reveal transaction size
182
+ const revealInputSize = P2TR_INPUT_BASE_VBYTES; // commit input
183
+ const parentInputSize = P2TR_INPUT_BASE_VBYTES; // parent key-path input
184
+ const revealWitnessSize = Math.ceil((revealScript.script?.byteLength || 0) / 4);
185
+ const revealTxSize = TX_OVERHEAD_VBYTES +
186
+ revealInputSize +
187
+ parentInputSize +
188
+ revealWitnessSize +
189
+ P2TR_OUTPUT_VBYTES * 2; // parent return + child output
190
+ const revealFee = Math.ceil(revealTxSize * feeRate);
191
+ // Total available from commit output + parent UTXO value
192
+ const totalInput = commitAmount + parentUtxo.value;
193
+ const parentReturnAmount = DUST_THRESHOLD; // 546 sats back to parent owner
194
+ const childOutputAmount = totalInput - revealFee - parentReturnAmount;
195
+ if (childOutputAmount < DUST_THRESHOLD) {
196
+ throw new Error(`Child output amount ${childOutputAmount} is below dust threshold (${DUST_THRESHOLD} sats)`);
197
+ }
198
+ // Build the reveal transaction
199
+ const btcNetwork = getBtcNetwork(network);
200
+ const tx = new btc.Transaction({
201
+ allowUnknownOutputs: true,
202
+ allowUnknownInputs: true,
203
+ });
204
+ // Input[0]: Commit output (script-path spend with inscription witness)
205
+ tx.addInput({
206
+ txid: commitTxid,
207
+ index: commitVout,
208
+ witnessUtxo: {
209
+ script: revealScript.script,
210
+ amount: BigInt(commitAmount),
211
+ },
212
+ tapLeafScript: revealScript.tapLeafScript,
213
+ });
214
+ // Input[1]: Parent UTXO (key-path spend)
215
+ const parentP2tr = btc.p2tr(parentOwnerTaprootInternalPubKey, undefined, btcNetwork);
216
+ tx.addInput({
217
+ txid: parentUtxo.txid,
218
+ index: parentUtxo.vout,
219
+ witnessUtxo: {
220
+ script: parentP2tr.script,
221
+ amount: BigInt(parentUtxo.value),
222
+ },
223
+ });
224
+ // Output[0]: Parent return → owner's P2TR address (dust)
225
+ tx.addOutputAddress(parentP2tr.address, BigInt(parentReturnAmount), btcNetwork);
226
+ // Output[1]: Child inscription → recipient P2TR address
227
+ tx.addOutputAddress(recipientAddress, BigInt(childOutputAmount), btcNetwork);
228
+ return {
229
+ tx,
230
+ fee: revealFee,
231
+ outputAmount: childOutputAmount,
232
+ };
233
+ }
234
+ /**
235
+ * Look up a parent inscription's current UTXO location via Xverse API.
236
+ *
237
+ * @param inscriptionId - Inscription ID (e.g., "abc123...i0")
238
+ * @returns Parent inscription UTXO info
239
+ */
240
+ export async function lookupParentInscription(inscriptionId) {
241
+ const url = `https://api-3.xverse.app/v1/ordinals/inscriptions/${inscriptionId}`;
242
+ const response = await fetch(url);
243
+ if (!response.ok) {
244
+ throw new Error(`Failed to look up inscription ${inscriptionId}: ${response.status} ${response.statusText}`);
245
+ }
246
+ const data = (await response.json());
247
+ if (!data.txid || data.vout === undefined || !data.value || !data.address) {
248
+ throw new Error(`Inscription ${inscriptionId} not found or missing UTXO data`);
249
+ }
250
+ return {
251
+ txid: data.txid,
252
+ vout: data.vout,
253
+ value: parseInt(data.value, 10),
254
+ address: data.address,
255
+ output: data.output || `${data.txid}:${data.vout}`,
256
+ };
257
+ }
258
+ //# sourceMappingURL=child-inscription-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"child-inscription-builder.js","sourceRoot":"","sources":["../../src/transactions/child-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.30.3",
3
+ "version": "1.32.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.30.3 # x-release-please-version
7
+ version: 1.32.0 # x-release-please-version
8
8
  npm: "@aibtc/mcp-server"
9
9
  github: https://github.com/aibtcdev/aibtc-mcp-server
10
10
  ---