@0xprotovox/deficlaw 0.5.0 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +222 -194
- package/dist/analysis/formatOutput.js +3 -1
- package/dist/analysis/formatOutput.js.map +1 -1
- package/dist/analysis/summaryGenerator.js +14 -5
- package/dist/analysis/summaryGenerator.js.map +1 -1
- package/dist/server.js +1 -1
- package/dist/sources/jupiter.d.ts +4 -27
- package/dist/sources/jupiter.js +28 -71
- package/dist/sources/jupiter.js.map +1 -1
- package/dist/test.js +1 -1
- package/dist/tools/analyzeToken.js +3 -1
- package/dist/tools/analyzeToken.js.map +1 -1
- package/dist/tools/estimateSlippage.d.ts +4 -4
- package/dist/tools/estimateSlippage.js +41 -38
- package/dist/tools/estimateSlippage.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,291 +1,286 @@
|
|
|
1
|
+
[](https://www.npmjs.com/package/@0xprotovox/deficlaw)
|
|
2
|
+
[](https://opensource.org/licenses/MIT)
|
|
3
|
+
[](https://nodejs.org)
|
|
4
|
+
[](https://modelcontextprotocol.io)
|
|
5
|
+
|
|
1
6
|
# deficlaw
|
|
2
7
|
|
|
3
8
|
**The first open-source DeFi MCP server for Claude Code.**
|
|
4
9
|
|
|
5
|
-
Analyze any
|
|
10
|
+
Analyze any token in seconds. Holder intelligence, risk scoring, smart money tracking, KOL detection, slippage estimation, contract security. Zero API keys required.
|
|
6
11
|
|
|
7
12
|
```
|
|
8
|
-
> "analyze token
|
|
13
|
+
> "analyze Jupiter token"
|
|
9
14
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
Only 18.0% of holders are in profit, most are underwater with avg loss of $844 per wallet.
|
|
14
|
-
Buy pressure is strong at 3.3:1 ratio (1093 buys vs 395 sells), accumulation phase.
|
|
15
|
+
JUP is a 2.2y old Meteora token with $1.2M liquidity and $525.1M market cap.
|
|
16
|
+
Top 5 wallets control 61.5% of supply, very concentrated.
|
|
17
|
+
30 diamond hands among holders, decent conviction.
|
|
15
18
|
Contract looks safe: mint and freeze authorities revoked.
|
|
16
|
-
|
|
19
|
+
10 KOLs tracked: 5 holding, 5 selling.
|
|
20
|
+
|
|
21
|
+
Risk: 18/100 [LOW]
|
|
22
|
+
VERDICT: NEUTRAL — Mixed signals: 2 bull vs 2 bear.
|
|
23
|
+
Sources: dexscreener + gmgn + solana-rpc | 1.1s
|
|
17
24
|
```
|
|
18
25
|
|
|
19
26
|
## Why deficlaw?
|
|
20
27
|
|
|
21
28
|
Claude Code can write code, fix bugs, deploy apps. But ask it "what's the price of BONK?" and it says *"I don't have real-time data."*
|
|
22
29
|
|
|
23
|
-
**deficlaw fixes that.**
|
|
30
|
+
**deficlaw fixes that.** 9 tools, 3 data sources, zero config.
|
|
24
31
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
32
|
+
| Feature | Details |
|
|
33
|
+
|---------|---------|
|
|
34
|
+
| **Token Analysis** | Holder intelligence, risk scoring, KOL tracking, actionable verdicts |
|
|
35
|
+
| **Real-time Prices** | Sub-second lookups across Solana, Ethereum, Base, BSC, Arbitrum |
|
|
36
|
+
| **Trending Tokens** | Volume, liquidity, and boost data from DexScreener |
|
|
37
|
+
| **New Launches** | Recently created tokens with age, mcap, liquidity |
|
|
38
|
+
| **Top Traders** | Who made and lost money on any token with PnL breakdown |
|
|
39
|
+
| **Token Search** | Find any token by name or symbol across all chains |
|
|
40
|
+
| **Slippage Estimation** | Jupiter-based price impact for $50-$1000 buys |
|
|
41
|
+
| **Token Comparison** | Side-by-side analysis of two tokens |
|
|
42
|
+
| **Contract Security** | Mint/freeze authority, supply checks on Solana |
|
|
35
43
|
|
|
36
44
|
## Install
|
|
37
45
|
|
|
38
|
-
### Option A: npm (recommended)
|
|
39
|
-
|
|
40
46
|
```bash
|
|
41
47
|
npm install -g @0xprotovox/deficlaw
|
|
42
48
|
claude mcp add defi -- deficlaw
|
|
43
49
|
```
|
|
44
50
|
|
|
45
|
-
|
|
51
|
+
That's it. No API keys, no config files, no accounts needed.
|
|
52
|
+
|
|
53
|
+
<details>
|
|
54
|
+
<summary>Install from source</summary>
|
|
46
55
|
|
|
47
56
|
```bash
|
|
48
57
|
git clone https://github.com/0xprotovox/deficlaw.git
|
|
49
|
-
cd deficlaw
|
|
50
|
-
npm install && npm run build
|
|
58
|
+
cd deficlaw && npm install && npm run build
|
|
51
59
|
claude mcp add defi -- node /path/to/deficlaw/dist/index.js
|
|
52
60
|
```
|
|
61
|
+
</details>
|
|
53
62
|
|
|
54
|
-
|
|
63
|
+
## Quick Start
|
|
55
64
|
|
|
56
|
-
|
|
65
|
+
Once installed, just type naturally in Claude Code:
|
|
57
66
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
### Check a token price (fastest, ~300ms)
|
|
67
|
+
### Prices (fastest, ~50ms cached / ~300ms first call)
|
|
61
68
|
```
|
|
62
69
|
> what's the price of BONK?
|
|
63
70
|
> price of JUP
|
|
64
71
|
> how much is SOL right now?
|
|
65
72
|
```
|
|
66
73
|
|
|
67
|
-
###
|
|
68
|
-
```
|
|
69
|
-
> quick analyze So11111...
|
|
70
|
-
> give me a quick look at this token: 3oQw...pump
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
### Full deep analysis (~1.5s, with holders + risk + verdict)
|
|
74
|
+
### Full Analysis (~1.1s with holders + risk + verdict)
|
|
74
75
|
```
|
|
75
|
-
> analyze token
|
|
76
|
-
> deep analyze
|
|
76
|
+
> analyze token JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN
|
|
77
|
+
> deep analyze BONK
|
|
77
78
|
> is this token safe? EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
|
|
78
79
|
```
|
|
79
80
|
|
|
80
|
-
###
|
|
81
|
+
### Quick Scan (~350ms, price + risk only, no holders)
|
|
81
82
|
```
|
|
82
|
-
>
|
|
83
|
-
> give me a
|
|
83
|
+
> quick analyze So11111...
|
|
84
|
+
> give me a quick look at this token
|
|
84
85
|
```
|
|
85
86
|
|
|
86
|
-
### Search
|
|
87
|
+
### Search, Trending, New Launches
|
|
87
88
|
```
|
|
88
89
|
> search for BONK
|
|
89
|
-
> find tokens named "dog"
|
|
90
|
-
> search Jupiter token
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
### Trending tokens
|
|
94
|
-
```
|
|
95
90
|
> what's trending on solana?
|
|
96
|
-
> show
|
|
97
|
-
> top tokens on base right now
|
|
91
|
+
> show new launches on solana in the last 30 minutes
|
|
98
92
|
```
|
|
99
93
|
|
|
100
|
-
###
|
|
94
|
+
### Top Traders & Comparison
|
|
101
95
|
```
|
|
102
|
-
>
|
|
103
|
-
>
|
|
96
|
+
> who profited on this token?
|
|
97
|
+
> compare JUP vs BONK
|
|
104
98
|
```
|
|
105
99
|
|
|
106
|
-
###
|
|
100
|
+
### Slippage & Security
|
|
107
101
|
```
|
|
108
|
-
>
|
|
109
|
-
>
|
|
110
|
-
> who lost money on BONK?
|
|
102
|
+
> estimate slippage for buying this token
|
|
103
|
+
> is this token contract safe?
|
|
111
104
|
```
|
|
112
105
|
|
|
113
|
-
|
|
114
|
-
- Use **quick mode** for fast scans when you just need price + risk
|
|
115
|
-
- Use **compact mode** when you want holder data but don't need the full 20-holder table
|
|
116
|
-
- **Paste any Solana token address** and ask "is this safe?" for instant security + risk check
|
|
117
|
-
- Chain commands: "analyze this token and tell me if I should buy it"
|
|
118
|
-
- Works with **any chain** for prices: solana, ethereum, base, bsc, arbitrum
|
|
119
|
-
|
|
120
|
-
## Tools
|
|
106
|
+
## Tools Reference
|
|
121
107
|
|
|
122
108
|
### `analyze_token`
|
|
123
109
|
|
|
124
110
|
Full token analysis with holder intelligence, risk scoring, and human-readable summary.
|
|
125
111
|
|
|
126
|
-
**Input:**
|
|
127
112
|
| Parameter | Type | Default | Description |
|
|
128
113
|
|-----------|------|---------|-------------|
|
|
129
|
-
| `address` | string | required | Token contract address |
|
|
114
|
+
| `address` | string | *required* | Token contract address |
|
|
130
115
|
| `chain` | string | `"solana"` | Blockchain (solana, ethereum, bsc, base, arbitrum) |
|
|
131
116
|
| `include_holders` | boolean | `true` | Include GMGN holder analysis |
|
|
117
|
+
| `quick` | boolean | `false` | Quick mode: skip holders, price/market/risk only (<1s) |
|
|
118
|
+
| `compact` | boolean | `false` | Compact response: summary, price, risk, top 5 holders only |
|
|
132
119
|
|
|
133
|
-
**
|
|
134
|
-
- Token info (name, symbol, age, socials)
|
|
135
|
-
- Price with 5m/1h/6h/24h changes
|
|
136
|
-
- Market data (mcap, fdv, volume, liquidity, vol/liq ratio)
|
|
137
|
-
- Contract security (mint authority, freeze authority, supply)
|
|
138
|
-
- Risk score (0-100) with detailed flags
|
|
139
|
-
- Holder concentration (top 5/10/20)
|
|
140
|
-
- Holder categories (diamond hands, snipers, KOLs, fresh wallets, insiders)
|
|
141
|
-
- Buy/sell pressure ratio
|
|
142
|
-
- Sentiment (profitable vs underwater holders, avg PnL)
|
|
143
|
-
- Dev wallet detection and status
|
|
144
|
-
- Top 20 holders table with PnL and tags
|
|
145
|
-
- KOL list with Twitter handles
|
|
146
|
-
- Human-readable summary with actionable insights
|
|
120
|
+
**Returns:** Token info, price (5m/1h/6h/24h), market data (mcap, fdv, volume, liquidity), contract security, risk score (0-100), holder concentration, holder categories (diamond hands, snipers, KOLs, fresh wallets, insiders, smart money), buy/sell pressure, dev wallet status, top 20 holders with PnL, KOL list, socials, actionable verdict (BUY/SELL/NEUTRAL/AVOID).
|
|
147
121
|
|
|
148
|
-
### `
|
|
122
|
+
### `get_price`
|
|
149
123
|
|
|
150
|
-
|
|
124
|
+
Sub-second price lookup. Accepts both addresses and name/symbol searches.
|
|
151
125
|
|
|
152
|
-
|
|
153
|
-
|
|
126
|
+
| Parameter | Type | Default | Description |
|
|
127
|
+
|-----------|------|---------|-------------|
|
|
128
|
+
| `token` | string | *required* | Token address or search query |
|
|
129
|
+
| `chain` | string | `"solana"` | Blockchain |
|
|
154
130
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
```
|
|
131
|
+
### `search_token`
|
|
132
|
+
|
|
133
|
+
Search tokens by name or symbol across all chains.
|
|
159
134
|
|
|
160
|
-
**Input:**
|
|
161
135
|
| Parameter | Type | Default | Description |
|
|
162
136
|
|-----------|------|---------|-------------|
|
|
163
|
-
| `query` | string | required | Token name or symbol |
|
|
137
|
+
| `query` | string | *required* | Token name or symbol (e.g. "BONK", "Jupiter") |
|
|
164
138
|
| `chain` | string | all | Filter by chain |
|
|
165
139
|
| `limit` | number | `10` | Results to return (1-20) |
|
|
166
140
|
|
|
167
|
-
### `
|
|
141
|
+
### `get_trending`
|
|
168
142
|
|
|
169
|
-
|
|
143
|
+
Trending and boosted tokens with price enrichment.
|
|
170
144
|
|
|
171
|
-
|
|
172
|
-
|
|
145
|
+
| Parameter | Type | Default | Description |
|
|
146
|
+
|-----------|------|---------|-------------|
|
|
147
|
+
| `chain` | string | `"solana"` | Blockchain |
|
|
148
|
+
| `limit` | number | `20` | Number of tokens (1-50) |
|
|
173
149
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
150
|
+
### `get_new_launches`
|
|
151
|
+
|
|
152
|
+
Recently created tokens sorted by creation time.
|
|
177
153
|
|
|
178
|
-
**Input:**
|
|
179
154
|
| Parameter | Type | Default | Description |
|
|
180
155
|
|-----------|------|---------|-------------|
|
|
181
156
|
| `chain` | string | `"solana"` | Blockchain |
|
|
182
157
|
| `max_age_minutes` | number | `60` | Max token age in minutes (5-1440) |
|
|
183
158
|
| `limit` | number | `20` | Tokens to return (1-50) |
|
|
184
159
|
|
|
185
|
-
### `get_price`
|
|
186
|
-
|
|
187
|
-
Quick price lookup. Sub-second response. Supports both token addresses and name/symbol search.
|
|
188
|
-
|
|
189
|
-
```
|
|
190
|
-
> "price of So11111112222..."
|
|
191
|
-
|
|
192
|
-
BONK -- $0.000024 (+5.2% 24h)
|
|
193
|
-
Volume: $142M | Liquidity: $12M | MCap: $1.8B
|
|
194
|
-
```
|
|
195
|
-
|
|
196
|
-
### `get_trending`
|
|
197
|
-
|
|
198
|
-
Trending and boosted tokens on any chain.
|
|
199
|
-
|
|
200
|
-
```
|
|
201
|
-
> "trending tokens on solana"
|
|
202
|
-
|
|
203
|
-
1. BONK -- $0.000024 (+12%) -- $142M volume
|
|
204
|
-
2. WIF -- $0.89 (-2.1%) -- $89M volume
|
|
205
|
-
3. JUP -- $0.94 (+3.5%) -- $45M volume
|
|
206
|
-
...
|
|
207
|
-
```
|
|
208
|
-
|
|
209
160
|
### `get_top_traders`
|
|
210
161
|
|
|
211
|
-
Who made and lost money on a token.
|
|
162
|
+
Who made and lost money on a token. Shows winners and losers with PnL, tags, and Twitter handles.
|
|
212
163
|
|
|
213
|
-
|
|
214
|
-
|
|
164
|
+
| Parameter | Type | Default | Description |
|
|
165
|
+
|-----------|------|---------|-------------|
|
|
166
|
+
| `address` | string | *required* | Token contract address |
|
|
167
|
+
| `limit` | number | `10` | Number of top winners/losers (1-50) |
|
|
215
168
|
|
|
216
|
-
|
|
217
|
-
1. CR5N... -- +$680 (+124%) still holding
|
|
218
|
-
2. EsRB... -- +$166 (+16%) diamond hands
|
|
169
|
+
### `estimate_slippage`
|
|
219
170
|
|
|
220
|
-
|
|
221
|
-
1. BgeeV... -- -$7,548 (-65%) diamond hands (!)
|
|
222
|
-
2. 5vqid... -- -$5,420 (-50%) gmgn user
|
|
223
|
-
```
|
|
171
|
+
Jupiter-based price impact estimation for $50, $100, $500, $1000 buys. Solana only.
|
|
224
172
|
|
|
225
|
-
|
|
173
|
+
| Parameter | Type | Default | Description |
|
|
174
|
+
|-----------|------|---------|-------------|
|
|
175
|
+
| `address` | string | *required* | Solana token mint address |
|
|
226
176
|
|
|
227
|
-
|
|
177
|
+
### `compare_tokens`
|
|
228
178
|
|
|
229
|
-
|
|
230
|
-
|--------|------|-------|
|
|
231
|
-
| **DexScreener** | Prices, volume, liquidity, pairs, trending | <0.5s |
|
|
232
|
-
| **GMGN** | Holders, tags, KOLs, PnL, dev wallet, snipers | ~1s |
|
|
233
|
-
| **Solana RPC** | Mint authority, freeze authority, supply | <0.5s |
|
|
179
|
+
Side-by-side comparison of two tokens: price, mcap, volume, liquidity, age, holders.
|
|
234
180
|
|
|
235
|
-
|
|
181
|
+
| Parameter | Type | Default | Description |
|
|
182
|
+
|-----------|------|---------|-------------|
|
|
183
|
+
| `address_a` | string | *required* | First token address |
|
|
184
|
+
| `address_b` | string | *required* | Second token address |
|
|
185
|
+
| `chain` | string | `"solana"` | Blockchain |
|
|
236
186
|
|
|
237
|
-
|
|
187
|
+
### `get_token_security`
|
|
238
188
|
|
|
239
|
-
|
|
189
|
+
Quick contract security check. Solana only.
|
|
240
190
|
|
|
241
|
-
|
|
191
|
+
| Parameter | Type | Default | Description |
|
|
192
|
+
|-----------|------|---------|-------------|
|
|
193
|
+
| `address` | string | *required* | Solana token mint address |
|
|
242
194
|
|
|
243
|
-
|
|
195
|
+
**Returns:** Mint authority status, freeze authority status, total supply, decimals, and a SAFE/CAUTION/DANGEROUS verdict.
|
|
244
196
|
|
|
245
|
-
##
|
|
197
|
+
## Architecture
|
|
246
198
|
|
|
247
|
-
|
|
199
|
+
```
|
|
200
|
+
Claude Code
|
|
201
|
+
|
|
|
202
|
+
| MCP stdio
|
|
203
|
+
v
|
|
204
|
+
+------------------+
|
|
205
|
+
| deficlaw |
|
|
206
|
+
| MCP Server |
|
|
207
|
+
| |
|
|
208
|
+
| +-- Cache ----+ | +--------------+
|
|
209
|
+
| | TTL-based | | ---> | DexScreener | prices, volume,
|
|
210
|
+
| | in-memory | | | (free API) | liquidity, pairs
|
|
211
|
+
| +-------------+ | +--------------+
|
|
212
|
+
| |
|
|
213
|
+
| +-- Risk ----+ | +--------------+
|
|
214
|
+
| | 8-dimension | | ---> | GMGN | holders, KOLs,
|
|
215
|
+
| | scorer | | | (curl/PW) | tags, PnL
|
|
216
|
+
| +-------------+ | +--------------+
|
|
217
|
+
| |
|
|
218
|
+
| +-- Summary --+ | +--------------+
|
|
219
|
+
| | Rule-based | | ---> | Solana RPC | mint/freeze auth,
|
|
220
|
+
| | generator | | | (free) | supply, LP detect
|
|
221
|
+
| +-------------+ | +--------------+
|
|
222
|
+
| |
|
|
223
|
+
| +-- Jupiter --+ | +--------------+
|
|
224
|
+
| | Quote API | | ---> | Jupiter | slippage quotes,
|
|
225
|
+
| | client | | | (free API) | route planning
|
|
226
|
+
| +-------------+ | +--------------+
|
|
227
|
+
+------------------+
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
**Key design decisions:**
|
|
231
|
+
- **curl-based GMGN fetcher** bypasses Cloudflare TLS fingerprinting (Playwright fallback if curl is blocked)
|
|
232
|
+
- **TTL-based in-memory cache** with automatic cleanup prevents rate limiting and keeps responses fast
|
|
233
|
+
- **Rate limiter** with exponential backoff and retry logic for DexScreener (200ms min interval)
|
|
234
|
+
- **Parallel fetching** where possible (holders + security run simultaneously)
|
|
235
|
+
- **All free APIs**, no keys needed
|
|
236
|
+
|
|
237
|
+
## Performance
|
|
238
|
+
|
|
239
|
+
Benchmarked on real tokens (BONK), averaged across multiple runs:
|
|
240
|
+
|
|
241
|
+
| Operation | Time | Notes |
|
|
242
|
+
|-----------|------|-------|
|
|
243
|
+
| `get_price` | ~54ms | Cached: near-instant |
|
|
244
|
+
| `search_token` | ~340ms | DexScreener search API |
|
|
245
|
+
| `analyze_token` (quick) | ~410ms | Price + market + risk, no holders |
|
|
246
|
+
| `analyze_token` (full) | ~1.1-1.5s | All sources: DexScreener + GMGN + Solana RPC |
|
|
247
|
+
| `get_token_security` | ~300ms | Single Solana RPC call |
|
|
248
|
+
| `estimate_slippage` | ~500ms | 4 Jupiter quotes in parallel |
|
|
248
249
|
|
|
249
|
-
|
|
250
|
-
|-----------|-----------|----------------|
|
|
251
|
-
| Liquidity | 22 | Pool depth in USD |
|
|
252
|
-
| Token Age | 10 | Time since creation |
|
|
253
|
-
| Volume Anomalies | 8 | Wash trading signals, vol/mcap ratio |
|
|
254
|
-
| Holder Concentration | 18 | Top 10 holder % |
|
|
255
|
-
| Dev Wallet | 15 | Dev holdings and selling behavior |
|
|
256
|
-
| Fresh Wallets | 12 | New wallet % (possible wash/bundle) |
|
|
257
|
-
| Sniper Activity | 10 | Bot/sniper wallets in top holders |
|
|
258
|
-
| Contract Security | 5 | Mint/freeze authority status |
|
|
250
|
+
## Risk Scoring
|
|
259
251
|
|
|
260
|
-
|
|
252
|
+
The composite risk scorer analyzes **8 dimensions** to produce a 0-100 score:
|
|
261
253
|
|
|
262
|
-
|
|
254
|
+
| # | Dimension | Max Points | What It Checks |
|
|
255
|
+
|---|-----------|-----------|----------------|
|
|
256
|
+
| 1 | **Liquidity** | 22 | Pool depth in USD. <$1K = critical, <$5K = extreme, <$25K = high |
|
|
257
|
+
| 2 | **Token Age** | 10 | Time since pair creation. <1h = critical, <6h = high, <24h = medium |
|
|
258
|
+
| 3 | **Volume Anomalies** | 8 | Vol/mcap ratio for wash trading signals. >5x = suspicious |
|
|
259
|
+
| 4 | **Holder Concentration** | 18 | Top 10 holder supply %. >60% = critical, >40% = high |
|
|
260
|
+
| 5 | **Dev Wallet** | 15 | Dev holdings % and selling behavior. >20% = rug risk |
|
|
261
|
+
| 6 | **Fresh Wallets** | 12 | New wallet % among holders. >40% = likely bundled/wash |
|
|
262
|
+
| 7 | **Sniper Activity** | 10 | Bot/sniper/sandwich wallets in top holders |
|
|
263
|
+
| 8 | **Contract Security** | 5 | Mint authority (3pts) + freeze authority (2pts) |
|
|
263
264
|
|
|
264
|
-
|
|
265
|
-
Claude Code <-> MCP stdio <-> deficlaw server
|
|
266
|
-
|
|
|
267
|
-
+------------+------------+
|
|
268
|
-
| | |
|
|
269
|
-
DexScreener GMGN API Solana RPC
|
|
270
|
-
(prices) (holders) (security)
|
|
271
|
-
```
|
|
265
|
+
**Risk Levels:**
|
|
272
266
|
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
-
|
|
277
|
-
-
|
|
267
|
+
| Level | Score Range | Meaning |
|
|
268
|
+
|-------|------------|---------|
|
|
269
|
+
| LOW | 0-19 | Few concerns, safer relative to peers |
|
|
270
|
+
| MEDIUM | 20-44 | Some concerns, do your own research |
|
|
271
|
+
| HIGH | 45-69 | Multiple red flags, elevated caution |
|
|
272
|
+
| CRITICAL | 70-100 | Extreme risk, likely scam or rug-pull |
|
|
278
273
|
|
|
279
274
|
## Configuration
|
|
280
275
|
|
|
281
|
-
|
|
276
|
+
All environment variables are optional. deficlaw works out of the box with zero config.
|
|
282
277
|
|
|
283
278
|
| Variable | Default | Description |
|
|
284
279
|
|----------|---------|-------------|
|
|
285
|
-
| `SOLANA_RPC_URL` | `https://api.mainnet-beta.solana.com` | Custom Solana RPC endpoint |
|
|
280
|
+
| `SOLANA_RPC_URL` | `https://api.mainnet-beta.solana.com` | Custom Solana RPC endpoint (use a private RPC for better reliability) |
|
|
286
281
|
| `DEFICLAW_CACHE_TTL` | `120000` (2 min) | GMGN holder cache TTL in milliseconds |
|
|
287
282
|
| `DEFICLAW_PRICE_CACHE_TTL` | `30000` (30s) | Price cache TTL in milliseconds |
|
|
288
|
-
| `DEBUG` | (unset) | Set to `deficlaw` to enable debug logging to stderr |
|
|
283
|
+
| `DEBUG` | *(unset)* | Set to `deficlaw` to enable debug logging to stderr |
|
|
289
284
|
|
|
290
285
|
### Claude Code Config
|
|
291
286
|
|
|
@@ -296,56 +291,89 @@ Add to your project's `.mcp.json`:
|
|
|
296
291
|
"mcpServers": {
|
|
297
292
|
"defi": {
|
|
298
293
|
"command": "npx",
|
|
299
|
-
"args": ["-y", "@0xprotovox/deficlaw"]
|
|
300
|
-
"env": {
|
|
301
|
-
"SOLANA_RPC_URL": "https://your-rpc.com",
|
|
302
|
-
"DEFICLAW_CACHE_TTL": "120000",
|
|
303
|
-
"DEFICLAW_PRICE_CACHE_TTL": "30000",
|
|
304
|
-
"DEBUG": "deficlaw"
|
|
305
|
-
}
|
|
294
|
+
"args": ["-y", "@0xprotovox/deficlaw"]
|
|
306
295
|
}
|
|
307
296
|
}
|
|
308
297
|
}
|
|
309
298
|
```
|
|
310
299
|
|
|
311
|
-
|
|
300
|
+
<details>
|
|
301
|
+
<summary>With custom environment variables</summary>
|
|
312
302
|
|
|
313
303
|
```json
|
|
314
304
|
{
|
|
315
305
|
"mcpServers": {
|
|
316
306
|
"defi": {
|
|
317
|
-
"command": "
|
|
318
|
-
"args": ["/
|
|
307
|
+
"command": "npx",
|
|
308
|
+
"args": ["-y", "@0xprotovox/deficlaw"],
|
|
309
|
+
"env": {
|
|
310
|
+
"SOLANA_RPC_URL": "https://your-rpc.com",
|
|
311
|
+
"DEFICLAW_CACHE_TTL": "120000",
|
|
312
|
+
"DEFICLAW_PRICE_CACHE_TTL": "30000",
|
|
313
|
+
"DEBUG": "deficlaw"
|
|
314
|
+
}
|
|
319
315
|
}
|
|
320
316
|
}
|
|
321
317
|
}
|
|
322
318
|
```
|
|
319
|
+
</details>
|
|
320
|
+
|
|
321
|
+
## Supported Chains
|
|
322
|
+
|
|
323
|
+
**Prices and trending** work on all DexScreener-supported chains: Solana, Ethereum, Base, BSC, Arbitrum, Polygon, Avalanche, Optimism, Fantom, and more.
|
|
324
|
+
|
|
325
|
+
**Holder analysis** (GMGN) currently supports **Solana** tokens.
|
|
326
|
+
|
|
327
|
+
**Slippage estimation** (Jupiter) supports **Solana** tokens.
|
|
323
328
|
|
|
324
329
|
## Roadmap
|
|
325
330
|
|
|
326
331
|
- [x] Token analysis with holder intelligence
|
|
327
|
-
- [x] Risk scoring (8 dimensions)
|
|
328
|
-
- [x] Contract security checks
|
|
332
|
+
- [x] Risk scoring (8 dimensions, 0-100)
|
|
333
|
+
- [x] Contract security checks (mint/freeze authority)
|
|
329
334
|
- [x] KOL detection with Twitter handles
|
|
330
|
-
- [x] Human-readable AI summary
|
|
331
|
-
- [x] Top traders (winners/losers)
|
|
332
|
-
- [x] npm package (`npm install -g @0xprotovox/deficlaw`)
|
|
335
|
+
- [x] Human-readable AI summary with actionable insights
|
|
336
|
+
- [x] Top traders (winners/losers with PnL)
|
|
333
337
|
- [x] Token search by name/symbol
|
|
334
338
|
- [x] New launches detection
|
|
335
339
|
- [x] Actionable verdict (BUY/SELL/NEUTRAL/AVOID)
|
|
340
|
+
- [x] Slippage estimation (Jupiter quotes)
|
|
341
|
+
- [x] Token comparison (side by side)
|
|
336
342
|
- [x] Configurable cache TTL via env vars
|
|
337
343
|
- [x] Debug logging (DEBUG=deficlaw)
|
|
338
|
-
- [x]
|
|
339
|
-
- [ ]
|
|
340
|
-
- [ ] Token comparison (side by side)
|
|
341
|
-
- [ ] Multi-chain holder analysis
|
|
344
|
+
- [x] LP pool detection in top holders
|
|
345
|
+
- [ ] Multi-chain holder analysis (Ethereum, Base)
|
|
342
346
|
- [ ] Price alerts via MCP resources
|
|
347
|
+
- [ ] Wallet portfolio analysis
|
|
348
|
+
- [ ] Historical price charts
|
|
349
|
+
- [ ] DEX aggregator integration for trade execution
|
|
350
|
+
|
|
351
|
+
## Contributing
|
|
352
|
+
|
|
353
|
+
Contributions welcome! Here's how:
|
|
354
|
+
|
|
355
|
+
1. Fork the repo
|
|
356
|
+
2. Create your branch (`git checkout -b feature/my-feature`)
|
|
357
|
+
3. Make changes and ensure `npx tsc --noEmit` passes with zero errors
|
|
358
|
+
4. Run benchmarks (`npm test`) to verify nothing regressed
|
|
359
|
+
5. Commit and open a PR
|
|
360
|
+
|
|
361
|
+
**Development setup:**
|
|
362
|
+
```bash
|
|
363
|
+
git clone https://github.com/0xprotovox/deficlaw.git
|
|
364
|
+
cd deficlaw
|
|
365
|
+
npm install
|
|
366
|
+
npm run build # compile TypeScript
|
|
367
|
+
npm test # run speed benchmarks
|
|
368
|
+
npm run dev # run from source with tsx
|
|
369
|
+
```
|
|
343
370
|
|
|
344
371
|
## Built With
|
|
345
372
|
|
|
346
373
|
- [Model Context Protocol SDK](https://github.com/modelcontextprotocol/typescript-sdk) - MCP server framework
|
|
347
374
|
- [DexScreener API](https://docs.dexscreener.com) - Price and market data
|
|
348
375
|
- [GMGN](https://gmgn.ai) - Holder intelligence
|
|
376
|
+
- [Jupiter Quote API](https://station.jup.ag/docs/apis/swap-api) - Slippage estimation
|
|
349
377
|
- TypeScript, Zod, Node.js 18+
|
|
350
378
|
|
|
351
379
|
## License
|
|
@@ -160,7 +160,9 @@ export function formatAnalysis(data) {
|
|
|
160
160
|
lines.push(` Sell TX: ${h.pressure.totalSellTx}`);
|
|
161
161
|
const ratioStr = h.pressure.buySellRatio === Infinity
|
|
162
162
|
? 'all buys'
|
|
163
|
-
:
|
|
163
|
+
: h.pressure.buySellRatio > 10000
|
|
164
|
+
? `${Math.round(h.pressure.buySellRatio).toLocaleString()}:1 (unreliable, low tx count)`
|
|
165
|
+
: `${h.pressure.buySellRatio.toFixed(2)}:1`;
|
|
164
166
|
const ratioIndicator = h.pressure.buySellRatio > 1.5 ? ' (bullish)'
|
|
165
167
|
: h.pressure.buySellRatio < 0.7 ? ' (bearish)'
|
|
166
168
|
: ' (neutral)';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatOutput.js","sourceRoot":"","sources":["../../src/analysis/formatOutput.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"formatOutput.js","sourceRoot":"","sources":["../../src/analysis/formatOutput.ts"],"names":[],"mappings":"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"}
|
|
@@ -117,7 +117,12 @@ export function generateSummary(data) {
|
|
|
117
117
|
lines.push(`${pct(sentiment.profitRatio)} in profit, ${pct(1 - sentiment.profitRatio)} underwater.`);
|
|
118
118
|
}
|
|
119
119
|
// Buy/sell pressure
|
|
120
|
-
|
|
120
|
+
// Guard against misleading ratios from near-zero tx counts (e.g., 0 buys / 1 sell)
|
|
121
|
+
const totalTx = pressure.totalBuyTx + pressure.totalSellTx;
|
|
122
|
+
if (totalTx < 3) {
|
|
123
|
+
lines.push(`Very low trading activity (${pressure.totalBuyTx} buys, ${pressure.totalSellTx} sells), not enough data for pressure analysis.`);
|
|
124
|
+
}
|
|
125
|
+
else if (pressure.buySellRatio > 5) {
|
|
121
126
|
lines.push(`Extreme buy pressure at ${pressure.buySellRatio.toFixed(1)}:1 ratio (${pressure.totalBuyTx} buys vs ${pressure.totalSellTx} sells), heavy accumulation.`);
|
|
122
127
|
}
|
|
123
128
|
else if (pressure.buySellRatio > 3) {
|
|
@@ -293,10 +298,14 @@ function computeVerdict(data) {
|
|
|
293
298
|
bullPoints += 1;
|
|
294
299
|
else if (holders.sentiment.profitRatio < 0.15)
|
|
295
300
|
bearPoints += 1;
|
|
296
|
-
if
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
301
|
+
// Only count buy/sell ratio as a signal if there are enough transactions
|
|
302
|
+
const totalTxForVerdict = holders.pressure.totalBuyTx + holders.pressure.totalSellTx;
|
|
303
|
+
if (totalTxForVerdict >= 5) {
|
|
304
|
+
if (holders.pressure.buySellRatio > 2)
|
|
305
|
+
bullPoints += 1;
|
|
306
|
+
else if (holders.pressure.buySellRatio < 0.5)
|
|
307
|
+
bearPoints += 1;
|
|
308
|
+
}
|
|
300
309
|
if (holders.concentration.top10Pct > 0.50)
|
|
301
310
|
bearPoints += 1;
|
|
302
311
|
if (holders.categories.snipers > 5)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"summaryGenerator.js","sourceRoot":"","sources":["../../src/analysis/summaryGenerator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"summaryGenerator.js","sourceRoot":"","sources":["../../src/analysis/summaryGenerator.ts"],"names":[],"mappings":"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"}
|
package/dist/server.js
CHANGED
|
@@ -76,7 +76,7 @@ function buildCompactResult(result) {
|
|
|
76
76
|
export function createServer() {
|
|
77
77
|
const server = new McpServer({
|
|
78
78
|
name: 'deficlaw',
|
|
79
|
-
version: '0.
|
|
79
|
+
version: '0.6.0',
|
|
80
80
|
});
|
|
81
81
|
// ── analyze_token ──
|
|
82
82
|
server.tool('analyze_token', 'Full token analysis: price, volume, liquidity, holder intelligence, risk scoring. Supports Solana tokens with GMGN holder data. Use quick=true for fast price-only analysis (<1s). Use compact=true for smaller response (top 5 holders, no full details).', {
|
|
@@ -1,23 +1,5 @@
|
|
|
1
|
-
declare const SOL_MINT = "So11111111111111111111111111111111111112";
|
|
2
|
-
declare const SOL_DECIMALS = 9;
|
|
3
|
-
export interface JupiterQuote {
|
|
4
|
-
inputMint: string;
|
|
5
|
-
outputMint: string;
|
|
6
|
-
inAmount: string;
|
|
7
|
-
outAmount: string;
|
|
8
|
-
otherAmountThreshold: string;
|
|
9
|
-
priceImpactPct: string;
|
|
10
|
-
slippageBps: number;
|
|
11
|
-
routePlan: {
|
|
12
|
-
swapInfo: {
|
|
13
|
-
ammKey: string;
|
|
14
|
-
label: string;
|
|
15
|
-
};
|
|
16
|
-
}[];
|
|
17
|
-
}
|
|
18
1
|
export interface SlippageEstimate {
|
|
19
2
|
buyAmountUsd: number;
|
|
20
|
-
inputLamports: string;
|
|
21
3
|
estimatedOutput: number;
|
|
22
4
|
priceImpactPct: number;
|
|
23
5
|
effectivePrice: number;
|
|
@@ -25,13 +7,8 @@ export interface SlippageEstimate {
|
|
|
25
7
|
route: string;
|
|
26
8
|
}
|
|
27
9
|
/**
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
|
|
31
|
-
export declare function getQuote(outputMint: string, amountLamports: string, slippageBps?: number): Promise<JupiterQuote | null>;
|
|
32
|
-
/**
|
|
33
|
-
* Estimate slippage for multiple buy sizes.
|
|
34
|
-
* Returns quotes for $50, $100, $500, $1000 buys.
|
|
10
|
+
* Estimate slippage from pool liquidity using constant-product AMM formula.
|
|
11
|
+
* priceImpact ≈ tradeSize / (2 * liquidityUsd) * 100
|
|
12
|
+
* This is an approximation — real slippage depends on pool type and route.
|
|
35
13
|
*/
|
|
36
|
-
export declare function
|
|
37
|
-
export { SOL_MINT, SOL_DECIMALS };
|
|
14
|
+
export declare function estimateSlippageFromLiquidity(tokenPriceUsd: number, liquidityUsd: number, dex: string, buyAmounts?: number[]): SlippageEstimate[];
|
package/dist/sources/jupiter.js
CHANGED
|
@@ -1,82 +1,39 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
2
|
+
* Slippage Estimation — based on DexScreener liquidity data
|
|
3
|
+
* Jupiter API now requires auth, so we calculate price impact from pool liquidity
|
|
4
|
+
* Formula: priceImpact ≈ tradeSize / (2 * poolLiquidity) for constant-product AMMs
|
|
5
5
|
*/
|
|
6
|
-
import { MemoryCache } from '../cache/memoryCache.js';
|
|
7
6
|
import { debug } from '../utils/debug.js';
|
|
8
|
-
const BASE_URL = 'https://api.jup.ag/quote/v1';
|
|
9
|
-
const CACHE_TTL = 30_000; // 30s cache for quotes
|
|
10
|
-
const SOL_MINT = 'So11111111111111111111111111111111111112';
|
|
11
|
-
const SOL_DECIMALS = 9;
|
|
12
|
-
const quoteCache = new MemoryCache(CACHE_TTL);
|
|
13
7
|
/**
|
|
14
|
-
*
|
|
15
|
-
*
|
|
8
|
+
* Estimate slippage from pool liquidity using constant-product AMM formula.
|
|
9
|
+
* priceImpact ≈ tradeSize / (2 * liquidityUsd) * 100
|
|
10
|
+
* This is an approximation — real slippage depends on pool type and route.
|
|
16
11
|
*/
|
|
17
|
-
export
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
return null;
|
|
35
|
-
quoteCache.set(cacheKey, data);
|
|
36
|
-
return data;
|
|
37
|
-
}
|
|
38
|
-
catch (err) {
|
|
39
|
-
debug(`Jupiter quote failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
40
|
-
return null;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Estimate slippage for multiple buy sizes.
|
|
45
|
-
* Returns quotes for $50, $100, $500, $1000 buys.
|
|
46
|
-
*/
|
|
47
|
-
export async function estimateSlippage(tokenMint, solPriceUsd, tokenDecimals) {
|
|
48
|
-
const buyAmounts = [50, 100, 500, 1000]; // USD amounts
|
|
49
|
-
const results = [];
|
|
50
|
-
// Convert USD amounts to SOL lamports
|
|
51
|
-
const quotes = await Promise.all(buyAmounts.map(async (usdAmount) => {
|
|
52
|
-
const solAmount = usdAmount / solPriceUsd;
|
|
53
|
-
const lamports = Math.round(solAmount * 1e9).toString();
|
|
54
|
-
const quote = await getQuote(tokenMint, lamports);
|
|
55
|
-
if (!quote)
|
|
56
|
-
return null;
|
|
57
|
-
const outAmount = parseFloat(quote.outAmount) / Math.pow(10, tokenDecimals);
|
|
58
|
-
const priceImpact = parseFloat(quote.priceImpactPct) || 0;
|
|
59
|
-
const effectivePrice = outAmount > 0 ? usdAmount / outAmount : 0;
|
|
60
|
-
// Determine route label
|
|
61
|
-
const routeLabels = quote.routePlan
|
|
62
|
-
?.map(r => r.swapInfo?.label)
|
|
63
|
-
.filter(Boolean) ?? [];
|
|
64
|
-
const route = routeLabels.length > 0 ? routeLabels.join(' -> ') : 'unknown';
|
|
12
|
+
export function estimateSlippageFromLiquidity(tokenPriceUsd, liquidityUsd, dex, buyAmounts = [50, 100, 500, 1000]) {
|
|
13
|
+
if (liquidityUsd <= 0 || tokenPriceUsd <= 0)
|
|
14
|
+
return [];
|
|
15
|
+
return buyAmounts.map(usdAmount => {
|
|
16
|
+
// Constant-product AMM price impact formula
|
|
17
|
+
// For a buy of size X into a pool of size L:
|
|
18
|
+
// priceImpact ≈ X / (2 * L) for small trades
|
|
19
|
+
// For larger trades relative to pool: priceImpact = X / (L + X)
|
|
20
|
+
const impact = usdAmount / (liquidityUsd + usdAmount);
|
|
21
|
+
const impactPct = impact * 100;
|
|
22
|
+
// Effective price after slippage
|
|
23
|
+
const effectivePrice = tokenPriceUsd * (1 + impact);
|
|
24
|
+
// Estimated tokens received
|
|
25
|
+
const estimatedOutput = usdAmount / effectivePrice;
|
|
26
|
+
// Convert impact to basis points
|
|
27
|
+
const slippageBps = Math.round(impactPct * 100);
|
|
28
|
+
debug(`Slippage $${usdAmount}: impact ${impactPct.toFixed(4)}% (${slippageBps}bps) on ${dex}`);
|
|
65
29
|
return {
|
|
66
30
|
buyAmountUsd: usdAmount,
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
priceImpactPct: Math.round(priceImpact * 10000) / 10000,
|
|
31
|
+
estimatedOutput: Math.round(estimatedOutput * 1000000) / 1000000,
|
|
32
|
+
priceImpactPct: Math.round(impactPct * 10000) / 10000,
|
|
70
33
|
effectivePrice,
|
|
71
|
-
slippageBps
|
|
72
|
-
route,
|
|
34
|
+
slippageBps,
|
|
35
|
+
route: dex,
|
|
73
36
|
};
|
|
74
|
-
})
|
|
75
|
-
for (const q of quotes) {
|
|
76
|
-
if (q)
|
|
77
|
-
results.push(q);
|
|
78
|
-
}
|
|
79
|
-
return results;
|
|
37
|
+
});
|
|
80
38
|
}
|
|
81
|
-
export { SOL_MINT, SOL_DECIMALS };
|
|
82
39
|
//# sourceMappingURL=jupiter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jupiter.js","sourceRoot":"","sources":["../../src/sources/jupiter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"jupiter.js","sourceRoot":"","sources":["../../src/sources/jupiter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAW1C;;;;GAIG;AACH,MAAM,UAAU,6BAA6B,CAC3C,aAAqB,EACrB,YAAoB,EACpB,GAAW,EACX,aAAuB,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC;IAE3C,IAAI,YAAY,IAAI,CAAC,IAAI,aAAa,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IAEvD,OAAO,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;QAChC,4CAA4C;QAC5C,6CAA6C;QAC7C,6CAA6C;QAC7C,gEAAgE;QAChE,MAAM,MAAM,GAAG,SAAS,GAAG,CAAC,YAAY,GAAG,SAAS,CAAC,CAAC;QACtD,MAAM,SAAS,GAAG,MAAM,GAAG,GAAG,CAAC;QAE/B,iCAAiC;QACjC,MAAM,cAAc,GAAG,aAAa,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;QAEpD,4BAA4B;QAC5B,MAAM,eAAe,GAAG,SAAS,GAAG,cAAc,CAAC;QAEnD,iCAAiC;QACjC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC;QAEhD,KAAK,CAAC,aAAa,SAAS,YAAY,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,WAAW,WAAW,GAAG,EAAE,CAAC,CAAC;QAE/F,OAAO;YACL,YAAY,EAAE,SAAS;YACvB,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,OAAO,CAAC,GAAG,OAAO;YAChE,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,GAAG,KAAK;YACrD,cAAc;YACd,WAAW;YACX,KAAK,EAAE,GAAG;SACX,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/dist/test.js
CHANGED
|
@@ -20,7 +20,7 @@ async function bench(name, fn) {
|
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
22
|
async function main() {
|
|
23
|
-
console.log('deficlaw v0.
|
|
23
|
+
console.log('deficlaw v0.6.0 — Speed Benchmarks');
|
|
24
24
|
console.log('='.repeat(70));
|
|
25
25
|
console.log(`Test token: ${TEST_TOKEN}`);
|
|
26
26
|
console.log(`Test search: "${TEST_SEARCH}"`);
|
|
@@ -78,7 +78,9 @@ function classifyHolders(holders) {
|
|
|
78
78
|
pressure: {
|
|
79
79
|
totalBuyVolume,
|
|
80
80
|
totalSellVolume,
|
|
81
|
-
buySellRatio: totalSellVolume > 0
|
|
81
|
+
buySellRatio: totalSellVolume > 0
|
|
82
|
+
? Math.min(totalBuyVolume / totalSellVolume, 999999)
|
|
83
|
+
: (totalBuyVolume > 0 ? Infinity : 0),
|
|
82
84
|
totalBuyTx,
|
|
83
85
|
totalSellTx,
|
|
84
86
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyzeToken.js","sourceRoot":"","sources":["../../src/tools/analyzeToken.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"analyzeToken.js","sourceRoot":"","sources":["../../src/tools/analyzeToken.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* estimate_slippage tool —
|
|
3
|
-
*
|
|
4
|
-
* Uses Jupiter Quote API (free, no auth).
|
|
2
|
+
* estimate_slippage tool — Liquidity-based slippage estimation
|
|
3
|
+
* Uses DexScreener pool data to estimate price impact at $50/$100/$500/$1000
|
|
5
4
|
*/
|
|
6
5
|
import { type SlippageEstimate } from '../sources/jupiter.js';
|
|
7
6
|
interface SlippageResult {
|
|
@@ -9,7 +8,8 @@ interface SlippageResult {
|
|
|
9
8
|
symbol: string;
|
|
10
9
|
name: string;
|
|
11
10
|
currentPriceUsd: number;
|
|
12
|
-
|
|
11
|
+
liquidityUsd: number;
|
|
12
|
+
dex: string;
|
|
13
13
|
estimates: SlippageEstimate[];
|
|
14
14
|
summary: string;
|
|
15
15
|
fetchedAt: string;
|
|
@@ -1,68 +1,71 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* estimate_slippage tool —
|
|
3
|
-
*
|
|
4
|
-
* Uses Jupiter Quote API (free, no auth).
|
|
2
|
+
* estimate_slippage tool — Liquidity-based slippage estimation
|
|
3
|
+
* Uses DexScreener pool data to estimate price impact at $50/$100/$500/$1000
|
|
5
4
|
*/
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import { debug } from '../utils/debug.js';
|
|
9
|
-
const SOL_MINT = 'So11111111111111111111111111111111111112';
|
|
5
|
+
import { estimateSlippageFromLiquidity } from '../sources/jupiter.js';
|
|
6
|
+
import { getTokenPair } from '../sources/dexscreener.js';
|
|
10
7
|
export async function handleEstimateSlippage(args) {
|
|
11
8
|
if (!args.address || args.address.trim().length === 0) {
|
|
12
9
|
return { error: 'Token address is required. Provide a Solana token mint address.' };
|
|
13
10
|
}
|
|
14
11
|
const address = args.address.trim();
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
if (!solPrice) {
|
|
19
|
-
return { error: 'Could not fetch SOL price. DexScreener may be temporarily unavailable.' };
|
|
12
|
+
const pair = await getTokenPair(address, 'solana');
|
|
13
|
+
if (!pair) {
|
|
14
|
+
return { error: `Token not found on DexScreener: ${address}. Check the address or try searching by name.` };
|
|
20
15
|
}
|
|
21
|
-
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
16
|
+
const priceUsd = parseFloat(pair.priceUsd) || 0;
|
|
17
|
+
const liquidityUsd = pair.liquidity?.usd || 0;
|
|
18
|
+
const symbol = pair.baseToken.symbol;
|
|
19
|
+
const name = pair.baseToken.name;
|
|
20
|
+
const dex = pair.dexId;
|
|
21
|
+
if (liquidityUsd <= 0) {
|
|
22
|
+
return { error: `No liquidity data for ${symbol}. Cannot estimate slippage.` };
|
|
25
23
|
}
|
|
26
|
-
|
|
27
|
-
// We'll use 6 as default for most SPL tokens, 9 for SOL-like
|
|
28
|
-
const tokenDecimals = 6; // Most SPL tokens use 6 decimals
|
|
29
|
-
const estimates = await estimateSlippage(address, solPrice.priceUsd, tokenDecimals);
|
|
24
|
+
const estimates = estimateSlippageFromLiquidity(priceUsd, liquidityUsd, dex);
|
|
30
25
|
if (estimates.length === 0) {
|
|
31
|
-
return { error: `
|
|
26
|
+
return { error: `Could not estimate slippage for ${symbol}.` };
|
|
32
27
|
}
|
|
33
28
|
// Build summary
|
|
34
|
-
const
|
|
35
|
-
|
|
29
|
+
const lines = [];
|
|
30
|
+
lines.push(`Slippage estimates for ${symbol} (${name}):`);
|
|
31
|
+
lines.push(`Pool liquidity: $${liquidityUsd.toLocaleString()} on ${dex}`);
|
|
32
|
+
lines.push('');
|
|
36
33
|
for (const est of estimates) {
|
|
37
|
-
const impactStr = est.priceImpactPct >
|
|
38
|
-
? `${est.priceImpactPct.toFixed(2)}% (HIGH)`
|
|
39
|
-
: est.priceImpactPct >
|
|
40
|
-
? `${est.priceImpactPct.toFixed(2)}% (
|
|
41
|
-
:
|
|
42
|
-
|
|
34
|
+
const impactStr = est.priceImpactPct > 5
|
|
35
|
+
? `${est.priceImpactPct.toFixed(2)}% (VERY HIGH)`
|
|
36
|
+
: est.priceImpactPct > 1
|
|
37
|
+
? `${est.priceImpactPct.toFixed(2)}% (HIGH)`
|
|
38
|
+
: est.priceImpactPct > 0.3
|
|
39
|
+
? `${est.priceImpactPct.toFixed(3)}% (moderate)`
|
|
40
|
+
: `${est.priceImpactPct.toFixed(4)}% (low)`;
|
|
41
|
+
lines.push(` $${est.buyAmountUsd}: ~${est.estimatedOutput.toLocaleString()} ${symbol}, price impact ${impactStr}`);
|
|
43
42
|
}
|
|
44
43
|
// Overall assessment
|
|
45
44
|
const maxImpact = Math.max(...estimates.map(e => e.priceImpactPct));
|
|
45
|
+
lines.push('');
|
|
46
46
|
if (maxImpact > 5) {
|
|
47
|
-
|
|
47
|
+
lines.push('WARNING: Very high price impact. Extremely illiquid token. Trade tiny amounts only.');
|
|
48
48
|
}
|
|
49
49
|
else if (maxImpact > 2) {
|
|
50
|
-
|
|
50
|
+
lines.push('Caution: Significant price impact at larger sizes. Trade in smaller amounts.');
|
|
51
51
|
}
|
|
52
52
|
else if (maxImpact > 0.5) {
|
|
53
|
-
|
|
53
|
+
lines.push('Moderate liquidity. $100-500 buys are reasonable, larger sizes will move the price.');
|
|
54
54
|
}
|
|
55
55
|
else {
|
|
56
|
-
|
|
56
|
+
lines.push('Good liquidity. All tested buy sizes have low price impact.');
|
|
57
57
|
}
|
|
58
|
+
lines.push('');
|
|
59
|
+
lines.push('(Estimated from pool liquidity using constant-product AMM formula. Actual slippage may vary by DEX and route.)');
|
|
58
60
|
return {
|
|
59
61
|
token: address,
|
|
60
|
-
symbol
|
|
61
|
-
name
|
|
62
|
-
currentPriceUsd:
|
|
63
|
-
|
|
62
|
+
symbol,
|
|
63
|
+
name,
|
|
64
|
+
currentPriceUsd: priceUsd,
|
|
65
|
+
liquidityUsd,
|
|
66
|
+
dex,
|
|
64
67
|
estimates,
|
|
65
|
-
summary:
|
|
68
|
+
summary: lines.join('\n'),
|
|
66
69
|
fetchedAt: new Date().toISOString(),
|
|
67
70
|
};
|
|
68
71
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"estimateSlippage.js","sourceRoot":"","sources":["../../src/tools/estimateSlippage.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"estimateSlippage.js","sourceRoot":"","sources":["../../src/tools/estimateSlippage.ts"],"names":[],"mappings":"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"}
|