@catalyst-team/poly-mcp 0.1.1 → 0.1.3

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.
Files changed (107) hide show
  1. package/README.md +264 -21
  2. package/dist/errors.d.ts +11 -0
  3. package/dist/errors.d.ts.map +1 -1
  4. package/dist/errors.js +13 -2
  5. package/dist/errors.js.map +1 -1
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +98 -5
  8. package/dist/index.js.map +1 -1
  9. package/dist/sdk-instance.d.ts +27 -0
  10. package/dist/sdk-instance.d.ts.map +1 -0
  11. package/dist/sdk-instance.js +64 -0
  12. package/dist/sdk-instance.js.map +1 -0
  13. package/dist/server.d.ts +13 -1
  14. package/dist/server.d.ts.map +1 -1
  15. package/dist/server.js +29 -27
  16. package/dist/server.js.map +1 -1
  17. package/dist/tools/guide.d.ts.map +1 -1
  18. package/dist/tools/guide.js +159 -1
  19. package/dist/tools/guide.js.map +1 -1
  20. package/dist/tools/index.d.ts +8 -4
  21. package/dist/tools/index.d.ts.map +1 -1
  22. package/dist/tools/index.js +20 -4
  23. package/dist/tools/index.js.map +1 -1
  24. package/dist/tools/insider-detection.d.ts +175 -0
  25. package/dist/tools/insider-detection.d.ts.map +1 -0
  26. package/dist/tools/insider-detection.js +654 -0
  27. package/dist/tools/insider-detection.js.map +1 -0
  28. package/dist/tools/insider-signals.d.ts +56 -0
  29. package/dist/tools/insider-signals.d.ts.map +1 -0
  30. package/dist/tools/insider-signals.js +170 -0
  31. package/dist/tools/insider-signals.js.map +1 -0
  32. package/dist/tools/market.d.ts +25 -1
  33. package/dist/tools/market.d.ts.map +1 -1
  34. package/dist/tools/market.js +504 -12
  35. package/dist/tools/market.js.map +1 -1
  36. package/dist/tools/onchain.d.ts +240 -0
  37. package/dist/tools/onchain.d.ts.map +1 -0
  38. package/dist/tools/onchain.js +610 -0
  39. package/dist/tools/onchain.js.map +1 -0
  40. package/dist/tools/order.d.ts.map +1 -1
  41. package/dist/tools/order.js +13 -6
  42. package/dist/tools/order.js.map +1 -1
  43. package/dist/tools/trade.d.ts +15 -0
  44. package/dist/tools/trade.d.ts.map +1 -1
  45. package/dist/tools/trade.js +216 -39
  46. package/dist/tools/trade.js.map +1 -1
  47. package/dist/tools/trader.d.ts +4 -1
  48. package/dist/tools/trader.d.ts.map +1 -1
  49. package/dist/tools/trader.js +316 -4
  50. package/dist/tools/trader.js.map +1 -1
  51. package/dist/tools/wallet-classification.d.ts +166 -0
  52. package/dist/tools/wallet-classification.d.ts.map +1 -0
  53. package/dist/tools/wallet-classification.js +455 -0
  54. package/dist/tools/wallet-classification.js.map +1 -0
  55. package/dist/tools/wallet.d.ts +56 -7
  56. package/dist/tools/wallet.d.ts.map +1 -1
  57. package/dist/tools/wallet.js +141 -20
  58. package/dist/tools/wallet.js.map +1 -1
  59. package/dist/types.d.ts +269 -10
  60. package/dist/types.d.ts.map +1 -1
  61. package/dist/wallet-manager.d.ts +67 -0
  62. package/dist/wallet-manager.d.ts.map +1 -0
  63. package/dist/wallet-manager.js +180 -0
  64. package/dist/wallet-manager.js.map +1 -0
  65. package/docs/01-mcp.md +554 -32
  66. package/docs/02-wallet-deep-research.md +344 -0
  67. package/docs/e2e-02/00-gap-analysis.md +211 -0
  68. package/docs/e2e-02/01-test-scenarios.md +530 -0
  69. package/docs/e2e-02/02-implementation-plan.md +190 -0
  70. package/docs/e2e-02/README.md +102 -0
  71. package/docs/reports/simonbanza-strategy-analysis-2025-12-25.md +420 -0
  72. package/docs/reports/smart-money-analysis-2025-12-23-cn.md +840 -0
  73. package/docs/reports/smart-money-trading-strategies-2025-12-25.md +440 -0
  74. package/docs/reports/weekly/01-v2.5.md +352 -0
  75. package/docs/reports/weekly/01.md +402 -0
  76. package/docs/reports/weekly/02-deep.md +558 -0
  77. package/docs/reports/weekly/02.md +505 -0
  78. package/docs/reports/weekly/03.md +437 -0
  79. package/docs/reports/weekly/04.md +418 -0
  80. package/docs/reports/weekly/05.md +485 -0
  81. package/docs/reports/weekly/06.md +436 -0
  82. package/docs/reports/weekly/07.md +381 -0
  83. package/docs/reports/weekly/08.md +502 -0
  84. package/docs/reports/weekly/09.md +441 -0
  85. package/docs/reports/weekly/10.md +511 -0
  86. package/docs/reports/weekly/README.md +188 -0
  87. package/docs/reports/weekly/prompt-v2.5.md +1019 -0
  88. package/docs/reports/weekly/prompt-v3.md +432 -0
  89. package/docs/reports/weekly/prompt.md +841 -0
  90. package/package.json +3 -2
  91. package/src/errors.ts +13 -2
  92. package/src/index.ts +286 -1
  93. package/src/sdk-instance.ts +78 -0
  94. package/src/server.ts +30 -28
  95. package/src/tools/guide.ts +160 -1
  96. package/src/tools/index.ts +65 -0
  97. package/src/tools/insider-detection.ts +899 -0
  98. package/src/tools/insider-signals.ts +213 -0
  99. package/src/tools/market.ts +569 -12
  100. package/src/tools/onchain.ts +738 -0
  101. package/src/tools/order.ts +25 -12
  102. package/src/tools/trade.ts +265 -53
  103. package/src/tools/trader.ts +350 -4
  104. package/src/tools/wallet-classification.ts +587 -0
  105. package/src/tools/wallet.ts +172 -23
  106. package/src/types.ts +294 -11
  107. package/src/wallet-manager.ts +209 -0
@@ -0,0 +1,240 @@
1
+ /**
2
+ * Onchain Tools - MCP tools for CTF (Conditional Token Framework) operations
3
+ *
4
+ * These tools use the OnchainService from poly-sdk:
5
+ * - Split: USDC -> YES + NO tokens
6
+ * - Merge: YES + NO tokens -> USDC
7
+ * - Redeem: Winning tokens -> USDC (after market resolution)
8
+ * - Position balance queries
9
+ * - Market resolution status
10
+ * - Gas estimation
11
+ *
12
+ * ## Token ID Auto-Discovery
13
+ *
14
+ * Polymarket CLOB markets use custom ERC-1155 token IDs that differ from
15
+ * standard CTF calculated positionIds. These tools auto-discover tokenIds
16
+ * from the CLOB API when not explicitly provided.
17
+ *
18
+ * ## Dynamic Outcome Names
19
+ *
20
+ * Markets can have different outcome names:
21
+ * - Yes/No (standard)
22
+ * - Up/Down (crypto short-term)
23
+ * - Team A/Team B (sports)
24
+ *
25
+ * The tools handle all outcome types dynamically.
26
+ */
27
+ import { type TokenIds } from '@catalyst-team/poly-sdk';
28
+ import type { ToolDefinition } from '../types.js';
29
+ export declare const onchainToolDefinitions: ToolDefinition[];
30
+ interface CtfSplitInput {
31
+ conditionId: string;
32
+ amount: string;
33
+ }
34
+ interface CtfMergeInput {
35
+ conditionId: string;
36
+ amount: string;
37
+ tokenIds?: TokenIds;
38
+ }
39
+ interface CtfRedeemInput {
40
+ conditionId: string;
41
+ tokenIds?: TokenIds;
42
+ /** Dynamic outcome name - can be Yes/No, Up/Down, Team A/B, etc. */
43
+ outcome?: string;
44
+ }
45
+ interface GetPositionBalanceInput {
46
+ conditionId: string;
47
+ tokenIds?: TokenIds;
48
+ }
49
+ interface GetMarketResolutionInput {
50
+ conditionId: string;
51
+ }
52
+ interface CheckCtfReadyInput {
53
+ amount: string;
54
+ }
55
+ interface EstimateGasInput {
56
+ operation: 'split' | 'merge';
57
+ conditionId: string;
58
+ amount: string;
59
+ }
60
+ /**
61
+ * Split USDC into YES + NO tokens
62
+ */
63
+ export declare function handleCtfSplit(input: CtfSplitInput): Promise<{
64
+ success: boolean;
65
+ error: string | undefined;
66
+ wallet: string;
67
+ conditionId: string;
68
+ amount: string;
69
+ yesTokens?: undefined;
70
+ noTokens?: undefined;
71
+ txHash?: undefined;
72
+ gasUsed?: undefined;
73
+ explorerUrl?: undefined;
74
+ message?: undefined;
75
+ } | {
76
+ success: boolean;
77
+ wallet: string;
78
+ conditionId: string;
79
+ amount: string;
80
+ yesTokens: string;
81
+ noTokens: string;
82
+ txHash: string;
83
+ gasUsed: string | undefined;
84
+ explorerUrl: string;
85
+ message: string;
86
+ error?: undefined;
87
+ }>;
88
+ /**
89
+ * Merge primary + secondary tokens back to USDC
90
+ *
91
+ * Automatically discovers tokenIds from CLOB API if not provided.
92
+ */
93
+ export declare function handleCtfMerge(input: CtfMergeInput): Promise<{
94
+ success: boolean;
95
+ error: string;
96
+ wallet: string;
97
+ conditionId: string;
98
+ amount: string;
99
+ tokenIdsSource: "provided" | "auto-discovered" | "calculated";
100
+ outcomeNames: {
101
+ primary: string;
102
+ secondary: string;
103
+ } | undefined;
104
+ hint: string | undefined;
105
+ usdcReceived?: undefined;
106
+ txHash?: undefined;
107
+ gasUsed?: undefined;
108
+ explorerUrl?: undefined;
109
+ message?: undefined;
110
+ } | {
111
+ success: boolean;
112
+ wallet: string;
113
+ conditionId: string;
114
+ amount: string;
115
+ usdcReceived: string;
116
+ txHash: string;
117
+ gasUsed: string | undefined;
118
+ explorerUrl: string;
119
+ tokenIdsSource: "provided" | "auto-discovered" | "calculated";
120
+ outcomeNames: {
121
+ primary: string;
122
+ secondary: string;
123
+ } | undefined;
124
+ message: string;
125
+ error?: undefined;
126
+ hint?: undefined;
127
+ }>;
128
+ /**
129
+ * Redeem winning tokens after market resolution
130
+ *
131
+ * Automatically discovers tokenIds from CLOB API if not provided.
132
+ */
133
+ export declare function handleCtfRedeem(input: CtfRedeemInput): Promise<{
134
+ success: boolean;
135
+ error: string;
136
+ wallet: string;
137
+ conditionId: string;
138
+ isResolved: boolean;
139
+ winningOutcome?: undefined;
140
+ tokensRedeemed?: undefined;
141
+ usdcReceived?: undefined;
142
+ txHash?: undefined;
143
+ gasUsed?: undefined;
144
+ explorerUrl?: undefined;
145
+ tokenIdsSource?: undefined;
146
+ outcomeNames?: undefined;
147
+ message?: undefined;
148
+ } | {
149
+ success: boolean;
150
+ wallet: string;
151
+ conditionId: string;
152
+ winningOutcome: string | undefined;
153
+ tokensRedeemed: string;
154
+ usdcReceived: string;
155
+ txHash: string;
156
+ gasUsed: string | undefined;
157
+ explorerUrl: string;
158
+ tokenIdsSource: "provided" | "auto-discovered" | "calculated";
159
+ outcomeNames: {
160
+ primary: string;
161
+ secondary: string;
162
+ } | undefined;
163
+ message: string;
164
+ error?: undefined;
165
+ isResolved?: undefined;
166
+ }>;
167
+ /**
168
+ * Get token balances for a market position
169
+ *
170
+ * Automatically discovers tokenIds from CLOB API if not provided.
171
+ */
172
+ export declare function handleGetPositionBalance(input: GetPositionBalanceInput): Promise<{
173
+ wallet: string;
174
+ conditionId: string;
175
+ balances: {
176
+ [x: string]: string;
177
+ };
178
+ positionIds: {
179
+ [x: string]: string;
180
+ };
181
+ outcomeNames: {
182
+ primary: string;
183
+ secondary: string;
184
+ } | undefined;
185
+ tokenIdsSource: "provided" | "auto-discovered" | "calculated";
186
+ hasPosition: boolean;
187
+ }>;
188
+ /**
189
+ * Check if market is resolved
190
+ */
191
+ export declare function handleGetMarketResolution(input: GetMarketResolutionInput): Promise<{
192
+ conditionId: string;
193
+ isResolved: boolean;
194
+ winningOutcome: string | undefined;
195
+ payoutNumerators: [number, number];
196
+ payoutDenominator: number;
197
+ message: string;
198
+ }>;
199
+ /**
200
+ * Check if wallet is ready for CTF trading
201
+ */
202
+ export declare function handleCheckCtfReady(input: CheckCtfReadyInput): Promise<{
203
+ wallet: string;
204
+ ready: boolean;
205
+ balances: {
206
+ usdcE: string;
207
+ nativeUsdc: string;
208
+ matic: string;
209
+ };
210
+ tradingReady: boolean;
211
+ issues: string[];
212
+ suggestion: string | undefined;
213
+ message: string;
214
+ }>;
215
+ /**
216
+ * Estimate gas for CTF operation
217
+ */
218
+ export declare function handleEstimateGas(input: EstimateGasInput): Promise<{
219
+ operation: "split" | "merge";
220
+ conditionId: string;
221
+ amount: string;
222
+ gas: {
223
+ gasUnits: string;
224
+ gasPriceGwei: string;
225
+ costMatic: string;
226
+ costUsdc: string;
227
+ maticPrice: number;
228
+ };
229
+ message: string;
230
+ }>;
231
+ /**
232
+ * Get current gas price
233
+ */
234
+ export declare function handleGetGasPrice(): Promise<{
235
+ gwei: string;
236
+ wei: string;
237
+ message: string;
238
+ }>;
239
+ export {};
240
+ //# sourceMappingURL=onchain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onchain.d.ts","sourceRoot":"","sources":["../../src/tools/onchain.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAEL,KAAK,QAAQ,EAEd,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AA+ClD,eAAO,MAAM,sBAAsB,EAAE,cAAc,EAqJlD,CAAC;AAIF,UAAU,aAAa;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,aAAa;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,UAAU,cAAc;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAaD,UAAU,uBAAuB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,UAAU,wBAAwB;IAChC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,kBAAkB;IAC1B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,gBAAgB;IACxB,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB;AAqCD;;GAEG;AACH,wBAAsB,cAAc,CAAC,KAAK,EAAE,aAAa;;;;;;;;;;;;;;;;;;;;;;;;GA2CxD;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,KAAK,EAAE,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmGxD;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,KAAK,EAAE,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2E1D;AAED;;;;GAIG;AACH,wBAAsB,wBAAwB,CAAC,KAAK,EAAE,uBAAuB;;;;;;;;;;;;;;;GAuD5E;AAED;;GAEG;AACH,wBAAsB,yBAAyB,CAAC,KAAK,EAAE,wBAAwB;;;;;;;GAoB9E;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,kBAAkB;;;;;;;;;;;;GA8BlE;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,gBAAgB;;;;;;;;;;;;GA2C9D;AAED;;GAEG;AACH,wBAAsB,iBAAiB;;;;GAatC"}