@aibtc/mcp-server 1.30.2 → 1.31.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
|
@@ -350,6 +350,8 @@ Supports 10 assets: sBTC, aeUSDC, stSTX, wSTX, USDH, sUSDT, USDA, DIKO, ALEX, st
|
|
|
350
350
|
|
|
351
351
|
DEX aggregator that routes trades across multiple liquidity sources.
|
|
352
352
|
|
|
353
|
+
> **Units:** Bitflow tools default to **human units** (`amountUnit: "human"`). Pass `"2"` to swap 2 STX, not `"2000000"`. Set `amountUnit: "base"` only when working with raw on-chain integers. See [Units & Decimals guide](skill/references/stacks-defi.md#units--decimals-bitflow--defi) for details and common pitfalls.
|
|
354
|
+
|
|
353
355
|
| Tool | Description |
|
|
354
356
|
|------|-------------|
|
|
355
357
|
| `bitflow_get_ticker` | Get market data (no API key needed) |
|
|
@@ -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;
|
|
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"}
|
|
@@ -1,11 +1,31 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { getAccount, getWalletAddress, NETWORK } from "../services/x402.service.js";
|
|
3
3
|
import { getBitflowService } from "../services/bitflow.service.js";
|
|
4
|
+
import { getHiroApi } from "../services/hiro-api.js";
|
|
4
5
|
import { getExplorerTxUrl } from "../config/networks.js";
|
|
5
6
|
import { createJsonResponse, createErrorResponse, resolveFee } from "../utils/index.js";
|
|
6
7
|
const HIGH_IMPACT_THRESHOLD = 0.05; // 5%
|
|
7
8
|
/**
|
|
8
|
-
*
|
|
9
|
+
* How many times larger than the wallet balance an amount must be before
|
|
10
|
+
* we suspect the caller passed base-units instead of human-units.
|
|
11
|
+
*/
|
|
12
|
+
const AMOUNT_SCALE_SUSPICION_MULTIPLIER = 10;
|
|
13
|
+
/**
|
|
14
|
+
* Thrown by checkAmountScaling when the requested amount looks like it was
|
|
15
|
+
* supplied in base units instead of human units.
|
|
16
|
+
*/
|
|
17
|
+
class AmountUnitMismatchError extends Error {
|
|
18
|
+
code = "AMOUNT_UNIT_MISMATCH_SUSPECTED";
|
|
19
|
+
details;
|
|
20
|
+
constructor(message, details) {
|
|
21
|
+
super(message);
|
|
22
|
+
this.name = "AmountUnitMismatchError";
|
|
23
|
+
this.details = details;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Resolve amountIn to the human-unit number the Bitflow SDK expects,
|
|
28
|
+
* and return full interpretation metadata for auditability.
|
|
9
29
|
* When amountUnit is "human" (default), validates and passes through.
|
|
10
30
|
* When amountUnit is "base", converts from smallest units using token decimals.
|
|
11
31
|
*/
|
|
@@ -23,13 +43,144 @@ async function resolveAmountIn(bitflowService, tokenX, amountIn, amountUnit) {
|
|
|
23
43
|
if (!Number.isFinite(numeric)) {
|
|
24
44
|
throw new Error("Converted amount is too large to handle safely");
|
|
25
45
|
}
|
|
26
|
-
|
|
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 };
|
|
27
55
|
}
|
|
28
56
|
const numeric = Number(amountIn);
|
|
29
57
|
if (!Number.isFinite(numeric) || numeric <= 0) {
|
|
30
58
|
throw new Error("amountIn must be a positive number");
|
|
31
59
|
}
|
|
32
|
-
|
|
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 };
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Preflight guardrail: detect likely base-unit / human-unit confusion.
|
|
90
|
+
*
|
|
91
|
+
* When amountUnit is "human" and the requested amount is more than
|
|
92
|
+
* AMOUNT_SCALE_SUSPICION_MULTIPLIER times the wallet's actual balance of that
|
|
93
|
+
* token, we reject the call early with a structured error that explains the
|
|
94
|
+
* mismatch and shows corrected examples.
|
|
95
|
+
*
|
|
96
|
+
* This prevents wasted retries and failed transactions caused by an agent (or
|
|
97
|
+
* human) passing micro-unit values (e.g. 1_000_000 micro-STX) when the API
|
|
98
|
+
* expects human units (e.g. 1 STX).
|
|
99
|
+
*
|
|
100
|
+
* The check is skipped (silently passes) when:
|
|
101
|
+
* - amountUnit is "base" — the caller already opted into explicit unit
|
|
102
|
+
* conversion via resolveAmountIn, so no confusion is expected.
|
|
103
|
+
* - The wallet address cannot be resolved (no active session / no mnemonic),
|
|
104
|
+
* because we cannot fetch the balance without an address.
|
|
105
|
+
* - The balance fetch itself fails — we treat network errors as non-fatal so
|
|
106
|
+
* that a temporary API outage does not block all swap traffic.
|
|
107
|
+
*
|
|
108
|
+
* @throws Error with code AMOUNT_UNIT_MISMATCH_SUSPECTED when suspicious.
|
|
109
|
+
*/
|
|
110
|
+
async function checkAmountScaling(bitflowService, tokenX, humanAmount, amountIn, amountUnit) {
|
|
111
|
+
// Only guard the default "human" path — "base" users have already been
|
|
112
|
+
// explicit about their units.
|
|
113
|
+
if (amountUnit !== "human")
|
|
114
|
+
return;
|
|
115
|
+
let walletAddress;
|
|
116
|
+
try {
|
|
117
|
+
walletAddress = await getWalletAddress();
|
|
118
|
+
}
|
|
119
|
+
catch {
|
|
120
|
+
// No wallet unlocked / no mnemonic — skip the check rather than blocking.
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
try {
|
|
124
|
+
// Look up the token's decimals from the Bitflow token list.
|
|
125
|
+
// Fall back to 6 (micro-STX standard) if the token is unknown.
|
|
126
|
+
// NOTE: getAvailableTokens() is inside this try/catch so that a Bitflow
|
|
127
|
+
// API outage does not propagate as an uncaught error and block all swaps.
|
|
128
|
+
const tokens = await bitflowService.getAvailableTokens();
|
|
129
|
+
const tokenMeta = tokens.find((t) => t.id === tokenX);
|
|
130
|
+
const decimals = tokenMeta?.decimals ?? 6;
|
|
131
|
+
// Fetch the wallet's balance for this token.
|
|
132
|
+
// STX is identified in Bitflow as "token-stx".
|
|
133
|
+
const hiroApi = getHiroApi(NETWORK);
|
|
134
|
+
let walletBalanceHuman;
|
|
135
|
+
const isStx = tokenX === "token-stx";
|
|
136
|
+
if (isStx) {
|
|
137
|
+
const stxInfo = await hiroApi.getStxBalance(walletAddress);
|
|
138
|
+
// balance is in micro-STX; convert to STX (6 decimals)
|
|
139
|
+
walletBalanceHuman = Number(stxInfo.balance) / 10 ** 6;
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
const rawBalance = await hiroApi.getTokenBalance(walletAddress, tokenX);
|
|
143
|
+
walletBalanceHuman = Number(rawBalance) / 10 ** decimals;
|
|
144
|
+
}
|
|
145
|
+
// If the wallet has no balance at all, there is nothing to compare against.
|
|
146
|
+
if (walletBalanceHuman <= 0)
|
|
147
|
+
return;
|
|
148
|
+
const threshold = walletBalanceHuman * AMOUNT_SCALE_SUSPICION_MULTIPLIER;
|
|
149
|
+
if (humanAmount <= threshold)
|
|
150
|
+
return;
|
|
151
|
+
// The requested amount looks like it was supplied in base units.
|
|
152
|
+
// Build a helpful error with corrected examples.
|
|
153
|
+
const correctedHumanAmount = (humanAmount / 10 ** decimals).toFixed(decimals > 0 ? 6 : 0);
|
|
154
|
+
const baseEquivalent = Math.round(humanAmount * 10 ** decimals).toString();
|
|
155
|
+
throw new AmountUnitMismatchError(`AMOUNT_UNIT_MISMATCH_SUSPECTED: The requested amount (${humanAmount} in human units) is ` +
|
|
156
|
+
`${(humanAmount / walletBalanceHuman).toFixed(0)}x your wallet balance ` +
|
|
157
|
+
`(${walletBalanceHuman.toFixed(6)} ${tokenMeta?.symbol ?? tokenX}). ` +
|
|
158
|
+
`This strongly suggests you passed a base-unit value as a human-unit value. ` +
|
|
159
|
+
`To fix this, either:\n` +
|
|
160
|
+
` 1. Pass amountUnit="base" with amountIn="${Math.round(humanAmount)}" ` +
|
|
161
|
+
` (the SDK will convert ${Math.round(humanAmount)} base-units → ~${correctedHumanAmount} ${tokenMeta?.symbol ?? tokenX})\n` +
|
|
162
|
+
` 2. Pass amountUnit="human" (default) with amountIn="${correctedHumanAmount}" ` +
|
|
163
|
+
` (interpreted directly as ${correctedHumanAmount} ${tokenMeta?.symbol ?? tokenX})\n` +
|
|
164
|
+
` 3. If you really do intend to swap ${humanAmount} ${tokenMeta?.symbol ?? tokenX}, ` +
|
|
165
|
+
` first fund your wallet — it currently holds ${walletBalanceHuman.toFixed(6)} ${tokenMeta?.symbol ?? tokenX}.`, {
|
|
166
|
+
requestedAmountHuman: humanAmount,
|
|
167
|
+
requestedAmountInput: amountIn,
|
|
168
|
+
walletBalanceHuman,
|
|
169
|
+
tokenDecimals: decimals,
|
|
170
|
+
tokenSymbol: tokenMeta?.symbol ?? tokenX,
|
|
171
|
+
correctedHumanAmount: Number(correctedHumanAmount),
|
|
172
|
+
correctedBaseAmount: baseEquivalent,
|
|
173
|
+
suspicionMultiplier: AMOUNT_SCALE_SUSPICION_MULTIPLIER,
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
catch (err) {
|
|
177
|
+
// Re-throw only our own typed error — for anything else (Bitflow API down,
|
|
178
|
+
// balance lookup failed, network issue, unknown token, etc.) we silently
|
|
179
|
+
// skip the guard rather than blocking legitimate swaps.
|
|
180
|
+
if (err instanceof AmountUnitMismatchError)
|
|
181
|
+
throw err;
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
33
184
|
}
|
|
34
185
|
export function registerBitflowTools(server) {
|
|
35
186
|
// ==========================================================================
|
|
@@ -168,9 +319,7 @@ Note: Bitflow is only available on mainnet.`,
|
|
|
168
319
|
.describe("Amount of input token. Default interpretation is human units (e.g. '100' = 100 LEO)."),
|
|
169
320
|
amountUnit: z
|
|
170
321
|
.enum(["human", "base"])
|
|
171
|
-
.
|
|
172
|
-
.default("human")
|
|
173
|
-
.describe("Amount units: 'human' (default, frontend-style) or 'base' (smallest units)."),
|
|
322
|
+
.describe("Required. Amount units: 'human' (frontend-style decimal, e.g. '2' for 2 STX) or 'base' (smallest integer units, e.g. '2000000' for 2 STX)."),
|
|
174
323
|
},
|
|
175
324
|
}, async ({ tokenX, tokenY, amountIn, amountUnit }) => {
|
|
176
325
|
try {
|
|
@@ -181,7 +330,8 @@ Note: Bitflow is only available on mainnet.`,
|
|
|
181
330
|
});
|
|
182
331
|
}
|
|
183
332
|
const bitflowService = getBitflowService(NETWORK);
|
|
184
|
-
const normalizedAmountIn = await resolveAmountIn(bitflowService, tokenX, amountIn, amountUnit);
|
|
333
|
+
const { normalizedAmountIn, amountMetadata } = await resolveAmountIn(bitflowService, tokenX, amountIn, amountUnit);
|
|
334
|
+
await checkAmountScaling(bitflowService, tokenX, normalizedAmountIn, amountIn, amountUnit);
|
|
185
335
|
const quote = await bitflowService.getSwapQuote(tokenX, tokenY, normalizedAmountIn);
|
|
186
336
|
const priceImpact = quote.priceImpact;
|
|
187
337
|
const highImpactWarning = priceImpact && priceImpact.combinedImpact > HIGH_IMPACT_THRESHOLD
|
|
@@ -196,6 +346,7 @@ Note: Bitflow is only available on mainnet.`,
|
|
|
196
346
|
amountUnit,
|
|
197
347
|
normalizedAmountIn,
|
|
198
348
|
},
|
|
349
|
+
amountMetadata,
|
|
199
350
|
quote,
|
|
200
351
|
priceImpact,
|
|
201
352
|
highImpactWarning,
|
|
@@ -261,9 +412,7 @@ Note: Bitflow is only available on mainnet.`,
|
|
|
261
412
|
.describe("Amount of input token. Default interpretation is human units (e.g. '100' = 100 LEO)."),
|
|
262
413
|
amountUnit: z
|
|
263
414
|
.enum(["human", "base"])
|
|
264
|
-
.
|
|
265
|
-
.default("human")
|
|
266
|
-
.describe("Amount units: 'human' (default, frontend-style) or 'base' (smallest units)."),
|
|
415
|
+
.describe("Required. Amount units: 'human' (frontend-style decimal, e.g. '2' for 2 STX) or 'base' (smallest integer units, e.g. '2000000' for 2 STX)."),
|
|
267
416
|
slippageTolerance: z
|
|
268
417
|
.number()
|
|
269
418
|
.optional()
|
|
@@ -288,7 +437,8 @@ Note: Bitflow is only available on mainnet.`,
|
|
|
288
437
|
});
|
|
289
438
|
}
|
|
290
439
|
const bitflowService = getBitflowService(NETWORK);
|
|
291
|
-
const normalizedAmountIn = await resolveAmountIn(bitflowService, tokenX, amountIn, amountUnit);
|
|
440
|
+
const { normalizedAmountIn, amountMetadata } = await resolveAmountIn(bitflowService, tokenX, amountIn, amountUnit);
|
|
441
|
+
await checkAmountScaling(bitflowService, tokenX, normalizedAmountIn, amountIn, amountUnit);
|
|
292
442
|
// Safety check: require explicit confirmation for high-impact swaps
|
|
293
443
|
const quote = await bitflowService.getSwapQuote(tokenX, tokenY, normalizedAmountIn);
|
|
294
444
|
const impact = quote.priceImpact;
|
|
@@ -296,6 +446,7 @@ Note: Bitflow is only available on mainnet.`,
|
|
|
296
446
|
return createJsonResponse({
|
|
297
447
|
error: "High price impact swap requires explicit confirmation",
|
|
298
448
|
message: `This swap has ${impact.combinedImpactPct} price impact (${impact.severity}). Set confirmHighImpact=true to proceed.`,
|
|
449
|
+
amountMetadata,
|
|
299
450
|
quote,
|
|
300
451
|
threshold: `${(HIGH_IMPACT_THRESHOLD * 100).toFixed(0)}%`,
|
|
301
452
|
requiredParam: "confirmHighImpact",
|
|
@@ -316,6 +467,7 @@ Note: Bitflow is only available on mainnet.`,
|
|
|
316
467
|
slippageTolerance: slippageTolerance || 0.01,
|
|
317
468
|
priceImpact: impact,
|
|
318
469
|
},
|
|
470
|
+
amountMetadata,
|
|
319
471
|
network: NETWORK,
|
|
320
472
|
explorerUrl: getExplorerTxUrl(result.txid, NETWORK),
|
|
321
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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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aibtc/mcp-server",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.31.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.
|
|
7
|
+
version: 1.31.0 # x-release-please-version
|
|
8
8
|
npm: "@aibtc/mcp-server"
|
|
9
9
|
github: https://github.com/aibtcdev/aibtc-mcp-server
|
|
10
10
|
---
|
|
@@ -100,6 +100,78 @@ Uses `sbtc_get_balance`.
|
|
|
100
100
|
| `sbtc_transfer` | Send sBTC to address |
|
|
101
101
|
| `sbtc_get_peg_info` | Get peg ratio and supply |
|
|
102
102
|
|
|
103
|
+
## Units & Decimals (Bitflow / DeFi)
|
|
104
|
+
|
|
105
|
+
All Bitflow tools accept an `amountUnit` parameter that controls how `amountIn` is interpreted.
|
|
106
|
+
|
|
107
|
+
### Quick Reference
|
|
108
|
+
|
|
109
|
+
| Token | Decimals | 1 human unit | Base units |
|
|
110
|
+
|-------|----------|-------------|------------|
|
|
111
|
+
| STX | 6 | `1` | `1000000` |
|
|
112
|
+
| sBTC | 8 | `1` | `100000000`|
|
|
113
|
+
|
|
114
|
+
**Default is `"human"` (frontend-style).** Pass `amountUnit: "base"` only when you already have a raw integer from on-chain data.
|
|
115
|
+
|
|
116
|
+
### Human vs Base Examples
|
|
117
|
+
|
|
118
|
+
| What you want to swap | amountUnit | amountIn |
|
|
119
|
+
|----------------------|------------|--------------|
|
|
120
|
+
| 2 STX | `"human"` | `"2"` |
|
|
121
|
+
| 2 STX (base) | `"base"` | `"2000000"` |
|
|
122
|
+
| 0.00000794 sBTC | `"human"` | `"0.00000794"` |
|
|
123
|
+
| 794 sats of sBTC | `"base"` | `"794"` |
|
|
124
|
+
|
|
125
|
+
### bitflow_get_quote Example
|
|
126
|
+
|
|
127
|
+
Get a quote for swapping 2 STX to sBTC:
|
|
128
|
+
|
|
129
|
+
```
|
|
130
|
+
# Human units (default) — "2 STX"
|
|
131
|
+
bitflow_get_quote(tokenX="token-stx", tokenY="token-sbtc", amountIn="2")
|
|
132
|
+
|
|
133
|
+
# Equivalent in base units — "2000000 micro-STX"
|
|
134
|
+
bitflow_get_quote(tokenX="token-stx", tokenY="token-sbtc", amountIn="2000000", amountUnit="base")
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
Both calls produce the same quote. The server converts base to human internally.
|
|
138
|
+
|
|
139
|
+
### bitflow_swap Example
|
|
140
|
+
|
|
141
|
+
Swap 2 STX for sBTC:
|
|
142
|
+
|
|
143
|
+
```
|
|
144
|
+
# Human units (default)
|
|
145
|
+
bitflow_swap(tokenX="token-stx", tokenY="token-sbtc", amountIn="2")
|
|
146
|
+
|
|
147
|
+
# Equivalent in base units
|
|
148
|
+
bitflow_swap(tokenX="token-stx", tokenY="token-sbtc", amountIn="2000000", amountUnit="base")
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
### WARNING: Double-Scaling Error
|
|
152
|
+
|
|
153
|
+
The most common mistake is passing a value that has already been scaled to base units while leaving `amountUnit` at the default `"human"`.
|
|
154
|
+
|
|
155
|
+
**Wrong — double-scaled:**
|
|
156
|
+
```
|
|
157
|
+
# WRONG: "2000000" interpreted as 2,000,000 STX (human), which becomes
|
|
158
|
+
# 2,000,000,000,000 micro-STX internally — 1 million times too large!
|
|
159
|
+
bitflow_swap(tokenX="token-stx", tokenY="token-sbtc", amountIn="2000000")
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
**Correct — either of these:**
|
|
163
|
+
```
|
|
164
|
+
# Option A: pass the human amount directly
|
|
165
|
+
bitflow_swap(tokenX="token-stx", tokenY="token-sbtc", amountIn="2")
|
|
166
|
+
|
|
167
|
+
# Option B: pass base units with the flag
|
|
168
|
+
bitflow_swap(tokenX="token-stx", tokenY="token-sbtc", amountIn="2000000", amountUnit="base")
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
**Rule of thumb:** If your number looks like a raw integer from a balance query or on-chain read, set `amountUnit: "base"`. If it looks like what a human would type (e.g. "2", "0.5"), use the default.
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
103
175
|
## ALEX DEX (Mainnet Only)
|
|
104
176
|
|
|
105
177
|
Decentralized exchange for token swaps on Stacks.
|
|
@@ -143,6 +215,43 @@ Uses `alex_swap` - handles routing, wrapping, and post-conditions automatically.
|
|
|
143
215
|
| `alex_swap` | Execute token swap |
|
|
144
216
|
| `alex_get_pool_info` | Get pool reserves |
|
|
145
217
|
|
|
218
|
+
## Bitflow DEX (Mainnet Only)
|
|
219
|
+
|
|
220
|
+
DEX aggregator that routes trades across multiple liquidity sources on Stacks.
|
|
221
|
+
|
|
222
|
+
See [Units & Decimals](#units--decimals-bitflow--defi) above for amount handling.
|
|
223
|
+
|
|
224
|
+
### Get Quote
|
|
225
|
+
|
|
226
|
+
Check expected output before swapping:
|
|
227
|
+
|
|
228
|
+
```
|
|
229
|
+
"Get a Bitflow quote for 2 STX to sBTC"
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
Uses `bitflow_get_quote` with token IDs (`token-stx`, `token-sbtc`, etc).
|
|
233
|
+
|
|
234
|
+
### Execute Swap
|
|
235
|
+
|
|
236
|
+
Swap tokens:
|
|
237
|
+
|
|
238
|
+
```
|
|
239
|
+
"Swap 2 STX for sBTC on Bitflow"
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
Uses `bitflow_swap` — finds the best route automatically. Requires an unlocked wallet.
|
|
243
|
+
|
|
244
|
+
### Bitflow Tool Reference
|
|
245
|
+
|
|
246
|
+
| Tool | Description |
|
|
247
|
+
|------|-------------|
|
|
248
|
+
| `bitflow_get_ticker` | Get market data (no API key needed) |
|
|
249
|
+
| `bitflow_get_tokens` | List available swap tokens |
|
|
250
|
+
| `bitflow_get_swap_targets` | Get possible output tokens for a given input |
|
|
251
|
+
| `bitflow_get_routes` | Get all routes between two tokens |
|
|
252
|
+
| `bitflow_get_quote` | Get swap quote with price impact |
|
|
253
|
+
| `bitflow_swap` | Execute token swap |
|
|
254
|
+
|
|
146
255
|
## Zest Protocol (Mainnet Only)
|
|
147
256
|
|
|
148
257
|
Lending and borrowing protocol for earning yield on assets.
|