@continuumdao/ctm-mpc-defi 0.2.24 → 0.2.26
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/dist/agent/catalog.cjs +1070 -19
- package/dist/agent/catalog.cjs.map +1 -1
- package/dist/agent/catalog.d.ts +2384 -1
- package/dist/agent/catalog.js +1027 -20
- package/dist/agent/catalog.js.map +1 -1
- package/dist/agent/skills/arcus/SKILL.md +76 -0
- package/dist/agent/skills/gmx/SKILL.md +2 -0
- package/dist/agent/skills/hyperliquid/SKILL.md +12 -3
- package/dist/agent/skills/morpho/SKILL.md +39 -0
- package/dist/agent/skills/uniswap-v4/SKILL.md +5 -0
- package/dist/agent/skills/venice/SKILL.md +29 -0
- package/dist/core/index.cjs +55 -0
- package/dist/core/index.cjs.map +1 -1
- package/dist/core/index.d.ts +28 -2
- package/dist/core/index.js +54 -1
- package/dist/core/index.js.map +1 -1
- package/dist/index.cjs +55 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +54 -1
- package/dist/index.js.map +1 -1
- package/dist/protocols/evm/arcus/index.cjs +2068 -0
- package/dist/protocols/evm/arcus/index.cjs.map +1 -0
- package/dist/protocols/evm/arcus/index.d.ts +728 -0
- package/dist/protocols/evm/arcus/index.js +1970 -0
- package/dist/protocols/evm/arcus/index.js.map +1 -0
- package/dist/protocols/evm/morpho/index.cjs +76 -2
- package/dist/protocols/evm/morpho/index.cjs.map +1 -1
- package/dist/protocols/evm/morpho/index.d.ts +22 -1
- package/dist/protocols/evm/morpho/index.js +68 -3
- package/dist/protocols/evm/morpho/index.js.map +1 -1
- package/dist/protocols/evm/uniswap-v4/index.cjs.map +1 -1
- package/dist/protocols/evm/uniswap-v4/index.d.ts +1 -1
- package/dist/protocols/evm/uniswap-v4/index.js.map +1 -1
- package/dist/protocols/evm/venice/index.cjs +936 -0
- package/dist/protocols/evm/venice/index.cjs.map +1 -0
- package/dist/protocols/evm/venice/index.d.ts +238 -0
- package/dist/protocols/evm/venice/index.js +901 -0
- package/dist/protocols/evm/venice/index.js.map +1 -0
- package/package.json +11 -1
package/dist/agent/catalog.js
CHANGED
|
@@ -6,6 +6,36 @@ import { fileURLToPath } from 'url';
|
|
|
6
6
|
import { readFileSync } from 'fs';
|
|
7
7
|
import { join, dirname } from 'path';
|
|
8
8
|
|
|
9
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
10
|
+
var __esm = (fn, res) => function __init() {
|
|
11
|
+
return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
// src/protocols/evm/arcus/support.ts
|
|
15
|
+
function isArcusChainSupported(chainId) {
|
|
16
|
+
return ARCUS_SUPPORTED_CHAIN_IDS.includes(chainId);
|
|
17
|
+
}
|
|
18
|
+
var ARCUS_SUPPORTED_CHAIN_IDS;
|
|
19
|
+
var init_support = __esm({
|
|
20
|
+
"src/protocols/evm/arcus/support.ts"() {
|
|
21
|
+
ARCUS_SUPPORTED_CHAIN_IDS = [4663];
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
// src/protocols/evm/arcus/constants.ts
|
|
26
|
+
var ARCUS_PROTOCOL_ID;
|
|
27
|
+
var init_constants = __esm({
|
|
28
|
+
"src/protocols/evm/arcus/constants.ts"() {
|
|
29
|
+
ARCUS_PROTOCOL_ID = "arcus";
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
// src/protocols/evm/arcus/api.ts
|
|
34
|
+
var init_api = __esm({
|
|
35
|
+
"src/protocols/evm/arcus/api.ts"() {
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
|
|
9
39
|
// src/core/registry.ts
|
|
10
40
|
var modules = [];
|
|
11
41
|
function registerProtocolModule(mod) {
|
|
@@ -1321,6 +1351,54 @@ var mcpCurveDaoBuildSwapMultisignInputSchema = withMultisignKeySourceRefine(
|
|
|
1321
1351
|
})
|
|
1322
1352
|
)
|
|
1323
1353
|
);
|
|
1354
|
+
|
|
1355
|
+
// src/protocols/evm/morpho/robinhoodEarn.ts
|
|
1356
|
+
var ROBINHOOD_CHAIN_ID = 4663;
|
|
1357
|
+
var ROBINHOOD_EARN_VAULT_ADDRESS = "0xBeEff033F34C046626B8D0A041844C5d1A5409dd";
|
|
1358
|
+
var ROBINHOOD_EARN_VAULT_SYMBOL = "steakUSDG";
|
|
1359
|
+
var ROBINHOOD_EARN_VAULT_NAME = "Steakhouse USDG";
|
|
1360
|
+
var ROBINHOOD_EARN_USDG_ADDRESS = "0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168";
|
|
1361
|
+
var ROBINHOOD_EARN_QUERY_ALIASES = [
|
|
1362
|
+
"robinhood earn",
|
|
1363
|
+
"robinhood-earn",
|
|
1364
|
+
"robinhood",
|
|
1365
|
+
"earn usdg",
|
|
1366
|
+
"steakhouse usdg",
|
|
1367
|
+
"steakusd g"
|
|
1368
|
+
];
|
|
1369
|
+
function normalizeRobinhoodEarnQuery(query) {
|
|
1370
|
+
return query.trim().toLowerCase().replace(/\s+/g, " ");
|
|
1371
|
+
}
|
|
1372
|
+
function isRobinhoodEarnQuery(query) {
|
|
1373
|
+
if (!query?.trim()) return false;
|
|
1374
|
+
const q = normalizeRobinhoodEarnQuery(query);
|
|
1375
|
+
if (q === ROBINHOOD_EARN_VAULT_ADDRESS.toLowerCase()) return true;
|
|
1376
|
+
return ROBINHOOD_EARN_QUERY_ALIASES.some((alias) => q === alias || q.includes(alias));
|
|
1377
|
+
}
|
|
1378
|
+
function isRobinhoodEarnProductFlag(raw) {
|
|
1379
|
+
if (raw === true || raw === "true") return true;
|
|
1380
|
+
if (typeof raw !== "string") return false;
|
|
1381
|
+
const v = raw.trim().toLowerCase();
|
|
1382
|
+
return v === "robinhood-earn" || v === "robinhood_earn" || v === "robinhood earn";
|
|
1383
|
+
}
|
|
1384
|
+
function applyRobinhoodEarnMultisignDefaults(o) {
|
|
1385
|
+
const flagged = o.robinhoodEarn === true || isRobinhoodEarnProductFlag(o.robinhoodEarn) || isRobinhoodEarnProductFlag(o.product) || isRobinhoodEarnQuery(String(o.query ?? o.vaultName ?? ""));
|
|
1386
|
+
if (!flagged) return;
|
|
1387
|
+
const chainRaw = o.chainId;
|
|
1388
|
+
const chainId = chainRaw == null || chainRaw === "" ? ROBINHOOD_CHAIN_ID : typeof chainRaw === "number" ? chainRaw : Number.parseInt(String(chainRaw), chainRaw.toString().startsWith("0x") ? 16 : 10);
|
|
1389
|
+
if (!Number.isFinite(chainId) || chainId !== ROBINHOOD_CHAIN_ID) return;
|
|
1390
|
+
if (chainRaw == null || chainRaw === "") o.chainId = ROBINHOOD_CHAIN_ID;
|
|
1391
|
+
const vaultAddr = o.vaultAddress ?? o.vault ?? ROBINHOOD_EARN_VAULT_ADDRESS;
|
|
1392
|
+
o.vaultAddress = vaultAddr;
|
|
1393
|
+
o.vault = vaultAddr;
|
|
1394
|
+
const underlyingAddr = o.underlyingAddress ?? o.underlying ?? ROBINHOOD_EARN_USDG_ADDRESS;
|
|
1395
|
+
o.underlyingAddress = underlyingAddr;
|
|
1396
|
+
o.underlying = underlyingAddr;
|
|
1397
|
+
o.vaultName = o.vaultName ?? ROBINHOOD_EARN_VAULT_NAME;
|
|
1398
|
+
o.vaultSymbol = o.vaultSymbol ?? ROBINHOOD_EARN_VAULT_SYMBOL;
|
|
1399
|
+
}
|
|
1400
|
+
|
|
1401
|
+
// src/agent/schemas/morpho.ts
|
|
1324
1402
|
var morphoExposureRowSchema = z.object({
|
|
1325
1403
|
label: z.string(),
|
|
1326
1404
|
allocatedUsdLabel: z.string(),
|
|
@@ -1329,6 +1407,7 @@ var morphoExposureRowSchema = z.object({
|
|
|
1329
1407
|
function preprocessMorphoVaultDepositInput(raw) {
|
|
1330
1408
|
if (!raw || typeof raw !== "object" || Array.isArray(raw)) return raw;
|
|
1331
1409
|
const o = { ...raw };
|
|
1410
|
+
applyRobinhoodEarnMultisignDefaults(o);
|
|
1332
1411
|
const vaultAddr = o.vaultAddress ?? o.vault;
|
|
1333
1412
|
if (vaultAddr != null) {
|
|
1334
1413
|
o.vaultAddress = vaultAddr;
|
|
@@ -1351,6 +1430,7 @@ function preprocessMorphoVaultDepositInput(raw) {
|
|
|
1351
1430
|
function preprocessMorphoVaultWithdrawInput(raw) {
|
|
1352
1431
|
if (!raw || typeof raw !== "object" || Array.isArray(raw)) return raw;
|
|
1353
1432
|
const o = { ...raw };
|
|
1433
|
+
applyRobinhoodEarnMultisignDefaults(o);
|
|
1354
1434
|
const vaultAddr = o.vaultAddress ?? o.vault;
|
|
1355
1435
|
if (vaultAddr != null) {
|
|
1356
1436
|
o.vaultAddress = vaultAddr;
|
|
@@ -1368,7 +1448,9 @@ function preprocessMorphoVaultWithdrawInput(raw) {
|
|
|
1368
1448
|
var mcpMorphoFetchEarnVaultsInputSchema = z.object({
|
|
1369
1449
|
chainId: agentEvmChainIdSchema,
|
|
1370
1450
|
underlying: z.string().trim().min(1).optional().describe("Deposit asset symbol (e.g. USDC) or ERC-20 address. Omit to search all listed vaults on the chain."),
|
|
1371
|
-
query: z.string().trim().min(1).optional().describe(
|
|
1451
|
+
query: z.string().trim().min(1).optional().describe(
|
|
1452
|
+
'Case-insensitive filter on vault name, symbol, address, or underlying symbol (e.g. Steakhouse, bbqUSDC). On chain 4663, "robinhood earn" resolves to Steakhouse USDG (Robinhood Earn vault).'
|
|
1453
|
+
),
|
|
1372
1454
|
limit: agentCoercedOptionalIntSchema(z.number().int().min(1).max(200)).describe("Max rows (default 50).")
|
|
1373
1455
|
});
|
|
1374
1456
|
var mcpMorphoFetchEarnVaultsOutputSchema = z.object({
|
|
@@ -1613,6 +1695,79 @@ var mcpEulerV2CollateralWithdrawInputSchema = mcpMultisignInput({
|
|
|
1613
1695
|
collateralAsset: evmAddressSchema,
|
|
1614
1696
|
amountHuman: z.string().min(1)
|
|
1615
1697
|
});
|
|
1698
|
+
var mcpVeniceStakeVvvInputSchema = mcpMultisignInput({
|
|
1699
|
+
amountHuman: z.string().min(1)
|
|
1700
|
+
});
|
|
1701
|
+
var mcpVeniceInitiateUnstakeSvvvInputSchema = mcpMultisignInput({
|
|
1702
|
+
amountHuman: z.string().min(1)
|
|
1703
|
+
});
|
|
1704
|
+
var mcpVeniceCompleteUnstakeSvvvInputSchema = mcpMultisignInput({});
|
|
1705
|
+
var mcpVeniceMintDiemInputSchema = mcpMultisignInput({
|
|
1706
|
+
svvvLockAmountHuman: z.string().min(1),
|
|
1707
|
+
slippageBps: z.number().int().min(0).max(1e4).optional()
|
|
1708
|
+
});
|
|
1709
|
+
var mcpVeniceBurnDiemInputSchema = mcpMultisignInput({
|
|
1710
|
+
amountHuman: z.string().min(1)
|
|
1711
|
+
});
|
|
1712
|
+
var mcpVeniceStakeDiemInputSchema = mcpMultisignInput({
|
|
1713
|
+
amountHuman: z.string().min(1)
|
|
1714
|
+
});
|
|
1715
|
+
var mcpVeniceInitiateUnstakeDiemInputSchema = mcpMultisignInput({
|
|
1716
|
+
amountHuman: z.string().min(1)
|
|
1717
|
+
});
|
|
1718
|
+
var mcpVeniceCompleteUnstakeDiemInputSchema = mcpMultisignInput({});
|
|
1719
|
+
var mcpVeniceListModelsInputSchema = z.object({
|
|
1720
|
+
type: z.string().optional().describe("Model type filter: text, image, video, all, etc."),
|
|
1721
|
+
apiKey: z.string().min(1).optional().describe("Injected from VENICE_API_KEY node Variable \u2014 do not pass")
|
|
1722
|
+
});
|
|
1723
|
+
var mcpVeniceReadStakingStateInputSchema = z.object({
|
|
1724
|
+
rpcUrl: z.string().min(1),
|
|
1725
|
+
executorAddress: evmAddressSchema,
|
|
1726
|
+
chainId: agentEvmChainIdSchema.optional().describe("Default 8453 (Base)")
|
|
1727
|
+
});
|
|
1728
|
+
var mcpVeniceReadMintDiemPreviewInputSchema = z.object({
|
|
1729
|
+
rpcUrl: z.string().min(1),
|
|
1730
|
+
svvvLockAmountHuman: z.string().min(1)
|
|
1731
|
+
});
|
|
1732
|
+
var mcpVeniceListModelsOutputSchema = z.object({
|
|
1733
|
+
type: z.string(),
|
|
1734
|
+
count: z.number(),
|
|
1735
|
+
models: z.array(
|
|
1736
|
+
z.object({
|
|
1737
|
+
id: z.string(),
|
|
1738
|
+
type: z.string().optional(),
|
|
1739
|
+
offline: z.boolean().optional(),
|
|
1740
|
+
beta: z.boolean().optional()
|
|
1741
|
+
})
|
|
1742
|
+
)
|
|
1743
|
+
});
|
|
1744
|
+
var mcpVeniceReadStakingStateOutputSchema = z.object({
|
|
1745
|
+
chainId: z.number(),
|
|
1746
|
+
wallet: z.string(),
|
|
1747
|
+
balances: z.object({
|
|
1748
|
+
vvvWei: z.string(),
|
|
1749
|
+
svvvWei: z.string(),
|
|
1750
|
+
diemWei: z.string(),
|
|
1751
|
+
diemStakedWei: z.string()
|
|
1752
|
+
}),
|
|
1753
|
+
diemCooldown: z.object({
|
|
1754
|
+
pendingUnstakeWei: z.string(),
|
|
1755
|
+
unlockAtSec: z.string(),
|
|
1756
|
+
cooldownDurationSec: z.string()
|
|
1757
|
+
}),
|
|
1758
|
+
svvvCooldownDurationSec: z.string(),
|
|
1759
|
+
mintRateSvvcPerDiem: z.number(),
|
|
1760
|
+
diemTotalSupplyWei: z.string(),
|
|
1761
|
+
estimatedApiCreditUsdPerDay: z.string()
|
|
1762
|
+
});
|
|
1763
|
+
var mcpVeniceReadMintDiemPreviewOutputSchema = z.object({
|
|
1764
|
+
svvvLockAmountHuman: z.string(),
|
|
1765
|
+
svvvLockWei: z.string(),
|
|
1766
|
+
mintRateSvvcPerDiem: z.number(),
|
|
1767
|
+
expectedDiemWei: z.string(),
|
|
1768
|
+
diemTotalSupplyWei: z.string(),
|
|
1769
|
+
stakingContract: z.string()
|
|
1770
|
+
});
|
|
1616
1771
|
var mcpMorphoVaultDepositInputSchema = withMultisignKeySourceRefine(
|
|
1617
1772
|
z.preprocess(
|
|
1618
1773
|
preprocessMorphoVaultDepositInput,
|
|
@@ -1626,6 +1781,9 @@ var mcpMorphoVaultDepositInputSchema = withMultisignKeySourceRefine(
|
|
|
1626
1781
|
amountHuman: z.string().min(1).describe('Human-readable deposit amount (e.g. "1000" USDC).'),
|
|
1627
1782
|
vaultName: z.string().optional().describe("Optional vaultName from fetch row (fills purposeText when omitted)."),
|
|
1628
1783
|
vaultSymbol: z.string().optional().describe("Optional vaultSymbol from fetch row."),
|
|
1784
|
+
robinhoodEarn: agentOptionalBooleanSchema().describe(
|
|
1785
|
+
"When true on chain 4663, pre-fills Robinhood Earn vault (Steakhouse USDG / steakUSDG) and USDG underlying."
|
|
1786
|
+
),
|
|
1629
1787
|
isNativeIn: agentOptionalBooleanSchema()
|
|
1630
1788
|
})
|
|
1631
1789
|
)
|
|
@@ -1639,7 +1797,10 @@ var mcpMorphoVaultWithdrawInputSchema = withMultisignKeySourceRefine(
|
|
|
1639
1797
|
),
|
|
1640
1798
|
amountHuman: z.string().min(1),
|
|
1641
1799
|
vaultName: z.string().optional(),
|
|
1642
|
-
vaultSymbol: z.string().optional()
|
|
1800
|
+
vaultSymbol: z.string().optional(),
|
|
1801
|
+
robinhoodEarn: agentOptionalBooleanSchema().describe(
|
|
1802
|
+
"When true on chain 4663, pre-fills Robinhood Earn vault (Steakhouse USDG / steakUSDG)."
|
|
1803
|
+
)
|
|
1643
1804
|
})
|
|
1644
1805
|
)
|
|
1645
1806
|
);
|
|
@@ -2236,6 +2397,213 @@ var mcpHyperliquidUpdateLeverageInputSchema = mcpHyperliquidMultisignInput(
|
|
|
2236
2397
|
},
|
|
2237
2398
|
preprocessHyperliquidCoinInput
|
|
2238
2399
|
);
|
|
2400
|
+
var arcusFetchChainInputSchema = z.object({
|
|
2401
|
+
chainId: z.coerce.number().int().positive().default(4663).describe("Robinhood Chain (4663).")
|
|
2402
|
+
});
|
|
2403
|
+
var arcusOhlcvCandleSchema = z.object({
|
|
2404
|
+
timestampMs: z.number(),
|
|
2405
|
+
open: z.string(),
|
|
2406
|
+
high: z.string(),
|
|
2407
|
+
low: z.string(),
|
|
2408
|
+
close: z.string(),
|
|
2409
|
+
volume: z.string()
|
|
2410
|
+
});
|
|
2411
|
+
var arcusOhlcvEnvelopeSchema = z.object({
|
|
2412
|
+
ohlcv: z.object({
|
|
2413
|
+
market: z.string().optional(),
|
|
2414
|
+
coin: z.string().optional(),
|
|
2415
|
+
tokenAddress: z.string().optional(),
|
|
2416
|
+
interval: z.string(),
|
|
2417
|
+
marketKind: z.enum(["perp", "spot"]).optional(),
|
|
2418
|
+
candles: z.array(arcusOhlcvCandleSchema),
|
|
2419
|
+
candleCount: z.number().optional(),
|
|
2420
|
+
latestCandle: arcusOhlcvCandleSchema.nullable().optional(),
|
|
2421
|
+
dataSource: z.literal("arcus").optional()
|
|
2422
|
+
}),
|
|
2423
|
+
dataSource: z.literal("arcus").optional(),
|
|
2424
|
+
chainId: z.number().optional(),
|
|
2425
|
+
resolvedMarket: z.string().optional()
|
|
2426
|
+
});
|
|
2427
|
+
function mcpArcusMultisignInput(fields) {
|
|
2428
|
+
return withMultisignKeySourceRefine(
|
|
2429
|
+
evmMultisignCommonInputSchema.extend({
|
|
2430
|
+
secp256k1KeyGenId: z.string().min(1).describe("Custody secp256k1 KeyGen id (billing + executor address)."),
|
|
2431
|
+
ed25519KeyGenId: z.string().min(1).describe("Paired ed25519 KeyGen id (same GroupId) for Arcus API signing."),
|
|
2432
|
+
...fields
|
|
2433
|
+
})
|
|
2434
|
+
);
|
|
2435
|
+
}
|
|
2436
|
+
var mcpArcusFetchMarketsInputSchema = arcusFetchChainInputSchema;
|
|
2437
|
+
var mcpArcusFetchMarketsOutputSchema = z.object({
|
|
2438
|
+
markets: z.array(
|
|
2439
|
+
z.object({
|
|
2440
|
+
marketDisplayName: z.string(),
|
|
2441
|
+
marketId: z.number(),
|
|
2442
|
+
baseAsset: z.string().optional(),
|
|
2443
|
+
category: z.string().optional(),
|
|
2444
|
+
status: z.string().optional(),
|
|
2445
|
+
markPrice: z.string().nullable().optional()
|
|
2446
|
+
})
|
|
2447
|
+
),
|
|
2448
|
+
marketKind: z.literal("perp")
|
|
2449
|
+
});
|
|
2450
|
+
var mcpArcusSearchMarketsInputSchema = arcusFetchChainInputSchema.extend({
|
|
2451
|
+
query: z.string().min(1),
|
|
2452
|
+
limit: z.coerce.number().int().positive().max(50).optional()
|
|
2453
|
+
});
|
|
2454
|
+
var mcpArcusSearchMarketsOutputSchema = mcpArcusFetchMarketsOutputSchema;
|
|
2455
|
+
var mcpArcusFetchOhlcvInputSchema = arcusFetchChainInputSchema.extend({
|
|
2456
|
+
market: z.string().optional(),
|
|
2457
|
+
coin: z.string().optional(),
|
|
2458
|
+
interval: z.string().optional(),
|
|
2459
|
+
lookbackDays: z.coerce.number().positive().optional(),
|
|
2460
|
+
lookbackHours: z.coerce.number().positive().optional(),
|
|
2461
|
+
candleCount: z.coerce.number().int().positive().max(1500).optional()
|
|
2462
|
+
});
|
|
2463
|
+
var mcpArcusFetchOhlcvOutputSchema = arcusOhlcvEnvelopeSchema;
|
|
2464
|
+
var mcpArcusSpotFetchMarketsInputSchema = arcusFetchChainInputSchema;
|
|
2465
|
+
var mcpArcusSpotFetchMarketsOutputSchema = z.object({
|
|
2466
|
+
tokens: z.array(
|
|
2467
|
+
z.object({
|
|
2468
|
+
ticker: z.string(),
|
|
2469
|
+
contractAddress: z.string(),
|
|
2470
|
+
name: z.string(),
|
|
2471
|
+
logoUrl: z.string().nullable().optional(),
|
|
2472
|
+
price: z.string().nullable().optional()
|
|
2473
|
+
})
|
|
2474
|
+
),
|
|
2475
|
+
marketKind: z.literal("spot")
|
|
2476
|
+
});
|
|
2477
|
+
var mcpArcusSpotFetchOhlcvInputSchema = arcusFetchChainInputSchema.extend({
|
|
2478
|
+
ticker: z.string().optional(),
|
|
2479
|
+
tokenAddress: z.string().optional(),
|
|
2480
|
+
currencySymbol: z.string().optional(),
|
|
2481
|
+
interval: z.string().optional(),
|
|
2482
|
+
lookbackDays: z.coerce.number().positive().optional(),
|
|
2483
|
+
candleCount: z.coerce.number().int().positive().optional()
|
|
2484
|
+
});
|
|
2485
|
+
var mcpArcusSpotFetchOhlcvOutputSchema = arcusOhlcvEnvelopeSchema;
|
|
2486
|
+
var mcpArcusFetchMarketSnapshotInputSchema = arcusFetchChainInputSchema.extend({
|
|
2487
|
+
market: z.string().optional(),
|
|
2488
|
+
coin: z.string().optional(),
|
|
2489
|
+
interval: z.string().optional(),
|
|
2490
|
+
candleLimit: z.coerce.number().int().positive().optional()
|
|
2491
|
+
});
|
|
2492
|
+
var mcpArcusFetchMarketSnapshotOutputSchema = z.object({
|
|
2493
|
+
snapshot: z.object({
|
|
2494
|
+
market: z.string(),
|
|
2495
|
+
midUsd: z.string(),
|
|
2496
|
+
interval: z.string(),
|
|
2497
|
+
latestCandle: arcusOhlcvCandleSchema.nullable().optional(),
|
|
2498
|
+
candles: z.array(arcusOhlcvCandleSchema),
|
|
2499
|
+
candleCount: z.number(),
|
|
2500
|
+
fetchedAtMs: z.number()
|
|
2501
|
+
}),
|
|
2502
|
+
resolvedMarket: z.string()
|
|
2503
|
+
});
|
|
2504
|
+
var mcpArcusFetchAccountInputSchema = arcusFetchChainInputSchema.extend({
|
|
2505
|
+
executorAddress: evmAddressSchema
|
|
2506
|
+
});
|
|
2507
|
+
var mcpArcusFetchAccountOutputSchema = z.object({
|
|
2508
|
+
account: jsonObjectSchema,
|
|
2509
|
+
executorAddress: evmAddressSchema
|
|
2510
|
+
});
|
|
2511
|
+
var mcpArcusFetchPositionsInputSchema = mcpArcusFetchAccountInputSchema;
|
|
2512
|
+
var mcpArcusFetchPositionsOutputSchema = z.object({
|
|
2513
|
+
positions: z.array(jsonObjectSchema),
|
|
2514
|
+
executorAddress: evmAddressSchema
|
|
2515
|
+
});
|
|
2516
|
+
var mcpArcusFetchOpenOrdersInputSchema = mcpArcusFetchAccountInputSchema;
|
|
2517
|
+
var mcpArcusFetchOpenOrdersOutputSchema = z.object({
|
|
2518
|
+
orders: z.array(jsonObjectSchema),
|
|
2519
|
+
executorAddress: evmAddressSchema
|
|
2520
|
+
});
|
|
2521
|
+
var mcpArcusFetchOpenContextInputSchema = mcpArcusFetchAccountInputSchema.extend({
|
|
2522
|
+
market: z.string().optional().describe("Perp market display name (e.g. BTC-USD) to include activeAsset leverage context.")
|
|
2523
|
+
});
|
|
2524
|
+
var mcpArcusFetchOpenContextOutputSchema = z.object({
|
|
2525
|
+
account: jsonObjectSchema.nullable(),
|
|
2526
|
+
positions: z.array(jsonObjectSchema),
|
|
2527
|
+
orders: z.array(jsonObjectSchema),
|
|
2528
|
+
apiKeys: z.array(jsonObjectSchema),
|
|
2529
|
+
leverages: z.array(
|
|
2530
|
+
z.object({
|
|
2531
|
+
marketId: z.number(),
|
|
2532
|
+
marketDisplayName: z.string(),
|
|
2533
|
+
leverage: z.number()
|
|
2534
|
+
})
|
|
2535
|
+
).optional(),
|
|
2536
|
+
activeAsset: z.object({
|
|
2537
|
+
market: z.string(),
|
|
2538
|
+
leverage: z.number().nullable(),
|
|
2539
|
+
leverageLabel: z.string().nullable(),
|
|
2540
|
+
maxLeverage: z.number().nullable(),
|
|
2541
|
+
markPrice: z.string().nullable()
|
|
2542
|
+
}).nullable().optional(),
|
|
2543
|
+
executorAddress: evmAddressSchema,
|
|
2544
|
+
hasRegisteredApiKey: z.boolean()
|
|
2545
|
+
});
|
|
2546
|
+
var mcpArcusSpotFetchBalancesInputSchema = mcpArcusFetchAccountInputSchema;
|
|
2547
|
+
var mcpArcusSpotFetchBalancesOutputSchema = z.object({
|
|
2548
|
+
balances: z.array(
|
|
2549
|
+
z.object({
|
|
2550
|
+
ticker: z.string(),
|
|
2551
|
+
contractAddress: z.string(),
|
|
2552
|
+
balanceHuman: z.string(),
|
|
2553
|
+
balanceRaw: z.string()
|
|
2554
|
+
})
|
|
2555
|
+
),
|
|
2556
|
+
executorAddress: evmAddressSchema
|
|
2557
|
+
});
|
|
2558
|
+
var mcpArcusBuildCreateApiKeyMultisignInputSchema = mcpArcusMultisignInput({
|
|
2559
|
+
ed25519PubKeyHex: z.string().min(64).max(66).describe("Ed25519 public key (64 hex) from paired ed25519 KeyGen."),
|
|
2560
|
+
apiWalletName: z.string().optional()
|
|
2561
|
+
});
|
|
2562
|
+
var mcpArcusBuildPlaceOrderMultisignInputSchema = mcpArcusMultisignInput({
|
|
2563
|
+
market: z.string().min(1),
|
|
2564
|
+
isBuy: agentBooleanSchema(),
|
|
2565
|
+
limitPxHuman: z.string().min(1),
|
|
2566
|
+
szHuman: z.string().min(1),
|
|
2567
|
+
takeProfitTriggerPxHuman: z.string().optional(),
|
|
2568
|
+
stopLossTriggerPxHuman: z.string().optional(),
|
|
2569
|
+
leverageHuman: z.string().optional().describe("Effective leverage label for purpose/audit (e.g. 10x). Fetch from open_context.activeAsset."),
|
|
2570
|
+
timeInForce: z.coerce.number().int().min(0).max(3).optional().describe("Wire t: 0 GTT (default), 1 FOK, 2 IOC, 3 ALO."),
|
|
2571
|
+
clientId: z.string().optional()
|
|
2572
|
+
});
|
|
2573
|
+
var mcpArcusBuildCloseMultisignInputSchema = mcpArcusMultisignInput({
|
|
2574
|
+
market: z.string().min(1),
|
|
2575
|
+
isLong: agentBooleanSchema().describe("true when closing a long position (submits sell reduce-only IoC)."),
|
|
2576
|
+
limitPxHuman: z.string().min(1),
|
|
2577
|
+
szHuman: z.string().min(1),
|
|
2578
|
+
timeInForce: z.coerce.number().int().min(0).max(3).optional().describe("Default 2 (IOC) for closes.")
|
|
2579
|
+
});
|
|
2580
|
+
var mcpArcusBuildCancelOrderMultisignInputSchema = mcpArcusMultisignInput({
|
|
2581
|
+
market: z.string().min(1),
|
|
2582
|
+
orderId: z.string().min(1)
|
|
2583
|
+
});
|
|
2584
|
+
var mcpArcusBuildSetLeverageMultisignInputSchema = mcpArcusMultisignInput({
|
|
2585
|
+
market: z.string().min(1),
|
|
2586
|
+
leverage: z.coerce.number().int().positive().max(100)
|
|
2587
|
+
});
|
|
2588
|
+
var mcpArcusSpotBuildRfqMultisignInputSchema = mcpArcusMultisignInput({
|
|
2589
|
+
ticker: z.string().min(1),
|
|
2590
|
+
isBuy: agentBooleanSchema(),
|
|
2591
|
+
sizeHuman: z.string().min(1),
|
|
2592
|
+
limitPxHuman: z.string().optional()
|
|
2593
|
+
});
|
|
2594
|
+
var arcusFundProductSchema = z.enum(["perp", "spot"]).default("perp").describe("perp = accountIndex 0; spot = accountIndex 1 (USDG Spot bucket).");
|
|
2595
|
+
var mcpArcusBuildDepositMultisignInputSchema = withMultisignKeySourceRefine(
|
|
2596
|
+
evmMultisignCommonInputSchema.extend({
|
|
2597
|
+
usdHuman: z.string().min(1).describe("USD amount of USDG to deposit on chain 4663."),
|
|
2598
|
+
product: arcusFundProductSchema
|
|
2599
|
+
})
|
|
2600
|
+
);
|
|
2601
|
+
var mcpArcusBuildWithdrawMultisignInputSchema = withMultisignKeySourceRefine(
|
|
2602
|
+
evmMultisignCommonInputSchema.extend({
|
|
2603
|
+
usdHuman: z.string().min(1).describe("USD amount to withdraw (min $1)."),
|
|
2604
|
+
product: arcusFundProductSchema
|
|
2605
|
+
})
|
|
2606
|
+
);
|
|
2239
2607
|
var mcpCctpFeeFieldsSchema = z.object({
|
|
2240
2608
|
feeTierUsed: z.enum(["low", "med", "high"]),
|
|
2241
2609
|
maxFee: z.string().describe("Selected tier max fee in USDC base units (6 decimals)"),
|
|
@@ -2406,6 +2774,98 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
|
|
|
2406
2774
|
handler: { importPath: "protocols/evm/ethena", exportName: "buildEvmMultisignBodyEthenaUnstakeClaim" },
|
|
2407
2775
|
inputZod: mcpEthenaClaimInputSchema
|
|
2408
2776
|
}),
|
|
2777
|
+
defineProtocolMcpTool({
|
|
2778
|
+
name: "ctm_venice_build_stake_vvv_multisign",
|
|
2779
|
+
actionId: "venice.stake-vvv",
|
|
2780
|
+
protocolId: "venice",
|
|
2781
|
+
chainCategory: "evm",
|
|
2782
|
+
description: "Build batch: VVV approve + stake \u2192 sVVV on Base.",
|
|
2783
|
+
prerequisites: ["keyGen", "executorAddress", "Base RPC (chainId 8453)"],
|
|
2784
|
+
handler: { importPath: "protocols/evm/venice", exportName: "buildEvmMultisignBodyVeniceStakeVvv" },
|
|
2785
|
+
inputZod: mcpVeniceStakeVvvInputSchema
|
|
2786
|
+
}),
|
|
2787
|
+
defineProtocolMcpTool({
|
|
2788
|
+
name: "ctm_venice_build_initiate_unstake_svvv_multisign",
|
|
2789
|
+
actionId: "venice.initiate-unstake-svvv",
|
|
2790
|
+
protocolId: "venice",
|
|
2791
|
+
chainCategory: "evm",
|
|
2792
|
+
description: "Start sVVV unstake (7-day cooldown) on Base.",
|
|
2793
|
+
prerequisites: ["keyGen", "executorAddress", "Base RPC"],
|
|
2794
|
+
handler: {
|
|
2795
|
+
importPath: "protocols/evm/venice",
|
|
2796
|
+
exportName: "buildEvmMultisignBodyVeniceInitiateUnstakeSvvv"
|
|
2797
|
+
},
|
|
2798
|
+
inputZod: mcpVeniceInitiateUnstakeSvvvInputSchema
|
|
2799
|
+
}),
|
|
2800
|
+
defineProtocolMcpTool({
|
|
2801
|
+
name: "ctm_venice_build_complete_unstake_svvv_multisign",
|
|
2802
|
+
actionId: "venice.complete-unstake-svvv",
|
|
2803
|
+
protocolId: "venice",
|
|
2804
|
+
chainCategory: "evm",
|
|
2805
|
+
description: "Claim VVV after sVVV unstake cooldown on Base.",
|
|
2806
|
+
prerequisites: ["keyGen", "executorAddress", "Base RPC", "pending sVVV unstake"],
|
|
2807
|
+
handler: {
|
|
2808
|
+
importPath: "protocols/evm/venice",
|
|
2809
|
+
exportName: "buildEvmMultisignBodyVeniceCompleteUnstakeSvvv"
|
|
2810
|
+
},
|
|
2811
|
+
inputZod: mcpVeniceCompleteUnstakeSvvvInputSchema
|
|
2812
|
+
}),
|
|
2813
|
+
defineProtocolMcpTool({
|
|
2814
|
+
name: "ctm_venice_build_mint_diem_multisign",
|
|
2815
|
+
actionId: "venice.mint-diem",
|
|
2816
|
+
protocolId: "venice",
|
|
2817
|
+
chainCategory: "evm",
|
|
2818
|
+
description: "Lock sVVV and mint DIEM on Base (preview with ctm_venice_read_mint_diem_preview).",
|
|
2819
|
+
prerequisites: ["keyGen", "executorAddress", "Base RPC", "sVVV balance"],
|
|
2820
|
+
handler: { importPath: "protocols/evm/venice", exportName: "buildEvmMultisignBodyVeniceMintDiem" },
|
|
2821
|
+
inputZod: mcpVeniceMintDiemInputSchema
|
|
2822
|
+
}),
|
|
2823
|
+
defineProtocolMcpTool({
|
|
2824
|
+
name: "ctm_venice_build_burn_diem_multisign",
|
|
2825
|
+
actionId: "venice.burn-diem",
|
|
2826
|
+
protocolId: "venice",
|
|
2827
|
+
chainCategory: "evm",
|
|
2828
|
+
description: "Burn DIEM to unlock locked sVVV on Base.",
|
|
2829
|
+
prerequisites: ["keyGen", "executorAddress", "Base RPC", "DIEM balance"],
|
|
2830
|
+
handler: { importPath: "protocols/evm/venice", exportName: "buildEvmMultisignBodyVeniceBurnDiem" },
|
|
2831
|
+
inputZod: mcpVeniceBurnDiemInputSchema
|
|
2832
|
+
}),
|
|
2833
|
+
defineProtocolMcpTool({
|
|
2834
|
+
name: "ctm_venice_build_stake_diem_multisign",
|
|
2835
|
+
actionId: "venice.stake-diem",
|
|
2836
|
+
protocolId: "venice",
|
|
2837
|
+
chainCategory: "evm",
|
|
2838
|
+
description: "Stake DIEM for Venice API credits ($1/day per DIEM) on Base.",
|
|
2839
|
+
prerequisites: ["keyGen", "executorAddress", "Base RPC", "DIEM balance"],
|
|
2840
|
+
handler: { importPath: "protocols/evm/venice", exportName: "buildEvmMultisignBodyVeniceStakeDiem" },
|
|
2841
|
+
inputZod: mcpVeniceStakeDiemInputSchema
|
|
2842
|
+
}),
|
|
2843
|
+
defineProtocolMcpTool({
|
|
2844
|
+
name: "ctm_venice_build_initiate_unstake_diem_multisign",
|
|
2845
|
+
actionId: "venice.initiate-unstake-diem",
|
|
2846
|
+
protocolId: "venice",
|
|
2847
|
+
chainCategory: "evm",
|
|
2848
|
+
description: "Start DIEM unstake (1-day cooldown) on Base.",
|
|
2849
|
+
prerequisites: ["keyGen", "executorAddress", "Base RPC", "staked DIEM"],
|
|
2850
|
+
handler: {
|
|
2851
|
+
importPath: "protocols/evm/venice",
|
|
2852
|
+
exportName: "buildEvmMultisignBodyVeniceInitiateUnstakeDiem"
|
|
2853
|
+
},
|
|
2854
|
+
inputZod: mcpVeniceInitiateUnstakeDiemInputSchema
|
|
2855
|
+
}),
|
|
2856
|
+
defineProtocolMcpTool({
|
|
2857
|
+
name: "ctm_venice_build_complete_unstake_diem_multisign",
|
|
2858
|
+
actionId: "venice.complete-unstake-diem",
|
|
2859
|
+
protocolId: "venice",
|
|
2860
|
+
chainCategory: "evm",
|
|
2861
|
+
description: "Claim DIEM after staked-DIEM unstake cooldown on Base.",
|
|
2862
|
+
prerequisites: ["keyGen", "executorAddress", "Base RPC", "pending DIEM unstake"],
|
|
2863
|
+
handler: {
|
|
2864
|
+
importPath: "protocols/evm/venice",
|
|
2865
|
+
exportName: "buildEvmMultisignBodyVeniceCompleteUnstakeDiem"
|
|
2866
|
+
},
|
|
2867
|
+
inputZod: mcpVeniceCompleteUnstakeDiemInputSchema
|
|
2868
|
+
}),
|
|
2409
2869
|
defineProtocolMcpTool({
|
|
2410
2870
|
name: "ctm_maple_build_deposit_multisign",
|
|
2411
2871
|
actionId: "maple-syrup.deposit",
|
|
@@ -2607,11 +3067,11 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
|
|
|
2607
3067
|
actionId: "morpho.vault-deposit",
|
|
2608
3068
|
protocolId: "morpho",
|
|
2609
3069
|
chainCategory: "evm",
|
|
2610
|
-
description: "Build Morpho vault deposit batch (wrap/approve + deposit). Works with listed V1 and V2 vaults.",
|
|
3070
|
+
description: "Build Morpho vault deposit batch (wrap/approve + deposit). Works with listed V1 and V2 vaults. On chain 4663, robinhoodEarn: true pre-fills Robinhood Earn (Steakhouse USDG).",
|
|
2611
3071
|
prerequisites: [
|
|
2612
3072
|
"keyGenId",
|
|
2613
3073
|
"chainId",
|
|
2614
|
-
"vaultAddress + underlyingAddress from ctm_morpho_fetch_earn_vaults",
|
|
3074
|
+
"vaultAddress + underlyingAddress from ctm_morpho_fetch_earn_vaults (or robinhoodEarn: true on 4663)",
|
|
2615
3075
|
"amountHuman"
|
|
2616
3076
|
],
|
|
2617
3077
|
handler: { importPath: "protocols/evm/morpho", exportName: "buildEvmMultisignBodyMorphoVaultDepositBatch" },
|
|
@@ -2622,11 +3082,11 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
|
|
|
2622
3082
|
actionId: "morpho.vault-withdraw",
|
|
2623
3083
|
protocolId: "morpho",
|
|
2624
3084
|
chainCategory: "evm",
|
|
2625
|
-
description: "Build Morpho vault withdraw batch. Works with listed V1 and V2 vaults.",
|
|
3085
|
+
description: "Build Morpho vault withdraw batch. Works with listed V1 and V2 vaults. On chain 4663, robinhoodEarn: true pre-fills Robinhood Earn (Steakhouse USDG).",
|
|
2626
3086
|
prerequisites: [
|
|
2627
3087
|
"keyGenId",
|
|
2628
3088
|
"chainId",
|
|
2629
|
-
"vaultAddress from ctm_morpho_fetch_earn_vaults or user positions",
|
|
3089
|
+
"vaultAddress from ctm_morpho_fetch_earn_vaults or user positions (or robinhoodEarn: true on 4663)",
|
|
2630
3090
|
"amountHuman"
|
|
2631
3091
|
],
|
|
2632
3092
|
handler: { importPath: "protocols/evm/morpho", exportName: "buildEvmMultisignBodyMorphoVaultWithdraw" },
|
|
@@ -2687,8 +3147,8 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
|
|
|
2687
3147
|
actionId: "gmx.increase",
|
|
2688
3148
|
protocolId: "gmx",
|
|
2689
3149
|
chainCategory: "evm",
|
|
2690
|
-
description: "Create and submit mpc-auth multiSignRequest for GMX classic increase order (open/add perp). Optional takeProfitPriceUsdHuman / stopLossPriceUsdHuman attach native TP/SL decrease orders (full size). Keeper executes asynchronously after
|
|
2691
|
-
prerequisites: ["
|
|
3150
|
+
description: "Create and submit mpc-auth multiSignRequest for GMX classic increase order (open/add perp). Optional takeProfitPriceUsdHuman / stopLossPriceUsdHuman attach native on-chain TP/SL decrease orders (full size). On-chain EVM \u2014 useCustomGas applies (not EIP-712). Keeper executes asynchronously after broadcast.",
|
|
3151
|
+
prerequisites: ["keyGenId", "chainId", "purposeText", "GMX market symbol", "classic mode only \u2014 no subaccounts"],
|
|
2692
3152
|
handler: { importPath: "protocols/evm/gmx", exportName: "buildEvmMultisignBodyGmxIncreaseBatch" },
|
|
2693
3153
|
inputZod: mcpGmxIncreaseInputSchema
|
|
2694
3154
|
}),
|
|
@@ -2757,8 +3217,8 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
|
|
|
2757
3217
|
actionId: "hyperliquid.limitOrder",
|
|
2758
3218
|
protocolId: "hyperliquid",
|
|
2759
3219
|
chainCategory: "evm",
|
|
2760
|
-
description: "Create and submit mpc-auth multiSignRequest for a Hyperliquid limit/IoC order. Plain limit
|
|
2761
|
-
prerequisites: ["
|
|
3220
|
+
description: "Create and submit mpc-auth multiSignRequest for a Hyperliquid limit/IoC order. Plain limit: CoreWriter (useCustomGas). When takeProfitTriggerPxHuman and/or stopLossTriggerPxHuman are set: one L1 EIP-712 normalTpsl bracket (entry + TP/SL) to /exchange \u2014 no useCustomGas.",
|
|
3221
|
+
prerequisites: ["keyGenId", "chainId 999 or 998", "coin", "limitPxHuman", "szHuman"],
|
|
2762
3222
|
handler: { importPath: "protocols/evm/hyperliquid", exportName: "buildEvmMultisignBodyHyperliquidLimitOrderBatch" },
|
|
2763
3223
|
inputZod: mcpHyperliquidLimitOrderInputSchema
|
|
2764
3224
|
}),
|
|
@@ -2813,8 +3273,8 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
|
|
|
2813
3273
|
actionId: "hyperliquid.bridgeWithdraw",
|
|
2814
3274
|
protocolId: "hyperliquid",
|
|
2815
3275
|
chainCategory: "evm",
|
|
2816
|
-
description: "Create and submit mpc-auth multiSignRequest to withdraw USDC from Hyperliquid to Arbitrum via withdraw3 (EIP-712, delivered to /exchange). chainId 999 or 998. ~1 USDC bridge fee on Hyperliquid.",
|
|
2817
|
-
prerequisites: ["
|
|
3276
|
+
description: "Create and submit mpc-auth multiSignRequest to withdraw USDC from Hyperliquid to Arbitrum via withdraw3 (EIP-712, delivered to /exchange). chainId 999 or 998. No useCustomGas. ~1 USDC bridge fee on Hyperliquid.",
|
|
3277
|
+
prerequisites: ["keyGenId", "chainId 999 or 998", "usdHuman", "Hyperliquid withdrawable balance"],
|
|
2818
3278
|
handler: {
|
|
2819
3279
|
importPath: "protocols/evm/hyperliquid",
|
|
2820
3280
|
exportName: "buildHyperliquidBridgeWithdrawMultisign"
|
|
@@ -2886,7 +3346,7 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
|
|
|
2886
3346
|
actionId: "hyperliquid.updateLeverage",
|
|
2887
3347
|
protocolId: "hyperliquid",
|
|
2888
3348
|
chainCategory: "evm",
|
|
2889
|
-
description: "Set per-market leverage (cross or isolated) on Hyperliquid via L1 /exchange EIP-712 signing \u2014 not CoreWriter
|
|
3349
|
+
description: "Set per-market leverage (cross or isolated) on Hyperliquid via L1 /exchange EIP-712 signing \u2014 not CoreWriter. No useCustomGas. trigger_sign_result without txParams; broadcast_sign_result POSTs to /exchange.",
|
|
2890
3350
|
prerequisites: [
|
|
2891
3351
|
"keyGenId",
|
|
2892
3352
|
"chainId 999 or 998",
|
|
@@ -2902,6 +3362,101 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
|
|
|
2902
3362
|
handler: { importPath: "protocols/evm/hyperliquid", exportName: "buildHyperliquidUpdateLeverageMultisign" },
|
|
2903
3363
|
inputZod: mcpHyperliquidUpdateLeverageInputSchema
|
|
2904
3364
|
}),
|
|
3365
|
+
defineProtocolMcpTool({
|
|
3366
|
+
name: "ctm_arcus_build_create_api_key_multisign",
|
|
3367
|
+
actionId: "arcus.createApiKey",
|
|
3368
|
+
protocolId: "arcus",
|
|
3369
|
+
chainCategory: "evm",
|
|
3370
|
+
description: "Register Arcus Ed25519 API key. Requires paired KeyGens (same GroupId): secp256k1KeyGenId for personal_sign + ed25519KeyGenId pubkey. No useCustomGas.",
|
|
3371
|
+
prerequisites: ["secp256k1KeyGenId", "ed25519KeyGenId (same GroupId)", "ed25519PubKeyHex from ed25519 KeyGen"],
|
|
3372
|
+
followUp: ["sign_request_agree", "trigger_sign_result", "broadcast_sign_result"],
|
|
3373
|
+
handler: { importPath: "protocols/evm/arcus", exportName: "buildEvmMultisignBodyArcusCreateApiKeyBatch" },
|
|
3374
|
+
inputZod: mcpArcusBuildCreateApiKeyMultisignInputSchema
|
|
3375
|
+
}),
|
|
3376
|
+
defineProtocolMcpTool({
|
|
3377
|
+
name: "ctm_arcus_build_place_order_multisign",
|
|
3378
|
+
actionId: "arcus.placeOrder",
|
|
3379
|
+
protocolId: "arcus",
|
|
3380
|
+
chainCategory: "evm",
|
|
3381
|
+
description: "Arcus perp limit order with optional TP/SL bracket (Ed25519 payload sign). Uses account leverage already set on Arcus (see fetch_open_context.activeAsset). ed25519KeyGenId signs; secp256k1KeyGenId bills globalNonce.",
|
|
3382
|
+
prerequisites: ["secp256k1KeyGenId", "ed25519KeyGenId", "registered API key", "market from fetch_markets", "leverage from fetch_open_context"],
|
|
3383
|
+
followUp: ["sign_request_agree", "trigger_sign_result", "broadcast_sign_result"],
|
|
3384
|
+
handler: { importPath: "protocols/evm/arcus", exportName: "buildEvmMultisignBodyArcusPlaceOrderBatch" },
|
|
3385
|
+
inputZod: mcpArcusBuildPlaceOrderMultisignInputSchema
|
|
3386
|
+
}),
|
|
3387
|
+
defineProtocolMcpTool({
|
|
3388
|
+
name: "ctm_arcus_build_close_multisign",
|
|
3389
|
+
actionId: "arcus.close",
|
|
3390
|
+
protocolId: "arcus",
|
|
3391
|
+
chainCategory: "evm",
|
|
3392
|
+
description: "Close Arcus perp position with IoC reduce-only limit (Ed25519 payload sign). Inverts side from isLong. Fetch positions via fetch_open_context.",
|
|
3393
|
+
prerequisites: ["secp256k1KeyGenId", "ed25519KeyGenId", "market", "isLong from fetch_positions", "limitPxHuman", "szHuman"],
|
|
3394
|
+
followUp: ["sign_request_agree", "trigger_sign_result", "broadcast_sign_result"],
|
|
3395
|
+
handler: { importPath: "protocols/evm/arcus", exportName: "buildEvmMultisignBodyArcusCloseBatch" },
|
|
3396
|
+
inputZod: mcpArcusBuildCloseMultisignInputSchema
|
|
3397
|
+
}),
|
|
3398
|
+
defineProtocolMcpTool({
|
|
3399
|
+
name: "ctm_arcus_build_cancel_order_multisign",
|
|
3400
|
+
actionId: "arcus.cancelOrder",
|
|
3401
|
+
protocolId: "arcus",
|
|
3402
|
+
chainCategory: "evm",
|
|
3403
|
+
description: "Cancel Arcus perp order (Ed25519 payload sign).",
|
|
3404
|
+
prerequisites: ["secp256k1KeyGenId", "ed25519KeyGenId", "orderId from fetch_open_orders"],
|
|
3405
|
+
followUp: ["sign_request_agree", "trigger_sign_result", "broadcast_sign_result"],
|
|
3406
|
+
handler: { importPath: "protocols/evm/arcus", exportName: "buildEvmMultisignBodyArcusCancelOrderBatch" },
|
|
3407
|
+
inputZod: mcpArcusBuildCancelOrderMultisignInputSchema
|
|
3408
|
+
}),
|
|
3409
|
+
defineProtocolMcpTool({
|
|
3410
|
+
name: "ctm_arcus_build_set_leverage_multisign",
|
|
3411
|
+
actionId: "arcus.setLeverage",
|
|
3412
|
+
protocolId: "arcus",
|
|
3413
|
+
chainCategory: "evm",
|
|
3414
|
+
description: "Set Arcus perp leverage for a market (Scheme 2 Ed25519 \u2192 POST /v1/setLeverage). Call before place_order when leverage must change. Max leverage = floor(1 / initialMarginFraction) from fetch_markets.",
|
|
3415
|
+
prerequisites: ["secp256k1KeyGenId", "ed25519KeyGenId", "market", "leverage", "ctm_arcus_fetch_open_context for current leverage"],
|
|
3416
|
+
followUp: ["sign_request_agree", "trigger_sign_result", "broadcast_sign_result"],
|
|
3417
|
+
handler: { importPath: "protocols/evm/arcus", exportName: "buildEvmMultisignBodyArcusSetLeverageBatch" },
|
|
3418
|
+
inputZod: mcpArcusBuildSetLeverageMultisignInputSchema
|
|
3419
|
+
}),
|
|
3420
|
+
defineProtocolMcpTool({
|
|
3421
|
+
name: "ctm_arcus_spot_build_rfq_multisign",
|
|
3422
|
+
actionId: "arcus.spotRfq",
|
|
3423
|
+
protocolId: "arcus",
|
|
3424
|
+
chainCategory: "evm",
|
|
3425
|
+
description: "Arcus spot Stock Token RFQ buy/sell. Post-fill: offer Add ERC20 with tokenContractAddress from delivery.",
|
|
3426
|
+
prerequisites: ["secp256k1KeyGenId", "ed25519KeyGenId", "ticker from spot_fetch_markets"],
|
|
3427
|
+
followUp: ["sign_request_agree", "trigger_sign_result", "broadcast_sign_result"],
|
|
3428
|
+
handler: { importPath: "protocols/evm/arcus", exportName: "buildEvmMultisignBodyArcusSpotRfqBatch" },
|
|
3429
|
+
inputZod: mcpArcusSpotBuildRfqMultisignInputSchema
|
|
3430
|
+
}),
|
|
3431
|
+
defineProtocolMcpTool({
|
|
3432
|
+
name: "ctm_arcus_build_deposit_multisign",
|
|
3433
|
+
actionId: "arcus.deposit",
|
|
3434
|
+
protocolId: "arcus",
|
|
3435
|
+
chainCategory: "evm",
|
|
3436
|
+
description: "Deposit USDG on Robinhood Chain (4663) into Arcus collateral via approve + initiateDeposit. product=perp (accountIndex 0) or spot (accountIndex 1). Requires registered API key (createApiKey first). After broadcast, call ctm_arcus_fetch_account to confirm \u2014 no polling loop.",
|
|
3437
|
+
prerequisites: [
|
|
3438
|
+
"keyGenId",
|
|
3439
|
+
"chainId 4663",
|
|
3440
|
+
"executorAddress",
|
|
3441
|
+
"hasRegisteredApiKey from fetch_open_context",
|
|
3442
|
+
"USDG wallet balance on 4663",
|
|
3443
|
+
"usdHuman"
|
|
3444
|
+
],
|
|
3445
|
+
followUp: ["sign_request_agree", "trigger_sign_result", "broadcast_sign_result", "ctm_arcus_fetch_account"],
|
|
3446
|
+
handler: { importPath: "protocols/evm/arcus", exportName: "buildEvmMultisignBodyArcusDepositBatch" },
|
|
3447
|
+
inputZod: mcpArcusBuildDepositMultisignInputSchema
|
|
3448
|
+
}),
|
|
3449
|
+
defineProtocolMcpTool({
|
|
3450
|
+
name: "ctm_arcus_build_withdraw_multisign",
|
|
3451
|
+
actionId: "arcus.withdraw",
|
|
3452
|
+
protocolId: "arcus",
|
|
3453
|
+
chainCategory: "evm",
|
|
3454
|
+
description: "Withdraw USDG collateral from Arcus to the signing wallet (EIP-712 + POST /v1/withdraw). product=perp or spot. Min $1. Async \u2014 refresh with ctm_arcus_fetch_account after broadcast.",
|
|
3455
|
+
prerequisites: ["keyGenId", "chainId 4663", "freeCollateral or spot balance", "usdHuman"],
|
|
3456
|
+
followUp: ["sign_request_agree", "trigger_sign_result", "broadcast_sign_result", "ctm_arcus_fetch_account"],
|
|
3457
|
+
handler: { importPath: "protocols/evm/arcus", exportName: "buildArcusWithdrawMultisignBody" },
|
|
3458
|
+
inputZod: mcpArcusBuildWithdrawMultisignInputSchema
|
|
3459
|
+
}),
|
|
2905
3460
|
defineProtocolMcpTool({
|
|
2906
3461
|
name: "ctm_cctp_build_burn_multisign",
|
|
2907
3462
|
actionId: "circle-cctp.burn-forward",
|
|
@@ -2997,11 +3552,11 @@ var CORE_MCP_TOOL_DEFINITIONS = [
|
|
|
2997
3552
|
actionId: "uniswap-v4.limit-order-quote",
|
|
2998
3553
|
protocolId: "uniswap-v4",
|
|
2999
3554
|
chainCategory: "evm",
|
|
3000
|
-
description: "Fetch a UniswapX limit order quote (POST /v1/limit_order_quote). Ethereum mainnet (chainId 1) only. Returns quote + permitData for EIP-712 signing. Does NOT create a sign request \u2014 call ctm_uniswap_v4_build_limit_order_multisign next.",
|
|
3555
|
+
description: "Fetch a UniswapX limit order quote (POST /v1/limit_order_quote). Ethereum mainnet (chainId 1) only. Returns quote + permitData for EIP-712 signing. Does NOT create a sign request \u2014 call ctm_uniswap_v4_build_limit_order_multisign next with this exact JSON as fullLimitQuote (re-quote if limitPrice or orderDeadline changes).",
|
|
3001
3556
|
prerequisites: [
|
|
3002
3557
|
"UNISWAP_API_KEY in node Variables",
|
|
3003
3558
|
"chainId must be 1",
|
|
3004
|
-
"keyGenId or swapper",
|
|
3559
|
+
"keyGenId or swapper (server resolves swapper from keyGenId)",
|
|
3005
3560
|
"limitPrice, orderDeadline, amount, tokenIn, tokenOut"
|
|
3006
3561
|
],
|
|
3007
3562
|
followUp: ["ctm_uniswap_v4_build_limit_order_multisign", "ctm_uniswap_v4_fetch_limit_orders"],
|
|
@@ -3014,9 +3569,9 @@ var CORE_MCP_TOOL_DEFINITIONS = [
|
|
|
3014
3569
|
actionId: "uniswap-v4.limit-order",
|
|
3015
3570
|
protocolId: "uniswap-v4",
|
|
3016
3571
|
chainCategory: "evm",
|
|
3017
|
-
description: "Create and submit mpc-auth multiSignRequest for a UniswapX limit order (EIP-712 Permit2 witness). After sign + execute, delivery POSTs to Trade API /v1/order. Mainnet only.",
|
|
3572
|
+
description: "Create and submit mpc-auth multiSignRequest for a UniswapX limit order (EIP-712 Permit2 witness). After sign + execute, delivery POSTs to Trade API /v1/order. Mainnet only. EIP-712 only \u2014 useCustomGas is ignored.",
|
|
3018
3573
|
prerequisites: [
|
|
3019
|
-
"ctm_uniswap_v4_limit_order_quote output (fullLimitQuote)",
|
|
3574
|
+
"Fresh ctm_uniswap_v4_limit_order_quote output (fullLimitQuote) \u2014 re-quote when limitPrice or orderDeadline changes",
|
|
3020
3575
|
"keyGenId + chainId 1 + purposeText"
|
|
3021
3576
|
],
|
|
3022
3577
|
followUp: ["ctm_uniswap_v4_fetch_limit_orders"],
|
|
@@ -3489,6 +4044,158 @@ var CORE_MCP_TOOL_DEFINITIONS = [
|
|
|
3489
4044
|
inputZod: mcpHyperliquidFetchDelegationsInputSchema,
|
|
3490
4045
|
outputZod: mcpHyperliquidFetchDelegationsOutputSchema
|
|
3491
4046
|
}),
|
|
4047
|
+
defineMcpTool({
|
|
4048
|
+
name: "ctm_arcus_fetch_markets",
|
|
4049
|
+
actionId: "arcus.fetch-markets",
|
|
4050
|
+
protocolId: "arcus",
|
|
4051
|
+
chainCategory: "evm",
|
|
4052
|
+
description: "List Arcus perp markets on Robinhood Chain (4663). Crypto, equities, commodities.",
|
|
4053
|
+
prerequisites: ["chainId 4663"],
|
|
4054
|
+
followUp: ["ctm_arcus_fetch_open_context", "ctm_arcus_fetch_ohlcv", "ctm_arcus_build_place_order_multisign"],
|
|
4055
|
+
handler: { importPath: "protocols/evm/arcus", exportName: "arcusFetchMarketsSummary" },
|
|
4056
|
+
inputZod: mcpArcusFetchMarketsInputSchema,
|
|
4057
|
+
outputZod: mcpArcusFetchMarketsOutputSchema
|
|
4058
|
+
}),
|
|
4059
|
+
defineMcpTool({
|
|
4060
|
+
name: "ctm_arcus_search_markets",
|
|
4061
|
+
actionId: "arcus.search-markets",
|
|
4062
|
+
protocolId: "arcus",
|
|
4063
|
+
chainCategory: "evm",
|
|
4064
|
+
description: "Search Arcus perp markets by ticker or name.",
|
|
4065
|
+
prerequisites: ["chainId 4663", "query"],
|
|
4066
|
+
followUp: ["ctm_arcus_fetch_ohlcv", "ctm_arcus_build_place_order_multisign"],
|
|
4067
|
+
handler: { importPath: "protocols/evm/arcus", exportName: "arcusSearchMarketsSummary" },
|
|
4068
|
+
inputZod: mcpArcusSearchMarketsInputSchema,
|
|
4069
|
+
outputZod: mcpArcusSearchMarketsOutputSchema
|
|
4070
|
+
}),
|
|
4071
|
+
defineMcpTool({
|
|
4072
|
+
name: "ctm_arcus_fetch_ohlcv",
|
|
4073
|
+
actionId: "arcus.fetch-ohlcv",
|
|
4074
|
+
protocolId: "arcus",
|
|
4075
|
+
chainCategory: "evm",
|
|
4076
|
+
description: "OHLCV for Arcus perps (api.arcus.xyz). Returns HL-shaped { ohlcv: { market, interval, candles } } for chart/analysis binding. Use for perp charts only \u2014 spot uses ctm_arcus_spot_fetch_ohlcv.",
|
|
4077
|
+
prerequisites: ["chainId 4663", "market or coin"],
|
|
4078
|
+
followUp: ["ctm_arcus_fetch_market_snapshot", "continuum__prepare_chart_from_rows", "ctm_arcus_build_place_order_multisign"],
|
|
4079
|
+
handler: { importPath: "protocols/evm/arcus", exportName: "arcusFetchOhlcvSummary" },
|
|
4080
|
+
inputZod: mcpArcusFetchOhlcvInputSchema,
|
|
4081
|
+
outputZod: mcpArcusFetchOhlcvOutputSchema
|
|
4082
|
+
}),
|
|
4083
|
+
defineMcpTool({
|
|
4084
|
+
name: "ctm_arcus_spot_fetch_markets",
|
|
4085
|
+
actionId: "arcus.spot-fetch-markets",
|
|
4086
|
+
protocolId: "arcus",
|
|
4087
|
+
chainCategory: "evm",
|
|
4088
|
+
description: "Arcus spot Stock Token catalog (ticker, contract address, logo).",
|
|
4089
|
+
prerequisites: ["chainId 4663"],
|
|
4090
|
+
followUp: ["ctm_arcus_spot_fetch_ohlcv", "ctm_arcus_spot_fetch_balances", "ctm_arcus_spot_build_rfq_multisign"],
|
|
4091
|
+
handler: { importPath: "protocols/evm/arcus", exportName: "arcusSpotFetchMarketsSummary" },
|
|
4092
|
+
inputZod: mcpArcusSpotFetchMarketsInputSchema,
|
|
4093
|
+
outputZod: mcpArcusSpotFetchMarketsOutputSchema
|
|
4094
|
+
}),
|
|
4095
|
+
defineMcpTool({
|
|
4096
|
+
name: "ctm_arcus_spot_search_markets",
|
|
4097
|
+
actionId: "arcus.spot-search-markets",
|
|
4098
|
+
protocolId: "arcus",
|
|
4099
|
+
chainCategory: "evm",
|
|
4100
|
+
description: "Search Arcus spot Stock Tokens.",
|
|
4101
|
+
prerequisites: ["chainId 4663", "query"],
|
|
4102
|
+
followUp: ["ctm_arcus_spot_fetch_ohlcv", "ctm_arcus_spot_build_rfq_multisign"],
|
|
4103
|
+
handler: { importPath: "protocols/evm/arcus", exportName: "arcusSpotSearchMarketsSummary" },
|
|
4104
|
+
inputZod: mcpArcusSearchMarketsInputSchema,
|
|
4105
|
+
outputZod: mcpArcusSpotFetchMarketsOutputSchema
|
|
4106
|
+
}),
|
|
4107
|
+
defineMcpTool({
|
|
4108
|
+
name: "ctm_arcus_spot_fetch_ohlcv",
|
|
4109
|
+
actionId: "arcus.spot-fetch-ohlcv",
|
|
4110
|
+
protocolId: "arcus",
|
|
4111
|
+
chainCategory: "evm",
|
|
4112
|
+
description: "OHLCV for Arcus spot Stock Tokens (indexer.spot.arcus.xyz). Use for spot charts \u2014 not perp ctm_arcus_fetch_ohlcv.",
|
|
4113
|
+
prerequisites: ["chainId 4663", "ticker or tokenAddress"],
|
|
4114
|
+
followUp: ["continuum__prepare_chart_from_rows", "ctm_arcus_spot_build_rfq_multisign"],
|
|
4115
|
+
handler: { importPath: "protocols/evm/arcus", exportName: "arcusSpotFetchOhlcvSummary" },
|
|
4116
|
+
inputZod: mcpArcusSpotFetchOhlcvInputSchema,
|
|
4117
|
+
outputZod: mcpArcusSpotFetchOhlcvOutputSchema
|
|
4118
|
+
}),
|
|
4119
|
+
defineMcpTool({
|
|
4120
|
+
name: "ctm_arcus_fetch_market_snapshot",
|
|
4121
|
+
actionId: "arcus.fetch-market-snapshot",
|
|
4122
|
+
protocolId: "arcus",
|
|
4123
|
+
chainCategory: "evm",
|
|
4124
|
+
description: "Live mid price plus recent perp OHLCV candles.",
|
|
4125
|
+
prerequisites: ["chainId 4663", "market or coin"],
|
|
4126
|
+
followUp: ["ctm_arcus_fetch_open_context", "ctm_arcus_build_place_order_multisign"],
|
|
4127
|
+
handler: { importPath: "protocols/evm/arcus", exportName: "arcusFetchMarketSnapshotSummary" },
|
|
4128
|
+
inputZod: mcpArcusFetchMarketSnapshotInputSchema,
|
|
4129
|
+
outputZod: mcpArcusFetchMarketSnapshotOutputSchema
|
|
4130
|
+
}),
|
|
4131
|
+
defineMcpTool({
|
|
4132
|
+
name: "ctm_arcus_fetch_account",
|
|
4133
|
+
actionId: "arcus.fetch-account",
|
|
4134
|
+
protocolId: "arcus",
|
|
4135
|
+
chainCategory: "evm",
|
|
4136
|
+
description: "Arcus perp account summary (equity, collateral).",
|
|
4137
|
+
prerequisites: ["chainId 4663", "executorAddress"],
|
|
4138
|
+
followUp: ["ctm_arcus_build_create_api_key_multisign", "ctm_arcus_build_deposit_multisign", "ctm_arcus_build_withdraw_multisign"],
|
|
4139
|
+
handler: { importPath: "protocols/evm/arcus", exportName: "arcusFetchAccountSummary" },
|
|
4140
|
+
inputZod: mcpArcusFetchAccountInputSchema,
|
|
4141
|
+
outputZod: mcpArcusFetchAccountOutputSchema
|
|
4142
|
+
}),
|
|
4143
|
+
defineMcpTool({
|
|
4144
|
+
name: "ctm_arcus_fetch_positions",
|
|
4145
|
+
actionId: "arcus.fetch-positions",
|
|
4146
|
+
protocolId: "arcus",
|
|
4147
|
+
chainCategory: "evm",
|
|
4148
|
+
description: "Open Arcus perp positions.",
|
|
4149
|
+
prerequisites: ["chainId 4663", "executorAddress"],
|
|
4150
|
+
followUp: ["ctm_arcus_build_place_order_multisign", "ctm_arcus_build_close_multisign"],
|
|
4151
|
+
handler: { importPath: "protocols/evm/arcus", exportName: "arcusFetchPositionsSummary" },
|
|
4152
|
+
inputZod: mcpArcusFetchPositionsInputSchema,
|
|
4153
|
+
outputZod: mcpArcusFetchPositionsOutputSchema
|
|
4154
|
+
}),
|
|
4155
|
+
defineMcpTool({
|
|
4156
|
+
name: "ctm_arcus_fetch_open_orders",
|
|
4157
|
+
actionId: "arcus.fetch-open-orders",
|
|
4158
|
+
protocolId: "arcus",
|
|
4159
|
+
chainCategory: "evm",
|
|
4160
|
+
description: "Pending Arcus perp orders.",
|
|
4161
|
+
prerequisites: ["chainId 4663", "executorAddress"],
|
|
4162
|
+
followUp: ["ctm_arcus_build_cancel_order_multisign"],
|
|
4163
|
+
handler: { importPath: "protocols/evm/arcus", exportName: "arcusFetchOpenOrdersSummary" },
|
|
4164
|
+
inputZod: mcpArcusFetchOpenOrdersInputSchema,
|
|
4165
|
+
outputZod: mcpArcusFetchOpenOrdersOutputSchema
|
|
4166
|
+
}),
|
|
4167
|
+
defineMcpTool({
|
|
4168
|
+
name: "ctm_arcus_fetch_open_context",
|
|
4169
|
+
actionId: "arcus.fetch-open-context",
|
|
4170
|
+
protocolId: "arcus",
|
|
4171
|
+
chainCategory: "evm",
|
|
4172
|
+
description: "Account, positions, orders, API keys, per-market leverages, and optional activeAsset leverage for a market.",
|
|
4173
|
+
prerequisites: ["chainId 4663", "executorAddress"],
|
|
4174
|
+
followUp: [
|
|
4175
|
+
"ctm_arcus_build_create_api_key_multisign",
|
|
4176
|
+
"ctm_arcus_build_set_leverage_multisign",
|
|
4177
|
+
"ctm_arcus_build_place_order_multisign",
|
|
4178
|
+
"ctm_arcus_build_close_multisign",
|
|
4179
|
+
"ctm_arcus_build_cancel_order_multisign",
|
|
4180
|
+
"ctm_arcus_build_deposit_multisign",
|
|
4181
|
+
"ctm_arcus_build_withdraw_multisign"
|
|
4182
|
+
],
|
|
4183
|
+
handler: { importPath: "protocols/evm/arcus", exportName: "arcusFetchOpenContextSummary" },
|
|
4184
|
+
inputZod: mcpArcusFetchOpenContextInputSchema,
|
|
4185
|
+
outputZod: mcpArcusFetchOpenContextOutputSchema
|
|
4186
|
+
}),
|
|
4187
|
+
defineMcpTool({
|
|
4188
|
+
name: "ctm_arcus_spot_fetch_balances",
|
|
4189
|
+
actionId: "arcus.spot-fetch-balances",
|
|
4190
|
+
protocolId: "arcus",
|
|
4191
|
+
chainCategory: "evm",
|
|
4192
|
+
description: "On-chain Stock Token ERC20 balances for executor on 4663.",
|
|
4193
|
+
prerequisites: ["chainId 4663", "executorAddress"],
|
|
4194
|
+
followUp: ["ctm_arcus_spot_build_rfq_multisign", "ctm_arcus_build_deposit_multisign", "ctm_arcus_build_withdraw_multisign"],
|
|
4195
|
+
handler: { importPath: "protocols/evm/arcus", exportName: "arcusSpotFetchBalancesSummary" },
|
|
4196
|
+
inputZod: mcpArcusSpotFetchBalancesInputSchema,
|
|
4197
|
+
outputZod: mcpArcusSpotFetchBalancesOutputSchema
|
|
4198
|
+
}),
|
|
3492
4199
|
defineMcpTool({
|
|
3493
4200
|
name: "ctm_morpho_fetch_blue_markets",
|
|
3494
4201
|
actionId: "morpho.fetch-blue-markets",
|
|
@@ -3565,12 +4272,52 @@ var CORE_MCP_TOOL_DEFINITIONS = [
|
|
|
3565
4272
|
inputZod: mcpCctpFetchTransferStatusInputSchema,
|
|
3566
4273
|
outputZod: mcpCctpFetchTransferStatusOutputSchema
|
|
3567
4274
|
}),
|
|
4275
|
+
defineMcpTool({
|
|
4276
|
+
name: "ctm_venice_list_models",
|
|
4277
|
+
actionId: "venice.list-models",
|
|
4278
|
+
protocolId: "venice",
|
|
4279
|
+
chainCategory: "evm",
|
|
4280
|
+
description: "Venice AI model catalog (GET /models). Optional type filter (text, image, video, all). Requires VENICE_API_KEY in node Variables (server injects \u2014 do not pass apiKey).",
|
|
4281
|
+
prerequisites: ["VENICE_API_KEY in node Variables"],
|
|
4282
|
+
followUp: [],
|
|
4283
|
+
handler: { importPath: "protocols/evm/venice", exportName: "veniceListModelsSummary" },
|
|
4284
|
+
inputZod: mcpVeniceListModelsInputSchema,
|
|
4285
|
+
outputZod: mcpVeniceListModelsOutputSchema
|
|
4286
|
+
}),
|
|
4287
|
+
defineMcpTool({
|
|
4288
|
+
name: "ctm_venice_read_staking_state",
|
|
4289
|
+
actionId: "venice.read-staking-state",
|
|
4290
|
+
protocolId: "venice",
|
|
4291
|
+
chainCategory: "evm",
|
|
4292
|
+
description: "Read VVV/sVVV/DIEM wallet balances, staked DIEM, cooldown fields, mint rate, and estimated API credit on Base.",
|
|
4293
|
+
prerequisites: ["rpcUrl", "executorAddress", "chainId 8453"],
|
|
4294
|
+
followUp: [
|
|
4295
|
+
"ctm_venice_read_mint_diem_preview",
|
|
4296
|
+
"ctm_venice_build_stake_vvv_multisign",
|
|
4297
|
+
"ctm_venice_build_stake_diem_multisign"
|
|
4298
|
+
],
|
|
4299
|
+
handler: { importPath: "protocols/evm/venice", exportName: "veniceReadStakingStateSummary" },
|
|
4300
|
+
inputZod: mcpVeniceReadStakingStateInputSchema,
|
|
4301
|
+
outputZod: mcpVeniceReadStakingStateOutputSchema
|
|
4302
|
+
}),
|
|
4303
|
+
defineMcpTool({
|
|
4304
|
+
name: "ctm_venice_read_mint_diem_preview",
|
|
4305
|
+
actionId: "venice.read-mint-diem-preview",
|
|
4306
|
+
protocolId: "venice",
|
|
4307
|
+
chainCategory: "evm",
|
|
4308
|
+
description: "Preview DIEM mint rate and expected DIEM output for locking sVVV on Base.",
|
|
4309
|
+
prerequisites: ["rpcUrl", "svvvLockAmountHuman"],
|
|
4310
|
+
followUp: ["ctm_venice_build_mint_diem_multisign"],
|
|
4311
|
+
handler: { importPath: "protocols/evm/venice", exportName: "veniceReadMintDiemPreviewSummary" },
|
|
4312
|
+
inputZod: mcpVeniceReadMintDiemPreviewInputSchema,
|
|
4313
|
+
outputZod: mcpVeniceReadMintDiemPreviewOutputSchema
|
|
4314
|
+
}),
|
|
3568
4315
|
defineMcpTool({
|
|
3569
4316
|
name: "ctm_morpho_fetch_earn_vaults",
|
|
3570
4317
|
actionId: "morpho.fetch-earn-vaults",
|
|
3571
4318
|
protocolId: "morpho",
|
|
3572
4319
|
chainCategory: "evm",
|
|
3573
|
-
description:
|
|
4320
|
+
description: 'Morpho-listed earn vaults (V1 + V2 unified). Filter by deposit asset symbol/address and/or case-insensitive vault name search. On chain 4663, query "robinhood earn" resolves to Steakhouse USDG (Robinhood Earn). Returns vaultAddress for deposit/withdraw multisign tools.',
|
|
3574
4321
|
prerequisites: ["chainId"],
|
|
3575
4322
|
followUp: [
|
|
3576
4323
|
"ctm_morpho_build_vault_deposit_multisign",
|
|
@@ -4370,6 +5117,136 @@ var hyperliquidProtocolModule = {
|
|
|
4370
5117
|
]
|
|
4371
5118
|
};
|
|
4372
5119
|
registerProtocolModule(hyperliquidProtocolModule);
|
|
5120
|
+
|
|
5121
|
+
// src/protocols/evm/arcus/index.ts
|
|
5122
|
+
init_support();
|
|
5123
|
+
init_support();
|
|
5124
|
+
init_constants();
|
|
5125
|
+
init_api();
|
|
5126
|
+
init_constants();
|
|
5127
|
+
var arcusProtocolModule = {
|
|
5128
|
+
id: ARCUS_PROTOCOL_ID,
|
|
5129
|
+
chainCategory: "evm",
|
|
5130
|
+
isChainSupported(ctx) {
|
|
5131
|
+
if (ctx.chainCategory !== "evm") return false;
|
|
5132
|
+
const chainId = typeof ctx.chainId === "number" ? ctx.chainId : Number(ctx.chainId);
|
|
5133
|
+
return Number.isFinite(chainId) && isArcusChainSupported(chainId);
|
|
5134
|
+
},
|
|
5135
|
+
isTokenSupported(token) {
|
|
5136
|
+
if (token.category !== "evm") return false;
|
|
5137
|
+
return token.kind === "erc20" || token.kind === "native";
|
|
5138
|
+
},
|
|
5139
|
+
actions: [
|
|
5140
|
+
{
|
|
5141
|
+
id: "arcus.createApiKey",
|
|
5142
|
+
protocolId: ARCUS_PROTOCOL_ID,
|
|
5143
|
+
chainCategory: "evm",
|
|
5144
|
+
description: "Register Arcus Ed25519 API key (secp256k1 personal_sign + paired ed25519 KeyGen)",
|
|
5145
|
+
commonParams: ["keyGen", "purposeText"],
|
|
5146
|
+
params: {
|
|
5147
|
+
secp256k1KeyGenId: { type: "string", required: true, description: "Custody secp256k1 KeyGen id" },
|
|
5148
|
+
ed25519KeyGenId: { type: "string", required: true, description: "Paired ed25519 KeyGen id (same GroupId)" },
|
|
5149
|
+
apiWalletName: { type: "string", required: false, description: "Label for the API key" }
|
|
5150
|
+
}
|
|
5151
|
+
},
|
|
5152
|
+
{
|
|
5153
|
+
id: "arcus.placeOrder",
|
|
5154
|
+
protocolId: ARCUS_PROTOCOL_ID,
|
|
5155
|
+
chainCategory: "evm",
|
|
5156
|
+
description: "Place Arcus perp order with optional TP/SL (Ed25519 payload sign)",
|
|
5157
|
+
commonParams: ["keyGen", "purposeText"],
|
|
5158
|
+
params: {
|
|
5159
|
+
secp256k1KeyGenId: { type: "string", required: true, description: "Custody secp256k1 KeyGen id" },
|
|
5160
|
+
ed25519KeyGenId: { type: "string", required: true, description: "Paired ed25519 KeyGen id" },
|
|
5161
|
+
market: { type: "string", required: true, description: "e.g. BTC-USD" },
|
|
5162
|
+
isBuy: { type: "boolean", required: true, description: "true for buy/long" },
|
|
5163
|
+
limitPxHuman: { type: "string", required: true, description: "Entry limit price" },
|
|
5164
|
+
szHuman: { type: "string", required: true, description: "Order size" },
|
|
5165
|
+
takeProfitTriggerPxHuman: { type: "string", required: false, description: "Optional TP trigger" },
|
|
5166
|
+
stopLossTriggerPxHuman: { type: "string", required: false, description: "Optional SL trigger" }
|
|
5167
|
+
}
|
|
5168
|
+
},
|
|
5169
|
+
{
|
|
5170
|
+
id: "arcus.spotRfq",
|
|
5171
|
+
protocolId: ARCUS_PROTOCOL_ID,
|
|
5172
|
+
chainCategory: "evm",
|
|
5173
|
+
description: "Arcus spot Stock Token RFQ buy/sell",
|
|
5174
|
+
commonParams: ["keyGen", "purposeText"],
|
|
5175
|
+
params: {
|
|
5176
|
+
secp256k1KeyGenId: { type: "string", required: true, description: "Custody secp256k1 KeyGen id" },
|
|
5177
|
+
ed25519KeyGenId: { type: "string", required: true, description: "Paired ed25519 KeyGen id" },
|
|
5178
|
+
ticker: { type: "string", required: true, description: "Spot ticker e.g. AAPL" },
|
|
5179
|
+
isBuy: { type: "boolean", required: true, description: "true for buy" },
|
|
5180
|
+
sizeHuman: { type: "string", required: true, description: "Token size" },
|
|
5181
|
+
limitPxHuman: { type: "string", required: false, description: "Optional limit price" }
|
|
5182
|
+
}
|
|
5183
|
+
},
|
|
5184
|
+
{
|
|
5185
|
+
id: "arcus.close",
|
|
5186
|
+
protocolId: ARCUS_PROTOCOL_ID,
|
|
5187
|
+
chainCategory: "evm",
|
|
5188
|
+
description: "Close Arcus perp position with IoC reduce-only limit order",
|
|
5189
|
+
commonParams: ["keyGen", "purposeText"],
|
|
5190
|
+
params: {
|
|
5191
|
+
secp256k1KeyGenId: { type: "string", required: true, description: "Custody secp256k1 KeyGen id" },
|
|
5192
|
+
ed25519KeyGenId: { type: "string", required: true, description: "Paired ed25519 KeyGen id" },
|
|
5193
|
+
market: { type: "string", required: true, description: "Perp market" },
|
|
5194
|
+
isLong: { type: "boolean", required: true, description: "true when closing a long position" },
|
|
5195
|
+
limitPxHuman: { type: "string", required: true, description: "Limit price for IoC close" },
|
|
5196
|
+
szHuman: { type: "string", required: true, description: "Size to close" }
|
|
5197
|
+
}
|
|
5198
|
+
},
|
|
5199
|
+
{
|
|
5200
|
+
id: "arcus.cancelOrder",
|
|
5201
|
+
protocolId: ARCUS_PROTOCOL_ID,
|
|
5202
|
+
chainCategory: "evm",
|
|
5203
|
+
description: "Cancel Arcus perp order",
|
|
5204
|
+
commonParams: ["keyGen", "purposeText"],
|
|
5205
|
+
params: {
|
|
5206
|
+
secp256k1KeyGenId: { type: "string", required: true, description: "Custody secp256k1 KeyGen id" },
|
|
5207
|
+
ed25519KeyGenId: { type: "string", required: true, description: "Paired ed25519 KeyGen id" },
|
|
5208
|
+
market: { type: "string", required: true, description: "Perp market" },
|
|
5209
|
+
orderId: { type: "string", required: true, description: "Server order id" }
|
|
5210
|
+
}
|
|
5211
|
+
},
|
|
5212
|
+
{
|
|
5213
|
+
id: "arcus.setLeverage",
|
|
5214
|
+
protocolId: ARCUS_PROTOCOL_ID,
|
|
5215
|
+
chainCategory: "evm",
|
|
5216
|
+
description: "Set Arcus perp leverage for a market",
|
|
5217
|
+
commonParams: ["keyGen", "purposeText"],
|
|
5218
|
+
params: {
|
|
5219
|
+
secp256k1KeyGenId: { type: "string", required: true, description: "Custody secp256k1 KeyGen id" },
|
|
5220
|
+
ed25519KeyGenId: { type: "string", required: true, description: "Paired ed25519 KeyGen id" },
|
|
5221
|
+
market: { type: "string", required: true, description: "Perp market" },
|
|
5222
|
+
leverage: { type: "number", required: true, description: "Target leverage" }
|
|
5223
|
+
}
|
|
5224
|
+
},
|
|
5225
|
+
{
|
|
5226
|
+
id: "arcus.deposit",
|
|
5227
|
+
protocolId: ARCUS_PROTOCOL_ID,
|
|
5228
|
+
chainCategory: "evm",
|
|
5229
|
+
description: "Deposit USDG on Robinhood Chain into Arcus perp or spot collateral (approve + initiateDeposit). Requires registered API key.",
|
|
5230
|
+
commonParams: ["keyGen", "purposeText", "useCustomGas"],
|
|
5231
|
+
params: {
|
|
5232
|
+
usdHuman: { type: "string", required: true, description: "USD amount to deposit" },
|
|
5233
|
+
product: { type: "string", required: false, description: "perp (default) or spot" }
|
|
5234
|
+
}
|
|
5235
|
+
},
|
|
5236
|
+
{
|
|
5237
|
+
id: "arcus.withdraw",
|
|
5238
|
+
protocolId: ARCUS_PROTOCOL_ID,
|
|
5239
|
+
chainCategory: "evm",
|
|
5240
|
+
description: "Withdraw USDG collateral from Arcus to wallet (EIP-712 + POST /v1/withdraw)",
|
|
5241
|
+
commonParams: ["keyGen", "purposeText"],
|
|
5242
|
+
params: {
|
|
5243
|
+
usdHuman: { type: "string", required: true, description: "USD amount to withdraw" },
|
|
5244
|
+
product: { type: "string", required: false, description: "perp (default) or spot" }
|
|
5245
|
+
}
|
|
5246
|
+
}
|
|
5247
|
+
]
|
|
5248
|
+
};
|
|
5249
|
+
registerProtocolModule(arcusProtocolModule);
|
|
4373
5250
|
var MORPHO_GRAPHQL_URL = "https://api.morpho.org/graphql";
|
|
4374
5251
|
async function morphoGql(query, variables) {
|
|
4375
5252
|
const body = { query, variables: variables ?? {} };
|
|
@@ -4718,6 +5595,97 @@ var circleCctpProtocolModule = {
|
|
|
4718
5595
|
]
|
|
4719
5596
|
};
|
|
4720
5597
|
registerProtocolModule(circleCctpProtocolModule);
|
|
5598
|
+
var VENICE_PROTOCOL_ID = "venice";
|
|
5599
|
+
var VENICE_BASE_CHAIN_ID = 8453;
|
|
5600
|
+
var VVV_BASE = "0xacfE6019Ed1A7Dc6f7B508C02d1b04ec88cC21bf";
|
|
5601
|
+
var DIEM_BASE = "0xF4d97F2da56e8c3098f3a8D538DB630A2606a024";
|
|
5602
|
+
function isVeniceBaseChain(chainId) {
|
|
5603
|
+
return chainId === VENICE_BASE_CHAIN_ID;
|
|
5604
|
+
}
|
|
5605
|
+
|
|
5606
|
+
// src/protocols/evm/venice/index.ts
|
|
5607
|
+
var veniceProtocolModule = {
|
|
5608
|
+
id: VENICE_PROTOCOL_ID,
|
|
5609
|
+
chainCategory: "evm",
|
|
5610
|
+
isChainSupported(ctx) {
|
|
5611
|
+
if (ctx.chainCategory !== "evm") return false;
|
|
5612
|
+
const n = typeof ctx.chainId === "number" ? ctx.chainId : Number.parseInt(String(ctx.chainId), 10);
|
|
5613
|
+
return isVeniceBaseChain(n);
|
|
5614
|
+
},
|
|
5615
|
+
isTokenSupported(token) {
|
|
5616
|
+
return token.category === "evm" && token.kind === "erc20";
|
|
5617
|
+
},
|
|
5618
|
+
actions: [
|
|
5619
|
+
{
|
|
5620
|
+
id: "venice.stake-vvv",
|
|
5621
|
+
protocolId: VENICE_PROTOCOL_ID,
|
|
5622
|
+
chainCategory: "evm",
|
|
5623
|
+
description: "Stake VVV \u2192 sVVV on Base",
|
|
5624
|
+
commonParams: ["keyGen", "purposeText", "useCustomGas"],
|
|
5625
|
+
params: { amountHuman: { type: "string", required: true, description: "VVV amount" } }
|
|
5626
|
+
},
|
|
5627
|
+
{
|
|
5628
|
+
id: "venice.initiate-unstake-svvv",
|
|
5629
|
+
protocolId: VENICE_PROTOCOL_ID,
|
|
5630
|
+
chainCategory: "evm",
|
|
5631
|
+
description: "Start sVVV unstake (7-day cooldown)",
|
|
5632
|
+
commonParams: ["keyGen", "purposeText", "useCustomGas"],
|
|
5633
|
+
params: { amountHuman: { type: "string", required: true, description: "sVVV amount" } }
|
|
5634
|
+
},
|
|
5635
|
+
{
|
|
5636
|
+
id: "venice.complete-unstake-svvv",
|
|
5637
|
+
protocolId: VENICE_PROTOCOL_ID,
|
|
5638
|
+
chainCategory: "evm",
|
|
5639
|
+
description: "Claim VVV after sVVV unstake cooldown",
|
|
5640
|
+
commonParams: ["keyGen", "purposeText", "useCustomGas"],
|
|
5641
|
+
params: {}
|
|
5642
|
+
},
|
|
5643
|
+
{
|
|
5644
|
+
id: "venice.mint-diem",
|
|
5645
|
+
protocolId: VENICE_PROTOCOL_ID,
|
|
5646
|
+
chainCategory: "evm",
|
|
5647
|
+
description: "Lock sVVV and mint DIEM",
|
|
5648
|
+
commonParams: ["keyGen", "purposeText", "useCustomGas"],
|
|
5649
|
+
params: {
|
|
5650
|
+
svvvLockAmountHuman: { type: "string", required: true, description: "sVVV to lock" },
|
|
5651
|
+
slippageBps: { type: "number", required: false, description: "Min DIEM slippage bps (default 50)" }
|
|
5652
|
+
}
|
|
5653
|
+
},
|
|
5654
|
+
{
|
|
5655
|
+
id: "venice.burn-diem",
|
|
5656
|
+
protocolId: VENICE_PROTOCOL_ID,
|
|
5657
|
+
chainCategory: "evm",
|
|
5658
|
+
description: "Burn DIEM to unlock locked sVVV",
|
|
5659
|
+
commonParams: ["keyGen", "purposeText", "useCustomGas"],
|
|
5660
|
+
params: { amountHuman: { type: "string", required: true, description: "DIEM to burn" } }
|
|
5661
|
+
},
|
|
5662
|
+
{
|
|
5663
|
+
id: "venice.stake-diem",
|
|
5664
|
+
protocolId: VENICE_PROTOCOL_ID,
|
|
5665
|
+
chainCategory: "evm",
|
|
5666
|
+
description: "Stake DIEM for Venice API credits ($1/day per DIEM)",
|
|
5667
|
+
commonParams: ["keyGen", "purposeText", "useCustomGas"],
|
|
5668
|
+
params: { amountHuman: { type: "string", required: true, description: "DIEM amount" } }
|
|
5669
|
+
},
|
|
5670
|
+
{
|
|
5671
|
+
id: "venice.initiate-unstake-diem",
|
|
5672
|
+
protocolId: VENICE_PROTOCOL_ID,
|
|
5673
|
+
chainCategory: "evm",
|
|
5674
|
+
description: "Start DIEM unstake (1-day cooldown)",
|
|
5675
|
+
commonParams: ["keyGen", "purposeText", "useCustomGas"],
|
|
5676
|
+
params: { amountHuman: { type: "string", required: true, description: "Staked DIEM amount" } }
|
|
5677
|
+
},
|
|
5678
|
+
{
|
|
5679
|
+
id: "venice.complete-unstake-diem",
|
|
5680
|
+
protocolId: VENICE_PROTOCOL_ID,
|
|
5681
|
+
chainCategory: "evm",
|
|
5682
|
+
description: "Claim DIEM after unstake cooldown",
|
|
5683
|
+
commonParams: ["keyGen", "purposeText", "useCustomGas"],
|
|
5684
|
+
params: {}
|
|
5685
|
+
}
|
|
5686
|
+
]
|
|
5687
|
+
};
|
|
5688
|
+
registerProtocolModule(veniceProtocolModule);
|
|
4721
5689
|
var skillsDir = join(dirname(fileURLToPath(import.meta.url)), "skills");
|
|
4722
5690
|
var SKILL_PROTOCOL_IDS = [
|
|
4723
5691
|
"aave-v4",
|
|
@@ -4730,6 +5698,7 @@ var SKILL_PROTOCOL_IDS = [
|
|
|
4730
5698
|
"sky",
|
|
4731
5699
|
"gmx",
|
|
4732
5700
|
"hyperliquid",
|
|
5701
|
+
"arcus",
|
|
4733
5702
|
"morpho",
|
|
4734
5703
|
"circle-cctp"
|
|
4735
5704
|
];
|
|
@@ -4779,6 +5748,7 @@ function getProtocolDiscoverySummary(protocolId) {
|
|
|
4779
5748
|
}))
|
|
4780
5749
|
};
|
|
4781
5750
|
}
|
|
5751
|
+
init_support();
|
|
4782
5752
|
var EULER_V2_SUBGRAPH_CHAIN_IDS = [
|
|
4783
5753
|
1,
|
|
4784
5754
|
8453,
|
|
@@ -4963,7 +5933,7 @@ var PROTOCOL_SUPPORT_ADVISORS = {
|
|
|
4963
5933
|
}));
|
|
4964
5934
|
return {
|
|
4965
5935
|
tokens,
|
|
4966
|
-
notes: "Morpho vault assets and Blue market loan/collateral tokens from api.morpho.org."
|
|
5936
|
+
notes: chainId === ROBINHOOD_CHAIN_ID ? 'Morpho vault assets on Robinhood Chain. Robinhood Earn USDG yield uses Steakhouse USDG (steakUSDG) \u2014 query "robinhood earn" or robinhoodEarn: true on deposit multisign; not Arcus collateral.' : "Morpho vault assets and Blue market loan/collateral tokens from api.morpho.org."
|
|
4967
5937
|
};
|
|
4968
5938
|
},
|
|
4969
5939
|
async isTokenSupported(chainId, address) {
|
|
@@ -5049,6 +6019,39 @@ var PROTOCOL_SUPPORT_ADVISORS = {
|
|
|
5049
6019
|
notes: "Hyperliquid perp coins from fetch_markets; chainId 999 mainnet or 998 testnet for HyperEVM multisign."
|
|
5050
6020
|
};
|
|
5051
6021
|
}
|
|
6022
|
+
}),
|
|
6023
|
+
[VENICE_PROTOCOL_ID]: advisor(VENICE_PROTOCOL_ID, "fixed_addresses", {
|
|
6024
|
+
async supportedChainIds() {
|
|
6025
|
+
return [VENICE_BASE_CHAIN_ID];
|
|
6026
|
+
},
|
|
6027
|
+
async supportedTokens() {
|
|
6028
|
+
return {
|
|
6029
|
+
tokens: [
|
|
6030
|
+
{ address: VVV_BASE, symbol: "VVV", roles: ["staking_input"] },
|
|
6031
|
+
{ address: DIEM_BASE, symbol: "DIEM", roles: ["api_credit"] }
|
|
6032
|
+
],
|
|
6033
|
+
notes: "Venice VVV/sVVV/DIEM staking on Base (8453). Stake DIEM for $1/day Venice API credit per token. Never send tokens directly to contract addresses."
|
|
6034
|
+
};
|
|
6035
|
+
},
|
|
6036
|
+
async isTokenSupported(_chainId, address) {
|
|
6037
|
+
try {
|
|
6038
|
+
const normalized = getAddress(address).toLowerCase();
|
|
6039
|
+
return normalized === getAddress(VVV_BASE).toLowerCase() || normalized === getAddress(DIEM_BASE).toLowerCase();
|
|
6040
|
+
} catch {
|
|
6041
|
+
return false;
|
|
6042
|
+
}
|
|
6043
|
+
}
|
|
6044
|
+
}),
|
|
6045
|
+
arcus: advisor("arcus", "api_underlyings", {
|
|
6046
|
+
async supportedChainIds() {
|
|
6047
|
+
return [...ARCUS_SUPPORTED_CHAIN_IDS];
|
|
6048
|
+
},
|
|
6049
|
+
async supportedTokens() {
|
|
6050
|
+
return {
|
|
6051
|
+
tokens: [],
|
|
6052
|
+
notes: "Arcus on Robinhood Chain (4663): perps via fetch_markets; spot Stock Tokens via spot_fetch_markets. Custody is secp256k1 on 4663; API signing uses paired ed25519 KeyGen (same GroupId)."
|
|
6053
|
+
};
|
|
6054
|
+
}
|
|
5052
6055
|
})
|
|
5053
6056
|
};
|
|
5054
6057
|
function getProtocolSupportAdvisor(protocolId) {
|
|
@@ -5069,8 +6072,10 @@ registerProtocolModule(aaveV4ProtocolModule);
|
|
|
5069
6072
|
registerProtocolModule(eulerV2ProtocolModule);
|
|
5070
6073
|
registerProtocolModule(gmxProtocolModule);
|
|
5071
6074
|
registerProtocolModule(hyperliquidProtocolModule);
|
|
6075
|
+
registerProtocolModule(arcusProtocolModule);
|
|
5072
6076
|
registerProtocolModule(morphoProtocolModule);
|
|
5073
6077
|
registerProtocolModule(circleCctpProtocolModule);
|
|
6078
|
+
registerProtocolModule(veniceProtocolModule);
|
|
5074
6079
|
function getAgentCatalog() {
|
|
5075
6080
|
return {
|
|
5076
6081
|
protocols: getProtocolModules(),
|
|
@@ -5089,13 +6094,15 @@ function getAgentCatalog() {
|
|
|
5089
6094
|
eulerV2: eulerV2ProtocolModule,
|
|
5090
6095
|
gmx: gmxProtocolModule,
|
|
5091
6096
|
hyperliquid: hyperliquidProtocolModule,
|
|
6097
|
+
arcus: arcusProtocolModule,
|
|
5092
6098
|
morpho: morphoProtocolModule,
|
|
5093
6099
|
circleCctp: circleCctpProtocolModule,
|
|
6100
|
+
venice: veniceProtocolModule,
|
|
5094
6101
|
/** Prefer getAgentCatalogForMcp() or getMcpToolDefinitions() for MCP servers. */
|
|
5095
6102
|
mcp: getAgentCatalogForMcp()
|
|
5096
6103
|
};
|
|
5097
6104
|
}
|
|
5098
6105
|
|
|
5099
|
-
export { EVM_COMMON_PARAM_DOCS, MANAGEMENT_SIG_DOC, MCP_NON_SUBMIT_TOOL_NAMES, MCP_TOOL_DEFINITIONS, MCP_TOOL_INPUT_SCHEMAS, MCP_TOOL_OUTPUT_SCHEMAS, MULTISIGN_OUTPUT_DOC, MULTISIGN_SUBMIT_OUTPUT_DOC, PROTOCOL_SUPPORT_ADVISORS, chainDetailSchema, evmAddressSchema, evmMultisignCommonInputSchema, getActionsByChainCategory, getAgentCatalog, getAgentCatalogForMcp, getMcpToolByName, getMcpToolDefinitions, getMcpToolInputSchema, getMcpToolOutputSchema, getProtocolDiscoverySummary, getProtocolModules, getProtocolSkill, getProtocolSupportAdvisor, getToolsForProtocol, jsonObjectSchema, keyGenSchema, listProtocolSupportAdvisorIds, listProtocolsWithSkills, mcpAaveV4BorrowInputSchema, mcpAaveV4DepositInputSchema, mcpAaveV4RepayInputSchema, mcpAaveV4WithdrawInputSchema, mcpCurveDaoBuildSwapMultisignInputSchema, mcpCurveDaoQuoteInputSchema, mcpCurveDaoQuoteOutputSchema, mcpEthenaClaimInputSchema, mcpEthenaCooldownInputSchema, mcpEthenaRedeemInputSchema, mcpEthenaStakeInputSchema, mcpEulerV2BorrowRepayInputSchema, mcpEulerV2CollateralDepositInputSchema, mcpEulerV2CollateralWithdrawInputSchema, mcpEulerV2FetchLendVaultsInputSchema, mcpEulerV2FetchLendVaultsOutputSchema, mcpEulerV2IsolatedBorrowInputSchema, mcpEulerV2IsolatedLendInputSchema, mcpEulerV2VaultWithdrawInputSchema, mcpGmxCancelInputSchema, mcpGmxDecreaseInputSchema, mcpGmxFetchGmApyInputSchema, mcpGmxFetchGmApyOutputSchema, mcpGmxFetchGmMarketsInputSchema, mcpGmxFetchGmMarketsOutputSchema, mcpGmxFetchMarketPricesInputSchema, mcpGmxFetchMarketPricesOutputSchema, mcpGmxFetchMarketsInputSchema, mcpGmxFetchMarketsOutputSchema, mcpGmxFetchOhlcvInputSchema, mcpGmxFetchOhlcvOutputSchema, mcpGmxFetchOrdersInputSchema, mcpGmxFetchOrdersOutputSchema, mcpGmxFetchPositionsInputSchema, mcpGmxFetchPositionsOutputSchema, mcpGmxFetchStakingPowerInputSchema, mcpGmxFetchStakingPowerOutputSchema, mcpGmxGmDepositInputSchema, mcpGmxGmWithdrawInputSchema, mcpGmxIncreaseInputSchema, mcpServerSubmitOutputSchema as mcpGmxMultisignOutputSchema, mcpGmxStakeGmxInputSchema, mcpGmxUnstakeGmxInputSchema, mcpHyperliquidBridgeDepositInputSchema, mcpHyperliquidBridgeWithdrawInputSchema, mcpHyperliquidCancelInputSchema, mcpHyperliquidCloseInputSchema, mcpHyperliquidDelegateInputSchema, mcpHyperliquidFetchDelegationsInputSchema, mcpHyperliquidFetchDelegationsOutputSchema, mcpHyperliquidFetchMarketSnapshotInputSchema, mcpHyperliquidFetchMarketSnapshotOutputSchema, mcpHyperliquidFetchMarketsInputSchema, mcpHyperliquidFetchMarketsOutputSchema, mcpHyperliquidFetchOhlcvInputSchema, mcpHyperliquidFetchOhlcvOutputSchema, mcpHyperliquidFetchOpenContextInputSchema, mcpHyperliquidFetchOpenContextOutputSchema, mcpHyperliquidFetchOpenOrdersInputSchema, mcpHyperliquidFetchOpenOrdersOutputSchema, mcpHyperliquidFetchPositionsInputSchema, mcpHyperliquidFetchPositionsOutputSchema, mcpHyperliquidFetchStakingSummaryInputSchema, mcpHyperliquidFetchStakingSummaryOutputSchema, mcpHyperliquidFetchUsdClassBalancesInputSchema, mcpHyperliquidFetchUsdClassBalancesOutputSchema, mcpHyperliquidFetchUserVaultEquitiesInputSchema, mcpHyperliquidFetchUserVaultEquitiesOutputSchema, mcpHyperliquidFetchVaultsInputSchema, mcpHyperliquidFetchVaultsOutputSchema, mcpHyperliquidLimitOrderInputSchema, mcpHyperliquidSearchMarketsInputSchema, mcpHyperliquidSearchMarketsOutputSchema, mcpHyperliquidStakeInputSchema, mcpHyperliquidUndelegateInputSchema, mcpHyperliquidUnstakeInputSchema, mcpHyperliquidUpdateLeverageInputSchema, mcpHyperliquidUsdTransferInputSchema, mcpHyperliquidVaultDepositInputSchema, mcpHyperliquidVaultWithdrawInputSchema, mcpLidoClaimWithdrawalInputSchema, mcpLidoRequestWithdrawalsInputSchema, mcpLidoSubmitInputSchema, mcpLidoUnwrapWstEthInputSchema, mcpLidoWrapStEthInputSchema, mcpMapleDepositInputSchema, mcpMapleRequestRedeemInputSchema, mcpMorphoBlueBorrowInputSchema, mcpMorphoBlueCollateralDepositInputSchema, mcpMorphoBlueCollateralWithdrawInputSchema, mcpMorphoBlueRepayInputSchema, mcpMorphoFetchBlueMarketsInputSchema, mcpMorphoFetchBlueMarketsOutputSchema, mcpMorphoFetchEarnVaultsInputSchema, mcpMorphoFetchEarnVaultsOutputSchema, mcpMorphoMerklClaimInputSchema, mcpMorphoVaultDepositInputSchema, mcpMorphoVaultWithdrawInputSchema, mcpMultisignInput, multisignOutputSchema as mcpMultisignOutputSchema, mcpServerSubmitOutputSchema as mcpMultisignSubmitOutputSchema, mcpServerCommonInputSchema, mcpServerMultisignInput, mcpServerSubmitOutputSchema, mcpSkyLockstakeCloseInputSchema, mcpSkyLockstakeDrawInputSchema, mcpSkyLockstakeGetRewardInputSchema, mcpSkyLockstakeStakeInputSchema, mcpSkyLockstakeWipeInputSchema, mcpSkySusdsDepositInputSchema, mcpSkySusdsRedeemInputSchema, mcpUniswapV4BuildCollectFeesMultisignInputSchema, mcpUniswapV4BuildDecreaseLiquidityMultisignInputSchema, mcpUniswapV4BuildIncreaseLiquidityMultisignInputSchema, mcpUniswapV4BuildLimitOrderMultisignInputSchema, mcpUniswapV4BuildMintLiquidityMultisignInputSchema, mcpUniswapV4BuildSwapMultisignInputSchema, mcpUniswapV4CreateSwapInputSchema, mcpUniswapV4CreateSwapOutputSchema, mcpUniswapV4FetchLimitOrdersInputSchema, mcpUniswapV4FetchLimitOrdersOutputSchema, mcpUniswapV4FetchOhlcvInputSchema, mcpUniswapV4FetchOhlcvOutputSchema, mcpUniswapV4LimitOrderQuoteInputSchema, mcpUniswapV4LimitOrderQuoteOutputSchema, mcpUniswapV4LpClaimInputSchema, mcpUniswapV4LpClaimOutputSchema, mcpUniswapV4LpCreatePositionInputSchema, mcpUniswapV4LpCreatePositionOutputSchema, mcpUniswapV4LpDecreaseInputSchema, mcpUniswapV4LpDecreaseOutputSchema, mcpUniswapV4LpIncreaseInputSchema, mcpUniswapV4LpIncreaseOutputSchema, mcpUniswapV4LpListPoolsInputSchema, mcpUniswapV4LpListPoolsOutputSchema, mcpUniswapV4LpListPositionsInputSchema, mcpUniswapV4LpListPositionsOutputSchema, mcpUniswapV4QuoteInputSchema, mcpUniswapV4QuoteOutputSchema, mcpUniswapV4RegisterPositionFromMintTxInputSchema, mcpUniswapV4RegisterPositionFromMintTxOutputSchema, mcpUniswapV4RegisterPositionNftInputSchema, mcpUniswapV4RegisterPositionNftOutputSchema, multisignOutputSchema, parseAgentBoolean, parseAgentEvmChainId, parseMcpToolInput, parseMcpToolOutput, parseMultisignBuilderOutput, uniswapQuoteTradeTypeSchema, zodSchemaToMcpJsonSchema };
|
|
6106
|
+
export { EVM_COMMON_PARAM_DOCS, MANAGEMENT_SIG_DOC, MCP_NON_SUBMIT_TOOL_NAMES, MCP_TOOL_DEFINITIONS, MCP_TOOL_INPUT_SCHEMAS, MCP_TOOL_OUTPUT_SCHEMAS, MULTISIGN_OUTPUT_DOC, MULTISIGN_SUBMIT_OUTPUT_DOC, PROTOCOL_SUPPORT_ADVISORS, chainDetailSchema, evmAddressSchema, evmMultisignCommonInputSchema, getActionsByChainCategory, getAgentCatalog, getAgentCatalogForMcp, getMcpToolByName, getMcpToolDefinitions, getMcpToolInputSchema, getMcpToolOutputSchema, getProtocolDiscoverySummary, getProtocolModules, getProtocolSkill, getProtocolSupportAdvisor, getToolsForProtocol, jsonObjectSchema, keyGenSchema, listProtocolSupportAdvisorIds, listProtocolsWithSkills, mcpAaveV4BorrowInputSchema, mcpAaveV4DepositInputSchema, mcpAaveV4RepayInputSchema, mcpAaveV4WithdrawInputSchema, mcpArcusBuildCancelOrderMultisignInputSchema, mcpArcusBuildCloseMultisignInputSchema, mcpArcusBuildCreateApiKeyMultisignInputSchema, mcpArcusBuildDepositMultisignInputSchema, mcpArcusBuildPlaceOrderMultisignInputSchema, mcpArcusBuildSetLeverageMultisignInputSchema, mcpArcusBuildWithdrawMultisignInputSchema, mcpArcusFetchAccountInputSchema, mcpArcusFetchAccountOutputSchema, mcpArcusFetchMarketSnapshotInputSchema, mcpArcusFetchMarketSnapshotOutputSchema, mcpArcusFetchMarketsInputSchema, mcpArcusFetchMarketsOutputSchema, mcpArcusFetchOhlcvInputSchema, mcpArcusFetchOhlcvOutputSchema, mcpArcusFetchOpenContextInputSchema, mcpArcusFetchOpenContextOutputSchema, mcpArcusFetchOpenOrdersInputSchema, mcpArcusFetchOpenOrdersOutputSchema, mcpArcusFetchPositionsInputSchema, mcpArcusFetchPositionsOutputSchema, mcpArcusSearchMarketsInputSchema, mcpArcusSearchMarketsOutputSchema, mcpArcusSpotBuildRfqMultisignInputSchema, mcpArcusSpotFetchBalancesInputSchema, mcpArcusSpotFetchBalancesOutputSchema, mcpArcusSpotFetchMarketsInputSchema, mcpArcusSpotFetchMarketsOutputSchema, mcpArcusSpotFetchOhlcvInputSchema, mcpArcusSpotFetchOhlcvOutputSchema, mcpCurveDaoBuildSwapMultisignInputSchema, mcpCurveDaoQuoteInputSchema, mcpCurveDaoQuoteOutputSchema, mcpEthenaClaimInputSchema, mcpEthenaCooldownInputSchema, mcpEthenaRedeemInputSchema, mcpEthenaStakeInputSchema, mcpEulerV2BorrowRepayInputSchema, mcpEulerV2CollateralDepositInputSchema, mcpEulerV2CollateralWithdrawInputSchema, mcpEulerV2FetchLendVaultsInputSchema, mcpEulerV2FetchLendVaultsOutputSchema, mcpEulerV2IsolatedBorrowInputSchema, mcpEulerV2IsolatedLendInputSchema, mcpEulerV2VaultWithdrawInputSchema, mcpGmxCancelInputSchema, mcpGmxDecreaseInputSchema, mcpGmxFetchGmApyInputSchema, mcpGmxFetchGmApyOutputSchema, mcpGmxFetchGmMarketsInputSchema, mcpGmxFetchGmMarketsOutputSchema, mcpGmxFetchMarketPricesInputSchema, mcpGmxFetchMarketPricesOutputSchema, mcpGmxFetchMarketsInputSchema, mcpGmxFetchMarketsOutputSchema, mcpGmxFetchOhlcvInputSchema, mcpGmxFetchOhlcvOutputSchema, mcpGmxFetchOrdersInputSchema, mcpGmxFetchOrdersOutputSchema, mcpGmxFetchPositionsInputSchema, mcpGmxFetchPositionsOutputSchema, mcpGmxFetchStakingPowerInputSchema, mcpGmxFetchStakingPowerOutputSchema, mcpGmxGmDepositInputSchema, mcpGmxGmWithdrawInputSchema, mcpGmxIncreaseInputSchema, mcpServerSubmitOutputSchema as mcpGmxMultisignOutputSchema, mcpGmxStakeGmxInputSchema, mcpGmxUnstakeGmxInputSchema, mcpHyperliquidBridgeDepositInputSchema, mcpHyperliquidBridgeWithdrawInputSchema, mcpHyperliquidCancelInputSchema, mcpHyperliquidCloseInputSchema, mcpHyperliquidDelegateInputSchema, mcpHyperliquidFetchDelegationsInputSchema, mcpHyperliquidFetchDelegationsOutputSchema, mcpHyperliquidFetchMarketSnapshotInputSchema, mcpHyperliquidFetchMarketSnapshotOutputSchema, mcpHyperliquidFetchMarketsInputSchema, mcpHyperliquidFetchMarketsOutputSchema, mcpHyperliquidFetchOhlcvInputSchema, mcpHyperliquidFetchOhlcvOutputSchema, mcpHyperliquidFetchOpenContextInputSchema, mcpHyperliquidFetchOpenContextOutputSchema, mcpHyperliquidFetchOpenOrdersInputSchema, mcpHyperliquidFetchOpenOrdersOutputSchema, mcpHyperliquidFetchPositionsInputSchema, mcpHyperliquidFetchPositionsOutputSchema, mcpHyperliquidFetchStakingSummaryInputSchema, mcpHyperliquidFetchStakingSummaryOutputSchema, mcpHyperliquidFetchUsdClassBalancesInputSchema, mcpHyperliquidFetchUsdClassBalancesOutputSchema, mcpHyperliquidFetchUserVaultEquitiesInputSchema, mcpHyperliquidFetchUserVaultEquitiesOutputSchema, mcpHyperliquidFetchVaultsInputSchema, mcpHyperliquidFetchVaultsOutputSchema, mcpHyperliquidLimitOrderInputSchema, mcpHyperliquidSearchMarketsInputSchema, mcpHyperliquidSearchMarketsOutputSchema, mcpHyperliquidStakeInputSchema, mcpHyperliquidUndelegateInputSchema, mcpHyperliquidUnstakeInputSchema, mcpHyperliquidUpdateLeverageInputSchema, mcpHyperliquidUsdTransferInputSchema, mcpHyperliquidVaultDepositInputSchema, mcpHyperliquidVaultWithdrawInputSchema, mcpLidoClaimWithdrawalInputSchema, mcpLidoRequestWithdrawalsInputSchema, mcpLidoSubmitInputSchema, mcpLidoUnwrapWstEthInputSchema, mcpLidoWrapStEthInputSchema, mcpMapleDepositInputSchema, mcpMapleRequestRedeemInputSchema, mcpMorphoBlueBorrowInputSchema, mcpMorphoBlueCollateralDepositInputSchema, mcpMorphoBlueCollateralWithdrawInputSchema, mcpMorphoBlueRepayInputSchema, mcpMorphoFetchBlueMarketsInputSchema, mcpMorphoFetchBlueMarketsOutputSchema, mcpMorphoFetchEarnVaultsInputSchema, mcpMorphoFetchEarnVaultsOutputSchema, mcpMorphoMerklClaimInputSchema, mcpMorphoVaultDepositInputSchema, mcpMorphoVaultWithdrawInputSchema, mcpMultisignInput, multisignOutputSchema as mcpMultisignOutputSchema, mcpServerSubmitOutputSchema as mcpMultisignSubmitOutputSchema, mcpServerCommonInputSchema, mcpServerMultisignInput, mcpServerSubmitOutputSchema, mcpSkyLockstakeCloseInputSchema, mcpSkyLockstakeDrawInputSchema, mcpSkyLockstakeGetRewardInputSchema, mcpSkyLockstakeStakeInputSchema, mcpSkyLockstakeWipeInputSchema, mcpSkySusdsDepositInputSchema, mcpSkySusdsRedeemInputSchema, mcpUniswapV4BuildCollectFeesMultisignInputSchema, mcpUniswapV4BuildDecreaseLiquidityMultisignInputSchema, mcpUniswapV4BuildIncreaseLiquidityMultisignInputSchema, mcpUniswapV4BuildLimitOrderMultisignInputSchema, mcpUniswapV4BuildMintLiquidityMultisignInputSchema, mcpUniswapV4BuildSwapMultisignInputSchema, mcpUniswapV4CreateSwapInputSchema, mcpUniswapV4CreateSwapOutputSchema, mcpUniswapV4FetchLimitOrdersInputSchema, mcpUniswapV4FetchLimitOrdersOutputSchema, mcpUniswapV4FetchOhlcvInputSchema, mcpUniswapV4FetchOhlcvOutputSchema, mcpUniswapV4LimitOrderQuoteInputSchema, mcpUniswapV4LimitOrderQuoteOutputSchema, mcpUniswapV4LpClaimInputSchema, mcpUniswapV4LpClaimOutputSchema, mcpUniswapV4LpCreatePositionInputSchema, mcpUniswapV4LpCreatePositionOutputSchema, mcpUniswapV4LpDecreaseInputSchema, mcpUniswapV4LpDecreaseOutputSchema, mcpUniswapV4LpIncreaseInputSchema, mcpUniswapV4LpIncreaseOutputSchema, mcpUniswapV4LpListPoolsInputSchema, mcpUniswapV4LpListPoolsOutputSchema, mcpUniswapV4LpListPositionsInputSchema, mcpUniswapV4LpListPositionsOutputSchema, mcpUniswapV4QuoteInputSchema, mcpUniswapV4QuoteOutputSchema, mcpUniswapV4RegisterPositionFromMintTxInputSchema, mcpUniswapV4RegisterPositionFromMintTxOutputSchema, mcpUniswapV4RegisterPositionNftInputSchema, mcpUniswapV4RegisterPositionNftOutputSchema, mcpVeniceBurnDiemInputSchema, mcpVeniceCompleteUnstakeDiemInputSchema, mcpVeniceCompleteUnstakeSvvvInputSchema, mcpVeniceInitiateUnstakeDiemInputSchema, mcpVeniceInitiateUnstakeSvvvInputSchema, mcpVeniceListModelsInputSchema, mcpVeniceListModelsOutputSchema, mcpVeniceMintDiemInputSchema, mcpVeniceReadMintDiemPreviewInputSchema, mcpVeniceReadMintDiemPreviewOutputSchema, mcpVeniceReadStakingStateInputSchema, mcpVeniceReadStakingStateOutputSchema, mcpVeniceStakeDiemInputSchema, mcpVeniceStakeVvvInputSchema, multisignOutputSchema, parseAgentBoolean, parseAgentEvmChainId, parseMcpToolInput, parseMcpToolOutput, parseMultisignBuilderOutput, uniswapQuoteTradeTypeSchema, zodSchemaToMcpJsonSchema };
|
|
5100
6107
|
//# sourceMappingURL=catalog.js.map
|
|
5101
6108
|
//# sourceMappingURL=catalog.js.map
|