@continuumdao/ctm-mpc-defi 0.2.47 → 0.2.49
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 +1181 -13
- package/dist/agent/catalog.cjs.map +1 -1
- package/dist/agent/catalog.d.ts +1532 -7
- package/dist/agent/catalog.js +1142 -14
- package/dist/agent/catalog.js.map +1 -1
- package/dist/agent/skills/continuum-dao/SKILL.md +2 -0
- package/dist/agent/skills/derive/SKILL.md +112 -0
- package/dist/agent/skills/hyperliquid/SKILL.md +22 -2
- package/dist/chains/evm/index.d.ts +118 -6
- package/dist/chains/near/index.d.ts +7 -1
- package/dist/chains/solana/index.d.ts +7 -1
- package/dist/core/index.cjs +2 -1
- package/dist/core/index.cjs.map +1 -1
- package/dist/core/index.d.ts +138 -7
- package/dist/core/index.js +2 -1
- package/dist/core/index.js.map +1 -1
- package/dist/index.cjs +2 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +848 -16
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/protocols/evm/aave-v4/index.d.ts +600 -6
- package/dist/protocols/evm/aerodrome/index.cjs.map +1 -1
- package/dist/protocols/evm/aerodrome/index.d.ts +125 -5
- package/dist/protocols/evm/aerodrome/index.js.map +1 -1
- package/dist/protocols/evm/arcus/index.d.ts +66 -2
- package/dist/protocols/evm/circle-cctp/index.d.ts +71 -2
- package/dist/protocols/evm/compound-v3/index.d.ts +52 -1
- package/dist/protocols/evm/continuum-dao/index.cjs +475 -1
- package/dist/protocols/evm/continuum-dao/index.cjs.map +1 -1
- package/dist/protocols/evm/continuum-dao/index.d.ts +230 -2
- package/dist/protocols/evm/continuum-dao/index.js +463 -3
- package/dist/protocols/evm/continuum-dao/index.js.map +1 -1
- package/dist/protocols/evm/curve-dao/index.d.ts +66 -2
- package/dist/protocols/evm/derive/index.cjs +2655 -0
- package/dist/protocols/evm/derive/index.cjs.map +1 -0
- package/dist/protocols/evm/derive/index.d.ts +859 -0
- package/dist/protocols/evm/derive/index.js +2536 -0
- package/dist/protocols/evm/derive/index.js.map +1 -0
- package/dist/protocols/evm/ethena/index.d.ts +52 -1
- package/dist/protocols/evm/euler-v2/index.d.ts +115 -16
- package/dist/protocols/evm/gmx/index.d.ts +66 -2
- package/dist/protocols/evm/hyperliquid/index.cjs +545 -267
- package/dist/protocols/evm/hyperliquid/index.cjs.map +1 -1
- package/dist/protocols/evm/hyperliquid/index.d.ts +152 -7
- package/dist/protocols/evm/hyperliquid/index.js +535 -269
- package/dist/protocols/evm/hyperliquid/index.js.map +1 -1
- package/dist/protocols/evm/lido/index.d.ts +52 -1
- package/dist/protocols/evm/maple/index.d.ts +52 -1
- package/dist/protocols/evm/morpho/index.d.ts +115 -4
- package/dist/protocols/evm/pendle/index.cjs +2 -1
- package/dist/protocols/evm/pendle/index.cjs.map +1 -1
- package/dist/protocols/evm/pendle/index.d.ts +125 -5
- package/dist/protocols/evm/pendle/index.js +2 -1
- package/dist/protocols/evm/pendle/index.js.map +1 -1
- package/dist/protocols/evm/permit2/index.d.ts +14 -1
- package/dist/protocols/evm/sky/index.d.ts +52 -1
- package/dist/protocols/evm/uniswap-v4/index.d.ts +78 -4
- package/dist/protocols/evm/venice/index.d.ts +52 -1
- package/package.json +7 -2
- package/dist/buildBatch-tsEUVn_a.d.ts +0 -45
- package/dist/eip712Multisign-6oNIlObj.d.ts +0 -39
- package/dist/envelope-Cm-llShH.d.ts +0 -37
- package/dist/merklDistributor-CdqtZC9N.d.ts +0 -65
- package/dist/multisign-Dr0j9fHm.d.ts +0 -489
- package/dist/registry-BvsXh0-r.d.ts +0 -8
- package/dist/types-RJpoU4Pc.d.ts +0 -34
- package/dist/types-lIfv59N1.d.ts +0 -63
package/dist/agent/catalog.js
CHANGED
|
@@ -2,6 +2,7 @@ import { getAddress, parseAbi, stringToHex, keccak256, toBytes, isAddress, zeroA
|
|
|
2
2
|
import { MidnightApi } from '@morpho-org/midnight-sdk/api';
|
|
3
3
|
import { zodToJsonSchema } from 'zod-to-json-schema';
|
|
4
4
|
import { z } from 'zod';
|
|
5
|
+
import '@msgpack/msgpack';
|
|
5
6
|
import { createRequire } from 'module';
|
|
6
7
|
import { fileURLToPath } from 'url';
|
|
7
8
|
import { readFileSync } from 'fs';
|
|
@@ -1299,6 +1300,14 @@ function aliasField(o, target, ...sources) {
|
|
|
1299
1300
|
const val = firstDefined(...sources.map((k) => o[k]));
|
|
1300
1301
|
if (val != null) o[target] = val;
|
|
1301
1302
|
}
|
|
1303
|
+
function normalizeHyperliquidTrailingOffsetType(o) {
|
|
1304
|
+
const raw = String(o.trailingOffsetType ?? "").trim().toLowerCase();
|
|
1305
|
+
if (!raw) return;
|
|
1306
|
+
if (raw === "price" || raw === "px" || raw === "distance") o.trailingOffsetType = "price";
|
|
1307
|
+
else if (raw === "percentage" || raw === "percent" || raw === "pct" || raw === "%") {
|
|
1308
|
+
o.trailingOffsetType = "percentage";
|
|
1309
|
+
}
|
|
1310
|
+
}
|
|
1302
1311
|
function derivePurposeIfMissing(o, build) {
|
|
1303
1312
|
const purposeText = String(o.purposeText ?? o.purpose ?? "").trim();
|
|
1304
1313
|
if (purposeText) {
|
|
@@ -1375,18 +1384,40 @@ function preprocessHyperliquidLimitOrderInput(raw) {
|
|
|
1375
1384
|
aliasField(o, "szHuman", "szHuman", "sz", "size");
|
|
1376
1385
|
aliasField(o, "takeProfitTriggerPxHuman", "takeProfitTriggerPxHuman", "takeProfitPxHuman", "tpTriggerPxHuman", "targetPxHuman");
|
|
1377
1386
|
aliasField(o, "stopLossTriggerPxHuman", "stopLossTriggerPxHuman", "stopLossPxHuman", "slTriggerPxHuman", "invalidationPxHuman");
|
|
1387
|
+
aliasField(o, "trailingOffsetHuman", "trailingOffsetHuman", "retracement", "trailingOffset");
|
|
1388
|
+
aliasField(o, "trailingOffsetType", "trailingOffsetType", "retracementUnit", "offsetType");
|
|
1389
|
+
aliasField(o, "trailingActivationPxHuman", "trailingActivationPxHuman", "activationPx", "activationPrice");
|
|
1390
|
+
normalizeHyperliquidTrailingOffsetType(o);
|
|
1378
1391
|
derivePurposeIfMissing(o, (x) => {
|
|
1379
1392
|
const coin = String(x.coin ?? "").trim();
|
|
1380
1393
|
const side = x.isBuy === true || x.isBuy === "true" ? "buy" : "sell";
|
|
1381
1394
|
const sz = String(x.szHuman ?? "").trim();
|
|
1382
1395
|
const tp = String(x.takeProfitTriggerPxHuman ?? "").trim();
|
|
1383
1396
|
const sl = String(x.stopLossTriggerPxHuman ?? "").trim();
|
|
1397
|
+
const trail = String(x.trailingOffsetHuman ?? "").trim();
|
|
1398
|
+
if (coin && sz && trail) return `HL trailing ${side} ${coin} ${sz}`;
|
|
1384
1399
|
if (coin && sz && (tp || sl)) return `HL bracket ${side} ${coin} ${sz}`;
|
|
1385
1400
|
if (coin && sz) return `HL limit ${side} ${coin} ${sz}`;
|
|
1386
1401
|
return void 0;
|
|
1387
1402
|
});
|
|
1388
1403
|
return o;
|
|
1389
1404
|
}
|
|
1405
|
+
function preprocessHyperliquidTrailingStopInput(raw) {
|
|
1406
|
+
const o = preprocessHyperliquidCoinInput(raw);
|
|
1407
|
+
if (!preprocessObject(o)) return raw;
|
|
1408
|
+
aliasField(o, "szHuman", "szHuman", "sz", "size");
|
|
1409
|
+
aliasField(o, "trailingOffsetHuman", "trailingOffsetHuman", "retracement", "trailingOffset");
|
|
1410
|
+
aliasField(o, "trailingOffsetType", "trailingOffsetType", "retracementUnit", "offsetType");
|
|
1411
|
+
aliasField(o, "trailingActivationPxHuman", "trailingActivationPxHuman", "activationPx", "activationPrice");
|
|
1412
|
+
normalizeHyperliquidTrailingOffsetType(o);
|
|
1413
|
+
derivePurposeIfMissing(o, (x) => {
|
|
1414
|
+
const coin = String(x.coin ?? "").trim();
|
|
1415
|
+
const offset = String(x.trailingOffsetHuman ?? "").trim();
|
|
1416
|
+
if (coin && offset) return `HL trailing stop ${coin} ${offset}`;
|
|
1417
|
+
return void 0;
|
|
1418
|
+
});
|
|
1419
|
+
return o;
|
|
1420
|
+
}
|
|
1390
1421
|
function preprocessHyperliquidCloseInput(raw) {
|
|
1391
1422
|
const o = preprocessHyperliquidCoinInput(raw);
|
|
1392
1423
|
if (!preprocessObject(o)) return raw;
|
|
@@ -3516,6 +3547,62 @@ var mcpContinuumDaoFetchProposalInputSchema = z.object({
|
|
|
3516
3547
|
var mcpContinuumDaoFetchProposalOutputSchema = z.object({
|
|
3517
3548
|
proposal: z.unknown()
|
|
3518
3549
|
});
|
|
3550
|
+
var mcpContinuumDaoProposalVoteRowSchema = z.object({
|
|
3551
|
+
voter: z.string(),
|
|
3552
|
+
explorerUrl: z.string(),
|
|
3553
|
+
support: z.number().int(),
|
|
3554
|
+
supportLabel: z.string(),
|
|
3555
|
+
weight: z.string(),
|
|
3556
|
+
weightCtm: z.string(),
|
|
3557
|
+
reason: z.string(),
|
|
3558
|
+
optionWeights: z.array(z.string()).optional(),
|
|
3559
|
+
how: z.string(),
|
|
3560
|
+
attached: z.boolean(),
|
|
3561
|
+
attachedTokenId: z.string().optional(),
|
|
3562
|
+
nodeInfo: z.object({
|
|
3563
|
+
forumHandle: z.string().optional(),
|
|
3564
|
+
email: z.string().optional(),
|
|
3565
|
+
ipv4: z.string().optional(),
|
|
3566
|
+
ipv6: z.string().optional(),
|
|
3567
|
+
vpsProvider: z.string().optional(),
|
|
3568
|
+
ramInstalled: z.string().optional(),
|
|
3569
|
+
cpuCores: z.string().optional(),
|
|
3570
|
+
dIDType: z.string().optional(),
|
|
3571
|
+
dID: z.string().optional(),
|
|
3572
|
+
dataHex: z.string().optional()
|
|
3573
|
+
}).strict().optional(),
|
|
3574
|
+
txHash: z.string().optional(),
|
|
3575
|
+
txExplorerUrl: z.string().optional(),
|
|
3576
|
+
blockNumber: z.string().optional()
|
|
3577
|
+
});
|
|
3578
|
+
var mcpContinuumDaoFetchProposalVotesInputSchema = z.object({
|
|
3579
|
+
chainId: z.union([z.string(), z.number()]),
|
|
3580
|
+
rpcUrl: z.string().min(1),
|
|
3581
|
+
proposalId: z.union([z.string(), z.number()]),
|
|
3582
|
+
governor: evmAddressSchema.optional(),
|
|
3583
|
+
votingEscrow: evmAddressSchema.optional(),
|
|
3584
|
+
nodeProperties: evmAddressSchema.optional(),
|
|
3585
|
+
fromBlock: z.union([z.string(), z.number()]).optional(),
|
|
3586
|
+
toBlock: z.union([z.string(), z.number()]).optional()
|
|
3587
|
+
});
|
|
3588
|
+
var mcpContinuumDaoFetchProposalVotesOutputSchema = z.object({
|
|
3589
|
+
proposalId: z.string(),
|
|
3590
|
+
catalogId: z.number().optional(),
|
|
3591
|
+
governor: z.string(),
|
|
3592
|
+
nodeProperties: z.string().optional(),
|
|
3593
|
+
title: z.string().optional(),
|
|
3594
|
+
configuration: z.enum(["bravo", "delta"]).optional(),
|
|
3595
|
+
fromBlock: z.string(),
|
|
3596
|
+
toBlock: z.string(),
|
|
3597
|
+
truncated: z.boolean(),
|
|
3598
|
+
votes: z.array(mcpContinuumDaoProposalVoteRowSchema),
|
|
3599
|
+
voterCount: z.number().int().nonnegative(),
|
|
3600
|
+
attachedVoterCount: z.number().int().nonnegative(),
|
|
3601
|
+
forWeight: z.string(),
|
|
3602
|
+
againstWeight: z.string(),
|
|
3603
|
+
abstainWeight: z.string(),
|
|
3604
|
+
note: z.string()
|
|
3605
|
+
});
|
|
3519
3606
|
var liveProposalRowSchema = z.object({
|
|
3520
3607
|
id: z.number().optional(),
|
|
3521
3608
|
onchainId: z.string(),
|
|
@@ -4513,6 +4600,34 @@ var mcpGmxFetchOhlcvOutputSchema = z.object({
|
|
|
4513
4600
|
candleCount: z.number().int().nonnegative(),
|
|
4514
4601
|
candles: z.array(gmxOhlcvCandleSchema)
|
|
4515
4602
|
});
|
|
4603
|
+
function hyperliquidFloatToWire(value) {
|
|
4604
|
+
const n = typeof value === "number" ? value : Number.parseFloat(String(value).trim());
|
|
4605
|
+
if (!Number.isFinite(n)) throw new Error("Invalid Hyperliquid wire number.");
|
|
4606
|
+
const rounded = n.toFixed(8);
|
|
4607
|
+
if (Math.abs(Number.parseFloat(rounded) - n) >= 1e-12) {
|
|
4608
|
+
throw new Error(`Hyperliquid wire value ${value} has too many decimal places.`);
|
|
4609
|
+
}
|
|
4610
|
+
const normalized = Number(rounded === "-0" ? "0" : rounded);
|
|
4611
|
+
return String(normalized);
|
|
4612
|
+
}
|
|
4613
|
+
var HYPERLIQUID_TRAILING_ACTIVATION_PX_ERROR = "Invalid trailing activation price.";
|
|
4614
|
+
var POSITIVE_DECIMAL_RE = /^\d+(\.\d+)?$/;
|
|
4615
|
+
function parseHyperliquidTrailingActivationPx(value) {
|
|
4616
|
+
if (value == null) return null;
|
|
4617
|
+
const raw = String(value).trim().replace(/,/g, "");
|
|
4618
|
+
if (!raw) return null;
|
|
4619
|
+
if (!POSITIVE_DECIMAL_RE.test(raw)) {
|
|
4620
|
+
throw new Error(HYPERLIQUID_TRAILING_ACTIVATION_PX_ERROR);
|
|
4621
|
+
}
|
|
4622
|
+
const px = Number.parseFloat(raw);
|
|
4623
|
+
if (!Number.isFinite(px) || px <= 0) {
|
|
4624
|
+
throw new Error(HYPERLIQUID_TRAILING_ACTIVATION_PX_ERROR);
|
|
4625
|
+
}
|
|
4626
|
+
hyperliquidFloatToWire(raw);
|
|
4627
|
+
return raw;
|
|
4628
|
+
}
|
|
4629
|
+
|
|
4630
|
+
// src/agent/schemas/hyperliquid.ts
|
|
4516
4631
|
function mcpHyperliquidMultisignInput(fields, preprocess) {
|
|
4517
4632
|
const inner = evmMultisignCommonInputSchema.extend(fields);
|
|
4518
4633
|
const shaped = preprocess ? z.preprocess(preprocess, inner) : inner;
|
|
@@ -4660,7 +4775,16 @@ var mcpHyperliquidFetchOpenOrdersOutputSchema = z.object({
|
|
|
4660
4775
|
sz: z.string(),
|
|
4661
4776
|
oid: z.number().describe("Pass to build_cancel_multisign as oid"),
|
|
4662
4777
|
timestamp: z.number(),
|
|
4663
|
-
reduceOnly: z.boolean().optional()
|
|
4778
|
+
reduceOnly: z.boolean().optional(),
|
|
4779
|
+
isTrigger: z.boolean().optional(),
|
|
4780
|
+
triggerPx: z.string().optional(),
|
|
4781
|
+
triggerCondition: z.string().optional(),
|
|
4782
|
+
orderType: z.string().optional(),
|
|
4783
|
+
trailingStop: z.object({
|
|
4784
|
+
retracement: z.string(),
|
|
4785
|
+
activationPx: z.string().nullable(),
|
|
4786
|
+
bestPx: z.string().nullable()
|
|
4787
|
+
}).nullable().optional()
|
|
4664
4788
|
})
|
|
4665
4789
|
)
|
|
4666
4790
|
});
|
|
@@ -4785,6 +4909,16 @@ var mcpHyperliquidFetchDelegationsOutputSchema = z.object({
|
|
|
4785
4909
|
)
|
|
4786
4910
|
});
|
|
4787
4911
|
var hyperliquidTpslExecModeSchema = z.enum(["limit_at_trigger", "market"]);
|
|
4912
|
+
var mcpHyperliquidTrailingActivationPxSchema = z.string().min(1).optional().superRefine((value, ctx) => {
|
|
4913
|
+
try {
|
|
4914
|
+
parseHyperliquidTrailingActivationPx(value);
|
|
4915
|
+
} catch (e) {
|
|
4916
|
+
ctx.addIssue({
|
|
4917
|
+
code: z.ZodIssueCode.custom,
|
|
4918
|
+
message: e instanceof Error ? e.message : "Invalid trailing activation price."
|
|
4919
|
+
});
|
|
4920
|
+
}
|
|
4921
|
+
}).describe("Optional mark price where trailing tracking begins. Omit to start immediately.");
|
|
4788
4922
|
var mcpHyperliquidLimitOrderInputSchema = mcpHyperliquidMultisignInput(
|
|
4789
4923
|
{
|
|
4790
4924
|
coin: z.string().min(1).describe("coin from fetch_markets (name) or search_markets"),
|
|
@@ -4796,10 +4930,30 @@ var mcpHyperliquidLimitOrderInputSchema = mcpHyperliquidMultisignInput(
|
|
|
4796
4930
|
dex: z.string().optional(),
|
|
4797
4931
|
takeProfitTriggerPxHuman: z.string().min(1).optional().describe("Take-profit trigger price \u2014 with SL enables L1 normalTpsl bracket (EIP-712, not CoreWriter)."),
|
|
4798
4932
|
stopLossTriggerPxHuman: z.string().min(1).optional().describe("Stop-loss trigger price \u2014 with TP enables L1 normalTpsl bracket (EIP-712, not CoreWriter)."),
|
|
4799
|
-
tpslExecMode: hyperliquidTpslExecModeSchema.optional().describe("Trigger execution: limit_at_trigger (default) or market.")
|
|
4933
|
+
tpslExecMode: hyperliquidTpslExecModeSchema.optional().describe("Trigger execution: limit_at_trigger (default) or market."),
|
|
4934
|
+
trailingOffsetHuman: z.string().min(1).optional().describe(
|
|
4935
|
+
"Trailing-stop retracement (price distance or percent). Cannot combine with stopLossTriggerPxHuman. Perp only \u2014 EIP-712 /exchange."
|
|
4936
|
+
),
|
|
4937
|
+
trailingOffsetType: z.enum(["price", "percentage"]).optional().describe("price = fixed distance; percentage = retracement rate (default)."),
|
|
4938
|
+
trailingActivationPxHuman: mcpHyperliquidTrailingActivationPxSchema
|
|
4800
4939
|
},
|
|
4801
4940
|
preprocessHyperliquidLimitOrderInput
|
|
4802
4941
|
);
|
|
4942
|
+
var mcpHyperliquidTrailingStopInputSchema = mcpHyperliquidMultisignInput(
|
|
4943
|
+
{
|
|
4944
|
+
coin: z.string().min(1).describe("perp coin from fetch_markets or fetch_positions"),
|
|
4945
|
+
isBuy: agentBooleanSchema().describe(
|
|
4946
|
+
"Execution side: false to close a long / open a short; true to close a short / open a long."
|
|
4947
|
+
),
|
|
4948
|
+
szHuman: z.string().min(1).describe("Size in coin units (use position size to close)."),
|
|
4949
|
+
reduceOnly: agentBooleanSchema().optional().describe("true (default) closes/reduces; false can open a position."),
|
|
4950
|
+
trailingOffsetHuman: z.string().min(1).describe("Retracement distance or percent (e.g. 2 or 2%)."),
|
|
4951
|
+
trailingOffsetType: z.enum(["price", "percentage"]).optional().describe("price = fixed distance; percentage = retracement rate (default)."),
|
|
4952
|
+
trailingActivationPxHuman: mcpHyperliquidTrailingActivationPxSchema,
|
|
4953
|
+
dex: z.string().optional()
|
|
4954
|
+
},
|
|
4955
|
+
preprocessHyperliquidTrailingStopInput
|
|
4956
|
+
);
|
|
4803
4957
|
var mcpHyperliquidCloseInputSchema = mcpHyperliquidMultisignInput(
|
|
4804
4958
|
{
|
|
4805
4959
|
coin: z.string().min(1),
|
|
@@ -5131,6 +5285,305 @@ var mcpArcusBuildWithdrawMultisignInputSchema = withMultisignKeySourceRefine(
|
|
|
5131
5285
|
product: arcusFundProductSchema
|
|
5132
5286
|
})
|
|
5133
5287
|
);
|
|
5288
|
+
function mcpDeriveMultisignInput(fields) {
|
|
5289
|
+
return withMultisignKeySourceRefine(evmMultisignCommonInputSchema.extend(fields));
|
|
5290
|
+
}
|
|
5291
|
+
var deriveAuthSchema = z.object({
|
|
5292
|
+
wallet: z.string().min(1),
|
|
5293
|
+
timestamp: z.string().min(1),
|
|
5294
|
+
signature: z.string().min(1)
|
|
5295
|
+
}).optional().describe("Server-filled EIP-191 login (X-DeriveWallet / Timestamp / Signature). Agents must not pass auth.");
|
|
5296
|
+
var deriveNetworkSchema = z.enum(["mainnet", "testnet"]).optional();
|
|
5297
|
+
var deriveFetchBaseSchema = z.object({
|
|
5298
|
+
chainId: z.coerce.number().int().positive().optional().describe("Asset-row chain (dialog context). Trading is always Derive API."),
|
|
5299
|
+
network: deriveNetworkSchema
|
|
5300
|
+
});
|
|
5301
|
+
var deriveWalletSchema = deriveFetchBaseSchema.extend({
|
|
5302
|
+
wallet: evmAddressSchema.optional(),
|
|
5303
|
+
executorAddress: evmAddressSchema.optional().describe("MPC executor \u2014 same address is the Derive owner on every chain."),
|
|
5304
|
+
auth: deriveAuthSchema
|
|
5305
|
+
});
|
|
5306
|
+
var deriveOhlcvIntervalSchema = z.enum(["1m", "5m", "15m", "30m", "1h", "4h", "1d", "1w"]);
|
|
5307
|
+
var deriveOhlcvCandleSchema = z.object({
|
|
5308
|
+
timestampMs: z.number(),
|
|
5309
|
+
open: z.string(),
|
|
5310
|
+
high: z.string(),
|
|
5311
|
+
low: z.string(),
|
|
5312
|
+
close: z.string(),
|
|
5313
|
+
volume: z.string()
|
|
5314
|
+
});
|
|
5315
|
+
var mcpDeriveFetchCurrenciesInputSchema = deriveFetchBaseSchema;
|
|
5316
|
+
var mcpDeriveFetchCurrenciesOutputSchema = z.object({
|
|
5317
|
+
currencies: z.array(z.object({ currency: z.string() })),
|
|
5318
|
+
network: z.string().optional()
|
|
5319
|
+
});
|
|
5320
|
+
var mcpDeriveFetchOptionChainInputSchema = deriveFetchBaseSchema.extend({
|
|
5321
|
+
currency: z.string().min(1).describe("Underlying currency e.g. ETH"),
|
|
5322
|
+
expired: z.boolean().optional()
|
|
5323
|
+
});
|
|
5324
|
+
var mcpDeriveFetchOptionChainOutputSchema = z.object({
|
|
5325
|
+
currency: z.string(),
|
|
5326
|
+
instrumentCount: z.number(),
|
|
5327
|
+
callCount: z.number(),
|
|
5328
|
+
putCount: z.number(),
|
|
5329
|
+
expiries: z.array(
|
|
5330
|
+
z.object({
|
|
5331
|
+
expiryYmd: z.string(),
|
|
5332
|
+
expiryUnix: z.number().nullable(),
|
|
5333
|
+
callCount: z.number(),
|
|
5334
|
+
putCount: z.number(),
|
|
5335
|
+
minStrike: z.string().nullable(),
|
|
5336
|
+
maxStrike: z.string().nullable()
|
|
5337
|
+
})
|
|
5338
|
+
),
|
|
5339
|
+
notes: z.string(),
|
|
5340
|
+
network: z.string().optional()
|
|
5341
|
+
});
|
|
5342
|
+
var mcpDeriveFetchTickersInputSchema = deriveFetchBaseSchema.extend({
|
|
5343
|
+
currency: z.string().min(1).describe("Underlying e.g. ETH"),
|
|
5344
|
+
expiryDate: z.union([z.string().min(1), z.number().int().positive()]).describe("YYYYMMDD from fetch_option_chain. String or number (20260925). 2026-09-25 is ok."),
|
|
5345
|
+
optionType: z.enum(["C", "P"]).optional().describe("Calls only or puts only. Omit for both."),
|
|
5346
|
+
ladder: z.enum(["atm", "all"]).optional().describe("Default atm (~9 strikes around index). Use all only when the operator wants every strike.")
|
|
5347
|
+
});
|
|
5348
|
+
var mcpDeriveFetchTickersOutputSchema = z.object({
|
|
5349
|
+
currency: z.string(),
|
|
5350
|
+
expiryDate: z.string(),
|
|
5351
|
+
optionType: z.enum(["C", "P"]).nullable().optional(),
|
|
5352
|
+
ladder: z.enum(["atm", "all"]).optional(),
|
|
5353
|
+
indexPx: z.string().nullable().optional(),
|
|
5354
|
+
listedCount: z.number().optional(),
|
|
5355
|
+
tickerCount: z.number().optional(),
|
|
5356
|
+
callCount: z.number().optional(),
|
|
5357
|
+
putCount: z.number().optional(),
|
|
5358
|
+
tickers: z.array(
|
|
5359
|
+
z.object({
|
|
5360
|
+
instrumentName: z.string(),
|
|
5361
|
+
bidPx: z.string().nullable(),
|
|
5362
|
+
askPx: z.string().nullable(),
|
|
5363
|
+
markPx: z.string().nullable(),
|
|
5364
|
+
indexPx: z.string().nullable(),
|
|
5365
|
+
strike: z.string().nullable(),
|
|
5366
|
+
expiry: z.number().nullable(),
|
|
5367
|
+
expiryYmd: z.string().nullable(),
|
|
5368
|
+
optionType: z.enum(["C", "P"]).nullable(),
|
|
5369
|
+
greeks: z.unknown().nullable()
|
|
5370
|
+
})
|
|
5371
|
+
),
|
|
5372
|
+
notes: z.string().optional(),
|
|
5373
|
+
network: z.string().optional()
|
|
5374
|
+
});
|
|
5375
|
+
var mcpDeriveSearchInstrumentsInputSchema = deriveFetchBaseSchema.extend({
|
|
5376
|
+
currency: z.string().min(1),
|
|
5377
|
+
query: z.string().min(1).describe("Instrument name fragment e.g. 3000-C or 20260626"),
|
|
5378
|
+
limit: z.coerce.number().int().positive().max(50).optional()
|
|
5379
|
+
});
|
|
5380
|
+
var mcpDeriveSearchInstrumentsOutputSchema = z.object({
|
|
5381
|
+
instruments: z.array(z.object({ instrumentName: z.string() })),
|
|
5382
|
+
network: z.string().optional()
|
|
5383
|
+
});
|
|
5384
|
+
var mcpDeriveFetchMarketSnapshotInputSchema = deriveFetchBaseSchema.extend({
|
|
5385
|
+
instrumentName: z.string().min(1).describe("e.g. ETH-20260626-3000-C")
|
|
5386
|
+
});
|
|
5387
|
+
var mcpDeriveFetchMarketSnapshotOutputSchema = z.object({
|
|
5388
|
+
snapshot: z.object({
|
|
5389
|
+
instrumentName: z.string(),
|
|
5390
|
+
livePrice: z.object({
|
|
5391
|
+
markPx: z.string().nullable(),
|
|
5392
|
+
indexPx: z.string().nullable(),
|
|
5393
|
+
bidPx: z.string().nullable(),
|
|
5394
|
+
askPx: z.string().nullable(),
|
|
5395
|
+
midUsd: z.string(),
|
|
5396
|
+
source: z.string()
|
|
5397
|
+
}),
|
|
5398
|
+
greeks: z.unknown().nullable(),
|
|
5399
|
+
fetchedAtMs: z.number()
|
|
5400
|
+
}),
|
|
5401
|
+
network: z.string().optional()
|
|
5402
|
+
});
|
|
5403
|
+
var mcpDeriveFetchOhlcvInputSchema = deriveFetchBaseSchema.extend({
|
|
5404
|
+
instrumentName: z.string().optional().describe("Required for option candles"),
|
|
5405
|
+
currency: z.string().optional().describe("Required for index candles (underlying spot)"),
|
|
5406
|
+
marketKind: z.enum(["option", "index"]).optional(),
|
|
5407
|
+
interval: deriveOhlcvIntervalSchema.optional(),
|
|
5408
|
+
lookbackDays: z.coerce.number().positive().optional(),
|
|
5409
|
+
lookbackHours: z.coerce.number().positive().optional(),
|
|
5410
|
+
startTimeMs: z.coerce.number().int().positive().optional(),
|
|
5411
|
+
endTimeMs: z.coerce.number().int().positive().optional()
|
|
5412
|
+
});
|
|
5413
|
+
var mcpDeriveFetchOhlcvOutputSchema = z.object({
|
|
5414
|
+
ohlcv: z.object({
|
|
5415
|
+
market: z.string(),
|
|
5416
|
+
coin: z.string(),
|
|
5417
|
+
interval: z.string(),
|
|
5418
|
+
marketKind: z.enum(["option", "index"]),
|
|
5419
|
+
startTimeMs: z.number(),
|
|
5420
|
+
endTimeMs: z.number(),
|
|
5421
|
+
expectedBars: z.number(),
|
|
5422
|
+
candleCount: z.number(),
|
|
5423
|
+
latestCandle: deriveOhlcvCandleSchema.nullable(),
|
|
5424
|
+
candles: z.array(deriveOhlcvCandleSchema),
|
|
5425
|
+
fetchedAtMs: z.number(),
|
|
5426
|
+
dataSource: z.literal("derive")
|
|
5427
|
+
}),
|
|
5428
|
+
dataSource: z.literal("derive"),
|
|
5429
|
+
network: z.string().optional()
|
|
5430
|
+
});
|
|
5431
|
+
var mcpDeriveOrderQuoteInputSchema = deriveFetchBaseSchema.extend({
|
|
5432
|
+
instrumentName: z.string().min(1),
|
|
5433
|
+
direction: z.enum(["buy", "sell"]),
|
|
5434
|
+
amount: z.string().min(1),
|
|
5435
|
+
limitPrice: z.string().min(1),
|
|
5436
|
+
subaccountId: agentCoercedIntSchema(z.number().int().positive()).optional().describe("Required by v3 public/order_quote. From ctm_derive_fetch_subaccounts. Never 0.")
|
|
5437
|
+
});
|
|
5438
|
+
var mcpDeriveOrderQuoteOutputSchema = z.object({
|
|
5439
|
+
quote: jsonObjectSchema,
|
|
5440
|
+
instrumentName: z.string(),
|
|
5441
|
+
network: z.string().optional()
|
|
5442
|
+
});
|
|
5443
|
+
var mcpDeriveFetchRiskUniversesInputSchema = deriveFetchBaseSchema;
|
|
5444
|
+
var mcpDeriveFetchRiskUniversesOutputSchema = z.object({
|
|
5445
|
+
universes: z.array(z.unknown()),
|
|
5446
|
+
notes: z.string(),
|
|
5447
|
+
network: z.string().optional()
|
|
5448
|
+
});
|
|
5449
|
+
var mcpDeriveFetchPendingDepositsInputSchema = deriveWalletSchema;
|
|
5450
|
+
var mcpDeriveFetchPendingDepositsOutputSchema = z.object({
|
|
5451
|
+
pending: z.array(z.unknown()),
|
|
5452
|
+
credited: z.boolean(),
|
|
5453
|
+
notes: z.string(),
|
|
5454
|
+
network: z.string().optional()
|
|
5455
|
+
});
|
|
5456
|
+
var mcpDeriveFetchSubaccountsInputSchema = deriveWalletSchema;
|
|
5457
|
+
var mcpDeriveFetchSubaccountsOutputSchema = z.object({
|
|
5458
|
+
wallet: z.string(),
|
|
5459
|
+
subaccounts: z.array(z.number()),
|
|
5460
|
+
funded: z.boolean(),
|
|
5461
|
+
notes: z.string(),
|
|
5462
|
+
next: z.array(z.string()),
|
|
5463
|
+
network: z.string().optional()
|
|
5464
|
+
});
|
|
5465
|
+
var deriveSubaccountInput = deriveWalletSchema.extend({
|
|
5466
|
+
subaccountId: agentCoercedIntSchema(z.number().int().positive()).describe(
|
|
5467
|
+
"subaccountId from ctm_derive_fetch_subaccounts. Never 0. If that list is empty, deposit on Ethereum L1 first."
|
|
5468
|
+
)
|
|
5469
|
+
});
|
|
5470
|
+
var mcpDeriveFetchPortfolioInputSchema = deriveSubaccountInput;
|
|
5471
|
+
var mcpDeriveFetchPortfolioOutputSchema = z.object({
|
|
5472
|
+
portfolio: z.unknown(),
|
|
5473
|
+
subaccountId: z.number(),
|
|
5474
|
+
wallet: z.string(),
|
|
5475
|
+
network: z.string().optional()
|
|
5476
|
+
});
|
|
5477
|
+
var mcpDeriveFetchPositionsInputSchema = deriveSubaccountInput;
|
|
5478
|
+
var mcpDeriveFetchPositionsOutputSchema = z.object({
|
|
5479
|
+
positions: z.array(z.unknown()),
|
|
5480
|
+
subaccountId: z.number(),
|
|
5481
|
+
wallet: z.string(),
|
|
5482
|
+
network: z.string().optional()
|
|
5483
|
+
});
|
|
5484
|
+
var mcpDeriveFetchOpenOrdersInputSchema = deriveSubaccountInput;
|
|
5485
|
+
var mcpDeriveFetchOpenOrdersOutputSchema = z.object({
|
|
5486
|
+
orders: z.array(z.unknown()),
|
|
5487
|
+
subaccountId: z.number(),
|
|
5488
|
+
wallet: z.string(),
|
|
5489
|
+
network: z.string().optional()
|
|
5490
|
+
});
|
|
5491
|
+
var deriveSubaccountIdField = agentCoercedIntSchema(z.number().int().positive()).describe(
|
|
5492
|
+
"subaccountId from ctm_derive_fetch_subaccounts. Collateral lives on Ethereum L1; EIP-712 orders do not move the current-chain token. If none exist, deposit first."
|
|
5493
|
+
);
|
|
5494
|
+
var mcpDeriveDepositNewSubaccountInputSchema = mcpDeriveMultisignInput({
|
|
5495
|
+
protocolAsset: evmAddressSchema.describe("collaterals[].address from ctm_derive_fetch_risk_universes"),
|
|
5496
|
+
underlyingErc20: evmAddressSchema.describe("collaterals[].erc20.underlying_erc20 on Ethereum L1 (usually USDC)"),
|
|
5497
|
+
amountHuman: z.string().min(1).describe("Deposit amount in underlying token units"),
|
|
5498
|
+
managerId: agentCoercedIntSchema(z.number().int().positive()).describe("Risk-universe manager_id"),
|
|
5499
|
+
actionManager: evmAddressSchema.optional().describe("Override ACTION_MANAGER (required on mainnet until published)")
|
|
5500
|
+
});
|
|
5501
|
+
var mcpDeriveRegisterDepositAddressInputSchema = deriveFetchBaseSchema.extend({
|
|
5502
|
+
wallet: evmAddressSchema,
|
|
5503
|
+
managerId: agentCoercedIntSchema(z.number().int().positive()).optional(),
|
|
5504
|
+
subaccountId: agentCoercedIntSchema(z.number().int().nonnegative()).optional()
|
|
5505
|
+
});
|
|
5506
|
+
var mcpDeriveRegisterDepositAddressOutputSchema = z.object({
|
|
5507
|
+
depositAddress: evmAddressSchema,
|
|
5508
|
+
wallet: evmAddressSchema,
|
|
5509
|
+
managerId: z.number().int().nullable(),
|
|
5510
|
+
subaccountId: z.number().int().nullable(),
|
|
5511
|
+
network: z.string(),
|
|
5512
|
+
notes: z.string()
|
|
5513
|
+
});
|
|
5514
|
+
var mcpDeriveDepositAddressTransferInputSchema = mcpDeriveMultisignInput({
|
|
5515
|
+
underlyingErc20: evmAddressSchema.describe("Ethereum L1 token to send (usually USDC)"),
|
|
5516
|
+
amountHuman: z.string().min(1),
|
|
5517
|
+
depositAddress: evmAddressSchema.describe("From ctm_derive_register_deposit_address")
|
|
5518
|
+
});
|
|
5519
|
+
var mcpDeriveSocketDepositInputSchema = mcpDeriveMultisignInput({
|
|
5520
|
+
token: evmAddressSchema.describe("USDC / WETH / WBTC on this chain, or native 0x0 to wrap WETH"),
|
|
5521
|
+
amountHuman: z.string().min(1),
|
|
5522
|
+
receiver: evmAddressSchema.optional().describe("Derive Chain receiver; defaults to executor")
|
|
5523
|
+
});
|
|
5524
|
+
var mcpDeriveHypeVaultDepositInputSchema = mcpDeriveMultisignInput({
|
|
5525
|
+
amountHuman: z.string().min(1).describe("HYPE amount"),
|
|
5526
|
+
token: evmAddressSchema.optional().describe("Native 0x0 or WHYPE 0x555\u20265"),
|
|
5527
|
+
vault: evmAddressSchema.optional()
|
|
5528
|
+
});
|
|
5529
|
+
var mcpDerivePlaceOrderInputSchema = mcpDeriveMultisignInput({
|
|
5530
|
+
instrumentName: z.string().min(1).describe("e.g. ETH-20260626-3000-C"),
|
|
5531
|
+
direction: z.enum(["buy", "sell"]),
|
|
5532
|
+
amount: z.string().min(1),
|
|
5533
|
+
limitPrice: z.string().min(1),
|
|
5534
|
+
maxFee: z.string().min(1),
|
|
5535
|
+
subaccountId: deriveSubaccountIdField,
|
|
5536
|
+
orderType: z.enum(["limit", "market"]).optional(),
|
|
5537
|
+
timeInForce: z.enum(["gtc", "ioc", "fok", "post_only"]).optional(),
|
|
5538
|
+
reduceOnly: z.boolean().optional(),
|
|
5539
|
+
label: z.string().optional(),
|
|
5540
|
+
ticketKind: z.enum(["limit", "stop_limit", "twap"]).optional(),
|
|
5541
|
+
triggerPrice: z.string().optional().describe("Required for stop_limit"),
|
|
5542
|
+
triggerType: z.enum(["stoploss", "takeprofit"]).optional(),
|
|
5543
|
+
triggerPriceType: z.enum(["mark", "index"]).optional(),
|
|
5544
|
+
algoDurationSec: agentCoercedIntSchema(z.number().int().min(60)).optional().describe("Required for twap"),
|
|
5545
|
+
algoNumSlices: agentCoercedIntSchema(z.number().int().min(2)).optional().describe("Required for twap")
|
|
5546
|
+
});
|
|
5547
|
+
var mcpDeriveReplaceOrderInputSchema = mcpDeriveMultisignInput({
|
|
5548
|
+
instrumentName: z.string().min(1),
|
|
5549
|
+
direction: z.enum(["buy", "sell"]),
|
|
5550
|
+
amount: z.string().min(1),
|
|
5551
|
+
limitPrice: z.string().min(1),
|
|
5552
|
+
maxFee: z.string().min(1),
|
|
5553
|
+
subaccountId: deriveSubaccountIdField,
|
|
5554
|
+
orderType: z.enum(["limit", "market"]).optional(),
|
|
5555
|
+
timeInForce: z.enum(["gtc", "ioc", "fok", "post_only"]).optional(),
|
|
5556
|
+
reduceOnly: z.boolean().optional(),
|
|
5557
|
+
label: z.string().optional(),
|
|
5558
|
+
ticketKind: z.enum(["limit", "stop_limit", "twap"]).optional(),
|
|
5559
|
+
triggerPrice: z.string().optional(),
|
|
5560
|
+
triggerType: z.enum(["stoploss", "takeprofit"]).optional(),
|
|
5561
|
+
triggerPriceType: z.enum(["mark", "index"]).optional(),
|
|
5562
|
+
algoDurationSec: agentCoercedIntSchema(z.number().int().min(60)).optional(),
|
|
5563
|
+
algoNumSlices: agentCoercedIntSchema(z.number().int().min(2)).optional(),
|
|
5564
|
+
orderIdToCancel: z.string().min(1).optional(),
|
|
5565
|
+
nonceToCancel: z.string().min(1).optional()
|
|
5566
|
+
}).refine((d) => Boolean(d.orderIdToCancel) !== Boolean(d.nonceToCancel), {
|
|
5567
|
+
message: "Replace requires exactly one of orderIdToCancel or nonceToCancel."
|
|
5568
|
+
});
|
|
5569
|
+
var mcpDeriveCancelInputSchema = mcpDeriveMultisignInput({
|
|
5570
|
+
instrumentName: z.string().min(1),
|
|
5571
|
+
orderId: z.string().min(1).describe("order_id from ctm_derive_fetch_open_orders"),
|
|
5572
|
+
subaccountId: deriveSubaccountIdField
|
|
5573
|
+
});
|
|
5574
|
+
var mcpDeriveTransferSpotInputSchema = mcpDeriveMultisignInput({
|
|
5575
|
+
fromSubaccountId: deriveSubaccountIdField,
|
|
5576
|
+
toSubaccountId: agentCoercedIntSchema(z.number().int().nonnegative()).describe(
|
|
5577
|
+
"Existing destination, or 0 to create an extra subaccount (requires newSubaccountManager)."
|
|
5578
|
+
),
|
|
5579
|
+
newSubaccountManager: agentCoercedIntSchema(z.number().int().nonnegative()).describe(
|
|
5580
|
+
"Required when toSubaccountId is 0. Extra subaccounts only \u2014 first account is L1 deposit."
|
|
5581
|
+
),
|
|
5582
|
+
asset: evmAddressSchema.describe("Protocol asset address"),
|
|
5583
|
+
amount: z.string().min(1),
|
|
5584
|
+
maxFeeUsd: z.string().optional(),
|
|
5585
|
+
subId: agentCoercedIntSchema(z.number().int().nonnegative()).optional()
|
|
5586
|
+
});
|
|
5134
5587
|
var mcpCctpFeeFieldsSchema = z.object({
|
|
5135
5588
|
feeTierUsed: z.enum(["low", "med", "high"]),
|
|
5136
5589
|
maxFee: z.string().describe("Selected tier max fee in USDC base units (6 decimals)"),
|
|
@@ -5841,11 +6294,21 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
|
|
|
5841
6294
|
actionId: "hyperliquid.limitOrder",
|
|
5842
6295
|
protocolId: "hyperliquid",
|
|
5843
6296
|
chainCategory: "evm",
|
|
5844
|
-
description: "Create and submit mpc-auth multiSignRequest for a Hyperliquid limit/IoC order. Plain limit: CoreWriter (useCustomGas). When takeProfitTriggerPxHuman and/or
|
|
6297
|
+
description: "Create and submit mpc-auth multiSignRequest for a Hyperliquid limit/IoC order. Plain limit: CoreWriter (useCustomGas). When takeProfitTriggerPxHuman, stopLossTriggerPxHuman, and/or trailingOffsetHuman are set: L1 EIP-712 to /exchange (normalTpsl for TP/SL; trailingStop is a second signed action) \u2014 no useCustomGas. Trailing cannot combine with a fixed SL. Perp only for trailing.",
|
|
5845
6298
|
prerequisites: ["keyGenId", "chainId 999 or 998", "coin", "limitPxHuman", "szHuman"],
|
|
5846
6299
|
handler: { importPath: "protocols/evm/hyperliquid", exportName: "buildEvmMultisignBodyHyperliquidLimitOrderBatch" },
|
|
5847
6300
|
inputZod: mcpHyperliquidLimitOrderInputSchema
|
|
5848
6301
|
}),
|
|
6302
|
+
defineProtocolMcpTool({
|
|
6303
|
+
name: "ctm_hyperliquid_build_trailing_stop_multisign",
|
|
6304
|
+
actionId: "hyperliquid.trailingStop",
|
|
6305
|
+
protocolId: "hyperliquid",
|
|
6306
|
+
chainCategory: "evm",
|
|
6307
|
+
description: "Create and submit mpc-auth multiSignRequest for a Hyperliquid perp trailing stop (EIP-712 L1 trailingStop action to /exchange \u2014 no useCustomGas). Retracement is a price distance or percentage; optional activation price delays tracking. Typically reduce-only to close a position. isBuy false closes a long / opens a short.",
|
|
6308
|
+
prerequisites: ["keyGenId", "chainId 999 or 998", "coin", "szHuman", "trailingOffsetHuman"],
|
|
6309
|
+
handler: { importPath: "protocols/evm/hyperliquid", exportName: "buildHyperliquidTrailingStopMultisign" },
|
|
6310
|
+
inputZod: mcpHyperliquidTrailingStopInputSchema
|
|
6311
|
+
}),
|
|
5849
6312
|
defineProtocolMcpTool({
|
|
5850
6313
|
name: "ctm_hyperliquid_build_close_multisign",
|
|
5851
6314
|
actionId: "hyperliquid.close",
|
|
@@ -6387,6 +6850,108 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
|
|
|
6387
6850
|
prerequisites: ["keyGenId", "chainId", "comet", "steps"],
|
|
6388
6851
|
handler: { importPath: "protocols/evm/compound-v3", exportName: "buildEvmMultisignBodyCompoundV3Bulker" },
|
|
6389
6852
|
inputZod: mcpCompoundV3BulkerInputSchema
|
|
6853
|
+
}),
|
|
6854
|
+
defineProtocolMcpTool({
|
|
6855
|
+
name: "ctm_derive_build_deposit_new_subaccount_multisign",
|
|
6856
|
+
actionId: "derive.depositNewSubaccount",
|
|
6857
|
+
protocolId: "derive",
|
|
6858
|
+
chainCategory: "evm",
|
|
6859
|
+
description: "Ethereum L1 only (chainId 1 / 11155111): approve the underlying ERC-20 to ACTION_MANAGER, then depositToNewSubaccount. First credit creates the trading + fallback (manager 0) subaccounts. Arb/OP/Base: ctm_derive_build_socket_deposit_multisign. HyperEVM HYPE: ctm_derive_build_hype_vault_deposit_multisign. useCustomGas.",
|
|
6860
|
+
prerequisites: [
|
|
6861
|
+
"chainId 1 or 11155111",
|
|
6862
|
+
"managerId + protocolAsset + underlyingErc20 from ctm_derive_fetch_risk_universes",
|
|
6863
|
+
"Ethereum L1 collateral (usually USDC)"
|
|
6864
|
+
],
|
|
6865
|
+
followUp: ["ctm_derive_fetch_pending_deposits", "ctm_derive_fetch_subaccounts"],
|
|
6866
|
+
handler: { importPath: "protocols/evm/derive", exportName: "buildDeriveDepositNewSubaccountMultisign" },
|
|
6867
|
+
inputZod: mcpDeriveDepositNewSubaccountInputSchema
|
|
6868
|
+
}),
|
|
6869
|
+
defineProtocolMcpTool({
|
|
6870
|
+
name: "ctm_derive_build_deposit_address_transfer_multisign",
|
|
6871
|
+
actionId: "derive.depositAddressTransfer",
|
|
6872
|
+
protocolId: "derive",
|
|
6873
|
+
chainCategory: "evm",
|
|
6874
|
+
description: "Ethereum L1 ERC-20 transfer to a registered Derive deposit address (standard / keeper sweep). Call ctm_derive_register_deposit_address first. useCustomGas.",
|
|
6875
|
+
prerequisites: ["chainId 1 or 11155111", "depositAddress from ctm_derive_register_deposit_address"],
|
|
6876
|
+
followUp: ["ctm_derive_fetch_pending_deposits", "ctm_derive_fetch_subaccounts"],
|
|
6877
|
+
handler: { importPath: "protocols/evm/derive", exportName: "buildDeriveDepositAddressTransferMultisign" },
|
|
6878
|
+
inputZod: mcpDeriveDepositAddressTransferInputSchema
|
|
6879
|
+
}),
|
|
6880
|
+
defineProtocolMcpTool({
|
|
6881
|
+
name: "ctm_derive_build_socket_deposit_multisign",
|
|
6882
|
+
actionId: "derive.socketDeposit",
|
|
6883
|
+
protocolId: "derive",
|
|
6884
|
+
chainCategory: "evm",
|
|
6885
|
+
description: "Socket FAST deposit of USDC/WETH/WBTC on Ethereum, Optimism, Base, or Arbitrum. Native 0x0 wraps to WETH. Pays a small native bridge fee. useCustomGas.",
|
|
6886
|
+
prerequisites: ["chainId 1 / 10 / 8453 / 42161", "token + amountHuman"],
|
|
6887
|
+
followUp: ["ctm_derive_fetch_pending_deposits", "ctm_derive_fetch_subaccounts"],
|
|
6888
|
+
handler: { importPath: "protocols/evm/derive", exportName: "buildDeriveSocketDepositMultisign" },
|
|
6889
|
+
inputZod: mcpDeriveSocketDepositInputSchema
|
|
6890
|
+
}),
|
|
6891
|
+
defineProtocolMcpTool({
|
|
6892
|
+
name: "ctm_derive_build_hype_vault_deposit_multisign",
|
|
6893
|
+
actionId: "derive.hypeVaultDeposit",
|
|
6894
|
+
protocolId: "derive",
|
|
6895
|
+
chainCategory: "evm",
|
|
6896
|
+
description: "HyperEVM (999) HYPE vault: wrap native HYPE to WHYPE if needed, approve, deposit. First credit creates a Standard Margin subaccount. useCustomGas.",
|
|
6897
|
+
prerequisites: ["chainId 999", "amountHuman"],
|
|
6898
|
+
followUp: ["ctm_derive_fetch_pending_deposits", "ctm_derive_fetch_subaccounts"],
|
|
6899
|
+
handler: { importPath: "protocols/evm/derive", exportName: "buildDeriveHypeVaultDepositMultisign" },
|
|
6900
|
+
inputZod: mcpDeriveHypeVaultDepositInputSchema
|
|
6901
|
+
}),
|
|
6902
|
+
defineProtocolMcpTool({
|
|
6903
|
+
name: "ctm_derive_build_place_order_multisign",
|
|
6904
|
+
actionId: "derive.placeOrder",
|
|
6905
|
+
protocolId: "derive",
|
|
6906
|
+
chainCategory: "evm",
|
|
6907
|
+
description: "EIP-712 Derive options order (delivery derive_exchange). Requires subaccountId from ctm_derive_fetch_subaccounts. Does not move the current-chain token unless that row funded the account. No useCustomGas.",
|
|
6908
|
+
prerequisites: [
|
|
6909
|
+
"subaccountId from ctm_derive_fetch_subaccounts",
|
|
6910
|
+
"funded Derive collateral (L1 / Socket / HYPE vault)",
|
|
6911
|
+
"instrumentName, direction, amount, limitPrice, maxFee"
|
|
6912
|
+
],
|
|
6913
|
+
handler: { importPath: "protocols/evm/derive", exportName: "buildDerivePlaceOrderMultisign" },
|
|
6914
|
+
inputZod: mcpDerivePlaceOrderInputSchema
|
|
6915
|
+
}),
|
|
6916
|
+
defineProtocolMcpTool({
|
|
6917
|
+
name: "ctm_derive_build_replace_order_multisign",
|
|
6918
|
+
actionId: "derive.replaceOrder",
|
|
6919
|
+
protocolId: "derive",
|
|
6920
|
+
chainCategory: "evm",
|
|
6921
|
+
description: "EIP-712 replace of a Derive open order. Requires subaccountId from ctm_derive_fetch_subaccounts and exactly one of orderIdToCancel or nonceToCancel. EIP-712 orders do not move the current-chain token.",
|
|
6922
|
+
prerequisites: [
|
|
6923
|
+
"subaccountId from ctm_derive_fetch_subaccounts",
|
|
6924
|
+
"funded Derive collateral (L1 / Socket / HYPE vault)",
|
|
6925
|
+
"orderIdToCancel or nonceToCancel"
|
|
6926
|
+
],
|
|
6927
|
+
handler: { importPath: "protocols/evm/derive", exportName: "buildDeriveReplaceOrderMultisign" },
|
|
6928
|
+
inputZod: mcpDeriveReplaceOrderInputSchema
|
|
6929
|
+
}),
|
|
6930
|
+
defineProtocolMcpTool({
|
|
6931
|
+
name: "ctm_derive_build_cancel_multisign",
|
|
6932
|
+
actionId: "derive.cancel",
|
|
6933
|
+
protocolId: "derive",
|
|
6934
|
+
chainCategory: "evm",
|
|
6935
|
+
description: "Cancel a Derive open order (v3 private/cancel via EIP-191 login delivery). Requires subaccountId from ctm_derive_fetch_subaccounts. Does not move the current-chain token.",
|
|
6936
|
+
prerequisites: [
|
|
6937
|
+
"subaccountId from ctm_derive_fetch_subaccounts",
|
|
6938
|
+
"orderId from ctm_derive_fetch_open_orders"
|
|
6939
|
+
],
|
|
6940
|
+
handler: { importPath: "protocols/evm/derive", exportName: "buildDeriveCancelMultisign" },
|
|
6941
|
+
inputZod: mcpDeriveCancelInputSchema
|
|
6942
|
+
}),
|
|
6943
|
+
defineProtocolMcpTool({
|
|
6944
|
+
name: "ctm_derive_build_transfer_spot_multisign",
|
|
6945
|
+
actionId: "derive.transferSpot",
|
|
6946
|
+
protocolId: "derive",
|
|
6947
|
+
chainCategory: "evm",
|
|
6948
|
+
description: "EIP-712 transfer_spot. Use toSubaccountId 0 + newSubaccountManager to create an extra subaccount after the first funded one. First account is a deposit (L1 / Socket / HYPE), not this tool.",
|
|
6949
|
+
prerequisites: [
|
|
6950
|
+
"fromSubaccountId from ctm_derive_fetch_subaccounts",
|
|
6951
|
+
"funded Derive collateral (L1 / Socket / HYPE vault)"
|
|
6952
|
+
],
|
|
6953
|
+
handler: { importPath: "protocols/evm/derive", exportName: "buildDeriveTransferSpotMultisign" },
|
|
6954
|
+
inputZod: mcpDeriveTransferSpotInputSchema
|
|
6390
6955
|
})
|
|
6391
6956
|
];
|
|
6392
6957
|
|
|
@@ -7848,9 +8413,10 @@ var CORE_MCP_TOOL_DEFINITIONS = [
|
|
|
7848
8413
|
actionId: "continuum-dao.fetch-proposal-state",
|
|
7849
8414
|
protocolId: "continuum-dao",
|
|
7850
8415
|
chainCategory: "evm",
|
|
7851
|
-
description: "Read ContinuumDAO.state and proposalVotes. `proposalId` may be a backend catalog id (0, -1, -2, \u2026) \u2014 those resolve to the row\u2019s onchainId hash and governorAddress before the Governor call. Catalog id 0 is not Governor proposal 0. Pass the row\u2019s governorAddress when set: ids -2 and -1 live on the superseded Linea governor 0x4800F9f1dC1b6daCA841B71E0531F547D374168E.",
|
|
8416
|
+
description: "Read ContinuumDAO.state and proposalVotes. `proposalId` may be a backend catalog id (0, -1, -2, \u2026) \u2014 those resolve to the row\u2019s onchainId hash and governorAddress before the Governor call. Catalog id 0 is not Governor proposal 0. Pass the row\u2019s governorAddress when set: ids -2 and -1 live on the superseded Linea governor 0x4800F9f1dC1b6daCA841B71E0531F547D374168E. After this, offer ctm_continuum_dao_fetch_proposal_votes to see who voted and how.",
|
|
7852
8417
|
prerequisites: ["rpcUrl", "proposalId", "governor"],
|
|
7853
8418
|
followUp: [
|
|
8419
|
+
"ctm_continuum_dao_fetch_proposal_votes",
|
|
7854
8420
|
"ctm_continuum_dao_build_cast_vote_bravo_multisign",
|
|
7855
8421
|
"ctm_continuum_dao_build_execute_multisign"
|
|
7856
8422
|
],
|
|
@@ -7863,9 +8429,13 @@ var CORE_MCP_TOOL_DEFINITIONS = [
|
|
|
7863
8429
|
actionId: "continuum-dao.fetch-proposals",
|
|
7864
8430
|
protocolId: "continuum-dao",
|
|
7865
8431
|
chainCategory: "evm",
|
|
7866
|
-
description: "List proposals from the public ContinuumDAO backend (POST /proposals). start/end are catalog id indexes (end exclusive), not offsets, and may be negative: the superseded Linea governor 0x4800F9f1\u2026 is stored as ids -2 and -1 so the current contract can start at 0. Omit start/end to fetch the full catalog (minIndex..maxIndex). Do not use this to answer \u201Cwhat is live now\u201D \u2014 use ctm_continuum_dao_fetch_live_proposals so on-chain state is overlaid.",
|
|
8432
|
+
description: "List proposals from the public ContinuumDAO backend (POST /proposals). start/end are catalog id indexes (end exclusive), not offsets, and may be negative: the superseded Linea governor 0x4800F9f1\u2026 is stored as ids -2 and -1 so the current contract can start at 0. Omit start/end to fetch the full catalog (minIndex..maxIndex). Do not use this to answer \u201Cwhat is live now\u201D \u2014 use ctm_continuum_dao_fetch_live_proposals so on-chain state is overlaid. After naming a proposal, offer ctm_continuum_dao_fetch_proposal_votes so the operator can see who voted and how.",
|
|
7867
8433
|
prerequisites: [],
|
|
7868
|
-
followUp: [
|
|
8434
|
+
followUp: [
|
|
8435
|
+
"ctm_continuum_dao_fetch_live_proposals",
|
|
8436
|
+
"ctm_continuum_dao_fetch_proposal",
|
|
8437
|
+
"ctm_continuum_dao_fetch_proposal_votes"
|
|
8438
|
+
],
|
|
7869
8439
|
handler: { importPath: "protocols/evm/continuum-dao", exportName: "continuumDaoFetchProposals" },
|
|
7870
8440
|
inputZod: mcpContinuumDaoFetchProposalsInputSchema,
|
|
7871
8441
|
outputZod: mcpContinuumDaoFetchProposalsOutputSchema
|
|
@@ -7875,9 +8445,13 @@ var CORE_MCP_TOOL_DEFINITIONS = [
|
|
|
7875
8445
|
actionId: "continuum-dao.fetch-proposal",
|
|
7876
8446
|
protocolId: "continuum-dao",
|
|
7877
8447
|
chainCategory: "evm",
|
|
7878
|
-
description: "Fetch one proposal from the public ContinuumDAO backend (GET /proposals/:id). Id may be negative: -2 and -1 are the two proposals from the superseded Linea governor 0x4800F9f1dC1b6daCA841B71E0531F547D374168E.",
|
|
8448
|
+
description: "Fetch one proposal from the public ContinuumDAO backend (GET /proposals/:id). Id may be negative: -2 and -1 are the two proposals from the superseded Linea governor 0x4800F9f1dC1b6daCA841B71E0531F547D374168E. After this, offer ctm_continuum_dao_fetch_proposal_votes so the operator can see who voted and how.",
|
|
7879
8449
|
prerequisites: ["id"],
|
|
7880
|
-
followUp: [
|
|
8450
|
+
followUp: [
|
|
8451
|
+
"ctm_continuum_dao_explain_proposal",
|
|
8452
|
+
"ctm_continuum_dao_fetch_proposal_state",
|
|
8453
|
+
"ctm_continuum_dao_fetch_proposal_votes"
|
|
8454
|
+
],
|
|
7881
8455
|
handler: { importPath: "protocols/evm/continuum-dao", exportName: "continuumDaoFetchProposal" },
|
|
7882
8456
|
inputZod: mcpContinuumDaoFetchProposalInputSchema,
|
|
7883
8457
|
outputZod: mcpContinuumDaoFetchProposalOutputSchema
|
|
@@ -7887,11 +8461,12 @@ var CORE_MCP_TOOL_DEFINITIONS = [
|
|
|
7887
8461
|
actionId: "continuum-dao.fetch-live-proposals",
|
|
7888
8462
|
protocolId: "continuum-dao",
|
|
7889
8463
|
chainCategory: "evm",
|
|
7890
|
-
description: "Answer \u201Cwhat proposals are live now?\u201D. Lists the backend catalog (including negative ids on the superseded Linea governor) and overlays ContinuumDAO.state using each row\u2019s governorAddress. Rows set `committeeProposer` when the proposer is a ContinuumDAO Committee address \u2014 say Committee next to those titles. live = Active (voting). pending = Pending. readyToExecute = Succeeded (execute from here; no queue). recentlyCompleted = Canceled/Defeated/Expired/Executed in this scan. Requires Linea chainId + rpcUrl + governor for on-chain overlay. Read the `note` field aloud.",
|
|
8464
|
+
description: "Answer \u201Cwhat proposals are live now?\u201D. Lists the backend catalog (including negative ids on the superseded Linea governor) and overlays ContinuumDAO.state using each row\u2019s governorAddress. Rows set `committeeProposer` when the proposer is a ContinuumDAO Committee address \u2014 say Committee next to those titles. live = Active (voting). pending = Pending. readyToExecute = Succeeded (execute from here; no queue). recentlyCompleted = Canceled/Defeated/Expired/Executed in this scan. Requires Linea chainId + rpcUrl + governor for on-chain overlay. Read the `note` field aloud. Then offer ctm_continuum_dao_fetch_proposal_votes for any named proposal so the operator can see who voted and how.",
|
|
7891
8465
|
prerequisites: ["load_defi_protocol continuum-dao", "Linea chainId 59144 or 59141", "rpcUrl", "governor if constant is zero"],
|
|
7892
8466
|
followUp: [
|
|
7893
8467
|
"ctm_continuum_dao_explain_proposal",
|
|
7894
8468
|
"ctm_continuum_dao_fetch_proposal",
|
|
8469
|
+
"ctm_continuum_dao_fetch_proposal_votes",
|
|
7895
8470
|
"ctm_continuum_dao_build_cast_vote_bravo_multisign",
|
|
7896
8471
|
"ctm_continuum_dao_build_execute_multisign"
|
|
7897
8472
|
],
|
|
@@ -7904,13 +8479,32 @@ var CORE_MCP_TOOL_DEFINITIONS = [
|
|
|
7904
8479
|
actionId: "continuum-dao.explain-proposal",
|
|
7905
8480
|
protocolId: "continuum-dao",
|
|
7906
8481
|
chainCategory: "evm",
|
|
7907
|
-
description: "Deconstruct a ContinuumDAO proposal for the operator. Walks every user action (Bravo) or every option (Delta), labels encoder no-ops as signaling, flags C3 / value / approve / unknown signatures, and checks the forum thread section against the proposal type. `network.c3governor` is always present; an action is C3-remote only when network.name is not Linea (home chain 59144 / 59141). `committeeProposer` is true when the proposer is a ContinuumDAO Committee address \u2014 say that aloud. Read the `briefing` field aloud. Does not vote. For a policy recommendation load the mpc-config continuum-dao-vote-policy skill.",
|
|
8482
|
+
description: "Deconstruct a ContinuumDAO proposal for the operator. Walks every user action (Bravo) or every option (Delta), labels encoder no-ops as signaling, flags C3 / value / approve / unknown signatures, and checks the forum thread section against the proposal type. `network.c3governor` is always present; an action is C3-remote only when network.name is not Linea (home chain 59144 / 59141). `committeeProposer` is true when the proposer is a ContinuumDAO Committee address \u2014 say that aloud. Read the `briefing` field aloud. Then offer ctm_continuum_dao_fetch_proposal_votes so the operator can see who voted and how. Does not vote. For a policy recommendation load the mpc-config continuum-dao-vote-policy skill.",
|
|
7908
8483
|
prerequisites: ["id (backend) or onchainId"],
|
|
7909
|
-
followUp: [
|
|
8484
|
+
followUp: [
|
|
8485
|
+
"ctm_continuum_dao_fetch_proposal_votes",
|
|
8486
|
+
"ctm_continuum_dao_fetch_proposal_state",
|
|
8487
|
+
"ctm_continuum_dao_forum_fetch_thread"
|
|
8488
|
+
],
|
|
7910
8489
|
handler: { importPath: "protocols/evm/continuum-dao", exportName: "continuumDaoExplainProposal" },
|
|
7911
8490
|
inputZod: mcpContinuumDaoExplainProposalInputSchema,
|
|
7912
8491
|
outputZod: mcpContinuumDaoExplainProposalOutputSchema
|
|
7913
8492
|
}),
|
|
8493
|
+
defineMcpTool({
|
|
8494
|
+
name: "ctm_continuum_dao_fetch_proposal_votes",
|
|
8495
|
+
actionId: "continuum-dao.fetch-proposal-votes",
|
|
8496
|
+
protocolId: "continuum-dao",
|
|
8497
|
+
chainCategory: "evm",
|
|
8498
|
+
description: "Who voted on a ContinuumDAO proposal and how. Reads Governor VoteCast / VoteCastWithParams for live or past proposals. Each voter includes attached (NodeProperties.attachedTokenId after attachNodeFor) and, when they entered it at attach, nodeInfo (forum handle, VPS, DID, email, IP). Do not read email or IP aloud unless the operator asks. `proposalId` may be a backend catalog id (0, -1, -2, \u2026) or the on-chain hash. Bravo rows have For/Against/Abstain; Delta rows include option weights (last is NOTA). Offer this after listing or explaining a proposal. Linea only. Does not vote.",
|
|
8499
|
+
prerequisites: ["rpcUrl", "proposalId", "governor if constant is zero"],
|
|
8500
|
+
followUp: [
|
|
8501
|
+
"ctm_continuum_dao_fetch_proposal_state",
|
|
8502
|
+
"ctm_continuum_dao_explain_proposal"
|
|
8503
|
+
],
|
|
8504
|
+
handler: { importPath: "protocols/evm/continuum-dao", exportName: "continuumDaoFetchProposalVotes" },
|
|
8505
|
+
inputZod: mcpContinuumDaoFetchProposalVotesInputSchema,
|
|
8506
|
+
outputZod: mcpContinuumDaoFetchProposalVotesOutputSchema
|
|
8507
|
+
}),
|
|
7914
8508
|
defineMcpTool({
|
|
7915
8509
|
name: "ctm_continuum_dao_register_proposal",
|
|
7916
8510
|
actionId: "continuum-dao.register-proposal",
|
|
@@ -8638,6 +9232,179 @@ var CORE_MCP_TOOL_DEFINITIONS = [
|
|
|
8638
9232
|
],
|
|
8639
9233
|
handler: { importPath: "protocols/evm/pendle", exportName: "buildEvmMultisignBodyPendleRedeemRewardsBatch" },
|
|
8640
9234
|
inputZod: mcpPendleBuildRedeemRewardsMultisignInputSchema
|
|
9235
|
+
}),
|
|
9236
|
+
defineMcpTool({
|
|
9237
|
+
name: "ctm_derive_fetch_currencies",
|
|
9238
|
+
actionId: "derive.fetch-currencies",
|
|
9239
|
+
protocolId: "derive",
|
|
9240
|
+
chainCategory: "evm",
|
|
9241
|
+
description: "List Derive currencies from public/get_all_currencies. Used to map asset-row symbols (ETH, USDC, BTC, \u2026). load_defi_protocol derive activates defi:derive:market-data.",
|
|
9242
|
+
prerequisites: ["load_defi_protocol derive"],
|
|
9243
|
+
followUp: ["ctm_derive_fetch_option_chain", "ctm_derive_fetch_tickers", "ctm_derive_search_instruments"],
|
|
9244
|
+
handler: { importPath: "protocols/evm/derive", exportName: "deriveFetchCurrenciesSummary" },
|
|
9245
|
+
inputZod: mcpDeriveFetchCurrenciesInputSchema,
|
|
9246
|
+
outputZod: mcpDeriveFetchCurrenciesOutputSchema
|
|
9247
|
+
}),
|
|
9248
|
+
defineMcpTool({
|
|
9249
|
+
name: "ctm_derive_fetch_option_chain",
|
|
9250
|
+
actionId: "derive.fetch-option-chain",
|
|
9251
|
+
protocolId: "derive",
|
|
9252
|
+
chainCategory: "evm",
|
|
9253
|
+
description: "Compact Derive expiry ladder for a currency (counts + min/max strike per YYYYMMDD). Does not dump every instrument. Then ctm_derive_fetch_tickers for that expiry.",
|
|
9254
|
+
prerequisites: ["currency e.g. ETH"],
|
|
9255
|
+
followUp: ["ctm_derive_fetch_tickers", "ctm_derive_search_instruments", "ctm_derive_fetch_market_snapshot"],
|
|
9256
|
+
handler: { importPath: "protocols/evm/derive", exportName: "deriveFetchOptionChainAgentSummary" },
|
|
9257
|
+
inputZod: mcpDeriveFetchOptionChainInputSchema,
|
|
9258
|
+
outputZod: mcpDeriveFetchOptionChainOutputSchema
|
|
9259
|
+
}),
|
|
9260
|
+
defineMcpTool({
|
|
9261
|
+
name: "ctm_derive_fetch_tickers",
|
|
9262
|
+
actionId: "derive.fetch-tickers",
|
|
9263
|
+
protocolId: "derive",
|
|
9264
|
+
chainCategory: "evm",
|
|
9265
|
+
description: 'ATM strike/premium ladder for one Derive expiry (bid/ask/mark). expiryDate is YYYYMMDD \u2014 string or number. Default ~9 strikes around index; pass ladder:"all" for every strike.',
|
|
9266
|
+
prerequisites: ["currency", "expiryDate YYYYMMDD (string or number)"],
|
|
9267
|
+
followUp: ["ctm_derive_fetch_market_snapshot", "ctm_derive_order_quote", "ctm_derive_build_place_order_multisign"],
|
|
9268
|
+
handler: { importPath: "protocols/evm/derive", exportName: "deriveFetchTickersSummary" },
|
|
9269
|
+
inputZod: mcpDeriveFetchTickersInputSchema,
|
|
9270
|
+
outputZod: mcpDeriveFetchTickersOutputSchema
|
|
9271
|
+
}),
|
|
9272
|
+
defineMcpTool({
|
|
9273
|
+
name: "ctm_derive_search_instruments",
|
|
9274
|
+
actionId: "derive.search-instruments",
|
|
9275
|
+
protocolId: "derive",
|
|
9276
|
+
chainCategory: "evm",
|
|
9277
|
+
description: "Search Derive option instrument names by strike, expiry, or C/P suffix.",
|
|
9278
|
+
prerequisites: ["currency", "query"],
|
|
9279
|
+
followUp: ["ctm_derive_fetch_market_snapshot", "ctm_derive_build_place_order_multisign"],
|
|
9280
|
+
handler: { importPath: "protocols/evm/derive", exportName: "deriveSearchInstrumentsSummary" },
|
|
9281
|
+
inputZod: mcpDeriveSearchInstrumentsInputSchema,
|
|
9282
|
+
outputZod: mcpDeriveSearchInstrumentsOutputSchema
|
|
9283
|
+
}),
|
|
9284
|
+
defineMcpTool({
|
|
9285
|
+
name: "ctm_derive_fetch_market_snapshot",
|
|
9286
|
+
actionId: "derive.fetch-market-snapshot",
|
|
9287
|
+
protocolId: "derive",
|
|
9288
|
+
chainCategory: "evm",
|
|
9289
|
+
description: "Live Derive ticker: mark, index, bid/ask, greeks. Throws if no live price.",
|
|
9290
|
+
prerequisites: ["instrumentName from fetch_option_chain"],
|
|
9291
|
+
followUp: ["ctm_derive_fetch_ohlcv", "ctm_derive_order_quote", "ctm_derive_build_place_order_multisign"],
|
|
9292
|
+
handler: { importPath: "protocols/evm/derive", exportName: "deriveFetchMarketSnapshotSummary" },
|
|
9293
|
+
inputZod: mcpDeriveFetchMarketSnapshotInputSchema,
|
|
9294
|
+
outputZod: mcpDeriveFetchMarketSnapshotOutputSchema
|
|
9295
|
+
}),
|
|
9296
|
+
defineMcpTool({
|
|
9297
|
+
name: "ctm_derive_fetch_ohlcv",
|
|
9298
|
+
actionId: "derive.fetch-ohlcv",
|
|
9299
|
+
protocolId: "derive",
|
|
9300
|
+
chainCategory: "evm",
|
|
9301
|
+
description: 'OHLCV for a Derive option (instrumentName) or underlying index (currency + marketKind index). Default is ~96 bars for the interval (not a 14-day dump). Envelope { ohlcv, dataSource: "derive" }. Then continuum__prepare_chart_from_rows if the user wants a chart.',
|
|
9302
|
+
prerequisites: ["instrumentName or currency"],
|
|
9303
|
+
followUp: ["continuum__prepare_chart_from_rows", "ctm_derive_fetch_market_snapshot"],
|
|
9304
|
+
handler: { importPath: "protocols/evm/derive", exportName: "deriveFetchOhlcvSummary" },
|
|
9305
|
+
inputZod: mcpDeriveFetchOhlcvInputSchema,
|
|
9306
|
+
outputZod: mcpDeriveFetchOhlcvOutputSchema
|
|
9307
|
+
}),
|
|
9308
|
+
defineMcpTool({
|
|
9309
|
+
name: "ctm_derive_order_quote",
|
|
9310
|
+
actionId: "derive.order-quote",
|
|
9311
|
+
protocolId: "derive",
|
|
9312
|
+
chainCategory: "evm",
|
|
9313
|
+
description: "Dry-run Derive fill / margin preview (public/order_quote).",
|
|
9314
|
+
prerequisites: ["instrumentName", "direction", "amount", "limitPrice"],
|
|
9315
|
+
followUp: ["ctm_derive_build_place_order_multisign"],
|
|
9316
|
+
handler: { importPath: "protocols/evm/derive", exportName: "deriveOrderQuoteSummary" },
|
|
9317
|
+
inputZod: mcpDeriveOrderQuoteInputSchema,
|
|
9318
|
+
outputZod: mcpDeriveOrderQuoteOutputSchema
|
|
9319
|
+
}),
|
|
9320
|
+
defineMcpTool({
|
|
9321
|
+
name: "ctm_derive_fetch_risk_universes",
|
|
9322
|
+
actionId: "derive.fetch-risk-universes",
|
|
9323
|
+
protocolId: "derive",
|
|
9324
|
+
chainCategory: "evm",
|
|
9325
|
+
description: "List Derive risk universes (manager_id + collaterals). Required before the first deposit. Pick a manager that lists ETH options and USDC (or the row currency).",
|
|
9326
|
+
prerequisites: ["activate_tool_group defi:derive:options"],
|
|
9327
|
+
followUp: [
|
|
9328
|
+
"ctm_derive_build_deposit_new_subaccount_multisign",
|
|
9329
|
+
"ctm_derive_register_deposit_address",
|
|
9330
|
+
"ctm_derive_build_socket_deposit_multisign",
|
|
9331
|
+
"ctm_derive_build_hype_vault_deposit_multisign"
|
|
9332
|
+
],
|
|
9333
|
+
handler: { importPath: "protocols/evm/derive", exportName: "deriveFetchRiskUniversesSummary" },
|
|
9334
|
+
inputZod: mcpDeriveFetchRiskUniversesInputSchema,
|
|
9335
|
+
outputZod: mcpDeriveFetchRiskUniversesOutputSchema
|
|
9336
|
+
}),
|
|
9337
|
+
defineMcpTool({
|
|
9338
|
+
name: "ctm_derive_fetch_pending_deposits",
|
|
9339
|
+
actionId: "derive.fetch-pending-deposits",
|
|
9340
|
+
protocolId: "derive",
|
|
9341
|
+
chainCategory: "evm",
|
|
9342
|
+
description: "Poll public/get_pending_deposits for the KeyGen wallet. credited:false means wait; then call fetch_subaccounts. First deposit is L1, Socket (ETH/OP/Base/Arb), or HyperEVM HYPE.",
|
|
9343
|
+
prerequisites: ["wallet / executorAddress"],
|
|
9344
|
+
followUp: ["ctm_derive_fetch_subaccounts"],
|
|
9345
|
+
handler: { importPath: "protocols/evm/derive", exportName: "deriveFetchPendingDepositsSummary" },
|
|
9346
|
+
inputZod: mcpDeriveFetchPendingDepositsInputSchema,
|
|
9347
|
+
outputZod: mcpDeriveFetchPendingDepositsOutputSchema
|
|
9348
|
+
}),
|
|
9349
|
+
defineMcpTool({
|
|
9350
|
+
name: "ctm_derive_register_deposit_address",
|
|
9351
|
+
actionId: "derive.register-deposit-address",
|
|
9352
|
+
protocolId: "derive",
|
|
9353
|
+
chainCategory: "evm",
|
|
9354
|
+
description: "public/register_deposit_address \u2014 deterministic Ethereum L1 deposit address for this wallet. Then transfer the token with ctm_derive_build_deposit_address_transfer_multisign. Do not send from Base/Arb to this address.",
|
|
9355
|
+
prerequisites: ["wallet", "managerId (new subaccount) or subaccountId (existing)"],
|
|
9356
|
+
followUp: ["ctm_derive_build_deposit_address_transfer_multisign", "ctm_derive_fetch_pending_deposits"],
|
|
9357
|
+
handler: { importPath: "protocols/evm/derive", exportName: "deriveRegisterDepositAddress" },
|
|
9358
|
+
inputZod: mcpDeriveRegisterDepositAddressInputSchema,
|
|
9359
|
+
outputZod: mcpDeriveRegisterDepositAddressOutputSchema
|
|
9360
|
+
}),
|
|
9361
|
+
defineMcpTool({
|
|
9362
|
+
name: "ctm_derive_fetch_subaccounts",
|
|
9363
|
+
actionId: "derive.fetch-subaccounts",
|
|
9364
|
+
protocolId: "derive",
|
|
9365
|
+
chainCategory: "evm",
|
|
9366
|
+
description: "List Derive subaccount ids for the KeyGen executor. Empty list returns funded:false and notes to deposit from a fundable logo row (L1 / Socket / HYPE vault). Two ids after first credit is normal (trading + fallback manager 0).",
|
|
9367
|
+
prerequisites: ["wallet / executorAddress", "node-cached EIP-191 login"],
|
|
9368
|
+
followUp: ["ctm_derive_fetch_portfolio", "ctm_derive_build_place_order_multisign"],
|
|
9369
|
+
handler: { importPath: "protocols/evm/derive", exportName: "deriveFetchSubaccountsSummary" },
|
|
9370
|
+
inputZod: mcpDeriveFetchSubaccountsInputSchema,
|
|
9371
|
+
outputZod: mcpDeriveFetchSubaccountsOutputSchema
|
|
9372
|
+
}),
|
|
9373
|
+
defineMcpTool({
|
|
9374
|
+
name: "ctm_derive_fetch_portfolio",
|
|
9375
|
+
actionId: "derive.fetch-portfolio",
|
|
9376
|
+
protocolId: "derive",
|
|
9377
|
+
chainCategory: "evm",
|
|
9378
|
+
description: "Derive private/get_subaccount portfolio for a funded subaccountId.",
|
|
9379
|
+
prerequisites: ["subaccountId from ctm_derive_fetch_subaccounts"],
|
|
9380
|
+
followUp: ["ctm_derive_fetch_positions", "ctm_derive_build_place_order_multisign"],
|
|
9381
|
+
handler: { importPath: "protocols/evm/derive", exportName: "deriveFetchPortfolioSummary" },
|
|
9382
|
+
inputZod: mcpDeriveFetchPortfolioInputSchema,
|
|
9383
|
+
outputZod: mcpDeriveFetchPortfolioOutputSchema
|
|
9384
|
+
}),
|
|
9385
|
+
defineMcpTool({
|
|
9386
|
+
name: "ctm_derive_fetch_positions",
|
|
9387
|
+
actionId: "derive.fetch-positions",
|
|
9388
|
+
protocolId: "derive",
|
|
9389
|
+
chainCategory: "evm",
|
|
9390
|
+
description: "Open Derive option positions for a subaccountId from fetch_subaccounts.",
|
|
9391
|
+
prerequisites: ["subaccountId from ctm_derive_fetch_subaccounts"],
|
|
9392
|
+
followUp: ["ctm_derive_build_place_order_multisign"],
|
|
9393
|
+
handler: { importPath: "protocols/evm/derive", exportName: "deriveFetchPositionsSummary" },
|
|
9394
|
+
inputZod: mcpDeriveFetchPositionsInputSchema,
|
|
9395
|
+
outputZod: mcpDeriveFetchPositionsOutputSchema
|
|
9396
|
+
}),
|
|
9397
|
+
defineMcpTool({
|
|
9398
|
+
name: "ctm_derive_fetch_open_orders",
|
|
9399
|
+
actionId: "derive.fetch-open-orders",
|
|
9400
|
+
protocolId: "derive",
|
|
9401
|
+
chainCategory: "evm",
|
|
9402
|
+
description: "Open Derive orders for a subaccountId. Follow with cancel/replace.",
|
|
9403
|
+
prerequisites: ["subaccountId from ctm_derive_fetch_subaccounts"],
|
|
9404
|
+
followUp: ["ctm_derive_build_cancel_multisign", "ctm_derive_build_replace_order_multisign"],
|
|
9405
|
+
handler: { importPath: "protocols/evm/derive", exportName: "deriveFetchOpenOrdersSummary" },
|
|
9406
|
+
inputZod: mcpDeriveFetchOpenOrdersInputSchema,
|
|
9407
|
+
outputZod: mcpDeriveFetchOpenOrdersOutputSchema
|
|
8641
9408
|
})
|
|
8642
9409
|
];
|
|
8643
9410
|
var MCP_TOOL_DEFINITIONS = [
|
|
@@ -9531,7 +10298,26 @@ var hyperliquidProtocolModule = {
|
|
|
9531
10298
|
dex: { type: "string", required: false, description: "HIP-3 dex name when applicable" },
|
|
9532
10299
|
takeProfitTriggerPxHuman: { type: "string", required: false, description: "TP trigger \u2014 enables L1 bracket with SL" },
|
|
9533
10300
|
stopLossTriggerPxHuman: { type: "string", required: false, description: "SL trigger \u2014 enables L1 bracket with TP" },
|
|
9534
|
-
tpslExecMode: { type: "string", required: false, description: "limit_at_trigger (default) or market" }
|
|
10301
|
+
tpslExecMode: { type: "string", required: false, description: "limit_at_trigger (default) or market" },
|
|
10302
|
+
trailingOffsetHuman: { type: "string", required: false, description: "Trailing retracement \u2014 EIP-712 trailingStop (cannot combine with SL)" },
|
|
10303
|
+
trailingOffsetType: { type: "string", required: false, description: "price or percentage" },
|
|
10304
|
+
trailingActivationPxHuman: { type: "string", required: false, description: "Optional activation mark price" }
|
|
10305
|
+
}
|
|
10306
|
+
},
|
|
10307
|
+
{
|
|
10308
|
+
id: "hyperliquid.trailingStop",
|
|
10309
|
+
protocolId: HYPERLIQUID_PROTOCOL_ID,
|
|
10310
|
+
chainCategory: "evm",
|
|
10311
|
+
description: "Place a Hyperliquid perp trailing stop via L1 trailingStop action (EIP-712 /exchange)",
|
|
10312
|
+
commonParams: ["keyGen", "purposeText"],
|
|
10313
|
+
params: {
|
|
10314
|
+
coin: { type: "string", required: true, description: "Perp coin" },
|
|
10315
|
+
isBuy: { type: "boolean", required: true, description: "false closes a long / opens a short" },
|
|
10316
|
+
szHuman: { type: "string", required: true, description: "Size in coin units" },
|
|
10317
|
+
trailingOffsetHuman: { type: "string", required: true, description: "Retracement distance or percent" },
|
|
10318
|
+
trailingOffsetType: { type: "string", required: false, description: "price or percentage (default)" },
|
|
10319
|
+
trailingActivationPxHuman: { type: "string", required: false, description: "Optional activation mark price" },
|
|
10320
|
+
reduceOnly: { type: "boolean", required: false, description: "true (default) reduces a position" }
|
|
9535
10321
|
}
|
|
9536
10322
|
},
|
|
9537
10323
|
{
|
|
@@ -10485,6 +11271,7 @@ var continuumDaoProtocolModule = {
|
|
|
10485
11271
|
{ id: "continuum-dao.cancel", protocolId: CONTINUUM_DAO_PROTOCOL_ID, chainCategory: "evm", description: "Cancel a proposal", commonParams: ["keyGen", "purposeText", "useCustomGas"], params: { proposalId: { type: "string", required: true, description: "Catalog id or governor proposal hash" } } },
|
|
10486
11272
|
{ id: "continuum-dao.fetch-live-proposals", protocolId: CONTINUUM_DAO_PROTOCOL_ID, chainCategory: "evm", description: "List live/pending/succeeded proposals with on-chain state overlay", commonParams: [], params: { chainId: { type: "number", required: false, description: "Linea chain id" }, rpcUrl: { type: "string", required: false, description: "Linea RPC for state overlay" } } },
|
|
10487
11273
|
{ id: "continuum-dao.explain-proposal", protocolId: CONTINUUM_DAO_PROTOCOL_ID, chainCategory: "evm", description: "Deconstruct a proposal into a readable briefing (actions, C3, no-ops, risks)", commonParams: [], params: { id: { type: "string", required: false, description: "Backend proposal id" }, onchainId: { type: "string", required: false, description: "Governor proposal id" } } },
|
|
11274
|
+
{ id: "continuum-dao.fetch-proposal-votes", protocolId: CONTINUUM_DAO_PROTOCOL_ID, chainCategory: "evm", description: "Who voted on a proposal and how (VoteCast / VoteCastWithParams)", commonParams: [], params: { proposalId: { type: "string", required: true, description: "Catalog id or governor proposal hash" } } },
|
|
10488
11275
|
{ id: "continuum-dao.forum-sign-in", protocolId: CONTINUUM_DAO_PROTOCOL_ID, chainCategory: "evm", description: "EIP-712 forum login (veCTM gate first)", commonParams: ["keyGen", "purposeText"], params: { nodeKey: { type: "string", required: false, description: "Attached node key" }, username: { type: "string", required: false, description: "Username when there is no node key" } } },
|
|
10489
11276
|
{ id: "continuum-dao.forum-sign-in-eligible", protocolId: CONTINUUM_DAO_PROTOCOL_ID, chainCategory: "evm", description: "Check veCTM forum login eligibility", commonParams: [], params: { address: { type: "string", required: true, description: "KeyGen or wallet address" } } },
|
|
10490
11277
|
{ id: "continuum-dao.forum-sign-out", protocolId: CONTINUUM_DAO_PROTOCOL_ID, chainCategory: "evm", description: "Revoke forum ticket and sessions", commonParams: [], params: { ticket: { type: "string", required: true, description: "Forum write ticket" } } },
|
|
@@ -11527,6 +12314,305 @@ var pendleProtocolModule = {
|
|
|
11527
12314
|
]
|
|
11528
12315
|
};
|
|
11529
12316
|
registerProtocolModule(pendleProtocolModule);
|
|
12317
|
+
|
|
12318
|
+
// src/protocols/evm/derive/constants.ts
|
|
12319
|
+
var DERIVE_PROTOCOL_ID = "derive";
|
|
12320
|
+
var DERIVE_MAINNET_API = "https://api.derive.xyz/v3";
|
|
12321
|
+
var DERIVE_TESTNET_API = "https://testnet.api.derive.xyz/v3";
|
|
12322
|
+
var DERIVE_MAINNET_API_V2 = "https://api.lyra.finance";
|
|
12323
|
+
var DERIVE_TESTNET_API_V2 = "https://api-demo.lyra.finance";
|
|
12324
|
+
function deriveNetworkFromChainId(chainId) {
|
|
12325
|
+
return chainId === 11155111 ? "testnet" : "mainnet";
|
|
12326
|
+
}
|
|
12327
|
+
function deriveApiBaseUrl(network = "mainnet") {
|
|
12328
|
+
return network === "testnet" ? DERIVE_TESTNET_API : DERIVE_MAINNET_API;
|
|
12329
|
+
}
|
|
12330
|
+
function deriveApiFallbackBaseUrl(network = "mainnet") {
|
|
12331
|
+
return network === "testnet" ? DERIVE_TESTNET_API_V2 : DERIVE_MAINNET_API_V2;
|
|
12332
|
+
}
|
|
12333
|
+
var DERIVE_ASSET_ROW_CHAIN_IDS = [1, 10, 8453, 42161, 999, 11155111];
|
|
12334
|
+
function isDeriveAssetRowChainId(chainId) {
|
|
12335
|
+
return DERIVE_ASSET_ROW_CHAIN_IDS.includes(chainId);
|
|
12336
|
+
}
|
|
12337
|
+
function isDeriveChainSupported(chainId) {
|
|
12338
|
+
return isDeriveAssetRowChainId(chainId);
|
|
12339
|
+
}
|
|
12340
|
+
var NATIVE_ZERO = "0x0000000000000000000000000000000000000000";
|
|
12341
|
+
var USDC = {
|
|
12342
|
+
1: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
|
|
12343
|
+
10: "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85",
|
|
12344
|
+
8453: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
|
|
12345
|
+
42161: "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
|
|
12346
|
+
11155111: "0x73Efab09362052D26FB93A730Be4F8a5EdC833af"
|
|
12347
|
+
};
|
|
12348
|
+
var WETH = {
|
|
12349
|
+
1: "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
|
|
12350
|
+
10: "0x4200000000000000000000000000000000000006",
|
|
12351
|
+
8453: "0x4200000000000000000000000000000000000006",
|
|
12352
|
+
42161: "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1"
|
|
12353
|
+
};
|
|
12354
|
+
var WBTC = {
|
|
12355
|
+
1: "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599",
|
|
12356
|
+
10: "0x68f180fcCe6836688e9084f035309E29Bf0A2095",
|
|
12357
|
+
42161: "0x2f2a2543B76A4166549B7eCDcE5542a773Aa44fB"
|
|
12358
|
+
};
|
|
12359
|
+
var WHYPE = "0x5555555555555555555555555555555555555555";
|
|
12360
|
+
function deriveMappedTokensForChain(chainId) {
|
|
12361
|
+
const tokens = [];
|
|
12362
|
+
const add = (address, symbol, decimals, roles) => {
|
|
12363
|
+
if (!address) return;
|
|
12364
|
+
tokens.push({ address: getAddress(address), symbol, decimals, roles });
|
|
12365
|
+
};
|
|
12366
|
+
if ([1, 10, 8453, 42161].includes(chainId)) {
|
|
12367
|
+
add(NATIVE_ZERO, "ETH", 18, ["native", "underlying"]);
|
|
12368
|
+
add(WETH[chainId], "WETH", 18, ["native_wrapped", "underlying"]);
|
|
12369
|
+
}
|
|
12370
|
+
if (chainId === 999) {
|
|
12371
|
+
add(NATIVE_ZERO, "HYPE", 18, ["native", "collateral"]);
|
|
12372
|
+
add(WHYPE, "WHYPE", 18, ["native_wrapped", "collateral"]);
|
|
12373
|
+
}
|
|
12374
|
+
add(USDC[chainId], "USDC", 6, ["collateral", "quote"]);
|
|
12375
|
+
add(WBTC[chainId], "WBTC", 8, ["underlying", "collateral"]);
|
|
12376
|
+
return tokens;
|
|
12377
|
+
}
|
|
12378
|
+
function deriveNativeWrappedForChain(chainId) {
|
|
12379
|
+
if (chainId === 999) return WHYPE;
|
|
12380
|
+
return WETH[chainId];
|
|
12381
|
+
}
|
|
12382
|
+
function deriveAdvisorNotes() {
|
|
12383
|
+
return "Fund from Ethereum USDC/WETH/WBTC (L1 ACTION_MANAGER or deposit address), Socket USDC/WETH/WBTC on Optimism/Base/Arbitrum, or HyperEVM HYPE (vault). Derive Chain 957 is not a Continuum Assets chain. After credit, EIP-712 options use Derive collateral.";
|
|
12384
|
+
}
|
|
12385
|
+
|
|
12386
|
+
// src/protocols/evm/derive/api.ts
|
|
12387
|
+
function methodName(method) {
|
|
12388
|
+
return method.replace(/^\//, "");
|
|
12389
|
+
}
|
|
12390
|
+
function isDerivePublicMethod(method) {
|
|
12391
|
+
return methodName(method).startsWith("public/");
|
|
12392
|
+
}
|
|
12393
|
+
function isEmptyDerivePublicResult(method, result) {
|
|
12394
|
+
const m = methodName(method);
|
|
12395
|
+
if (result == null) return true;
|
|
12396
|
+
if (m === "public/get_all_currencies" && Array.isArray(result) && result.length === 0) return true;
|
|
12397
|
+
if (m === "public/get_tickers" && result && typeof result === "object") {
|
|
12398
|
+
const tickers = result.tickers;
|
|
12399
|
+
if (Array.isArray(tickers) && tickers.length === 0) return true;
|
|
12400
|
+
if (tickers && typeof tickers === "object" && !Array.isArray(tickers) && Object.keys(tickers).length === 0) {
|
|
12401
|
+
return true;
|
|
12402
|
+
}
|
|
12403
|
+
}
|
|
12404
|
+
return false;
|
|
12405
|
+
}
|
|
12406
|
+
function isDeriveRecoverablePublicError(err) {
|
|
12407
|
+
const name = err instanceof Error ? err.name : "";
|
|
12408
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
12409
|
+
return name === "TimeoutError" || name === "AbortError" || /Internal error|HTTP 404|Not Found|returned empty|empty catalog|Ticker not found|aborted due to timeout|The operation was aborted/i.test(
|
|
12410
|
+
msg
|
|
12411
|
+
);
|
|
12412
|
+
}
|
|
12413
|
+
function unwrapResult(json, method) {
|
|
12414
|
+
if (json && typeof json === "object") {
|
|
12415
|
+
const rec = json;
|
|
12416
|
+
if (rec.error) {
|
|
12417
|
+
const err = rec.error;
|
|
12418
|
+
const detail = err.data != null && String(err.data).trim() ? ` (${String(err.data).slice(0, 160)})` : "";
|
|
12419
|
+
throw new Error(`Derive ${method} failed: ${err.message ?? JSON.stringify(rec.error)}${detail}`);
|
|
12420
|
+
}
|
|
12421
|
+
if ("result" in rec) return rec.result;
|
|
12422
|
+
}
|
|
12423
|
+
return json;
|
|
12424
|
+
}
|
|
12425
|
+
async function deriveRpcPost(args) {
|
|
12426
|
+
const method = methodName(args.method);
|
|
12427
|
+
const headers = { "Content-Type": "application/json" };
|
|
12428
|
+
if (args.auth) {
|
|
12429
|
+
headers["X-DeriveWallet"] = args.auth.wallet;
|
|
12430
|
+
headers["X-DeriveTimestamp"] = args.auth.timestamp;
|
|
12431
|
+
headers["X-DeriveSignature"] = args.auth.signature;
|
|
12432
|
+
}
|
|
12433
|
+
const res = await fetch(`${args.base}/${method}`, {
|
|
12434
|
+
method: "POST",
|
|
12435
|
+
headers,
|
|
12436
|
+
body: JSON.stringify(args.params ?? {}),
|
|
12437
|
+
cache: "no-store",
|
|
12438
|
+
signal: AbortSignal.timeout(15e3)
|
|
12439
|
+
});
|
|
12440
|
+
const text = await res.text().catch(() => "");
|
|
12441
|
+
if (!res.ok || !text.trim() || text.trim() === "Not Found") {
|
|
12442
|
+
throw new Error(`Derive ${method} HTTP ${res.status}: ${text.slice(0, 240) || "empty body"}`);
|
|
12443
|
+
}
|
|
12444
|
+
let json;
|
|
12445
|
+
try {
|
|
12446
|
+
json = JSON.parse(text);
|
|
12447
|
+
} catch {
|
|
12448
|
+
throw new Error(`Derive ${method} returned non-JSON: ${text.slice(0, 160)}`);
|
|
12449
|
+
}
|
|
12450
|
+
const result = unwrapResult(json, method);
|
|
12451
|
+
if (isEmptyDerivePublicResult(method, result)) {
|
|
12452
|
+
throw new Error(`Derive ${method} returned empty catalog`);
|
|
12453
|
+
}
|
|
12454
|
+
return result;
|
|
12455
|
+
}
|
|
12456
|
+
async function deriveRpc(args) {
|
|
12457
|
+
const network = args.network ?? "mainnet";
|
|
12458
|
+
const method = methodName(args.method);
|
|
12459
|
+
const primary = deriveApiBaseUrl(network);
|
|
12460
|
+
try {
|
|
12461
|
+
return await deriveRpcPost({
|
|
12462
|
+
base: primary,
|
|
12463
|
+
method,
|
|
12464
|
+
params: args.params,
|
|
12465
|
+
auth: args.auth
|
|
12466
|
+
});
|
|
12467
|
+
} catch (err) {
|
|
12468
|
+
const fallback = deriveApiFallbackBaseUrl(network);
|
|
12469
|
+
if (!isDerivePublicMethod(method) || fallback === primary || !isDeriveRecoverablePublicError(err)) {
|
|
12470
|
+
throw err;
|
|
12471
|
+
}
|
|
12472
|
+
return await deriveRpcPost({
|
|
12473
|
+
base: fallback,
|
|
12474
|
+
method,
|
|
12475
|
+
params: args.params,
|
|
12476
|
+
auth: args.auth
|
|
12477
|
+
});
|
|
12478
|
+
}
|
|
12479
|
+
}
|
|
12480
|
+
|
|
12481
|
+
// src/protocols/evm/derive/assets.ts
|
|
12482
|
+
async function deriveFetchCurrenciesRaw(args) {
|
|
12483
|
+
const result = await deriveRpc({
|
|
12484
|
+
method: "public/get_all_currencies",
|
|
12485
|
+
network: args?.network
|
|
12486
|
+
});
|
|
12487
|
+
if (Array.isArray(result)) return result;
|
|
12488
|
+
if (result && typeof result === "object" && Array.isArray(result.currencies)) {
|
|
12489
|
+
return result.currencies;
|
|
12490
|
+
}
|
|
12491
|
+
return [];
|
|
12492
|
+
}
|
|
12493
|
+
|
|
12494
|
+
// src/protocols/evm/derive/index.ts
|
|
12495
|
+
var deriveProtocolModule = {
|
|
12496
|
+
id: DERIVE_PROTOCOL_ID,
|
|
12497
|
+
chainCategory: "evm",
|
|
12498
|
+
isChainSupported(ctx) {
|
|
12499
|
+
if (ctx.chainCategory !== "evm") return false;
|
|
12500
|
+
const chainId = typeof ctx.chainId === "number" ? ctx.chainId : Number(ctx.chainId);
|
|
12501
|
+
return Number.isFinite(chainId) && isDeriveChainSupported(chainId);
|
|
12502
|
+
},
|
|
12503
|
+
isTokenSupported(token) {
|
|
12504
|
+
if (token.category !== "evm") return false;
|
|
12505
|
+
return token.kind === "erc20" || token.kind === "native";
|
|
12506
|
+
},
|
|
12507
|
+
actions: [
|
|
12508
|
+
{
|
|
12509
|
+
id: "derive.depositNewSubaccount",
|
|
12510
|
+
protocolId: DERIVE_PROTOCOL_ID,
|
|
12511
|
+
chainCategory: "evm",
|
|
12512
|
+
description: "Ethereum L1 approve + ACTION_MANAGER.depositToNewSubaccount. First credit creates the trading + fallback subaccounts. chainId 1 / 11155111. Arb/OP/Base use derive.socketDeposit; HyperEVM HYPE uses derive.hypeVaultDeposit.",
|
|
12513
|
+
commonParams: ["keyGen", "purposeText", "useCustomGas"],
|
|
12514
|
+
params: {
|
|
12515
|
+
protocolAsset: { type: "string", required: true, description: "Risk-universe collateral protocol asset" },
|
|
12516
|
+
underlyingErc20: { type: "string", required: true, description: "L1 ERC-20 to approve (usually USDC)" },
|
|
12517
|
+
amountHuman: { type: "string", required: true, description: "Deposit amount in underlying decimals" },
|
|
12518
|
+
managerId: { type: "number", required: true, description: "Risk-universe manager_id" }
|
|
12519
|
+
}
|
|
12520
|
+
},
|
|
12521
|
+
{
|
|
12522
|
+
id: "derive.depositAddressTransfer",
|
|
12523
|
+
protocolId: DERIVE_PROTOCOL_ID,
|
|
12524
|
+
chainCategory: "evm",
|
|
12525
|
+
description: "Ethereum L1 ERC-20 transfer to a registered Derive deposit address (standard / keeper sweep). Call register_deposit_address first.",
|
|
12526
|
+
commonParams: ["keyGen", "purposeText", "useCustomGas"],
|
|
12527
|
+
params: {
|
|
12528
|
+
underlyingErc20: { type: "string", required: true, description: "L1 ERC-20 to send (usually USDC)" },
|
|
12529
|
+
amountHuman: { type: "string", required: true, description: "Transfer amount in token units" },
|
|
12530
|
+
depositAddress: { type: "string", required: true, description: "From register_deposit_address" }
|
|
12531
|
+
}
|
|
12532
|
+
},
|
|
12533
|
+
{
|
|
12534
|
+
id: "derive.socketDeposit",
|
|
12535
|
+
protocolId: DERIVE_PROTOCOL_ID,
|
|
12536
|
+
chainCategory: "evm",
|
|
12537
|
+
description: "Socket FAST deposit of USDC/WETH/WBTC on Ethereum, Optimism, Base, or Arbitrum into Derive Chain. Native ETH wraps to WETH first. useCustomGas.",
|
|
12538
|
+
commonParams: ["keyGen", "purposeText", "useCustomGas"],
|
|
12539
|
+
params: {
|
|
12540
|
+
token: { type: "string", required: true, description: "Row ERC-20 or native 0x0 (wraps to WETH)" },
|
|
12541
|
+
amountHuman: { type: "string", required: true, description: "Deposit amount in token units" }
|
|
12542
|
+
}
|
|
12543
|
+
},
|
|
12544
|
+
{
|
|
12545
|
+
id: "derive.hypeVaultDeposit",
|
|
12546
|
+
protocolId: DERIVE_PROTOCOL_ID,
|
|
12547
|
+
chainCategory: "evm",
|
|
12548
|
+
description: "HyperEVM (999): wrap native HYPE to WHYPE if needed, approve Derive vault, deposit.",
|
|
12549
|
+
commonParams: ["keyGen", "purposeText", "useCustomGas"],
|
|
12550
|
+
params: {
|
|
12551
|
+
amountHuman: { type: "string", required: true, description: "HYPE amount" },
|
|
12552
|
+
token: { type: "string", required: false, description: "Native 0x0 or WHYPE" }
|
|
12553
|
+
}
|
|
12554
|
+
},
|
|
12555
|
+
{
|
|
12556
|
+
id: "derive.placeOrder",
|
|
12557
|
+
protocolId: DERIVE_PROTOCOL_ID,
|
|
12558
|
+
chainCategory: "evm",
|
|
12559
|
+
description: "Place a Derive options limit order via EIP-712 Action (delivery derive_exchange). Does not spend the current-chain token.",
|
|
12560
|
+
commonParams: ["keyGen", "purposeText"],
|
|
12561
|
+
params: {
|
|
12562
|
+
instrumentName: { type: "string", required: true, description: "e.g. ETH-20260626-3000-C" },
|
|
12563
|
+
direction: { type: "string", required: true, description: "buy or sell" },
|
|
12564
|
+
amount: { type: "string", required: true, description: "Contract size" },
|
|
12565
|
+
limitPrice: { type: "string", required: true, description: "Limit price" },
|
|
12566
|
+
maxFee: { type: "string", required: true, description: "Max fee (e18-scaled, \u226412 decimals)" },
|
|
12567
|
+
subaccountId: { type: "number", required: true, description: "From fetch_subaccounts \u2014 never 0" }
|
|
12568
|
+
}
|
|
12569
|
+
},
|
|
12570
|
+
{
|
|
12571
|
+
id: "derive.replaceOrder",
|
|
12572
|
+
protocolId: DERIVE_PROTOCOL_ID,
|
|
12573
|
+
chainCategory: "evm",
|
|
12574
|
+
description: "Replace a Derive open order (EIP-712 Action + orderIdToCancel or nonceToCancel).",
|
|
12575
|
+
commonParams: ["keyGen", "purposeText"],
|
|
12576
|
+
params: {
|
|
12577
|
+
instrumentName: { type: "string", required: true, description: "Instrument of the replacement order" },
|
|
12578
|
+
direction: { type: "string", required: true, description: "buy or sell" },
|
|
12579
|
+
amount: { type: "string", required: true, description: "Contract size" },
|
|
12580
|
+
limitPrice: { type: "string", required: true, description: "Limit price" },
|
|
12581
|
+
maxFee: { type: "string", required: true, description: "Max fee" },
|
|
12582
|
+
subaccountId: { type: "number", required: true, description: "From fetch_subaccounts" },
|
|
12583
|
+
orderIdToCancel: { type: "string", required: false, description: "Existing order id (xor nonceToCancel)" },
|
|
12584
|
+
nonceToCancel: { type: "string", required: false, description: "Existing order nonce (xor orderIdToCancel)" }
|
|
12585
|
+
}
|
|
12586
|
+
},
|
|
12587
|
+
{
|
|
12588
|
+
id: "derive.cancel",
|
|
12589
|
+
protocolId: DERIVE_PROTOCOL_ID,
|
|
12590
|
+
chainCategory: "evm",
|
|
12591
|
+
description: "Cancel a Derive open order. v3 cancel is session-auth; this signs EIP-191 login for private/cancel delivery.",
|
|
12592
|
+
commonParams: ["keyGen", "purposeText"],
|
|
12593
|
+
params: {
|
|
12594
|
+
instrumentName: { type: "string", required: true, description: "Instrument of the open order" },
|
|
12595
|
+
orderId: { type: "string", required: true, description: "order_id from fetch_open_orders" },
|
|
12596
|
+
subaccountId: { type: "number", required: true, description: "From fetch_subaccounts" }
|
|
12597
|
+
}
|
|
12598
|
+
},
|
|
12599
|
+
{
|
|
12600
|
+
id: "derive.transferSpot",
|
|
12601
|
+
protocolId: DERIVE_PROTOCOL_ID,
|
|
12602
|
+
chainCategory: "evm",
|
|
12603
|
+
description: "EIP-712 transfer_spot. Use toSubaccountId 0 + newSubaccountManager to create an extra subaccount after the first funded one.",
|
|
12604
|
+
commonParams: ["keyGen", "purposeText"],
|
|
12605
|
+
params: {
|
|
12606
|
+
fromSubaccountId: { type: "number", required: true, description: "Funded source subaccount" },
|
|
12607
|
+
toSubaccountId: { type: "number", required: true, description: "0 to create an extra subaccount" },
|
|
12608
|
+
newSubaccountManager: { type: "number", required: true, description: "Required when toSubaccountId is 0" },
|
|
12609
|
+
asset: { type: "string", required: true, description: "Protocol asset address" },
|
|
12610
|
+
amount: { type: "string", required: true, description: "Transfer amount" }
|
|
12611
|
+
}
|
|
12612
|
+
}
|
|
12613
|
+
]
|
|
12614
|
+
};
|
|
12615
|
+
registerProtocolModule(deriveProtocolModule);
|
|
11530
12616
|
var skillsDir = join(dirname(fileURLToPath(import.meta.url)), "skills");
|
|
11531
12617
|
var SKILL_PROTOCOL_IDS = [
|
|
11532
12618
|
"aave-v4",
|
|
@@ -11546,6 +12632,7 @@ var SKILL_PROTOCOL_IDS = [
|
|
|
11546
12632
|
"pendle",
|
|
11547
12633
|
"continuum-dao",
|
|
11548
12634
|
"compound-v3",
|
|
12635
|
+
"derive",
|
|
11549
12636
|
"yield-compare"
|
|
11550
12637
|
];
|
|
11551
12638
|
function getToolsForProtocol(protocolId) {
|
|
@@ -11974,7 +13061,7 @@ var PROTOCOL_SUPPORT_ADVISORS = {
|
|
|
11974
13061
|
if (ve) tokens.push({ address: ve, symbol: "veCTM", roles: ["position_nft"] });
|
|
11975
13062
|
return {
|
|
11976
13063
|
tokens,
|
|
11977
|
-
notes: tokens.length === 0 ? "ContinuumDAO addresses are placeholders until redeploy. Lock/attach/governance stay Linea-only. Create lock needs >= 1 CTM (live minimumLock) and 1\u2013208 weeks. Prefer live GET /protocol/dao. For \u201Cwhat proposals are live now?\u201D use ctm_continuum_dao_fetch_live_proposals (not fetch_proposals). Propose requires getVotes >= live proposalThreshold() (max of 1000e18 ve power and 1% of total votes). Bravo empty actions insert a KeyGen no-op; Delta votes need nOptions+1 weights (last is NOTA). No billing legs. After propose is mined, ctm_continuum_dao_register_proposal. Queue is not implemented." : `Default ContinuumDAO assets: ${listContinuumDaoDefaultAssets().filter((a) => a.chainId === chainId).map((a) => a.symbol).join(", ")}. Lock/attach/governance stay Linea-only. Create lock needs >= 1 CTM (live minimumLock) and 1\u2013208 weeks. For \u201Cwhat proposals are live now?\u201D use ctm_continuum_dao_fetch_live_proposals. Propose requires getVotes >= live proposalThreshold() (max of 1000e18 ve power and 1% of total votes). Bravo empty actions insert a KeyGen no-op; Delta votes need nOptions+1 weights (last is NOTA). No billing legs. After propose is mined, ctm_continuum_dao_register_proposal. Queue is not implemented.`
|
|
13064
|
+
notes: tokens.length === 0 ? "ContinuumDAO addresses are placeholders until redeploy. Lock/attach/governance stay Linea-only. Create lock needs >= 1 CTM (live minimumLock) and 1\u2013208 weeks. Prefer live GET /protocol/dao. For \u201Cwhat proposals are live now?\u201D use ctm_continuum_dao_fetch_live_proposals (not fetch_proposals). After naming a proposal, offer ctm_continuum_dao_fetch_proposal_votes to see who voted and how. Propose requires getVotes >= live proposalThreshold() (max of 1000e18 ve power and 1% of total votes). Bravo empty actions insert a KeyGen no-op; Delta votes need nOptions+1 weights (last is NOTA). No billing legs. After propose is mined, ctm_continuum_dao_register_proposal. Queue is not implemented." : `Default ContinuumDAO assets: ${listContinuumDaoDefaultAssets().filter((a) => a.chainId === chainId).map((a) => a.symbol).join(", ")}. Lock/attach/governance stay Linea-only. Create lock needs >= 1 CTM (live minimumLock) and 1\u2013208 weeks. For \u201Cwhat proposals are live now?\u201D use ctm_continuum_dao_fetch_live_proposals. After naming a proposal, offer ctm_continuum_dao_fetch_proposal_votes to see who voted and how. Propose requires getVotes >= live proposalThreshold() (max of 1000e18 ve power and 1% of total votes). Bravo empty actions insert a KeyGen no-op; Delta votes need nOptions+1 weights (last is NOTA). No billing legs. After propose is mined, ctm_continuum_dao_register_proposal. Queue is not implemented.`
|
|
11978
13065
|
};
|
|
11979
13066
|
}
|
|
11980
13067
|
}),
|
|
@@ -12085,6 +13172,45 @@ var PROTOCOL_SUPPORT_ADVISORS = {
|
|
|
12085
13172
|
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)."
|
|
12086
13173
|
};
|
|
12087
13174
|
}
|
|
13175
|
+
}),
|
|
13176
|
+
[DERIVE_PROTOCOL_ID]: advisor(DERIVE_PROTOCOL_ID, "api_underlyings", {
|
|
13177
|
+
async supportedChainIds() {
|
|
13178
|
+
return [...DERIVE_ASSET_ROW_CHAIN_IDS];
|
|
13179
|
+
},
|
|
13180
|
+
async supportedTokens(chainId) {
|
|
13181
|
+
if (!isDeriveChainSupported(chainId)) {
|
|
13182
|
+
return { tokens: [], notes: "Derive logo rows are fundable chains only: Ethereum, OP, Base, Arbitrum, HyperEVM, Sepolia." };
|
|
13183
|
+
}
|
|
13184
|
+
const mapped = deriveMappedTokensForChain(chainId);
|
|
13185
|
+
let tokens = mapped;
|
|
13186
|
+
try {
|
|
13187
|
+
const currencies = await deriveFetchCurrenciesRaw({ network: deriveNetworkFromChainId(chainId) });
|
|
13188
|
+
const symbols = new Set(
|
|
13189
|
+
currencies.map((c) => String(c.currency ?? "").toUpperCase()).filter(Boolean)
|
|
13190
|
+
);
|
|
13191
|
+
if (symbols.size > 0) {
|
|
13192
|
+
tokens = mapped.filter((t) => {
|
|
13193
|
+
const s = t.symbol.toUpperCase();
|
|
13194
|
+
return symbols.has(s) || s === "WETH" && symbols.has("ETH") || s === "WBTC" && symbols.has("BTC") || s === "HYPE" || s === "WHYPE";
|
|
13195
|
+
});
|
|
13196
|
+
}
|
|
13197
|
+
} catch {
|
|
13198
|
+
}
|
|
13199
|
+
return {
|
|
13200
|
+
tokens,
|
|
13201
|
+
nativeWrapped: deriveNativeWrappedForChain(chainId),
|
|
13202
|
+
notes: deriveAdvisorNotes()
|
|
13203
|
+
};
|
|
13204
|
+
},
|
|
13205
|
+
async isTokenSupported(chainId, address) {
|
|
13206
|
+
if (!isDeriveChainSupported(chainId)) return false;
|
|
13207
|
+
try {
|
|
13208
|
+
const normalized = getAddress(address).toLowerCase();
|
|
13209
|
+
return deriveMappedTokensForChain(chainId).some((t) => t.address.toLowerCase() === normalized);
|
|
13210
|
+
} catch {
|
|
13211
|
+
return false;
|
|
13212
|
+
}
|
|
13213
|
+
}
|
|
12088
13214
|
})
|
|
12089
13215
|
};
|
|
12090
13216
|
function getProtocolSupportAdvisor(protocolId) {
|
|
@@ -12113,6 +13239,7 @@ registerProtocolModule(aerodromeProtocolModule);
|
|
|
12113
13239
|
registerProtocolModule(continuumDaoProtocolModule);
|
|
12114
13240
|
registerProtocolModule(compoundV3ProtocolModule);
|
|
12115
13241
|
registerProtocolModule(pendleProtocolModule);
|
|
13242
|
+
registerProtocolModule(deriveProtocolModule);
|
|
12116
13243
|
function getAgentCatalog() {
|
|
12117
13244
|
return {
|
|
12118
13245
|
protocols: getProtocolModules(),
|
|
@@ -12139,11 +13266,12 @@ function getAgentCatalog() {
|
|
|
12139
13266
|
continuumDao: continuumDaoProtocolModule,
|
|
12140
13267
|
compoundV3: compoundV3ProtocolModule,
|
|
12141
13268
|
pendle: pendleProtocolModule,
|
|
13269
|
+
derive: deriveProtocolModule,
|
|
12142
13270
|
/** Prefer getAgentCatalogForMcp() or getMcpToolDefinitions() for MCP servers. */
|
|
12143
13271
|
mcp: getAgentCatalogForMcp()
|
|
12144
13272
|
};
|
|
12145
13273
|
}
|
|
12146
13274
|
|
|
12147
|
-
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, mcpAaveV4FetchMarketInputSchema, mcpAaveV4FetchMarketOutputSchema, mcpAaveV4FetchMarketsInputSchema, mcpAaveV4FetchMarketsOutputSchema, mcpAaveV4MerklClaimInputSchema, mcpAaveV4RepayInputSchema, mcpAaveV4WithdrawInputSchema, mcpAerodromeBuildAddLiquidityMultisignInputSchema, mcpAerodromeBuildClBurnMultisignInputSchema, mcpAerodromeBuildClCollectFeesMultisignInputSchema, mcpAerodromeBuildClDecreaseMultisignInputSchema, mcpAerodromeBuildClIncreaseMultisignInputSchema, mcpAerodromeBuildClMintMultisignInputSchema, mcpAerodromeBuildClaimEmissionsMultisignInputSchema, mcpAerodromeBuildClaimFeesMultisignInputSchema, mcpAerodromeBuildGaugeStakeMultisignInputSchema, mcpAerodromeBuildGaugeUnstakeMultisignInputSchema, mcpAerodromeBuildRemoveLiquidityMultisignInputSchema, mcpAerodromeBuildSwapMultisignInputSchema, mcpAerodromeDiscoverPoolsInputSchema, mcpAerodromeDiscoverPoolsOutputSchema, mcpAerodromeFetchLpYieldsInputSchema, mcpAerodromeFetchLpYieldsOutputSchema, mcpAerodromeFetchPoolsInputSchema, mcpAerodromeFetchPoolsOutputSchema, mcpAerodromeFetchPositionsInputSchema, mcpAerodromeFetchPositionsOutputSchema, mcpAerodromeFetchStockLpYieldsInputSchema, mcpAerodromeFetchStockLpYieldsOutputSchema, mcpAerodromeQuoteAddLiquidityInputSchema, mcpAerodromeQuoteAddLiquidityOutputSchema, mcpAerodromeQuoteClDepositInputSchema, mcpAerodromeQuoteClDepositOutputSchema, mcpAerodromeQuoteInputSchema, mcpAerodromeQuoteOutputSchema, 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, mcpCompoundV3BulkerInputSchema, mcpCompoundV3ClaimRewardsInputSchema, mcpCompoundV3FetchAccountInputSchema, mcpCompoundV3FetchAccountOutputSchema, mcpCompoundV3FetchMarketInputSchema, mcpCompoundV3FetchMarketOutputSchema, mcpCompoundV3FetchMarketsInputSchema, mcpCompoundV3FetchMarketsOutputSchema, mcpCompoundV3RepayInputSchema, mcpCompoundV3SupplyInputSchema, mcpCompoundV3WithdrawInputSchema, mcpContinuumDaoAttachInputSchema, mcpContinuumDaoCastVoteBravoInputSchema, mcpContinuumDaoCastVoteDeltaInputSchema, mcpContinuumDaoComposeProposalActionInputSchema, mcpContinuumDaoComposeProposalActionOutputSchema, mcpContinuumDaoCreateLockInputSchema, mcpContinuumDaoDelegateInputSchema, mcpContinuumDaoExplainProposalInputSchema, mcpContinuumDaoExplainProposalOutputSchema, mcpContinuumDaoFetchDelegatesInputSchema, mcpContinuumDaoFetchDelegatesOutputSchema, mcpContinuumDaoFetchLiveProposalsInputSchema, mcpContinuumDaoFetchLiveProposalsOutputSchema, mcpContinuumDaoFetchProposalInputSchema, mcpContinuumDaoFetchProposalOutputSchema, mcpContinuumDaoFetchProposalStateInputSchema, mcpContinuumDaoFetchProposalStateOutputSchema, mcpContinuumDaoFetchProposalsInputSchema, mcpContinuumDaoFetchProposalsOutputSchema, mcpContinuumDaoFetchVotingPowerInputSchema, mcpContinuumDaoFetchVotingPowerOutputSchema, mcpContinuumDaoForumCreateIdeaInputSchema, mcpContinuumDaoForumCreateIdeaOutputSchema, mcpContinuumDaoForumCreateTopicInputSchema, mcpContinuumDaoForumCreateTopicOutputSchema, mcpContinuumDaoForumDeleteInputSchema, mcpContinuumDaoForumDeleteOutputSchema, mcpContinuumDaoForumFetchPostInputSchema, mcpContinuumDaoForumFetchPostOutputSchema, mcpContinuumDaoForumFetchThreadInputSchema, mcpContinuumDaoForumFetchThreadOutputSchema, mcpContinuumDaoForumMarkReadInputSchema, mcpContinuumDaoForumMarkReadOutputSchema, mcpContinuumDaoForumMarkUnreadInputSchema, mcpContinuumDaoForumMarkUnreadOutputSchema, mcpContinuumDaoForumMeInputSchema, mcpContinuumDaoForumMeOutputSchema, mcpContinuumDaoForumReactInputSchema, mcpContinuumDaoForumReactOutputSchema, mcpContinuumDaoForumRecentInputSchema, mcpContinuumDaoForumRecentOutputSchema, mcpContinuumDaoForumReplyCountInputSchema, mcpContinuumDaoForumReplyCountOutputSchema, mcpContinuumDaoForumReplyInputSchema, mcpContinuumDaoForumReplyOutputSchema, mcpContinuumDaoForumResolveInputSchema, mcpContinuumDaoForumResolveOutputSchema, mcpContinuumDaoForumSearchInputSchema, mcpContinuumDaoForumSearchOutputSchema, mcpContinuumDaoForumSectionsInputSchema, mcpContinuumDaoForumSectionsOutputSchema, mcpContinuumDaoForumSignInEligibleInputSchema, mcpContinuumDaoForumSignInEligibleOutputSchema, mcpContinuumDaoForumSignInInputSchema, mcpContinuumDaoForumSignOutInputSchema, mcpContinuumDaoForumSignOutOutputSchema, mcpContinuumDaoForumUnreadInputSchema, mcpContinuumDaoForumUnreadOutputSchema, mcpContinuumDaoForumUserPostIdsInputSchema, mcpContinuumDaoForumUserPostIdsOutputSchema, mcpContinuumDaoIncreaseAmountInputSchema, mcpContinuumDaoIncreaseUnlockTimeInputSchema, mcpContinuumDaoMergeInputSchema, mcpContinuumDaoMpaFlagInputSchema, mcpContinuumDaoMpaFlagOutputSchema, mcpContinuumDaoMpaListingInputSchema, mcpContinuumDaoMpaListingOutputSchema, mcpContinuumDaoMpaMailboxListInputSchema, mcpContinuumDaoMpaMailboxListOutputSchema, mcpContinuumDaoMpaMailboxOpenInputSchema, mcpContinuumDaoMpaMailboxOpenOutputSchema, mcpContinuumDaoMpaMailboxSendInputSchema, mcpContinuumDaoMpaMailboxSendOutputSchema, mcpContinuumDaoMpaRetractInputSchema, mcpContinuumDaoMpaRetractOutputSchema, mcpContinuumDaoProposalIdInputSchema, mcpContinuumDaoProposeBravoInputSchema, mcpContinuumDaoProposeDeltaInputSchema, mcpContinuumDaoRegisterProposalInputSchema, mcpContinuumDaoRegisterProposalOutputSchema, mcpContinuumDaoRequestDetachInputSchema, mcpContinuumDaoSimulateProposalInputSchema, mcpContinuumDaoSimulateProposalOutputSchema, mcpContinuumDaoSplitInputSchema, mcpContinuumDaoTechnocoreBindInputSchema, mcpContinuumDaoTechnocoreBindOutputSchema, mcpContinuumDaoTokenIdInputSchema, mcpContinuumDaoTransferInputSchema, mcpContinuumDaoUndelegateInputSchema, mcpCurveDaoBuildAddLiquidityMultisignInputSchema, mcpCurveDaoBuildGaugeDepositMultisignInputSchema, mcpCurveDaoBuildRemoveLiquidityMultisignInputSchema, mcpCurveDaoBuildSwapMultisignInputSchema, mcpCurveDaoFetchImportantPoolsInputSchema, mcpCurveDaoFetchImportantPoolsOutputSchema, mcpCurveDaoFetchLpYieldsInputSchema, mcpCurveDaoFetchLpYieldsOutputSchema, mcpCurveDaoQuoteAddLiquidityInputSchema, mcpCurveDaoQuoteAddLiquidityOutputSchema, mcpCurveDaoQuoteInputSchema, mcpCurveDaoQuoteOutputSchema, mcpCurveDaoQuoteRemoveLiquidityInputSchema, mcpCurveDaoQuoteRemoveLiquidityOutputSchema, mcpEthenaClaimInputSchema, mcpEthenaCooldownInputSchema, mcpEthenaFetchSusdeApyInputSchema, mcpEthenaFetchSusdeApyOutputSchema, mcpEthenaRedeemInputSchema, mcpEthenaStakeInputSchema, mcpEulerV2BorrowRepayInputSchema, mcpEulerV2CollateralDepositInputSchema, mcpEulerV2CollateralWithdrawInputSchema, mcpEulerV2FetchEarnVaultsInputSchema, mcpEulerV2FetchEarnVaultsOutputSchema, mcpEulerV2FetchLendVaultsInputSchema, mcpEulerV2FetchLendVaultsOutputSchema, mcpEulerV2IsolatedBorrowInputSchema, mcpEulerV2IsolatedLendInputSchema, mcpEulerV2MerklClaimInputSchema, 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, mcpHyperliquidFetchLendMarketsInputSchema, mcpHyperliquidFetchLendMarketsOutputSchema, mcpHyperliquidFetchLendPositionsInputSchema, mcpHyperliquidFetchLendPositionsOutputSchema, mcpHyperliquidFetchMarketSnapshotInputSchema, mcpHyperliquidFetchMarketSnapshotOutputSchema, mcpHyperliquidFetchMarketsInputSchema, mcpHyperliquidFetchMarketsOutputSchema, mcpHyperliquidFetchOhlcvInputSchema, mcpHyperliquidFetchOhlcvOutputSchema, mcpHyperliquidFetchOpenContextInputSchema, mcpHyperliquidFetchOpenContextOutputSchema, mcpHyperliquidFetchOpenOrdersInputSchema, mcpHyperliquidFetchOpenOrdersOutputSchema, mcpHyperliquidFetchPositionsInputSchema, mcpHyperliquidFetchPositionsOutputSchema, mcpHyperliquidFetchStakingSummaryInputSchema, mcpHyperliquidFetchStakingSummaryOutputSchema, mcpHyperliquidFetchStockMarketsInputSchema, mcpHyperliquidFetchStockMarketsOutputSchema, mcpHyperliquidFetchUsdClassBalancesInputSchema, mcpHyperliquidFetchUsdClassBalancesOutputSchema, mcpHyperliquidFetchUserVaultEquitiesInputSchema, mcpHyperliquidFetchUserVaultEquitiesOutputSchema, mcpHyperliquidFetchVaultApysInputSchema, mcpHyperliquidFetchVaultApysOutputSchema, mcpHyperliquidFetchVaultsInputSchema, mcpHyperliquidFetchVaultsOutputSchema, mcpHyperliquidLendInputSchema, mcpHyperliquidLimitOrderInputSchema, mcpHyperliquidSearchMarketsInputSchema, mcpHyperliquidSearchMarketsOutputSchema, mcpHyperliquidStakeInputSchema, mcpHyperliquidUndelegateInputSchema, mcpHyperliquidUnstakeInputSchema, mcpHyperliquidUpdateLeverageInputSchema, mcpHyperliquidUsdTransferInputSchema, mcpHyperliquidVaultDepositInputSchema, mcpHyperliquidVaultWithdrawInputSchema, mcpLidoClaimWithdrawalInputSchema, mcpLidoFetchStethAprInputSchema, mcpLidoFetchStethAprOutputSchema, mcpLidoRequestWithdrawalsInputSchema, mcpLidoSubmitInputSchema, mcpLidoUnwrapWstEthInputSchema, mcpLidoWrapStEthInputSchema, mcpMapleDepositInputSchema, mcpMapleFetchMarketInputSchema, mcpMapleFetchMarketOutputSchema, mcpMapleFetchMarketsInputSchema, mcpMapleFetchMarketsOutputSchema, mcpMapleRequestRedeemInputSchema, mcpMerklRewardsFetchInputSchema, mcpMerklRewardsFetchOutputSchema, mcpMorphoBlueBorrowInputSchema, mcpMorphoBlueCollateralDepositInputSchema, mcpMorphoBlueCollateralWithdrawInputSchema, mcpMorphoBlueRepayInputSchema, mcpMorphoBlueSupplyInputSchema, mcpMorphoBlueWithdrawInputSchema, mcpMorphoFetchBlueMarketsInputSchema, mcpMorphoFetchBlueMarketsOutputSchema, mcpMorphoFetchEarnVaultsInputSchema, mcpMorphoFetchEarnVaultsOutputSchema, mcpMorphoFetchMidnightBooksInputSchema, mcpMorphoFetchMidnightBooksOutputSchema, mcpMorphoFetchMidnightOffersInputSchema, mcpMorphoFetchMidnightOffersOutputSchema, mcpMorphoFetchMidnightPositionsInputSchema, mcpMorphoFetchMidnightPositionsOutputSchema, mcpMorphoFetchMidnightQuoteInputSchema, mcpMorphoFetchMidnightQuoteOutputSchema, mcpMorphoFetchPositionsInputSchema, mcpMorphoFetchPositionsOutputSchema, mcpMorphoFetchStockMarketsInputSchema, mcpMorphoFetchStockMarketsOutputSchema, mcpMorphoMerklClaimInputSchema, mcpMorphoMidnightBorrowInputSchema, mcpMorphoMidnightCancelLendOfferInputSchema, mcpMorphoMidnightLendInputSchema, mcpMorphoMidnightLendOfferInputSchema, mcpMorphoMidnightRepayInputSchema, mcpMorphoVaultDepositInputSchema, mcpMorphoVaultWithdrawInputSchema, mcpMultisignInput, multisignOutputSchema as mcpMultisignOutputSchema, mcpServerSubmitOutputSchema as mcpMultisignSubmitOutputSchema, mcpPendleBuildAddLiquidityMultisignInputSchema, mcpPendleBuildMintPyMultisignInputSchema, mcpPendleBuildMintSyMultisignInputSchema, mcpPendleBuildRedeemPyMultisignInputSchema, mcpPendleBuildRedeemRewardsMultisignInputSchema, mcpPendleBuildRedeemSyMultisignInputSchema, mcpPendleBuildRemoveLiquidityMultisignInputSchema, mcpPendleBuildSwapMultisignInputSchema, mcpPendleFetchMarketsInputSchema, mcpPendleFetchMarketsOutputSchema, mcpPendleFetchMerkleRewardsInputSchema, mcpPendleFetchMerkleRewardsOutputSchema, mcpPendleFetchPositionsInputSchema, mcpPendleFetchPositionsOutputSchema, mcpPendleFetchPricesInputSchema, mcpPendleFetchPricesOutputSchema, mcpPendleQuoteAddLiquidityInputSchema, mcpPendleQuoteMintPyInputSchema, mcpPendleQuoteMintSyInputSchema, mcpPendleQuoteOutputSchema, mcpPendleQuoteRedeemPyInputSchema, mcpPendleQuoteRedeemSyInputSchema, mcpPendleQuoteRemoveLiquidityInputSchema, mcpPendleQuoteSwapInputSchema, mcpPendleSearchAssetsInputSchema, mcpPendleSearchAssetsOutputSchema, mcpServerCommonInputSchema, mcpServerMultisignInput, mcpServerSubmitOutputSchema, mcpSkyFetchSusdsRateInputSchema, mcpSkyFetchSusdsRateOutputSchema, mcpSkyLockstakeCloseInputSchema, mcpSkyLockstakeDrawInputSchema, mcpSkyLockstakeGetRewardInputSchema, mcpSkyLockstakeStakeInputSchema, mcpSkyLockstakeWipeInputSchema, mcpSkySusdsDepositInputSchema, mcpSkySusdsRedeemInputSchema, mcpUniswapV4BuildAllowlistFinalizeMultisignInputSchema, mcpUniswapV4BuildCollectFeesMultisignInputSchema, mcpUniswapV4BuildDecreaseLiquidityMultisignInputSchema, mcpUniswapV4BuildIncreaseLiquidityMultisignInputSchema, mcpUniswapV4BuildLimitOrderMultisignInputSchema, mcpUniswapV4BuildMintLiquidityMultisignInputSchema, mcpUniswapV4BuildSwapMultisignInputSchema, mcpUniswapV4CheckPermissionsInputSchema, mcpUniswapV4CheckPermissionsOutputSchema, mcpUniswapV4CreateSwapInputSchema, mcpUniswapV4CreateSwapOutputSchema, mcpUniswapV4FetchLimitOrdersInputSchema, mcpUniswapV4FetchLimitOrdersOutputSchema, mcpUniswapV4FetchOhlcvInputSchema, mcpUniswapV4FetchOhlcvOutputSchema, mcpUniswapV4KycApplyLinkInputSchema, mcpUniswapV4KycApplyLinkOutputSchema, 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 };
|
|
13275
|
+
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, mcpAaveV4FetchMarketInputSchema, mcpAaveV4FetchMarketOutputSchema, mcpAaveV4FetchMarketsInputSchema, mcpAaveV4FetchMarketsOutputSchema, mcpAaveV4MerklClaimInputSchema, mcpAaveV4RepayInputSchema, mcpAaveV4WithdrawInputSchema, mcpAerodromeBuildAddLiquidityMultisignInputSchema, mcpAerodromeBuildClBurnMultisignInputSchema, mcpAerodromeBuildClCollectFeesMultisignInputSchema, mcpAerodromeBuildClDecreaseMultisignInputSchema, mcpAerodromeBuildClIncreaseMultisignInputSchema, mcpAerodromeBuildClMintMultisignInputSchema, mcpAerodromeBuildClaimEmissionsMultisignInputSchema, mcpAerodromeBuildClaimFeesMultisignInputSchema, mcpAerodromeBuildGaugeStakeMultisignInputSchema, mcpAerodromeBuildGaugeUnstakeMultisignInputSchema, mcpAerodromeBuildRemoveLiquidityMultisignInputSchema, mcpAerodromeBuildSwapMultisignInputSchema, mcpAerodromeDiscoverPoolsInputSchema, mcpAerodromeDiscoverPoolsOutputSchema, mcpAerodromeFetchLpYieldsInputSchema, mcpAerodromeFetchLpYieldsOutputSchema, mcpAerodromeFetchPoolsInputSchema, mcpAerodromeFetchPoolsOutputSchema, mcpAerodromeFetchPositionsInputSchema, mcpAerodromeFetchPositionsOutputSchema, mcpAerodromeFetchStockLpYieldsInputSchema, mcpAerodromeFetchStockLpYieldsOutputSchema, mcpAerodromeQuoteAddLiquidityInputSchema, mcpAerodromeQuoteAddLiquidityOutputSchema, mcpAerodromeQuoteClDepositInputSchema, mcpAerodromeQuoteClDepositOutputSchema, mcpAerodromeQuoteInputSchema, mcpAerodromeQuoteOutputSchema, 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, mcpCompoundV3BulkerInputSchema, mcpCompoundV3ClaimRewardsInputSchema, mcpCompoundV3FetchAccountInputSchema, mcpCompoundV3FetchAccountOutputSchema, mcpCompoundV3FetchMarketInputSchema, mcpCompoundV3FetchMarketOutputSchema, mcpCompoundV3FetchMarketsInputSchema, mcpCompoundV3FetchMarketsOutputSchema, mcpCompoundV3RepayInputSchema, mcpCompoundV3SupplyInputSchema, mcpCompoundV3WithdrawInputSchema, mcpContinuumDaoAttachInputSchema, mcpContinuumDaoCastVoteBravoInputSchema, mcpContinuumDaoCastVoteDeltaInputSchema, mcpContinuumDaoComposeProposalActionInputSchema, mcpContinuumDaoComposeProposalActionOutputSchema, mcpContinuumDaoCreateLockInputSchema, mcpContinuumDaoDelegateInputSchema, mcpContinuumDaoExplainProposalInputSchema, mcpContinuumDaoExplainProposalOutputSchema, mcpContinuumDaoFetchDelegatesInputSchema, mcpContinuumDaoFetchDelegatesOutputSchema, mcpContinuumDaoFetchLiveProposalsInputSchema, mcpContinuumDaoFetchLiveProposalsOutputSchema, mcpContinuumDaoFetchProposalInputSchema, mcpContinuumDaoFetchProposalOutputSchema, mcpContinuumDaoFetchProposalStateInputSchema, mcpContinuumDaoFetchProposalStateOutputSchema, mcpContinuumDaoFetchProposalVotesInputSchema, mcpContinuumDaoFetchProposalVotesOutputSchema, mcpContinuumDaoFetchProposalsInputSchema, mcpContinuumDaoFetchProposalsOutputSchema, mcpContinuumDaoFetchVotingPowerInputSchema, mcpContinuumDaoFetchVotingPowerOutputSchema, mcpContinuumDaoForumCreateIdeaInputSchema, mcpContinuumDaoForumCreateIdeaOutputSchema, mcpContinuumDaoForumCreateTopicInputSchema, mcpContinuumDaoForumCreateTopicOutputSchema, mcpContinuumDaoForumDeleteInputSchema, mcpContinuumDaoForumDeleteOutputSchema, mcpContinuumDaoForumFetchPostInputSchema, mcpContinuumDaoForumFetchPostOutputSchema, mcpContinuumDaoForumFetchThreadInputSchema, mcpContinuumDaoForumFetchThreadOutputSchema, mcpContinuumDaoForumMarkReadInputSchema, mcpContinuumDaoForumMarkReadOutputSchema, mcpContinuumDaoForumMarkUnreadInputSchema, mcpContinuumDaoForumMarkUnreadOutputSchema, mcpContinuumDaoForumMeInputSchema, mcpContinuumDaoForumMeOutputSchema, mcpContinuumDaoForumReactInputSchema, mcpContinuumDaoForumReactOutputSchema, mcpContinuumDaoForumRecentInputSchema, mcpContinuumDaoForumRecentOutputSchema, mcpContinuumDaoForumReplyCountInputSchema, mcpContinuumDaoForumReplyCountOutputSchema, mcpContinuumDaoForumReplyInputSchema, mcpContinuumDaoForumReplyOutputSchema, mcpContinuumDaoForumResolveInputSchema, mcpContinuumDaoForumResolveOutputSchema, mcpContinuumDaoForumSearchInputSchema, mcpContinuumDaoForumSearchOutputSchema, mcpContinuumDaoForumSectionsInputSchema, mcpContinuumDaoForumSectionsOutputSchema, mcpContinuumDaoForumSignInEligibleInputSchema, mcpContinuumDaoForumSignInEligibleOutputSchema, mcpContinuumDaoForumSignInInputSchema, mcpContinuumDaoForumSignOutInputSchema, mcpContinuumDaoForumSignOutOutputSchema, mcpContinuumDaoForumUnreadInputSchema, mcpContinuumDaoForumUnreadOutputSchema, mcpContinuumDaoForumUserPostIdsInputSchema, mcpContinuumDaoForumUserPostIdsOutputSchema, mcpContinuumDaoIncreaseAmountInputSchema, mcpContinuumDaoIncreaseUnlockTimeInputSchema, mcpContinuumDaoMergeInputSchema, mcpContinuumDaoMpaFlagInputSchema, mcpContinuumDaoMpaFlagOutputSchema, mcpContinuumDaoMpaListingInputSchema, mcpContinuumDaoMpaListingOutputSchema, mcpContinuumDaoMpaMailboxListInputSchema, mcpContinuumDaoMpaMailboxListOutputSchema, mcpContinuumDaoMpaMailboxOpenInputSchema, mcpContinuumDaoMpaMailboxOpenOutputSchema, mcpContinuumDaoMpaMailboxSendInputSchema, mcpContinuumDaoMpaMailboxSendOutputSchema, mcpContinuumDaoMpaRetractInputSchema, mcpContinuumDaoMpaRetractOutputSchema, mcpContinuumDaoProposalIdInputSchema, mcpContinuumDaoProposalVoteRowSchema, mcpContinuumDaoProposeBravoInputSchema, mcpContinuumDaoProposeDeltaInputSchema, mcpContinuumDaoRegisterProposalInputSchema, mcpContinuumDaoRegisterProposalOutputSchema, mcpContinuumDaoRequestDetachInputSchema, mcpContinuumDaoSimulateProposalInputSchema, mcpContinuumDaoSimulateProposalOutputSchema, mcpContinuumDaoSplitInputSchema, mcpContinuumDaoTechnocoreBindInputSchema, mcpContinuumDaoTechnocoreBindOutputSchema, mcpContinuumDaoTokenIdInputSchema, mcpContinuumDaoTransferInputSchema, mcpContinuumDaoUndelegateInputSchema, mcpCurveDaoBuildAddLiquidityMultisignInputSchema, mcpCurveDaoBuildGaugeDepositMultisignInputSchema, mcpCurveDaoBuildRemoveLiquidityMultisignInputSchema, mcpCurveDaoBuildSwapMultisignInputSchema, mcpCurveDaoFetchImportantPoolsInputSchema, mcpCurveDaoFetchImportantPoolsOutputSchema, mcpCurveDaoFetchLpYieldsInputSchema, mcpCurveDaoFetchLpYieldsOutputSchema, mcpCurveDaoQuoteAddLiquidityInputSchema, mcpCurveDaoQuoteAddLiquidityOutputSchema, mcpCurveDaoQuoteInputSchema, mcpCurveDaoQuoteOutputSchema, mcpCurveDaoQuoteRemoveLiquidityInputSchema, mcpCurveDaoQuoteRemoveLiquidityOutputSchema, mcpDeriveCancelInputSchema, mcpDeriveDepositAddressTransferInputSchema, mcpDeriveDepositNewSubaccountInputSchema, mcpDeriveFetchCurrenciesInputSchema, mcpDeriveFetchCurrenciesOutputSchema, mcpDeriveFetchMarketSnapshotInputSchema, mcpDeriveFetchMarketSnapshotOutputSchema, mcpDeriveFetchOhlcvInputSchema, mcpDeriveFetchOhlcvOutputSchema, mcpDeriveFetchOpenOrdersInputSchema, mcpDeriveFetchOpenOrdersOutputSchema, mcpDeriveFetchOptionChainInputSchema, mcpDeriveFetchOptionChainOutputSchema, mcpDeriveFetchPendingDepositsInputSchema, mcpDeriveFetchPendingDepositsOutputSchema, mcpDeriveFetchPortfolioInputSchema, mcpDeriveFetchPortfolioOutputSchema, mcpDeriveFetchPositionsInputSchema, mcpDeriveFetchPositionsOutputSchema, mcpDeriveFetchRiskUniversesInputSchema, mcpDeriveFetchRiskUniversesOutputSchema, mcpDeriveFetchSubaccountsInputSchema, mcpDeriveFetchSubaccountsOutputSchema, mcpDeriveFetchTickersInputSchema, mcpDeriveFetchTickersOutputSchema, mcpDeriveHypeVaultDepositInputSchema, mcpDeriveOrderQuoteInputSchema, mcpDeriveOrderQuoteOutputSchema, mcpDerivePlaceOrderInputSchema, mcpDeriveRegisterDepositAddressInputSchema, mcpDeriveRegisterDepositAddressOutputSchema, mcpDeriveReplaceOrderInputSchema, mcpDeriveSearchInstrumentsInputSchema, mcpDeriveSearchInstrumentsOutputSchema, mcpDeriveSocketDepositInputSchema, mcpDeriveTransferSpotInputSchema, mcpEthenaClaimInputSchema, mcpEthenaCooldownInputSchema, mcpEthenaFetchSusdeApyInputSchema, mcpEthenaFetchSusdeApyOutputSchema, mcpEthenaRedeemInputSchema, mcpEthenaStakeInputSchema, mcpEulerV2BorrowRepayInputSchema, mcpEulerV2CollateralDepositInputSchema, mcpEulerV2CollateralWithdrawInputSchema, mcpEulerV2FetchEarnVaultsInputSchema, mcpEulerV2FetchEarnVaultsOutputSchema, mcpEulerV2FetchLendVaultsInputSchema, mcpEulerV2FetchLendVaultsOutputSchema, mcpEulerV2IsolatedBorrowInputSchema, mcpEulerV2IsolatedLendInputSchema, mcpEulerV2MerklClaimInputSchema, 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, mcpHyperliquidFetchLendMarketsInputSchema, mcpHyperliquidFetchLendMarketsOutputSchema, mcpHyperliquidFetchLendPositionsInputSchema, mcpHyperliquidFetchLendPositionsOutputSchema, mcpHyperliquidFetchMarketSnapshotInputSchema, mcpHyperliquidFetchMarketSnapshotOutputSchema, mcpHyperliquidFetchMarketsInputSchema, mcpHyperliquidFetchMarketsOutputSchema, mcpHyperliquidFetchOhlcvInputSchema, mcpHyperliquidFetchOhlcvOutputSchema, mcpHyperliquidFetchOpenContextInputSchema, mcpHyperliquidFetchOpenContextOutputSchema, mcpHyperliquidFetchOpenOrdersInputSchema, mcpHyperliquidFetchOpenOrdersOutputSchema, mcpHyperliquidFetchPositionsInputSchema, mcpHyperliquidFetchPositionsOutputSchema, mcpHyperliquidFetchStakingSummaryInputSchema, mcpHyperliquidFetchStakingSummaryOutputSchema, mcpHyperliquidFetchStockMarketsInputSchema, mcpHyperliquidFetchStockMarketsOutputSchema, mcpHyperliquidFetchUsdClassBalancesInputSchema, mcpHyperliquidFetchUsdClassBalancesOutputSchema, mcpHyperliquidFetchUserVaultEquitiesInputSchema, mcpHyperliquidFetchUserVaultEquitiesOutputSchema, mcpHyperliquidFetchVaultApysInputSchema, mcpHyperliquidFetchVaultApysOutputSchema, mcpHyperliquidFetchVaultsInputSchema, mcpHyperliquidFetchVaultsOutputSchema, mcpHyperliquidLendInputSchema, mcpHyperliquidLimitOrderInputSchema, mcpHyperliquidSearchMarketsInputSchema, mcpHyperliquidSearchMarketsOutputSchema, mcpHyperliquidStakeInputSchema, mcpHyperliquidTrailingStopInputSchema, mcpHyperliquidUndelegateInputSchema, mcpHyperliquidUnstakeInputSchema, mcpHyperliquidUpdateLeverageInputSchema, mcpHyperliquidUsdTransferInputSchema, mcpHyperliquidVaultDepositInputSchema, mcpHyperliquidVaultWithdrawInputSchema, mcpLidoClaimWithdrawalInputSchema, mcpLidoFetchStethAprInputSchema, mcpLidoFetchStethAprOutputSchema, mcpLidoRequestWithdrawalsInputSchema, mcpLidoSubmitInputSchema, mcpLidoUnwrapWstEthInputSchema, mcpLidoWrapStEthInputSchema, mcpMapleDepositInputSchema, mcpMapleFetchMarketInputSchema, mcpMapleFetchMarketOutputSchema, mcpMapleFetchMarketsInputSchema, mcpMapleFetchMarketsOutputSchema, mcpMapleRequestRedeemInputSchema, mcpMerklRewardsFetchInputSchema, mcpMerklRewardsFetchOutputSchema, mcpMorphoBlueBorrowInputSchema, mcpMorphoBlueCollateralDepositInputSchema, mcpMorphoBlueCollateralWithdrawInputSchema, mcpMorphoBlueRepayInputSchema, mcpMorphoBlueSupplyInputSchema, mcpMorphoBlueWithdrawInputSchema, mcpMorphoFetchBlueMarketsInputSchema, mcpMorphoFetchBlueMarketsOutputSchema, mcpMorphoFetchEarnVaultsInputSchema, mcpMorphoFetchEarnVaultsOutputSchema, mcpMorphoFetchMidnightBooksInputSchema, mcpMorphoFetchMidnightBooksOutputSchema, mcpMorphoFetchMidnightOffersInputSchema, mcpMorphoFetchMidnightOffersOutputSchema, mcpMorphoFetchMidnightPositionsInputSchema, mcpMorphoFetchMidnightPositionsOutputSchema, mcpMorphoFetchMidnightQuoteInputSchema, mcpMorphoFetchMidnightQuoteOutputSchema, mcpMorphoFetchPositionsInputSchema, mcpMorphoFetchPositionsOutputSchema, mcpMorphoFetchStockMarketsInputSchema, mcpMorphoFetchStockMarketsOutputSchema, mcpMorphoMerklClaimInputSchema, mcpMorphoMidnightBorrowInputSchema, mcpMorphoMidnightCancelLendOfferInputSchema, mcpMorphoMidnightLendInputSchema, mcpMorphoMidnightLendOfferInputSchema, mcpMorphoMidnightRepayInputSchema, mcpMorphoVaultDepositInputSchema, mcpMorphoVaultWithdrawInputSchema, mcpMultisignInput, multisignOutputSchema as mcpMultisignOutputSchema, mcpServerSubmitOutputSchema as mcpMultisignSubmitOutputSchema, mcpPendleBuildAddLiquidityMultisignInputSchema, mcpPendleBuildMintPyMultisignInputSchema, mcpPendleBuildMintSyMultisignInputSchema, mcpPendleBuildRedeemPyMultisignInputSchema, mcpPendleBuildRedeemRewardsMultisignInputSchema, mcpPendleBuildRedeemSyMultisignInputSchema, mcpPendleBuildRemoveLiquidityMultisignInputSchema, mcpPendleBuildSwapMultisignInputSchema, mcpPendleFetchMarketsInputSchema, mcpPendleFetchMarketsOutputSchema, mcpPendleFetchMerkleRewardsInputSchema, mcpPendleFetchMerkleRewardsOutputSchema, mcpPendleFetchPositionsInputSchema, mcpPendleFetchPositionsOutputSchema, mcpPendleFetchPricesInputSchema, mcpPendleFetchPricesOutputSchema, mcpPendleQuoteAddLiquidityInputSchema, mcpPendleQuoteMintPyInputSchema, mcpPendleQuoteMintSyInputSchema, mcpPendleQuoteOutputSchema, mcpPendleQuoteRedeemPyInputSchema, mcpPendleQuoteRedeemSyInputSchema, mcpPendleQuoteRemoveLiquidityInputSchema, mcpPendleQuoteSwapInputSchema, mcpPendleSearchAssetsInputSchema, mcpPendleSearchAssetsOutputSchema, mcpServerCommonInputSchema, mcpServerMultisignInput, mcpServerSubmitOutputSchema, mcpSkyFetchSusdsRateInputSchema, mcpSkyFetchSusdsRateOutputSchema, mcpSkyLockstakeCloseInputSchema, mcpSkyLockstakeDrawInputSchema, mcpSkyLockstakeGetRewardInputSchema, mcpSkyLockstakeStakeInputSchema, mcpSkyLockstakeWipeInputSchema, mcpSkySusdsDepositInputSchema, mcpSkySusdsRedeemInputSchema, mcpUniswapV4BuildAllowlistFinalizeMultisignInputSchema, mcpUniswapV4BuildCollectFeesMultisignInputSchema, mcpUniswapV4BuildDecreaseLiquidityMultisignInputSchema, mcpUniswapV4BuildIncreaseLiquidityMultisignInputSchema, mcpUniswapV4BuildLimitOrderMultisignInputSchema, mcpUniswapV4BuildMintLiquidityMultisignInputSchema, mcpUniswapV4BuildSwapMultisignInputSchema, mcpUniswapV4CheckPermissionsInputSchema, mcpUniswapV4CheckPermissionsOutputSchema, mcpUniswapV4CreateSwapInputSchema, mcpUniswapV4CreateSwapOutputSchema, mcpUniswapV4FetchLimitOrdersInputSchema, mcpUniswapV4FetchLimitOrdersOutputSchema, mcpUniswapV4FetchOhlcvInputSchema, mcpUniswapV4FetchOhlcvOutputSchema, mcpUniswapV4KycApplyLinkInputSchema, mcpUniswapV4KycApplyLinkOutputSchema, 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 };
|
|
12148
13276
|
//# sourceMappingURL=catalog.js.map
|
|
12149
13277
|
//# sourceMappingURL=catalog.js.map
|