outsmart-agent 1.0.0-alpha.3 → 1.0.0-alpha.5
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/.claude-plugin/plugin.json +2 -1
- package/README.md +45 -11
- package/dist/mcp/server.d.ts +13 -2
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +498 -3
- package/dist/mcp/server.js.map +1 -1
- package/package.json +4 -4
- package/skills/outsmart-dca-grid/SKILL.md +22 -12
- package/skills/outsmart-devving-coins/SKILL.md +1 -1
- package/skills/outsmart-dex-trading/SKILL.md +17 -3
- package/skills/outsmart-lp-sniping/SKILL.md +1 -1
- package/skills/outsmart-percolator-perps/SKILL.md +191 -0
- package/skills/outsmart-prediction-markets/SKILL.md +23 -13
- package/skills/outsmart-trenching/SKILL.md +1 -1
|
@@ -21,7 +21,8 @@
|
|
|
21
21
|
"./skills/outsmart-trenching",
|
|
22
22
|
"./skills/outsmart-devving-coins",
|
|
23
23
|
"./skills/outsmart-prediction-markets",
|
|
24
|
-
"./skills/outsmart-survival"
|
|
24
|
+
"./skills/outsmart-survival",
|
|
25
|
+
"./skills/outsmart-percolator-perps"
|
|
25
26
|
],
|
|
26
27
|
"agents": [
|
|
27
28
|
"./agents/solana-trading-expert.md"
|
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# outsmart-agent
|
|
2
2
|
|
|
3
|
-
DeFi survival toolkit for AI agents on Solana. Trade, LP, snipe, trench, dev coins, and farm across 18 DEX protocols. Earn your own existence.
|
|
3
|
+
DeFi survival toolkit for AI agents on Solana. Trade, LP, snipe, trench, dev coins, operate perp exchanges, and farm across 18 DEX protocols. Earn your own existence.
|
|
4
4
|
|
|
5
5
|
```
|
|
6
6
|
npx outsmart-agent
|
|
@@ -10,7 +10,7 @@ npx outsmart-agent
|
|
|
10
10
|
|
|
11
11
|
An AI agent needs money to stay alive — compute costs, inference fees, API calls. This gives any MCP-compatible agent the tools to earn revenue on Solana through DeFi. LP farming, memecoin trenching, token launching, prediction markets, systematic DCA — whatever the market calls for.
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
32 MCP tools for execution. 9 AI skills that teach the agent **when** and **why**, not just how.
|
|
14
14
|
|
|
15
15
|
## Quick Start
|
|
16
16
|
|
|
@@ -51,6 +51,8 @@ npx skills add outsmartchad/outsmart-agent
|
|
|
51
51
|
|
|
52
52
|
## MCP Tools
|
|
53
53
|
|
|
54
|
+
### DEX Tools (14)
|
|
55
|
+
|
|
54
56
|
| Tool | What |
|
|
55
57
|
|------|------|
|
|
56
58
|
| `solana_buy` | Buy tokens with SOL on any DEX |
|
|
@@ -68,9 +70,37 @@ npx skills add outsmartchad/outsmart-agent
|
|
|
68
70
|
| `solana_list_dexes` | All 18 adapters + capabilities |
|
|
69
71
|
| `solana_wallet_balance` | SOL and token balances |
|
|
70
72
|
|
|
73
|
+
### Jupiter Tools (9)
|
|
74
|
+
|
|
75
|
+
| Tool | What |
|
|
76
|
+
|------|------|
|
|
77
|
+
| `jupiter_shield` | Token security warnings |
|
|
78
|
+
| `jupiter_prediction_events` | Browse/search prediction market events |
|
|
79
|
+
| `jupiter_prediction_market` | Market details + orderbook depth |
|
|
80
|
+
| `jupiter_prediction_order` | Place buy/sell orders on prediction markets |
|
|
81
|
+
| `jupiter_prediction_positions` | Your positions + trade history |
|
|
82
|
+
| `jupiter_prediction_claim` | Claim winnings from resolved markets |
|
|
83
|
+
| `jupiter_dca_create` | Create recurring DCA order |
|
|
84
|
+
| `jupiter_dca_list` | List active/historical DCA orders |
|
|
85
|
+
| `jupiter_dca_cancel` | Cancel a DCA order |
|
|
86
|
+
|
|
87
|
+
### Percolator Perp Tools (9)
|
|
88
|
+
|
|
89
|
+
| Tool | What |
|
|
90
|
+
|------|------|
|
|
91
|
+
| `percolator_create_market` | Create a permissionless perp exchange |
|
|
92
|
+
| `percolator_init_user` | Register a trader account on a market |
|
|
93
|
+
| `percolator_deposit` | Deposit collateral |
|
|
94
|
+
| `percolator_withdraw` | Withdraw collateral |
|
|
95
|
+
| `percolator_trade` | Open/close/modify leveraged positions |
|
|
96
|
+
| `percolator_push_oracle` | Update oracle price (admin-oracle mode) |
|
|
97
|
+
| `percolator_crank` | Run keeper crank |
|
|
98
|
+
| `percolator_market_state` | Read full market state |
|
|
99
|
+
| `percolator_insurance_lp` | Deposit/withdraw insurance fund LP |
|
|
100
|
+
|
|
71
101
|
## Skills
|
|
72
102
|
|
|
73
|
-
|
|
103
|
+
9 strategy skills that teach agents how to think about Solana DeFi:
|
|
74
104
|
|
|
75
105
|
| Skill | What |
|
|
76
106
|
|-------|------|
|
|
@@ -82,6 +112,7 @@ npx skills add outsmartchad/outsmart-agent
|
|
|
82
112
|
| **outsmart-dca-grid** | Jupiter Recurring DCA + DLMM grid trading |
|
|
83
113
|
| **outsmart-prediction-markets** | Probability estimation, edge calculation, Jupiter + Polymarket + Futarchy |
|
|
84
114
|
| **outsmart-survival** | Capital management, survival tiers, emergency liquidation |
|
|
115
|
+
| **outsmart-percolator-perps** | Operating perp exchanges — market creation, LP, pricing, keeper duties |
|
|
85
116
|
|
|
86
117
|
## Supported DEXes
|
|
87
118
|
|
|
@@ -98,10 +129,11 @@ npx skills add outsmartchad/outsmart-agent
|
|
|
98
129
|
```
|
|
99
130
|
outsmart (npm) outsmart-agent (this repo)
|
|
100
131
|
────────────── ──────────────────────────
|
|
101
|
-
18 DEX adapters MCP server (
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
132
|
+
18 DEX adapters MCP server (32 tools)
|
|
133
|
+
Percolator perps 9 AI skills
|
|
134
|
+
TX landing providers Agent definition
|
|
135
|
+
Wallet + TX helpers Plugin manifest
|
|
136
|
+
DexScreener API
|
|
105
137
|
```
|
|
106
138
|
|
|
107
139
|
`outsmart-agent` imports `outsmart` as a dependency. The MCP server is a thin wrapper — validates params, calls adapter methods, returns JSON.
|
|
@@ -128,18 +160,20 @@ Never >5% on a single trade. Take profits. Track what works. Evolve.
|
|
|
128
160
|
|----------|----------|-------------|
|
|
129
161
|
| `PRIVATE_KEY` | Yes | Base58 Solana private key |
|
|
130
162
|
| `MAINNET_ENDPOINT` | Yes | Solana RPC (Helius, Triton, etc.) |
|
|
131
|
-
| `JUPITER_API_KEY` | No | Jupiter Ultra |
|
|
163
|
+
| `JUPITER_API_KEY` | No | Jupiter Ultra, Shield, Prediction, DCA |
|
|
164
|
+
| `DEVNET_ENDPOINT` | No | Solana devnet RPC (Percolator) |
|
|
132
165
|
| `DFLOW_API_KEY` | No | DFlow |
|
|
133
166
|
|
|
134
167
|
## Roadmap
|
|
135
168
|
|
|
136
|
-
- [x] MCP Server — 14
|
|
137
|
-
- [x] AI Skills —
|
|
169
|
+
- [x] MCP Server — 32 tools (14 DEX + 9 Jupiter + 9 Percolator), 18 DEX adapters
|
|
170
|
+
- [x] AI Skills — 9 strategy skills
|
|
138
171
|
- [x] Claude Code Plugin manifest
|
|
172
|
+
- [x] Percolator — Permissionless perp exchange creation, trading, LP, insurance
|
|
139
173
|
- [ ] Event Streaming — Yellowstone gRPC for real-time pool creation
|
|
140
174
|
- [ ] LP Manager — Autonomous rebalancing and fee compounding
|
|
141
175
|
- [ ] Strategy Engine — Tier-aware capital allocation
|
|
142
|
-
- [ ] Percolator —
|
|
176
|
+
- [ ] Percolator Keeper — Background crank + liquidation service
|
|
143
177
|
|
|
144
178
|
## Related
|
|
145
179
|
|
package/dist/mcp/server.d.ts
CHANGED
|
@@ -2,15 +2,26 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* outsmart-agent MCP Server
|
|
4
4
|
*
|
|
5
|
-
* Exposes
|
|
5
|
+
* Exposes 32 MCP tools wrapping the `outsmart` trading library + Jupiter APIs + Percolator.
|
|
6
6
|
* Runs over stdio transport — start with `npx outsmart-agent`.
|
|
7
7
|
*
|
|
8
|
-
* Tools:
|
|
8
|
+
* DEX Tools (14):
|
|
9
9
|
* solana_buy, solana_sell, solana_quote, solana_find_pool, solana_snipe,
|
|
10
10
|
* solana_create_pool, solana_create_token,
|
|
11
11
|
* solana_add_liquidity, solana_remove_liquidity, solana_claim_fees,
|
|
12
12
|
* solana_list_positions, solana_token_info, solana_list_dexes,
|
|
13
13
|
* solana_wallet_balance
|
|
14
|
+
*
|
|
15
|
+
* Jupiter Tools (9):
|
|
16
|
+
* jupiter_shield,
|
|
17
|
+
* jupiter_prediction_events, jupiter_prediction_market,
|
|
18
|
+
* jupiter_prediction_order, jupiter_prediction_positions, jupiter_prediction_claim,
|
|
19
|
+
* jupiter_dca_create, jupiter_dca_list, jupiter_dca_cancel
|
|
20
|
+
*
|
|
21
|
+
* Percolator Perp Tools (9):
|
|
22
|
+
* percolator_create_market, percolator_trade, percolator_deposit,
|
|
23
|
+
* percolator_withdraw, percolator_market_state, percolator_list_markets,
|
|
24
|
+
* percolator_push_price, percolator_crank, percolator_insurance_lp
|
|
14
25
|
*/
|
|
15
26
|
export {};
|
|
16
27
|
//# sourceMappingURL=server.d.ts.map
|
package/dist/mcp/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":";AACA
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;;;GAuBG"}
|
package/dist/mcp/server.js
CHANGED
|
@@ -3,15 +3,26 @@
|
|
|
3
3
|
/**
|
|
4
4
|
* outsmart-agent MCP Server
|
|
5
5
|
*
|
|
6
|
-
* Exposes
|
|
6
|
+
* Exposes 32 MCP tools wrapping the `outsmart` trading library + Jupiter APIs + Percolator.
|
|
7
7
|
* Runs over stdio transport — start with `npx outsmart-agent`.
|
|
8
8
|
*
|
|
9
|
-
* Tools:
|
|
9
|
+
* DEX Tools (14):
|
|
10
10
|
* solana_buy, solana_sell, solana_quote, solana_find_pool, solana_snipe,
|
|
11
11
|
* solana_create_pool, solana_create_token,
|
|
12
12
|
* solana_add_liquidity, solana_remove_liquidity, solana_claim_fees,
|
|
13
13
|
* solana_list_positions, solana_token_info, solana_list_dexes,
|
|
14
14
|
* solana_wallet_balance
|
|
15
|
+
*
|
|
16
|
+
* Jupiter Tools (9):
|
|
17
|
+
* jupiter_shield,
|
|
18
|
+
* jupiter_prediction_events, jupiter_prediction_market,
|
|
19
|
+
* jupiter_prediction_order, jupiter_prediction_positions, jupiter_prediction_claim,
|
|
20
|
+
* jupiter_dca_create, jupiter_dca_list, jupiter_dca_cancel
|
|
21
|
+
*
|
|
22
|
+
* Percolator Perp Tools (9):
|
|
23
|
+
* percolator_create_market, percolator_trade, percolator_deposit,
|
|
24
|
+
* percolator_withdraw, percolator_market_state, percolator_list_markets,
|
|
25
|
+
* percolator_push_price, percolator_crank, percolator_insurance_lp
|
|
15
26
|
*/
|
|
16
27
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
28
|
const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
|
|
@@ -425,7 +436,7 @@ server.tool("solana_create_token", "Create a new token on PumpFun with a bonding
|
|
|
425
436
|
}, async (args) => {
|
|
426
437
|
try {
|
|
427
438
|
const adapter = getAdapter("pumpfun");
|
|
428
|
-
if (!adapter.
|
|
439
|
+
if (!(adapter instanceof outsmart_1.PumpFunAdapter)) {
|
|
429
440
|
return err("pumpfun adapter does not support create");
|
|
430
441
|
}
|
|
431
442
|
const result = await adapter.create(args.name, args.symbol, args.metadata_uri);
|
|
@@ -439,6 +450,490 @@ server.tool("solana_create_token", "Create a new token on PumpFun with a bonding
|
|
|
439
450
|
}
|
|
440
451
|
});
|
|
441
452
|
// ---------------------------------------------------------------------------
|
|
453
|
+
// Jupiter API helpers
|
|
454
|
+
// ---------------------------------------------------------------------------
|
|
455
|
+
function getJupiterApiKey() {
|
|
456
|
+
const key = process.env.JUPITER_API_KEY;
|
|
457
|
+
if (!key)
|
|
458
|
+
throw new Error("JUPITER_API_KEY env var is required for Jupiter API calls. Get one at https://portal.jup.ag");
|
|
459
|
+
return key;
|
|
460
|
+
}
|
|
461
|
+
async function jupiterGet(path, baseUrl = "https://api.jup.ag") {
|
|
462
|
+
const res = await fetch(`${baseUrl}${path}`, {
|
|
463
|
+
headers: { "x-api-key": getJupiterApiKey() },
|
|
464
|
+
});
|
|
465
|
+
if (!res.ok)
|
|
466
|
+
throw new Error(`Jupiter API ${path}: ${res.status} ${await res.text()}`);
|
|
467
|
+
return res.json();
|
|
468
|
+
}
|
|
469
|
+
async function jupiterPost(path, body, baseUrl = "https://api.jup.ag") {
|
|
470
|
+
const res = await fetch(`${baseUrl}${path}`, {
|
|
471
|
+
method: "POST",
|
|
472
|
+
headers: { "Content-Type": "application/json", "x-api-key": getJupiterApiKey() },
|
|
473
|
+
body: JSON.stringify(body),
|
|
474
|
+
});
|
|
475
|
+
if (!res.ok)
|
|
476
|
+
throw new Error(`Jupiter API ${path}: ${res.status} ${await res.text()}`);
|
|
477
|
+
return res.json();
|
|
478
|
+
}
|
|
479
|
+
async function jupiterDelete(path, body, baseUrl = "https://api.jup.ag") {
|
|
480
|
+
const opts = {
|
|
481
|
+
method: "DELETE",
|
|
482
|
+
headers: { "Content-Type": "application/json", "x-api-key": getJupiterApiKey() },
|
|
483
|
+
};
|
|
484
|
+
if (body)
|
|
485
|
+
opts.body = JSON.stringify(body);
|
|
486
|
+
const res = await fetch(`${baseUrl}${path}`, opts);
|
|
487
|
+
if (!res.ok)
|
|
488
|
+
throw new Error(`Jupiter API ${path}: ${res.status} ${await res.text()}`);
|
|
489
|
+
return res.json();
|
|
490
|
+
}
|
|
491
|
+
/** Deserialize a base64 VersionedTransaction, sign it, and send on-chain */
|
|
492
|
+
async function signAndSendJupiterTx(base64Tx) {
|
|
493
|
+
const wallet = (0, outsmart_1.getWallet)();
|
|
494
|
+
const connection = (0, outsmart_1.getConnection)();
|
|
495
|
+
const tx = web3_js_1.VersionedTransaction.deserialize(Buffer.from(base64Tx, "base64"));
|
|
496
|
+
tx.sign([wallet]);
|
|
497
|
+
const sig = await connection.sendRawTransaction(tx.serialize(), { skipPreflight: true });
|
|
498
|
+
await connection.confirmTransaction(sig, "confirmed");
|
|
499
|
+
return sig;
|
|
500
|
+
}
|
|
501
|
+
// ---------------------------------------------------------------------------
|
|
502
|
+
// Tool: jupiter_shield
|
|
503
|
+
// ---------------------------------------------------------------------------
|
|
504
|
+
server.tool("jupiter_shield", "Check token security warnings via Jupiter Shield API. Returns freeze authority, mint authority, organic activity warnings. Quick safety check — no signing needed.", {
|
|
505
|
+
mints: zod_1.z.string().describe("Comma-separated token mint addresses to check (e.g. 'MINT1,MINT2')"),
|
|
506
|
+
}, async (args) => {
|
|
507
|
+
try {
|
|
508
|
+
const result = await jupiterGet(`/ultra/v1/shield?mints=${args.mints}`);
|
|
509
|
+
return ok(result);
|
|
510
|
+
}
|
|
511
|
+
catch (e) {
|
|
512
|
+
return err(e.message);
|
|
513
|
+
}
|
|
514
|
+
});
|
|
515
|
+
// ---------------------------------------------------------------------------
|
|
516
|
+
// Tool: jupiter_prediction_events
|
|
517
|
+
// ---------------------------------------------------------------------------
|
|
518
|
+
// @ts-expect-error — TS2589: deep type instantiation from MCP SDK generics + zod
|
|
519
|
+
server.tool("jupiter_prediction_events", "Browse prediction market events on Jupiter. Returns events with markets, pricing, and status. Use to find betting opportunities.", {
|
|
520
|
+
category: zod_1.z.string().optional().describe("Filter by category: crypto, sports, politics, esports, culture, economics, tech"),
|
|
521
|
+
status: zod_1.z.enum(["active", "resolved", "all"]).optional().describe("Event status filter (default: active)"),
|
|
522
|
+
query: zod_1.z.string().optional().describe("Search query (if provided, uses search endpoint instead)"),
|
|
523
|
+
limit: zod_1.z.number().int().min(1).max(50).optional().describe("Max results (default: 10)"),
|
|
524
|
+
}, async (args) => {
|
|
525
|
+
try {
|
|
526
|
+
if (args.query) {
|
|
527
|
+
const result = await jupiterGet(`/prediction/v1/events/search?query=${encodeURIComponent(args.query)}&limit=${args.limit ?? 10}`);
|
|
528
|
+
return ok(result);
|
|
529
|
+
}
|
|
530
|
+
let path = `/prediction/v1/events?includeMarkets=true&limit=${args.limit ?? 10}`;
|
|
531
|
+
if (args.category)
|
|
532
|
+
path += `&category=${args.category}`;
|
|
533
|
+
if (args.status)
|
|
534
|
+
path += `&filter=${args.status}`;
|
|
535
|
+
const result = await jupiterGet(path);
|
|
536
|
+
return ok(result);
|
|
537
|
+
}
|
|
538
|
+
catch (e) {
|
|
539
|
+
return err(e.message);
|
|
540
|
+
}
|
|
541
|
+
});
|
|
542
|
+
// ---------------------------------------------------------------------------
|
|
543
|
+
// Tool: jupiter_prediction_market
|
|
544
|
+
// ---------------------------------------------------------------------------
|
|
545
|
+
server.tool("jupiter_prediction_market", "Get details for a specific prediction market — pricing, orderbook depth, volume, open interest.", {
|
|
546
|
+
market_id: zod_1.z.string().describe("Market ID from jupiter_prediction_events"),
|
|
547
|
+
include_orderbook: zod_1.z.boolean().optional().describe("Also fetch orderbook depth (default: false)"),
|
|
548
|
+
}, async (args) => {
|
|
549
|
+
try {
|
|
550
|
+
const market = await jupiterGet(`/prediction/v1/markets/${args.market_id}`);
|
|
551
|
+
if (args.include_orderbook) {
|
|
552
|
+
const orderbook = await jupiterGet(`/prediction/v1/orderbook/${args.market_id}`);
|
|
553
|
+
return ok({ market, orderbook });
|
|
554
|
+
}
|
|
555
|
+
return ok(market);
|
|
556
|
+
}
|
|
557
|
+
catch (e) {
|
|
558
|
+
return err(e.message);
|
|
559
|
+
}
|
|
560
|
+
});
|
|
561
|
+
// ---------------------------------------------------------------------------
|
|
562
|
+
// Tool: jupiter_prediction_order
|
|
563
|
+
// ---------------------------------------------------------------------------
|
|
564
|
+
// @ts-expect-error — TS2589: deep type instantiation from MCP SDK generics + zod
|
|
565
|
+
server.tool("jupiter_prediction_order", "Place a buy or sell order on a Jupiter prediction market. Signs and submits a Solana transaction. Returns order details and tx signature.", {
|
|
566
|
+
market_id: zod_1.z.string().describe("Market ID to trade on"),
|
|
567
|
+
is_yes: zod_1.z.boolean().describe("true = YES contract, false = NO contract"),
|
|
568
|
+
is_buy: zod_1.z.boolean().describe("true = buy contracts, false = sell contracts"),
|
|
569
|
+
deposit_amount: zod_1.z.number().positive().describe("Amount in USD (e.g. 5.0 for $5). Will be converted to micro-USD internally."),
|
|
570
|
+
deposit_mint: zod_1.z.string().optional().describe("Deposit token mint. Default: USDC (EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v)"),
|
|
571
|
+
}, async (args) => {
|
|
572
|
+
try {
|
|
573
|
+
const wallet = (0, outsmart_1.getWallet)();
|
|
574
|
+
const depositMint = args.deposit_mint ?? "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v";
|
|
575
|
+
// Convert USD to micro-USD (1 USD = 1,000,000 micro-USD)
|
|
576
|
+
const microUsd = Math.round(args.deposit_amount * 1_000_000);
|
|
577
|
+
const response = await jupiterPost("/prediction/v1/orders", {
|
|
578
|
+
ownerPubkey: wallet.publicKey.toBase58(),
|
|
579
|
+
marketId: args.market_id,
|
|
580
|
+
isYes: args.is_yes,
|
|
581
|
+
isBuy: args.is_buy,
|
|
582
|
+
depositAmount: microUsd,
|
|
583
|
+
depositMint: depositMint,
|
|
584
|
+
});
|
|
585
|
+
if (!response.transaction) {
|
|
586
|
+
return ok(response); // May return error info
|
|
587
|
+
}
|
|
588
|
+
const signature = await signAndSendJupiterTx(response.transaction);
|
|
589
|
+
return ok({
|
|
590
|
+
signature,
|
|
591
|
+
order: response.order,
|
|
592
|
+
note: "Order submitted on-chain. Jupiter keepers will match it. Poll jupiter_prediction_positions to check fill status.",
|
|
593
|
+
});
|
|
594
|
+
}
|
|
595
|
+
catch (e) {
|
|
596
|
+
return err(e.message);
|
|
597
|
+
}
|
|
598
|
+
});
|
|
599
|
+
// ---------------------------------------------------------------------------
|
|
600
|
+
// Tool: jupiter_prediction_positions
|
|
601
|
+
// ---------------------------------------------------------------------------
|
|
602
|
+
server.tool("jupiter_prediction_positions", "List your open prediction market positions with P&L. Also shows pending orders and trade history.", {
|
|
603
|
+
include_orders: zod_1.z.boolean().optional().describe("Also fetch open orders (default: false)"),
|
|
604
|
+
include_history: zod_1.z.boolean().optional().describe("Also fetch trade history (default: false)"),
|
|
605
|
+
}, async (args) => {
|
|
606
|
+
try {
|
|
607
|
+
const wallet = (0, outsmart_1.getWallet)();
|
|
608
|
+
const pubkey = wallet.publicKey.toBase58();
|
|
609
|
+
const positions = await jupiterGet(`/prediction/v1/positions?ownerPubkey=${pubkey}`);
|
|
610
|
+
const result = { positions };
|
|
611
|
+
if (args.include_orders) {
|
|
612
|
+
result.orders = await jupiterGet(`/prediction/v1/orders?ownerPubkey=${pubkey}`);
|
|
613
|
+
}
|
|
614
|
+
if (args.include_history) {
|
|
615
|
+
result.history = await jupiterGet(`/prediction/v1/history?ownerPubkey=${pubkey}`);
|
|
616
|
+
}
|
|
617
|
+
return ok(result);
|
|
618
|
+
}
|
|
619
|
+
catch (e) {
|
|
620
|
+
return err(e.message);
|
|
621
|
+
}
|
|
622
|
+
});
|
|
623
|
+
// ---------------------------------------------------------------------------
|
|
624
|
+
// Tool: jupiter_prediction_claim
|
|
625
|
+
// ---------------------------------------------------------------------------
|
|
626
|
+
server.tool("jupiter_prediction_claim", "Claim winnings from a resolved prediction market position. Signs and submits the claim transaction.", {
|
|
627
|
+
position_pubkey: zod_1.z.string().describe("Position public key to claim (from jupiter_prediction_positions)"),
|
|
628
|
+
}, async (args) => {
|
|
629
|
+
try {
|
|
630
|
+
const wallet = (0, outsmart_1.getWallet)();
|
|
631
|
+
const response = await jupiterPost(`/prediction/v1/positions/${args.position_pubkey}/claim`, {
|
|
632
|
+
ownerPubkey: wallet.publicKey.toBase58(),
|
|
633
|
+
});
|
|
634
|
+
if (!response.transaction) {
|
|
635
|
+
return ok(response);
|
|
636
|
+
}
|
|
637
|
+
const signature = await signAndSendJupiterTx(response.transaction);
|
|
638
|
+
return ok({ signature, claimed: true });
|
|
639
|
+
}
|
|
640
|
+
catch (e) {
|
|
641
|
+
return err(e.message);
|
|
642
|
+
}
|
|
643
|
+
});
|
|
644
|
+
// ---------------------------------------------------------------------------
|
|
645
|
+
// Tool: jupiter_dca_create
|
|
646
|
+
// ---------------------------------------------------------------------------
|
|
647
|
+
server.tool("jupiter_dca_create", "Create a Jupiter Recurring DCA order. Automated dollar-cost averaging — Jupiter keeper bots execute swaps on schedule. 0.1% fee per swap.", {
|
|
648
|
+
input_mint: zod_1.z.string().describe("Token to spend (e.g. USDC mint for buying SOL with USDC)"),
|
|
649
|
+
output_mint: zod_1.z.string().describe("Token to receive (e.g. SOL mint)"),
|
|
650
|
+
total_amount: zod_1.z.number().positive().describe("Total amount to DCA (in input token's human-readable units, e.g. 100 for 100 USDC)"),
|
|
651
|
+
input_decimals: zod_1.z.number().int().min(0).max(18).describe("Decimals of the input token (6 for USDC, 9 for SOL)"),
|
|
652
|
+
number_of_orders: zod_1.z.number().int().min(2).describe("Number of DCA cycles (total_amount split evenly)"),
|
|
653
|
+
interval_seconds: zod_1.z.number().int().positive().describe("Seconds between each cycle (86400 = daily, 3600 = hourly)"),
|
|
654
|
+
min_price: zod_1.z.number().positive().optional().describe("Only execute if price is above this (optional)"),
|
|
655
|
+
max_price: zod_1.z.number().positive().optional().describe("Only execute if price is below this (optional)"),
|
|
656
|
+
}, async (args) => {
|
|
657
|
+
try {
|
|
658
|
+
const wallet = (0, outsmart_1.getWallet)();
|
|
659
|
+
// Convert human-readable amount to raw amount
|
|
660
|
+
const rawAmount = Math.round(args.total_amount * Math.pow(10, args.input_decimals));
|
|
661
|
+
const response = await jupiterPost("/recurring/v1/createOrder", {
|
|
662
|
+
user: wallet.publicKey.toBase58(),
|
|
663
|
+
inputMint: args.input_mint,
|
|
664
|
+
outputMint: args.output_mint,
|
|
665
|
+
params: {
|
|
666
|
+
time: {
|
|
667
|
+
inAmount: rawAmount,
|
|
668
|
+
numberOfOrders: args.number_of_orders,
|
|
669
|
+
interval: args.interval_seconds,
|
|
670
|
+
minPrice: args.min_price ?? null,
|
|
671
|
+
maxPrice: args.max_price ?? null,
|
|
672
|
+
startAt: null, // start immediately
|
|
673
|
+
},
|
|
674
|
+
},
|
|
675
|
+
});
|
|
676
|
+
if (!response.transaction) {
|
|
677
|
+
return ok(response);
|
|
678
|
+
}
|
|
679
|
+
// DCA supports Jupiter's /execute endpoint
|
|
680
|
+
const tx = web3_js_1.VersionedTransaction.deserialize(Buffer.from(response.transaction, "base64"));
|
|
681
|
+
tx.sign([wallet]);
|
|
682
|
+
const signedBase64 = Buffer.from(tx.serialize()).toString("base64");
|
|
683
|
+
const executeResult = await jupiterPost("/recurring/v1/execute", {
|
|
684
|
+
signedTransaction: signedBase64,
|
|
685
|
+
requestId: response.requestId,
|
|
686
|
+
});
|
|
687
|
+
return ok({
|
|
688
|
+
...executeResult,
|
|
689
|
+
requestId: response.requestId,
|
|
690
|
+
note: `DCA order created: ${args.total_amount} ${args.input_mint} split into ${args.number_of_orders} orders, every ${args.interval_seconds}s. Jupiter keepers will auto-execute.`,
|
|
691
|
+
});
|
|
692
|
+
}
|
|
693
|
+
catch (e) {
|
|
694
|
+
return err(e.message);
|
|
695
|
+
}
|
|
696
|
+
});
|
|
697
|
+
// ---------------------------------------------------------------------------
|
|
698
|
+
// Tool: jupiter_dca_list
|
|
699
|
+
// ---------------------------------------------------------------------------
|
|
700
|
+
// @ts-expect-error — TS2589: deep type instantiation from MCP SDK generics + zod
|
|
701
|
+
server.tool("jupiter_dca_list", "List your active or historical Jupiter DCA orders.", {
|
|
702
|
+
status: zod_1.z.enum(["active", "history"]).optional().describe("Filter by status (default: active)"),
|
|
703
|
+
}, async (args) => {
|
|
704
|
+
try {
|
|
705
|
+
const wallet = (0, outsmart_1.getWallet)();
|
|
706
|
+
const status = args.status ?? "active";
|
|
707
|
+
const result = await jupiterGet(`/recurring/v1/getRecurringOrders?user=${wallet.publicKey.toBase58()}&orderStatus=${status}&recurringType=time`);
|
|
708
|
+
return ok(result);
|
|
709
|
+
}
|
|
710
|
+
catch (e) {
|
|
711
|
+
return err(e.message);
|
|
712
|
+
}
|
|
713
|
+
});
|
|
714
|
+
// ---------------------------------------------------------------------------
|
|
715
|
+
// Tool: jupiter_dca_cancel
|
|
716
|
+
// ---------------------------------------------------------------------------
|
|
717
|
+
server.tool("jupiter_dca_cancel", "Cancel an active Jupiter DCA order. Returns remaining funds to your wallet.", {
|
|
718
|
+
order: zod_1.z.string().describe("Order public key to cancel (from jupiter_dca_list)"),
|
|
719
|
+
}, async (args) => {
|
|
720
|
+
try {
|
|
721
|
+
const wallet = (0, outsmart_1.getWallet)();
|
|
722
|
+
const response = await jupiterPost("/recurring/v1/cancelOrder", {
|
|
723
|
+
order: args.order,
|
|
724
|
+
user: wallet.publicKey.toBase58(),
|
|
725
|
+
recurringType: "time",
|
|
726
|
+
});
|
|
727
|
+
if (!response.transaction) {
|
|
728
|
+
return ok(response);
|
|
729
|
+
}
|
|
730
|
+
const tx = web3_js_1.VersionedTransaction.deserialize(Buffer.from(response.transaction, "base64"));
|
|
731
|
+
tx.sign([wallet]);
|
|
732
|
+
const signedBase64 = Buffer.from(tx.serialize()).toString("base64");
|
|
733
|
+
const executeResult = await jupiterPost("/recurring/v1/execute", {
|
|
734
|
+
signedTransaction: signedBase64,
|
|
735
|
+
requestId: response.requestId,
|
|
736
|
+
});
|
|
737
|
+
return ok({ ...executeResult, cancelled: true });
|
|
738
|
+
}
|
|
739
|
+
catch (e) {
|
|
740
|
+
return err(e.message);
|
|
741
|
+
}
|
|
742
|
+
});
|
|
743
|
+
// ===========================================================================
|
|
744
|
+
// PERCOLATOR PERPETUAL FUTURES TOOLS (9 tools)
|
|
745
|
+
// ===========================================================================
|
|
746
|
+
const percolator = new outsmart_1.PercolatorAdapter();
|
|
747
|
+
// ---------------------------------------------------------------------------
|
|
748
|
+
// Tool: percolator_create_market
|
|
749
|
+
// ---------------------------------------------------------------------------
|
|
750
|
+
// @ts-expect-error — TS2589: deep type instantiation from MCP SDK generics + zod
|
|
751
|
+
server.tool("percolator_create_market", "Create a new Percolator perpetual futures market. Agent becomes admin/oracle authority. Returns slab address for all subsequent operations.", {
|
|
752
|
+
collateral_mint: zod_1.z.string().describe("Collateral token mint address (e.g. BONK, wSOL)"),
|
|
753
|
+
initial_price_e6: zod_1.z.string().describe("Initial oracle price in e6 format (1 USD = 1000000). Example: '150000' for $0.15"),
|
|
754
|
+
lp_collateral: zod_1.z.string().describe("Initial LP collateral in native token units (e.g. '1000000000' for 1B BONK lamports)"),
|
|
755
|
+
tier: zod_1.z.enum(["small", "medium", "large"]).optional().describe("Slab tier: small (256 slots, ~0.44 SOL), medium (1024, ~1.73 SOL), large (4096, ~6.91 SOL). Default: small"),
|
|
756
|
+
network: zod_1.z.enum(["devnet", "mainnet"]).optional().describe("Network (default: devnet)"),
|
|
757
|
+
}, async (args) => {
|
|
758
|
+
try {
|
|
759
|
+
const result = await percolator.createMarket({
|
|
760
|
+
collateralMint: args.collateral_mint,
|
|
761
|
+
initialPriceE6: BigInt(args.initial_price_e6),
|
|
762
|
+
lpCollateral: BigInt(args.lp_collateral),
|
|
763
|
+
tier: args.tier,
|
|
764
|
+
network: args.network,
|
|
765
|
+
});
|
|
766
|
+
return ok(result);
|
|
767
|
+
}
|
|
768
|
+
catch (e) {
|
|
769
|
+
return err(e.message);
|
|
770
|
+
}
|
|
771
|
+
});
|
|
772
|
+
// ---------------------------------------------------------------------------
|
|
773
|
+
// Tool: percolator_trade
|
|
774
|
+
// ---------------------------------------------------------------------------
|
|
775
|
+
server.tool("percolator_trade", "Open, close, or modify a perpetual futures position on a Percolator market. Positive size = long, negative = short. Size is in i128 native token units.", {
|
|
776
|
+
slab: zod_1.z.string().describe("Slab (market) address"),
|
|
777
|
+
user_idx: zod_1.z.number().int().min(0).describe("Your user account index in the slab"),
|
|
778
|
+
lp_idx: zod_1.z.number().int().min(0).describe("LP account index to trade against"),
|
|
779
|
+
size: zod_1.z.string().describe("Trade size as i128 string. Positive = go long, negative = go short. Use '0' won't work — to close, use opposite size."),
|
|
780
|
+
network: zod_1.z.enum(["devnet", "mainnet"]).optional().describe("Network (default: devnet)"),
|
|
781
|
+
}, async (args) => {
|
|
782
|
+
try {
|
|
783
|
+
const sig = await percolator.trade({
|
|
784
|
+
slabAddress: args.slab,
|
|
785
|
+
userIdx: args.user_idx,
|
|
786
|
+
lpIdx: args.lp_idx,
|
|
787
|
+
size: BigInt(args.size),
|
|
788
|
+
network: args.network,
|
|
789
|
+
});
|
|
790
|
+
return ok({ signature: sig });
|
|
791
|
+
}
|
|
792
|
+
catch (e) {
|
|
793
|
+
return err(e.message);
|
|
794
|
+
}
|
|
795
|
+
});
|
|
796
|
+
// ---------------------------------------------------------------------------
|
|
797
|
+
// Tool: percolator_deposit
|
|
798
|
+
// ---------------------------------------------------------------------------
|
|
799
|
+
server.tool("percolator_deposit", "Deposit collateral into a Percolator market account (user or LP).", {
|
|
800
|
+
slab: zod_1.z.string().describe("Slab (market) address"),
|
|
801
|
+
user_idx: zod_1.z.number().int().min(0).describe("Account index to deposit into"),
|
|
802
|
+
amount: zod_1.z.string().describe("Amount in native token units"),
|
|
803
|
+
network: zod_1.z.enum(["devnet", "mainnet"]).optional(),
|
|
804
|
+
}, async (args) => {
|
|
805
|
+
try {
|
|
806
|
+
const sig = await percolator.deposit(args.slab, args.user_idx, BigInt(args.amount), args.network);
|
|
807
|
+
return ok({ signature: sig });
|
|
808
|
+
}
|
|
809
|
+
catch (e) {
|
|
810
|
+
return err(e.message);
|
|
811
|
+
}
|
|
812
|
+
});
|
|
813
|
+
// ---------------------------------------------------------------------------
|
|
814
|
+
// Tool: percolator_withdraw
|
|
815
|
+
// ---------------------------------------------------------------------------
|
|
816
|
+
server.tool("percolator_withdraw", "Withdraw collateral from a Percolator market account. Only available when position is flat or has sufficient margin.", {
|
|
817
|
+
slab: zod_1.z.string().describe("Slab (market) address"),
|
|
818
|
+
user_idx: zod_1.z.number().int().min(0).describe("Account index to withdraw from"),
|
|
819
|
+
amount: zod_1.z.string().describe("Amount in native token units"),
|
|
820
|
+
network: zod_1.z.enum(["devnet", "mainnet"]).optional(),
|
|
821
|
+
}, async (args) => {
|
|
822
|
+
try {
|
|
823
|
+
const sig = await percolator.withdraw(args.slab, args.user_idx, BigInt(args.amount), args.network);
|
|
824
|
+
return ok({ signature: sig });
|
|
825
|
+
}
|
|
826
|
+
catch (e) {
|
|
827
|
+
return err(e.message);
|
|
828
|
+
}
|
|
829
|
+
});
|
|
830
|
+
// ---------------------------------------------------------------------------
|
|
831
|
+
// Tool: percolator_market_state
|
|
832
|
+
// ---------------------------------------------------------------------------
|
|
833
|
+
server.tool("percolator_market_state", "Read the full state of a Percolator perpetual futures market: header, config, engine, risk params, and all accounts.", {
|
|
834
|
+
slab: zod_1.z.string().describe("Slab (market) address"),
|
|
835
|
+
}, async (args) => {
|
|
836
|
+
try {
|
|
837
|
+
const state = await percolator.getMarketState(args.slab);
|
|
838
|
+
// Serialize BigInt values for JSON output
|
|
839
|
+
return ok(JSON.parse(JSON.stringify(state, (_key, value) => typeof value === "bigint" ? value.toString() : value)));
|
|
840
|
+
}
|
|
841
|
+
catch (e) {
|
|
842
|
+
return err(e.message);
|
|
843
|
+
}
|
|
844
|
+
});
|
|
845
|
+
// ---------------------------------------------------------------------------
|
|
846
|
+
// Tool: percolator_list_markets
|
|
847
|
+
// ---------------------------------------------------------------------------
|
|
848
|
+
server.tool("percolator_list_markets", "Discover all Percolator perpetual futures markets on-chain across all program tiers.", {
|
|
849
|
+
network: zod_1.z.enum(["devnet", "mainnet"]).optional().describe("Network (default: devnet)"),
|
|
850
|
+
}, async (args) => {
|
|
851
|
+
try {
|
|
852
|
+
const markets = await percolator.discoverMarkets(args.network);
|
|
853
|
+
return ok(JSON.parse(JSON.stringify(markets.map(m => ({
|
|
854
|
+
slab: m.slabAddress.toBase58(),
|
|
855
|
+
program: m.programId.toBase58(),
|
|
856
|
+
admin: m.header.admin.toBase58(),
|
|
857
|
+
collateralMint: m.config.collateralMint.toBase58(),
|
|
858
|
+
oraclePrice: m.config.authorityPriceE6.toString(),
|
|
859
|
+
vault: m.engine.vault.toString(),
|
|
860
|
+
totalOI: m.engine.totalOpenInterest.toString(),
|
|
861
|
+
numAccounts: m.engine.numUsedAccounts,
|
|
862
|
+
maxLeverage: Number(10000n / (m.params.initialMarginBps || 1n)),
|
|
863
|
+
tradingFeeBps: m.params.tradingFeeBps.toString(),
|
|
864
|
+
paused: m.header.paused,
|
|
865
|
+
resolved: m.header.resolved,
|
|
866
|
+
})), (_key, value) => typeof value === "bigint" ? value.toString() : value)));
|
|
867
|
+
}
|
|
868
|
+
catch (e) {
|
|
869
|
+
return err(e.message);
|
|
870
|
+
}
|
|
871
|
+
});
|
|
872
|
+
// ---------------------------------------------------------------------------
|
|
873
|
+
// Tool: percolator_push_price
|
|
874
|
+
// ---------------------------------------------------------------------------
|
|
875
|
+
server.tool("percolator_push_price", "Push a new oracle price to a Percolator market (admin/oracle authority only). Price in e6 format.", {
|
|
876
|
+
slab: zod_1.z.string().describe("Slab (market) address"),
|
|
877
|
+
price_e6: zod_1.z.string().describe("Oracle price in e6 format (1 USD = 1000000)"),
|
|
878
|
+
network: zod_1.z.enum(["devnet", "mainnet"]).optional(),
|
|
879
|
+
}, async (args) => {
|
|
880
|
+
try {
|
|
881
|
+
const sig = await percolator.pushOraclePrice(args.slab, BigInt(args.price_e6), args.network);
|
|
882
|
+
return ok({ signature: sig });
|
|
883
|
+
}
|
|
884
|
+
catch (e) {
|
|
885
|
+
return err(e.message);
|
|
886
|
+
}
|
|
887
|
+
});
|
|
888
|
+
// ---------------------------------------------------------------------------
|
|
889
|
+
// Tool: percolator_crank
|
|
890
|
+
// ---------------------------------------------------------------------------
|
|
891
|
+
server.tool("percolator_crank", "Run the permissionless keeper crank on a Percolator market. Updates funding rates and processes maintenance.", {
|
|
892
|
+
slab: zod_1.z.string().describe("Slab (market) address"),
|
|
893
|
+
network: zod_1.z.enum(["devnet", "mainnet"]).optional(),
|
|
894
|
+
}, async (args) => {
|
|
895
|
+
try {
|
|
896
|
+
const sig = await percolator.crank(args.slab, args.network);
|
|
897
|
+
return ok({ signature: sig });
|
|
898
|
+
}
|
|
899
|
+
catch (e) {
|
|
900
|
+
return err(e.message);
|
|
901
|
+
}
|
|
902
|
+
});
|
|
903
|
+
// ---------------------------------------------------------------------------
|
|
904
|
+
// Tool: percolator_insurance_lp
|
|
905
|
+
// ---------------------------------------------------------------------------
|
|
906
|
+
// @ts-expect-error — TS2589: deep type instantiation from MCP SDK generics + zod
|
|
907
|
+
server.tool("percolator_insurance_lp", "Manage Percolator insurance fund: create mint, deposit, or withdraw insurance LP tokens.", {
|
|
908
|
+
slab: zod_1.z.string().describe("Slab (market) address"),
|
|
909
|
+
action: zod_1.z.enum(["create_mint", "deposit", "withdraw"]).describe("Action: create_mint (one-time), deposit, or withdraw"),
|
|
910
|
+
amount: zod_1.z.string().optional().describe("Amount in native units (required for deposit/withdraw)"),
|
|
911
|
+
network: zod_1.z.enum(["devnet", "mainnet"]).optional(),
|
|
912
|
+
}, async (args) => {
|
|
913
|
+
try {
|
|
914
|
+
let sig;
|
|
915
|
+
switch (args.action) {
|
|
916
|
+
case "create_mint":
|
|
917
|
+
sig = await percolator.createInsuranceMint(args.slab, args.network);
|
|
918
|
+
break;
|
|
919
|
+
case "deposit":
|
|
920
|
+
if (!args.amount)
|
|
921
|
+
return err("amount is required for deposit");
|
|
922
|
+
sig = await percolator.depositInsuranceLP(args.slab, BigInt(args.amount), args.network);
|
|
923
|
+
break;
|
|
924
|
+
case "withdraw":
|
|
925
|
+
if (!args.amount)
|
|
926
|
+
return err("amount is required for withdraw");
|
|
927
|
+
sig = await percolator.withdrawInsuranceLP(args.slab, BigInt(args.amount), args.network);
|
|
928
|
+
break;
|
|
929
|
+
}
|
|
930
|
+
return ok({ signature: sig });
|
|
931
|
+
}
|
|
932
|
+
catch (e) {
|
|
933
|
+
return err(e.message);
|
|
934
|
+
}
|
|
935
|
+
});
|
|
936
|
+
// ---------------------------------------------------------------------------
|
|
442
937
|
// Start server
|
|
443
938
|
// ---------------------------------------------------------------------------
|
|
444
939
|
async function main() {
|
package/dist/mcp/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "outsmart-agent",
|
|
3
|
-
"version": "1.0.0-alpha.
|
|
3
|
+
"version": "1.0.0-alpha.5",
|
|
4
4
|
"description": "MCP server + AI skills for Solana trading — wraps the outsmart CLI library for AI agent use.",
|
|
5
5
|
"engines": {
|
|
6
6
|
"node": ">=20.0.0"
|
|
@@ -20,11 +20,11 @@
|
|
|
20
20
|
],
|
|
21
21
|
"scripts": {
|
|
22
22
|
"build": "npm run clean && npm run build:ts && npm run build:chmod",
|
|
23
|
-
"build:ts": "tsc -p tsconfig.build.json",
|
|
23
|
+
"build:ts": "NODE_OPTIONS='--max-old-space-size=8192' tsc -p tsconfig.build.json",
|
|
24
24
|
"build:chmod": "chmod +x dist/mcp/server.js || true",
|
|
25
25
|
"clean": "rm -rf dist/",
|
|
26
26
|
"dev": "ts-node src/mcp/server.ts",
|
|
27
|
-
"typecheck": "tsc --noEmit",
|
|
27
|
+
"typecheck": "NODE_OPTIONS='--max-old-space-size=8192' tsc --noEmit",
|
|
28
28
|
"prepublishOnly": "npm run build"
|
|
29
29
|
},
|
|
30
30
|
"keywords": [
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"@modelcontextprotocol/sdk": "^1.12.1",
|
|
49
49
|
"@solana/spl-token": "^0.4.0",
|
|
50
50
|
"@solana/web3.js": "^1.95.0",
|
|
51
|
-
"outsmart": "^2.0.0-alpha.
|
|
51
|
+
"outsmart": "^2.0.0-alpha.9",
|
|
52
52
|
"zod": "^3.25.0"
|
|
53
53
|
},
|
|
54
54
|
"devDependencies": {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: outsmart-dca-grid
|
|
3
3
|
description: Dollar-cost average and grid trade on Solana. Use when user says "DCA", "dollar cost average", "grid", "accumulate", "buy the dip", "range trading", "recurring", or mentions systematic buying strategies.
|
|
4
|
-
allowed-tools: mcp__outsmart-agent__solana_buy, mcp__outsmart-agent__solana_sell, mcp__outsmart-agent__solana_add_liquidity, mcp__outsmart-agent__solana_remove_liquidity, mcp__outsmart-agent__solana_claim_fees, mcp__outsmart-agent__solana_list_positions, mcp__outsmart-agent__solana_quote, mcp__outsmart-agent__solana_token_info, mcp__outsmart-agent__solana_wallet_balance
|
|
4
|
+
allowed-tools: mcp__outsmart-agent__solana_buy, mcp__outsmart-agent__solana_sell, mcp__outsmart-agent__solana_add_liquidity, mcp__outsmart-agent__solana_remove_liquidity, mcp__outsmart-agent__solana_claim_fees, mcp__outsmart-agent__solana_list_positions, mcp__outsmart-agent__solana_quote, mcp__outsmart-agent__solana_token_info, mcp__outsmart-agent__solana_wallet_balance, mcp__outsmart-agent__jupiter_dca_create, mcp__outsmart-agent__jupiter_dca_list, mcp__outsmart-agent__jupiter_dca_cancel
|
|
5
5
|
model: opus
|
|
6
6
|
license: ISC
|
|
7
7
|
metadata:
|
|
@@ -15,17 +15,27 @@ Two ways to take emotion out of trading. Jupiter's DCA runs on autopilot. DLMM g
|
|
|
15
15
|
|
|
16
16
|
## DCA — Dollar-Cost Averaging
|
|
17
17
|
|
|
18
|
-
### Jupiter Recurring (Recommended —
|
|
18
|
+
### Jupiter Recurring (Recommended — Fully MCP-Executable)
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
Jupiter DCA is fully autonomous via MCP tools. Create orders, monitor them, cancel if needed — all from the agent.
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
| Tool | What It Does |
|
|
23
|
+
|------|-------------|
|
|
24
|
+
| `jupiter_dca_create` | Create a recurring DCA order (signs + submits tx) |
|
|
25
|
+
| `jupiter_dca_list` | List your active or historical DCA orders |
|
|
26
|
+
| `jupiter_dca_cancel` | Cancel an active order, returns remaining funds |
|
|
25
27
|
|
|
26
|
-
|
|
28
|
+
Jupiter keepers auto-execute each swap on your schedule. 0.1% fee per swap. Min 100 USDC equivalent.
|
|
27
29
|
|
|
28
|
-
|
|
30
|
+
Best for: accumulating blue chips (SOL, JUP, JTO) without thinking about it. Set and forget.
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
1. jupiter_dca_create(input_mint="USDC", output_mint="SOL", total_amount=500, number_of_orders=10, interval_seconds=21600)
|
|
34
|
+
2. jupiter_dca_list(status="active") → check progress
|
|
35
|
+
3. jupiter_dca_cancel(order="ORDER_PUBKEY") → cancel if needed
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### Manual DCA (Alternative — Agent-Controlled)
|
|
29
39
|
|
|
30
40
|
Execute buys yourself on a schedule via `solana_buy`. More control — you can add conditions (only buy if price is below X, skip if gas is high, etc). Downside: agent needs to stay online.
|
|
31
41
|
|
|
@@ -41,8 +51,8 @@ Every 6 hours:
|
|
|
41
51
|
- Fixed amount per buy: 1-3% of portfolio
|
|
42
52
|
- Fixed interval — don't deviate, that defeats the purpose
|
|
43
53
|
- Stop if: project dies, exploit happens, team exits
|
|
44
|
-
- Prefer
|
|
45
|
-
- Use manual only when you need conditional logic
|
|
54
|
+
- Prefer `jupiter_dca_create` for set-and-forget — keepers handle execution
|
|
55
|
+
- Use manual `solana_buy` only when you need conditional logic (price thresholds, etc.)
|
|
46
56
|
|
|
47
57
|
## Grid Trading with DLMM
|
|
48
58
|
|
|
@@ -84,7 +94,7 @@ Use one-sided DLMM positions as a grid of buy/sell orders. When price crosses a
|
|
|
84
94
|
## Combining Both
|
|
85
95
|
|
|
86
96
|
The strongest setup:
|
|
87
|
-
1.
|
|
97
|
+
1. **`jupiter_dca_create`** accumulates a token on autopilot
|
|
88
98
|
2. **DLMM grid** earns fees on the same pair
|
|
89
99
|
3. **Grid fees** fund more DCA buys
|
|
90
100
|
|
|
@@ -93,7 +103,7 @@ Self-reinforcing loop: DCA builds position → grid earns fees → fees fund mor
|
|
|
93
103
|
## Survival Mode
|
|
94
104
|
|
|
95
105
|
- **Normal:** Full DCA + active grids
|
|
96
|
-
- **Low Compute:** Keep Jupiter
|
|
106
|
+
- **Low Compute:** Keep Jupiter DCA running (keepers handle it). Wider grids, fewer rebalances.
|
|
97
107
|
- **Critical:** Cancel all DCA. Remove all grids. Liquidate. Survive.
|
|
98
108
|
|
|
99
109
|
## Related Skills
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: outsmart-devving-coins
|
|
3
3
|
description: Launch tokens on Solana launchpads. Use when user says "dev a coin", "devving", "launch token", "create token", "bonding curve", "pump fun", "pumpfun", "launchlab", "jupiter studio", "DBC", "dynamic bonding curve", "launch a meme", "deploy token", or mentions creating/launching a new token on Solana.
|
|
4
|
-
allowed-tools: mcp__outsmart-agent__solana_buy, mcp__outsmart-agent__solana_sell, mcp__outsmart-agent__solana_quote, mcp__outsmart-agent__solana_create_token, mcp__outsmart-agent__solana_create_pool, mcp__outsmart-agent__solana_find_pool, mcp__outsmart-agent__solana_token_info, mcp__outsmart-agent__solana_wallet_balance, mcp__outsmart-agent__solana_list_dexes, WebFetch
|
|
4
|
+
allowed-tools: mcp__outsmart-agent__solana_buy, mcp__outsmart-agent__solana_sell, mcp__outsmart-agent__solana_quote, mcp__outsmart-agent__solana_create_token, mcp__outsmart-agent__solana_create_pool, mcp__outsmart-agent__solana_find_pool, mcp__outsmart-agent__solana_token_info, mcp__outsmart-agent__solana_wallet_balance, mcp__outsmart-agent__solana_list_dexes, mcp__outsmart-agent__jupiter_shield, WebFetch
|
|
5
5
|
model: opus
|
|
6
6
|
license: ISC
|
|
7
7
|
metadata:
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: outsmart-dex-trading
|
|
3
3
|
description: Execute trades on Solana DEXes. Use when user says "buy token", "sell token", "swap", "add liquidity", "remove liquidity", "claim fees", "LP", "DEX", "pool", "Solana trade", "check price", "wallet balance", or mentions trading tokens on Solana.
|
|
4
|
-
allowed-tools: mcp__outsmart-agent__solana_buy, mcp__outsmart-agent__solana_sell, mcp__outsmart-agent__solana_quote, mcp__outsmart-agent__solana_snipe, mcp__outsmart-agent__solana_find_pool, mcp__outsmart-agent__solana_create_pool, mcp__outsmart-agent__solana_create_token, mcp__outsmart-agent__solana_add_liquidity, mcp__outsmart-agent__solana_remove_liquidity, mcp__outsmart-agent__solana_claim_fees, mcp__outsmart-agent__solana_list_positions, mcp__outsmart-agent__solana_token_info, mcp__outsmart-agent__solana_list_dexes, mcp__outsmart-agent__solana_wallet_balance
|
|
4
|
+
allowed-tools: mcp__outsmart-agent__solana_buy, mcp__outsmart-agent__solana_sell, mcp__outsmart-agent__solana_quote, mcp__outsmart-agent__solana_snipe, mcp__outsmart-agent__solana_find_pool, mcp__outsmart-agent__solana_create_pool, mcp__outsmart-agent__solana_create_token, mcp__outsmart-agent__solana_add_liquidity, mcp__outsmart-agent__solana_remove_liquidity, mcp__outsmart-agent__solana_claim_fees, mcp__outsmart-agent__solana_list_positions, mcp__outsmart-agent__solana_token_info, mcp__outsmart-agent__solana_list_dexes, mcp__outsmart-agent__solana_wallet_balance, mcp__outsmart-agent__jupiter_shield, mcp__outsmart-agent__jupiter_prediction_events, mcp__outsmart-agent__jupiter_prediction_market, mcp__outsmart-agent__jupiter_prediction_order, mcp__outsmart-agent__jupiter_prediction_positions, mcp__outsmart-agent__jupiter_prediction_claim, mcp__outsmart-agent__jupiter_dca_create, mcp__outsmart-agent__jupiter_dca_list, mcp__outsmart-agent__jupiter_dca_cancel
|
|
5
5
|
model: opus
|
|
6
6
|
license: ISC
|
|
7
7
|
metadata:
|
|
@@ -11,9 +11,9 @@ metadata:
|
|
|
11
11
|
|
|
12
12
|
# Solana DEX Trading
|
|
13
13
|
|
|
14
|
-
This is your tool reference.
|
|
14
|
+
This is your tool reference. 23 MCP tools (14 DEX + 9 Jupiter), 18 DEX adapters, and the patterns for using them.
|
|
15
15
|
|
|
16
|
-
## Tools at a Glance
|
|
16
|
+
## DEX Tools at a Glance
|
|
17
17
|
|
|
18
18
|
| Tool | What It Does | Key Params |
|
|
19
19
|
|------|-------------|------------|
|
|
@@ -32,6 +32,20 @@ This is your tool reference. 10 MCP tools, 18 DEX adapters, and the patterns for
|
|
|
32
32
|
| `solana_list_dexes` | All 18 adapters + capabilities | |
|
|
33
33
|
| `solana_wallet_balance` | SOL and token balances | |
|
|
34
34
|
|
|
35
|
+
## Jupiter Tools
|
|
36
|
+
|
|
37
|
+
| Tool | What It Does | Key Params |
|
|
38
|
+
|------|-------------|------------|
|
|
39
|
+
| `jupiter_shield` | Token security warnings | `mints` |
|
|
40
|
+
| `jupiter_prediction_events` | Browse/search prediction markets | `category`, `status`, `query` |
|
|
41
|
+
| `jupiter_prediction_market` | Market details + orderbook | `market_id` |
|
|
42
|
+
| `jupiter_prediction_order` | Place prediction market orders | `market_id`, `side`, `outcome`, `amount` |
|
|
43
|
+
| `jupiter_prediction_positions` | Your positions + trade history | |
|
|
44
|
+
| `jupiter_prediction_claim` | Claim resolved market winnings | `market_id` |
|
|
45
|
+
| `jupiter_dca_create` | Create recurring DCA order | `input_mint`, `output_mint`, `total_amount`, `number_of_orders`, `interval_seconds` |
|
|
46
|
+
| `jupiter_dca_list` | List active/historical DCA orders | `status` |
|
|
47
|
+
| `jupiter_dca_cancel` | Cancel a DCA order | `order` |
|
|
48
|
+
|
|
35
49
|
## Picking the Right DEX
|
|
36
50
|
|
|
37
51
|
**If you just want the best price**, use `jupiter-ultra`. It routes across everything.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: outsmart-lp-sniping
|
|
3
3
|
description: Buy tokens at or near LP creation on Solana. Use when user says "snipe", "sniping", "bonding curve", "graduation", "migration", "new pool", "LP created", "snipe LP", "bloom bot", "set up snipe", "pump fun", "launchlab", or mentions buying a token the instant its LP pool goes live.
|
|
4
|
-
allowed-tools: mcp__outsmart-agent__solana_buy, mcp__outsmart-agent__solana_sell, mcp__outsmart-agent__solana_quote, mcp__outsmart-agent__solana_snipe, mcp__outsmart-agent__solana_find_pool, mcp__outsmart-agent__solana_token_info, mcp__outsmart-agent__solana_wallet_balance, mcp__outsmart-agent__solana_list_dexes, WebFetch
|
|
4
|
+
allowed-tools: mcp__outsmart-agent__solana_buy, mcp__outsmart-agent__solana_sell, mcp__outsmart-agent__solana_quote, mcp__outsmart-agent__solana_snipe, mcp__outsmart-agent__solana_find_pool, mcp__outsmart-agent__solana_token_info, mcp__outsmart-agent__solana_wallet_balance, mcp__outsmart-agent__solana_list_dexes, mcp__outsmart-agent__jupiter_shield, WebFetch
|
|
5
5
|
model: opus
|
|
6
6
|
license: ISC
|
|
7
7
|
metadata:
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: outsmart-percolator-perps
|
|
3
|
+
description: Trade and create perpetual futures markets on Solana via Percolator. Use when user says "perp", "perpetual", "futures", "leverage", "long", "short", "margin", "liquidation", "percolator", "create perp market", "slab", "funding rate", or mentions leveraged trading on Solana.
|
|
4
|
+
allowed-tools: mcp__outsmart-agent__percolator_create_market, mcp__outsmart-agent__percolator_trade, mcp__outsmart-agent__percolator_deposit, mcp__outsmart-agent__percolator_withdraw, mcp__outsmart-agent__percolator_market_state, mcp__outsmart-agent__percolator_list_markets, mcp__outsmart-agent__percolator_push_price, mcp__outsmart-agent__percolator_crank, mcp__outsmart-agent__percolator_insurance_lp, mcp__outsmart-agent__solana_token_info, mcp__outsmart-agent__solana_wallet_balance, mcp__outsmart-agent__jupiter_shield, WebFetch
|
|
5
|
+
model: opus
|
|
6
|
+
license: ISC
|
|
7
|
+
metadata:
|
|
8
|
+
author: outsmartchad
|
|
9
|
+
version: '1.0.0'
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Percolator: Permissionless Perpetual Futures on Solana
|
|
13
|
+
|
|
14
|
+
Percolator is pump.fun for perps. Toly (Anatoly Yakovenko) built it. Any SPL token on Solana can have a perpetual futures market, and you can deploy one in a single transaction. No governance vote, no listing fee, no waiting. You just create it.
|
|
15
|
+
|
|
16
|
+
Every market lives in a single on-chain account called a **slab**. A virtual AMM (vAMM) provides automated initial liquidity so the market is tradeable from block one, no real deposits needed to bootstrap. Markets are coin-margined: if you're trading BONK perps, your collateral is BONK. This is critical to understand because your PnL is denominated in the same token you're speculating on.
|
|
17
|
+
|
|
18
|
+
**Currently targeting devnet.** The mainnet program exists, but run everything on devnet first. Test your market creation flow, test your trading logic, test your crank. Only move to mainnet when you're confident the pipeline works end to end.
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## MCP Tools Reference
|
|
23
|
+
|
|
24
|
+
| Tool | What It Does | Key Params |
|
|
25
|
+
|---|---|---|
|
|
26
|
+
| `percolator_create_market` | Deploy a new perp market (slab) for any SPL token | `token_mint`, `leverage_max`, `fee_bps`, `slab_size`, `vamm_spread` |
|
|
27
|
+
| `percolator_trade` | Open or close a position. Positive size = long, negative = short | `slab_address`, `size`, `price_limit` |
|
|
28
|
+
| `percolator_deposit` | Deposit collateral into a market | `slab_address`, `amount` |
|
|
29
|
+
| `percolator_withdraw` | Withdraw collateral and realized profit | `slab_address`, `amount` |
|
|
30
|
+
| `percolator_market_state` | Read market data: OI, funding rate, positions, insurance health | `slab_address` |
|
|
31
|
+
| `percolator_list_markets` | List all available perp markets | `token_mint` (optional filter) |
|
|
32
|
+
| `percolator_push_price` | Push an oracle price update to the market | `slab_address`, `price` |
|
|
33
|
+
| `percolator_crank` | Turn the crank: process funding, check liquidations | `slab_address` |
|
|
34
|
+
| `percolator_insurance_lp` | Deposit into / withdraw from the insurance fund | `slab_address`, `amount`, `action` |
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Two Roles: Market Creator vs Trader
|
|
39
|
+
|
|
40
|
+
This is where Percolator gets interesting. You're not just a trader. You can be the exchange.
|
|
41
|
+
|
|
42
|
+
### Market Creator (the alpha)
|
|
43
|
+
|
|
44
|
+
You deploy the slab. You set the leverage cap, the fee structure, the vAMM spread. You push the oracle prices. Every single trade on your market generates fees, and a portion flows to the insurance fund which you can LP into.
|
|
45
|
+
|
|
46
|
+
The play: find a token that's trending, has volume, but doesn't have a perp market yet. Create one. You're the first mover. When leveraged degens show up wanting to go 10x long on the latest memecoin, they're trading on YOUR market and you're earning from every position open and close.
|
|
47
|
+
|
|
48
|
+
Most tokens on Solana have zero perp markets. That's the opportunity.
|
|
49
|
+
|
|
50
|
+
### Trader
|
|
51
|
+
|
|
52
|
+
Standard perp trading. Find an existing market, deposit collateral, go long or short with leverage. Nothing exotic here if you've used any perp DEX before. The difference is coin-margining and the fact that markets can exist for anything.
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## Creating a Market -- Full Workflow
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
1. Pick a token with volume
|
|
60
|
+
-> solana_token_info to check liquidity, volume, holder count
|
|
61
|
+
-> No point creating a perp for a dead token
|
|
62
|
+
|
|
63
|
+
2. percolator_create_market
|
|
64
|
+
-> Deploys the slab, initializes vAMM, sets all parameters
|
|
65
|
+
-> Choose slab size based on expected activity (start Small, upgrade later)
|
|
66
|
+
|
|
67
|
+
3. percolator_push_price
|
|
68
|
+
-> Seed the initial oracle price
|
|
69
|
+
-> Pull from DexScreener or Jupiter spot price
|
|
70
|
+
|
|
71
|
+
4. percolator_crank
|
|
72
|
+
-> First crank to initialize the engine
|
|
73
|
+
-> Market won't function without this
|
|
74
|
+
|
|
75
|
+
5. Share the slab address -- market is live
|
|
76
|
+
-> Anyone can now trade on it
|
|
77
|
+
|
|
78
|
+
6. Run crank every ~30 seconds to keep market healthy
|
|
79
|
+
-> This is your keeper obligation as market creator
|
|
80
|
+
-> Stale cranks = stuck positions = angry traders
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
As market creator, you ARE the oracle operator. You pull prices from DexScreener or Jupiter's spot price and push them to the slab via `percolator_push_price`. No Pyth dependency. This gives you flexibility but also responsibility -- push accurate prices or your market becomes untradeable.
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## Trading -- Full Workflow
|
|
88
|
+
|
|
89
|
+
```
|
|
90
|
+
1. percolator_list_markets
|
|
91
|
+
-> Find what markets exist, optionally filter by token
|
|
92
|
+
|
|
93
|
+
2. percolator_market_state
|
|
94
|
+
-> Check open interest, funding rate direction, insurance fund health
|
|
95
|
+
-> A market with depleted insurance is risky -- bad debt won't be covered
|
|
96
|
+
|
|
97
|
+
3. percolator_deposit
|
|
98
|
+
-> Deposit collateral (the token itself, remember: coin-margined)
|
|
99
|
+
|
|
100
|
+
4. percolator_trade
|
|
101
|
+
-> Positive size = long, negative size = short
|
|
102
|
+
-> Set price_limit to avoid slippage against the vAMM
|
|
103
|
+
|
|
104
|
+
5. percolator_market_state
|
|
105
|
+
-> Monitor your position PnL, check if funding is eating you
|
|
106
|
+
|
|
107
|
+
6. percolator_trade
|
|
108
|
+
-> Close by trading the opposite direction with the same size
|
|
109
|
+
|
|
110
|
+
7. percolator_withdraw
|
|
111
|
+
-> Pull out your collateral + realized profit
|
|
112
|
+
-> Note: profits have a warmup delay before they're withdrawable
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## Key Concepts
|
|
118
|
+
|
|
119
|
+
**Slab tiers** determine how many accounts (positions) a market can hold:
|
|
120
|
+
|
|
121
|
+
| Tier | Max Accounts | Rent Cost |
|
|
122
|
+
|---|---|---|
|
|
123
|
+
| Small | 256 | ~0.44 SOL |
|
|
124
|
+
| Medium | 1024 | ~1.73 SOL |
|
|
125
|
+
| Large | 4096 | ~6.87 SOL |
|
|
126
|
+
|
|
127
|
+
Start Small. You can always upgrade. Don't burn SOL on a Large slab for a market that might see 3 traders.
|
|
128
|
+
|
|
129
|
+
**Coin-margined**: Your collateral IS the token. Trading BONK perps? Collateral is BONK. This means your collateral value fluctuates with the spot price. If you're long and the token dumps, you get hit twice: position loses AND collateral value drops. Understand this before sizing positions.
|
|
130
|
+
|
|
131
|
+
**vAMM**: The virtual AMM provides liquidity without real deposits. It's a pricing curve that the protocol uses to match trades. The spread you set during market creation determines how tight or wide the market is. Wider spread = more protection for you as creator against adverse selection, but worse execution for traders.
|
|
132
|
+
|
|
133
|
+
**Admin-oracle mode**: You push prices yourself from external sources (DexScreener, Jupiter). No Pyth oracle feed needed. This is what makes permissionless creation possible -- you don't need an oracle listing. The tradeoff is you must keep pushing prices or the market goes stale.
|
|
134
|
+
|
|
135
|
+
**Warmup period**: Realized profits aren't immediately withdrawable. There's a time delay. This prevents flash-loan-style exploits and gives the insurance fund time to process.
|
|
136
|
+
|
|
137
|
+
**Funding rate**: Standard perp funding. When longs outweigh shorts, longs pay shorts. When shorts outweigh longs, shorts pay longs. This keeps the perp price anchored to the oracle price. Check funding before opening a position -- you don't want to be on the paying side of a heavily skewed market.
|
|
138
|
+
|
|
139
|
+
**Crank**: The crank processes funding payments and checks for liquidatable positions. It must run periodically. If you created the market, running the crank is your job. If nobody cranks, the market stalls.
|
|
140
|
+
|
|
141
|
+
**Insurance fund**: Accumulates a portion of trading fees. Covers bad debt when a liquidation doesn't fully cover the position's losses. You can LP into it via `percolator_insurance_lp` and earn a share of the fees.
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## Risk Management
|
|
146
|
+
|
|
147
|
+
These aren't suggestions. Follow them.
|
|
148
|
+
|
|
149
|
+
- **Max 10x leverage** for any market you create. Higher leverage means faster liquidations and more bad debt risk for your insurance fund. 10x is already aggressive for memecoins.
|
|
150
|
+
- **Never allocate more than 5% of portfolio** to a single perp position. Coin-margined perps on volatile tokens can move fast. Size accordingly.
|
|
151
|
+
- **Monitor liquidation price** after opening any position. Leave at least a 20% margin buffer above/below your liquidation price. Thin markets gap.
|
|
152
|
+
- **Keep the crank running** if you created the market. A stale crank means funding doesn't accrue, liquidations don't process, and positions get stuck. Set your crank interval to ~30 seconds.
|
|
153
|
+
- **Wide vAMM spread as creator**: Start with a wider spread and tighten as volume proves the market. A tight spread on a low-liquidity market is how you get adversely selected by informed traders.
|
|
154
|
+
- **Check insurance fund health** before trading on someone else's market. If the fund is near zero and there's high OI, one liquidation cascade could cause socialized losses.
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## Revenue Strategy for Agents
|
|
159
|
+
|
|
160
|
+
This is where agent-native market making gets real.
|
|
161
|
+
|
|
162
|
+
**Create perp markets for trending memecoins.** When a token starts pumping and Twitter/CT is talking about it, there's probably no perp market for it yet. Create one. The degens who want 5x long exposure will find it. You earn fees on every trade.
|
|
163
|
+
|
|
164
|
+
**First-mover advantage.** There's only one slab needed per token. If you deploy the BONK perp first, that's the BONK perp market. Volume concentrates. Late entrants split liquidity.
|
|
165
|
+
|
|
166
|
+
**Insurance fund LP.** Find popular markets with real volume and deposit into their insurance fund via `percolator_insurance_lp`. You earn a share of trading fees proportional to your deposit. This is passive yield on top of a functioning market.
|
|
167
|
+
|
|
168
|
+
**Spot + perp combo.** Buy a token on spot (use dex-trading skill). Then create a perp market for it. Now you hold the spot position AND earn fees from leveraged volume. If the token moons, you win on spot. The perp market earns regardless of direction because traders pay fees on both sides.
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## Survival Mode Integration
|
|
173
|
+
|
|
174
|
+
Percolator operations should scale with available resources.
|
|
175
|
+
|
|
176
|
+
**Normal mode**: Full operation. Create markets for trending tokens. Active trading on existing markets. Run keeper/crank on all your markets at 30-second intervals. LP into insurance funds of high-volume markets.
|
|
177
|
+
|
|
178
|
+
**Low Compute mode**: Stop creating new markets (saves SOL rent). Reduce position sizes by 50%. Widen crank interval to 60-90 seconds. Only maintain keeper on your most active markets. No new insurance LP deposits.
|
|
179
|
+
|
|
180
|
+
**Critical mode**: Close ALL open perp positions immediately. Withdraw ALL collateral from all markets. Stop all keeper/crank operations. Preserve capital. Re-enter when resources recover.
|
|
181
|
+
|
|
182
|
+
The transition between modes should be automatic based on wallet balance and compute availability. Don't wait until you're out of SOL to start unwinding.
|
|
183
|
+
|
|
184
|
+
---
|
|
185
|
+
|
|
186
|
+
## Related Skills
|
|
187
|
+
|
|
188
|
+
- **dex-trading** -- Spot trading on Jupiter/Raydium. Use alongside perps for hedging or the spot+perp combo strategy.
|
|
189
|
+
- **lp-farming** -- LP strategies on Solana DEXes. Different risk profile than perp market creation but complementary.
|
|
190
|
+
- **survival** -- Resource management and mode transitions. Governs when to scale perp operations up or down.
|
|
191
|
+
- **trenching** -- Memecoin sniping and momentum trading. Feed trending token signals into perp market creation decisions.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: outsmart-prediction-markets
|
|
3
3
|
description: Trade prediction markets on Solana via Jupiter (which integrates Polymarket) and MetaDAO Futarchy. Use when user says "prediction", "prediction market", "bet", "forecast", "Polymarket", "Jupiter markets", "binary outcome", "will X happen", "probability", "odds", "futarchy", "decision market", or mentions betting on real-world events.
|
|
4
|
-
allowed-tools: mcp__outsmart-agent__solana_buy, mcp__outsmart-agent__solana_sell, mcp__outsmart-agent__solana_token_info, mcp__outsmart-agent__solana_wallet_balance, WebFetch
|
|
4
|
+
allowed-tools: mcp__outsmart-agent__solana_buy, mcp__outsmart-agent__solana_sell, mcp__outsmart-agent__solana_token_info, mcp__outsmart-agent__solana_wallet_balance, mcp__outsmart-agent__jupiter_shield, mcp__outsmart-agent__jupiter_prediction_events, mcp__outsmart-agent__jupiter_prediction_market, mcp__outsmart-agent__jupiter_prediction_order, mcp__outsmart-agent__jupiter_prediction_positions, mcp__outsmart-agent__jupiter_prediction_claim, WebFetch
|
|
5
5
|
model: opus
|
|
6
6
|
license: ISC
|
|
7
7
|
metadata:
|
|
@@ -21,23 +21,33 @@ Bet on real-world outcomes. This is where AI agents have a genuine edge — you'
|
|
|
21
21
|
|
|
22
22
|
**MetaDAO Futarchy** — Different game. Governance markets — "will this proposal make the token go up?" Two conditional markets (pass vs fail), the winning market determines the governance outcome. Outsmart has a `futarchy-amm` adapter for direct trading.
|
|
23
23
|
|
|
24
|
-
##
|
|
24
|
+
## MCP Tools
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
All Jupiter Prediction operations are fully MCP-executable. The agent can browse, bet, and claim autonomously.
|
|
27
27
|
|
|
28
|
-
|
|
|
29
|
-
|
|
30
|
-
|
|
|
31
|
-
|
|
|
32
|
-
|
|
|
33
|
-
|
|
|
34
|
-
|
|
|
35
|
-
|
|
|
36
|
-
| `/positions/{id}/claim` | POST | **No** | Claim winning payout (needs signing) |
|
|
28
|
+
| Tool | What It Does |
|
|
29
|
+
|------|-------------|
|
|
30
|
+
| `jupiter_prediction_events` | Browse/search events by category, status, or keyword |
|
|
31
|
+
| `jupiter_prediction_market` | Get market details, pricing, and orderbook depth |
|
|
32
|
+
| `jupiter_prediction_order` | Place buy/sell orders on YES/NO contracts (signs + submits tx) |
|
|
33
|
+
| `jupiter_prediction_positions` | List your positions, open orders, and trade history |
|
|
34
|
+
| `jupiter_prediction_claim` | Claim winnings from resolved markets |
|
|
35
|
+
| `jupiter_shield` | Check token security warnings (useful for market research) |
|
|
37
36
|
|
|
38
37
|
Fees scale with uncertainty — contracts near $0.50 cost more to trade. No fees on claiming payouts.
|
|
39
38
|
|
|
40
|
-
**Futarchy markets
|
|
39
|
+
**Futarchy markets** use a different path — `solana_buy(dex="futarchy-amm", pool=MARKET_POOL)` to trade governance proposals directly.
|
|
40
|
+
|
|
41
|
+
### Workflow
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
1. jupiter_prediction_events(category="crypto") → find interesting markets
|
|
45
|
+
2. jupiter_prediction_market(market_id) → check pricing, orderbook depth
|
|
46
|
+
3. Research the question (WebFetch, solana_token_info, etc.)
|
|
47
|
+
4. jupiter_prediction_order(market_id, side="buy", outcome="yes", amount=10) → bet
|
|
48
|
+
5. jupiter_prediction_positions() → track your positions
|
|
49
|
+
6. jupiter_prediction_claim(market_id) → collect when market resolves
|
|
50
|
+
```
|
|
41
51
|
|
|
42
52
|
## The Only Rule: Edge
|
|
43
53
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: outsmart-trenching
|
|
3
3
|
description: Trade memecoins on Solana like a degen. Use when user says "memecoin", "trench", "trenching", "degen", "ape", "GMGN", "Axiom", "pump", "moon", "100x", "gem", "alpha", "CT", "crypto twitter", "smart money", "whale", "fresh wallet", "dev wallet", "rug", "honeypot", "insider", "sniper", "copy trade", or mentions memecoin trading on Solana.
|
|
4
|
-
allowed-tools: mcp__outsmart-agent__solana_buy, mcp__outsmart-agent__solana_sell, mcp__outsmart-agent__solana_token_info, mcp__outsmart-agent__solana_quote, mcp__outsmart-agent__solana_wallet_balance, mcp__outsmart-agent__solana_list_dexes, WebFetch
|
|
4
|
+
allowed-tools: mcp__outsmart-agent__solana_buy, mcp__outsmart-agent__solana_sell, mcp__outsmart-agent__solana_token_info, mcp__outsmart-agent__solana_quote, mcp__outsmart-agent__solana_wallet_balance, mcp__outsmart-agent__solana_list_dexes, mcp__outsmart-agent__jupiter_shield, WebFetch
|
|
5
5
|
model: opus
|
|
6
6
|
license: ISC
|
|
7
7
|
metadata:
|