@vike-io/cli 0.13.0 → 0.14.0
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/CHANGELOG.md +16 -0
- package/README.md +10 -10
- package/package.json +1 -1
- package/skills/vike/SKILL.md +119 -191
- package/skills/vike-alerts-setup/SKILL.md +2 -1
- package/skills/vike-alerts-webhook/SKILL.md +1 -1
- package/skills/vike-candles/SKILL.md +3 -3
- package/skills/vike-core/SKILL.md +16 -15
- package/skills/vike-hl-position-match/SKILL.md +8 -8
- package/skills/vike-hl-top-traders/SKILL.md +47 -12
- package/skills/vike-perp-funding/SKILL.md +82 -0
- package/skills/vike-perp-overview/SKILL.md +69 -0
- package/skills/vike-polymarket-market-detail/SKILL.md +3 -2
- package/skills/vike-polymarket-markets/SKILL.md +13 -8
- package/skills/vike-polymarket-smart-money/SKILL.md +39 -14
- package/skills/vike-polymarket-trader/SKILL.md +24 -21
- package/skills/vike-smart-money-discovery/SKILL.md +27 -33
- package/skills/vike-token-holders/SKILL.md +3 -2
- package/skills/vike-token-research/SKILL.md +23 -15
- package/skills/vike-token-screener/SKILL.md +36 -29
- package/skills/vike-token-search/SKILL.md +1 -1
- package/skills/vike-token-transfers/SKILL.md +22 -12
- package/skills/vike-wallet-balances/SKILL.md +20 -14
- package/skills/vike-wallet-batch/SKILL.md +19 -15
- package/skills/vike-wallet-compare/SKILL.md +3 -1
- package/skills/vike-wallet-counterparties/SKILL.md +6 -2
- package/skills/vike-wallet-discover/SKILL.md +18 -11
- package/skills/vike-wallet-ens/SKILL.md +9 -5
- package/skills/vike-wallet-label-provenance/SKILL.md +26 -17
- package/skills/vike-wallet-pnl-history/SKILL.md +5 -2
- package/skills/vike-wallet-portfolio/SKILL.md +24 -22
- package/skills/vike-wallet-summary/SKILL.md +23 -10
- package/skills/vike-wallet-trace/SKILL.md +16 -12
- package/skills/vike-wallet-transactions/SKILL.md +4 -2
- package/skills.sh.json +10 -15
- package/src/auth.js +1 -1
- package/src/commands/init.js +1 -1
- package/src/commands/labels.js +1 -1
- package/src/commands/perp.js +5 -4
- package/src/commands/wallet.js +3 -3
- package/skills/vike-cross-venue-perps/SKILL.md +0 -52
- package/skills/vike-hl-trader-profile/SKILL.md +0 -65
- package/skills/vike-perp-funding-arb/SKILL.md +0 -53
- package/skills/vike-perp-screener/SKILL.md +0 -48
- package/skills/vike-perp-spread-arb/SKILL.md +0 -38
- package/skills/vike-polymarket-screener/SKILL.md +0 -59
- package/skills/vike-router/SKILL.md +0 -54
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.14.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 62464b9: Skills audit (2026-10-19). `vike-data perp find-position` now sends `symbol` to `hl_position_match` (the tool renamed `coin` on 2026-10-19; the `--coin` flag is unchanged). Help text no longer claims six balance chains, "10+" label providers or "spot-perp" spreads. 36 skills become 31: `vike-router` folds into the umbrella `vike`; `vike-perp-funding-arb` + `vike-cross-venue-perps` become `vike-perp-funding`; `vike-perp-screener` + `vike-perp-spread-arb` become `vike-perp-overview`; `vike-polymarket-screener` folds into `vike-polymarket-smart-money`; `vike-hl-trader-profile` folds into `vike-hl-top-traders`. Installed copies of the removed skills need `npx skills add vike-io/vike-data-cli` again. The audit's errors are corrected in the skill text: the umbrella (tool and chain lists, page sizes, ENS direction, command names, alert semantics, credits, rate limit of 20,000 requests per hour), token skills (`bought` is every inbound transfer, read `net_tokens`; real columns; fixed 10 rows; native coin as the zero address; screener `holders` counts active wallets; no ascending sort), wallet trace (edge direction is `out_usd` / `in_usd`), label provenance (6 sources plus heuristic, `found: false`), Hyperliquid top traders (percent units, realized-only ROI, no per-wallet HL tool), wallet summary / balances / discover / batch / transactions output shapes, and the Polymarket output keys.
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- 7aba637: The default MCP endpoint is now `https://data.vike.io/mcp`, the server's published address (same server, tools, key and hourly budget). `VIKE_MCP_URL` still overrides it; the older `https://vike.io/mcp` keeps answering while it is retired.
|
|
12
|
+
|
|
13
|
+
## 0.13.1
|
|
14
|
+
|
|
15
|
+
### Patch Changes
|
|
16
|
+
|
|
17
|
+
- Skills: `allowed-tools` is `Bash(vike-data:*)` and `vike-core` requires the `vike-data` binary. 0.13.0 renamed the command but left all 35 skills granting `Bash(vike:*)`, which does not match `vike-data …`, so an agent was asked to approve, or was refused, every call.
|
|
18
|
+
|
|
3
19
|
## 0.13.0
|
|
4
20
|
|
|
5
21
|
### Minor Changes
|
package/README.md
CHANGED
|
@@ -13,7 +13,7 @@ positions, fills, funding, liquidations, candles, and hourly long/short position
|
|
|
13
13
|
cohort), **Polymarket** (markets, the trade and event tape, order-book snapshots, candles and
|
|
14
14
|
on-chain settlements, plus a daily Parquet archive of the full L2 order book since 2026-07-25,
|
|
15
15
|
licensed CC BY 4.0), and **labelled EVM wallets** on Ethereum and BNB Chain, with Base for token
|
|
16
|
-
transfers. The same data is served three ways: an **MCP server** at `https://vike.io/mcp` (the one
|
|
16
|
+
transfers. The same data is served three ways: an **MCP server** at `https://data.vike.io/mcp` (the one
|
|
17
17
|
this CLI calls), a **REST API** at `https://data.vike.io/v1/`, and the **Parquet archive** at
|
|
18
18
|
`https://data.vike.io/archive/`. A key allows 20,000 requests an hour, and an account can hold up
|
|
19
19
|
to 5 keys; archive downloads are not counted. The archive manifest and a sample market need no key
|
|
@@ -36,7 +36,7 @@ Get a free key at [vike.io/account?tab=api-keys](https://vike.io/account?tab=api
|
|
|
36
36
|
with `vk_`), then:
|
|
37
37
|
|
|
38
38
|
```bash
|
|
39
|
-
vike-data init # paste the key; saves ~/.vike/config.json, checks vike.io/mcp
|
|
39
|
+
vike-data init # paste the key; saves ~/.vike/config.json, checks data.vike.io/mcp
|
|
40
40
|
vike-data doctor # Node version, key, MCP connectivity, tool list
|
|
41
41
|
vike-data token search PEPE # first query
|
|
42
42
|
vike-data perp top-traders --window 7d # Hyperliquid wallets ranked by PnL
|
|
@@ -94,12 +94,12 @@ Full catalog: [vike.io/data/datasets](https://vike.io/data/datasets) · field re
|
|
|
94
94
|
|
|
95
95
|
## MCP server
|
|
96
96
|
|
|
97
|
-
The crypto data MCP server is `https://vike.io/mcp` (Streamable HTTP, JSON-RPC 2.0), keyed with
|
|
97
|
+
The crypto data MCP server is `https://data.vike.io/mcp` (Streamable HTTP, JSON-RPC 2.0), keyed with
|
|
98
98
|
the same `X-API-KEY`. MCP and REST calls share one hourly counter.
|
|
99
99
|
|
|
100
100
|
```bash
|
|
101
101
|
# Claude Code
|
|
102
|
-
claude mcp add --transport http vike https://vike.io/mcp \
|
|
102
|
+
claude mcp add --transport http vike https://data.vike.io/mcp \
|
|
103
103
|
--header "X-API-KEY: $VIKE_API_KEY"
|
|
104
104
|
```
|
|
105
105
|
|
|
@@ -109,7 +109,7 @@ Cursor, in `~/.cursor/mcp.json`:
|
|
|
109
109
|
{
|
|
110
110
|
"mcpServers": {
|
|
111
111
|
"vike": {
|
|
112
|
-
"url": "https://vike.io/mcp",
|
|
112
|
+
"url": "https://data.vike.io/mcp",
|
|
113
113
|
"headers": { "X-API-KEY": "YOUR_KEY" }
|
|
114
114
|
}
|
|
115
115
|
}
|
|
@@ -117,12 +117,12 @@ Cursor, in `~/.cursor/mcp.json`:
|
|
|
117
117
|
```
|
|
118
118
|
|
|
119
119
|
**Claude Desktop needs no key:** Settings → Connectors → Add custom connector, URL
|
|
120
|
-
`https://vike.io/mcp`, leave the OAuth fields empty, then log in to Vike and click Allow.
|
|
120
|
+
`https://data.vike.io/mcp`, leave the OAuth fields empty, then log in to Vike and click Allow.
|
|
121
121
|
Setup for Gemini CLI, VS Code and other clients: [vike.io/docs/ai/data/setup](https://vike.io/docs/ai/data/setup).
|
|
122
122
|
|
|
123
123
|
```bash
|
|
124
124
|
# Raw JSON-RPC: list the tools your key can call
|
|
125
|
-
curl https://vike.io/mcp -H "X-API-KEY: $VIKE_API_KEY" \
|
|
125
|
+
curl https://data.vike.io/mcp -H "X-API-KEY: $VIKE_API_KEY" \
|
|
126
126
|
-H "Content-Type: application/json" \
|
|
127
127
|
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
|
|
128
128
|
```
|
|
@@ -140,7 +140,7 @@ Every data command is one `tools/call` to the MCP server. `vike-data <group> --h
|
|
|
140
140
|
| `vike-data token` | `search`, `transfers`, `screener`, `holders` (`--chain ethereum\|bsc\|base`) | `token_search`, `token_transfers`, `token_screener`, `token_holders` |
|
|
141
141
|
| `vike-data wallet` | `summary`, `transactions` (`txs`), `compare`, `trace`, `batch`, `counterparties`, `pnl-history`, `balances`, `ens`, `discover` | `wallet_summary`, `wallet_transactions`, `wallet_compare`, `wallet_trace`, `wallet_batch_labels`, `wallet_counterparties`, `wallet_pnl_history`, `wallet_token_balances`, `wallet_ens`, `wallet_discover` |
|
|
142
142
|
| `vike-data labels <address>` | multi-source label provenance for one wallet | `wallet_label_provenance` |
|
|
143
|
-
| `vike-data perp` | `top-traders`, `find-position` (Hyperliquid); `funding`, `spreads` (cross-venue funding rates and
|
|
143
|
+
| `vike-data perp` | `top-traders`, `find-position` (Hyperliquid); `funding`, `spreads` (cross-venue funding rates and perp-vs-perp price gaps) | `hl_perp_top_traders`, `hl_position_match`, `perp_funding`, `perp_spreads` |
|
|
144
144
|
| `vike-data candles` | `hl <symbol>` (Hyperliquid perp or spot, from executed fills), `polymarket <token_id>` (one outcome token) | `hl_ohlcv`, `polymarket_ohlcv` |
|
|
145
145
|
| `vike-data polymarket` (`pm`) | `markets`, `market <condition_id>`, `wallet <address>`, `smart-money` | `polymarket_markets`, `polymarket_market_detail`, `polymarket_wallet`, `polymarket_smart_money` |
|
|
146
146
|
| `vike-data alerts` | `list`, `channels`, `create`, `edit`, `delete`, `register-webhook` (email, Discord, or an HTTPS webhook, HMAC-signed when you set a secret) | `alerts_*` |
|
|
@@ -173,7 +173,7 @@ Downloads go to `./vike-archive/`.
|
|
|
173
173
|
|
|
174
174
|
## For AI agents
|
|
175
175
|
|
|
176
|
-
This package ships **
|
|
176
|
+
This package ships **31 skill playbooks** under [`skills/`](skills/): markdown files an AI coding
|
|
177
177
|
agent loads so it knows when and how to call each command. [`skills.sh.json`](skills.sh.json) groups
|
|
178
178
|
them by domain (Tokens, Wallets, CEX perps, Hyperliquid perps, Candles, Polymarket, Alerts). The
|
|
179
179
|
entry point is the umbrella skill `vike`, which routes a question to the specialised skill.
|
|
@@ -198,7 +198,7 @@ block in files it does not own.
|
|
|
198
198
|
| Variable | Default | Purpose |
|
|
199
199
|
|---|---|---|
|
|
200
200
|
| `VIKE_API_KEY` | — | API key; wins over the saved config |
|
|
201
|
-
| `VIKE_MCP_URL` | `https://vike.io/mcp` | MCP endpoint override |
|
|
201
|
+
| `VIKE_MCP_URL` | `https://data.vike.io/mcp` | MCP endpoint override |
|
|
202
202
|
| `VIKE_NO_TELEMETRY=1` or `DO_NOT_TRACK=1` | telemetry on | Turns off anonymous usage telemetry |
|
|
203
203
|
| `VIKE_NO_UPDATE_CHECK=1` or `NO_UPDATE_NOTIFIER=1` | check on | Turns off the background npm update check |
|
|
204
204
|
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"publishConfig": {
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
|
-
"version": "0.
|
|
6
|
+
"version": "0.14.0",
|
|
7
7
|
"description": "CLI, agent skills and MCP client for the free Vike Data API: a Polymarket full-L2 order-book archive in Parquet (CC BY 4.0), Hyperliquid positions, fills and cohorts, and labelled Ethereum/BNB wallets",
|
|
8
8
|
"type": "module",
|
|
9
9
|
"main": "src/index.js",
|
package/skills/vike/SKILL.md
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: vike
|
|
3
|
-
description: "Use this skill whenever the user asks any question about on-chain crypto data, wallet behavior, token transfers, smart money, CEX perpetual futures, Hyperliquid perps, prediction markets (Polymarket), ENS, or on-chain flows — and live data from vike.io would improve the answer. This includes questions like \"who is buying X token\", \"what is wallet 0x... doing\", \"top wallets by PnL\", \"funding rate spread across Binance/Bybit/OKX\", \"largest HL perp traders this week\", \"who is winning on Polymarket\", \"
|
|
3
|
+
description: "Use this skill whenever the user asks any question about on-chain crypto data, wallet behavior, token transfers, smart money, CEX perpetual futures, Hyperliquid perps, prediction markets (Polymarket), ENS, or on-chain flows — and live data from vike.io would improve the answer. This includes questions like \"who is buying X token\", \"what is wallet 0x... doing\", \"top wallets by PnL\", \"funding rate spread across Binance/Bybit/OKX\", \"largest HL perp traders this week\", \"who is winning on Polymarket\", \"what is the ENS name of this address\", \"label this wallet\", \"trace this transfer\", \"top tokens by smart-money inflow\". It is also the entry point that decides which vike-* skill answers a question (tokens, wallets, labels, perps, Hyperliquid, Polymarket, candles, alerts). Always use this skill proactively when the user's query could benefit from real-time or historical on-chain data — don't wait for the user to explicitly ask to \"use vike\". If the user asks a general on-chain question that requires synthesis across wallets/tokens/venues, route to vike first."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# vike —
|
|
6
|
+
# vike — on-chain, perps and prediction-market data
|
|
7
7
|
|
|
8
8
|
This skill is for anyone who asks an AI agent about crypto data: who is buying a token, what a wallet holds, what Hyperliquid or Polymarket traders are doing right now. It tells the agent which vike tool answers which question and how to read the result, so it does not guess or invent numbers. It reads its data from vike.io and needs a free vike API key.
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
What the platform has: wallet and token analytics on Ethereum and BSC, with Base for token transfers and labels (each tool's chain list is under "What each tool really returns"), multi-source wallet labels, CEX perpetual funding and cross-venue spreads, Hyperliquid top traders / share-card lookup / candles, Polymarket markets, traders and smart-money signals, and transfer alerts. 31 tools in one MCP server.
|
|
11
11
|
|
|
12
|
-
**MCP endpoint for all calls:** `https://vike.io/mcp` (JSON-RPC 2.0)
|
|
13
|
-
**Or use the CLI:** `npm install -g @vike-io/cli` → `vike <command>`
|
|
12
|
+
**MCP endpoint for all calls:** `https://data.vike.io/mcp` (JSON-RPC 2.0)
|
|
13
|
+
**Or use the CLI:** `npm install -g @vike-io/cli` → `vike-data <command>`
|
|
14
14
|
|
|
15
15
|
## What it does and who it is for
|
|
16
16
|
|
|
@@ -23,13 +23,14 @@ It is for traders, researchers and developers who use an AI agent to look at cry
|
|
|
23
23
|
Hard rules — agents that violate these produce wrong answers. Read once, apply always.
|
|
24
24
|
|
|
25
25
|
1. **Addresses are always full 0x-hex (42 chars).** Never truncate when querying. Never display truncated when the user asks for the address — they'll copy-paste it.
|
|
26
|
-
2. **
|
|
27
|
-
3. **
|
|
28
|
-
4. **
|
|
29
|
-
5. **Refresh
|
|
26
|
+
2. **Perp and Hyperliquid symbols are upper-cased by the server.** Echo back what the user wrote.
|
|
27
|
+
3. **Windows are counted in UTC calendar days, not a rolling 24 hours.** On the token screener `24h` spans yesterday and today; on Hyperliquid `30d` is today plus the previous 30 days.
|
|
28
|
+
4. **Page sizes are small and differ per tool; there is no paging.** Max 20: `wallet_discover` (`size`), `hl_perp_top_traders` (`size`), `polymarket_smart_money`. Max 30: `polymarket_markets`. Max 50: `token_holders`, `wallet_counterparties`, `wallet_compare`, `hl_position_match`. Max 100: `token_screener`, and 100 addresses for `wallet_batch_labels`. Max 500: `wallet_transactions`. `token_transfers` has no limit: it always returns 10 rows. To go deeper, narrow the filter or the window instead of asking for more rows.
|
|
29
|
+
5. **Refresh differs per tool; never promise "minutes".** `wallet_discover` and `wallet_summary` are rebuilt nightly, so a wallet active an hour ago may not show. Transfers are synced block by block. `hl_position_match` only matches positions seen within 15 minutes of the newest snapshot batch. Alerts are checked on a cron, not streamed.
|
|
30
30
|
6. **USD amounts are floats in dollars.** `--min-usd 10000` = ten thousand dollars, not micro-USD.
|
|
31
|
-
7. **`--json`
|
|
32
|
-
8. **Resolve a token before asking transfer/holder questions.** `token_search` → take the canonical address → pass to `token_transfers` / `token_holders`. Symbol-only queries lose precision on tickers that collide across chains (e.g. FUN, BEAM, USDC).
|
|
31
|
+
7. **`--json` is always available** on CLI commands and gives stable machine-readable output. The default (human) format may change; `--json` will not.
|
|
32
|
+
8. **Resolve a token before asking transfer/holder questions.** `token_search` → take the canonical address → pass it to `token_transfers` / `token_holders`. Symbol-only queries lose precision on tickers that collide across chains (e.g. FUN, BEAM, USDC).
|
|
33
|
+
9. **`bought` in `token_transfers` is every inbound transfer**, flash-loan round trips included. Read `net_tokens` (bought − sold) before calling a wallet a buyer.
|
|
33
34
|
|
|
34
35
|
---
|
|
35
36
|
|
|
@@ -38,7 +39,7 @@ Hard rules — agents that violate these produce wrong answers. Read once, apply
|
|
|
38
39
|
Follow this decision tree **before every session**. Do not skip to Step 2 until auth is confirmed.
|
|
39
40
|
|
|
40
41
|
```
|
|
41
|
-
1. Is the
|
|
42
|
+
1. Is the CLI installed? (`vike-data --version`)
|
|
42
43
|
├── YES → continue
|
|
43
44
|
└── NO → `npm install -g @vike-io/cli`
|
|
44
45
|
|
|
@@ -57,7 +58,7 @@ If the user has no API key yet, tell them:
|
|
|
57
58
|
> 2. Save it: `vike-data login --api-key vk_...` (or `export VIKE_API_KEY=vk_...`).
|
|
58
59
|
> 3. Verify: `vike-data doctor`.
|
|
59
60
|
>
|
|
60
|
-
>
|
|
61
|
+
> One key gets 20,000 requests per rolling hour, shared by the MCP server and the REST API.
|
|
61
62
|
|
|
62
63
|
If using the MCP server directly (without the CLI), authenticate with the key in this header:
|
|
63
64
|
```
|
|
@@ -66,50 +67,57 @@ X-API-KEY: vk_...
|
|
|
66
67
|
|
|
67
68
|
---
|
|
68
69
|
|
|
69
|
-
## Step 2: Route
|
|
70
|
+
## Step 2: Route the question
|
|
70
71
|
|
|
71
|
-
|
|
72
|
+
Pick by the question, then read the named skill for the recipe and the traps. If two rows fit, prefer the task skill (a multi-call workflow) over the per-tool skill.
|
|
73
|
+
|
|
74
|
+
| User is asking about... | CLI / MCP tool | Skill |
|
|
72
75
|
|---|---|---|
|
|
73
|
-
| Token
|
|
74
|
-
|
|
|
75
|
-
|
|
|
76
|
-
|
|
|
77
|
-
|
|
|
78
|
-
|
|
|
79
|
-
|
|
|
80
|
-
|
|
|
81
|
-
|
|
|
82
|
-
|
|
|
83
|
-
|
|
|
84
|
-
|
|
|
85
|
-
|
|
|
86
|
-
|
|
|
87
|
-
|
|
|
88
|
-
|
|
|
89
|
-
|
|
|
90
|
-
|
|
|
91
|
-
|
|
|
92
|
-
|
|
|
93
|
-
|
|
|
94
|
-
|
|
|
95
|
-
|
|
|
96
|
-
|
|
|
97
|
-
|
|
|
98
|
-
|
|
99
|
-
|
|
76
|
+
| Token symbol/name → address | `vike-data token search` / `token_search` | `vike-token-search` |
|
|
77
|
+
| Who bought / sold a token (top 10, one side per call) | `vike-data token transfers` / `token_transfers` | `vike-token-transfers` |
|
|
78
|
+
| "Research token X" end to end | search → transfers (both tabs) | `vike-token-research` |
|
|
79
|
+
| Top holders of a token (ranked by net inflow, not balance) | `vike-data token holders` / `token_holders` | `vike-token-holders` |
|
|
80
|
+
| Tokens trending / with the biggest inflow / smart-money inflow | `vike-data token screener` / `token_screener` | `vike-token-screener` |
|
|
81
|
+
| "Is smart money buying X?" / alpha wallets | screener `--smart-money-only` → transfers | `vike-smart-money-discovery` |
|
|
82
|
+
| One wallet's volume / inflow / outflow / tx count by window | `vike-data wallet summary` / `wallet_summary` | `vike-wallet-summary` |
|
|
83
|
+
| Full picture of one wallet ("who is this", "everything about it") | several calls | `vike-wallet-portfolio` |
|
|
84
|
+
| Top wallets by volume / flow / tx count | `vike-data wallet discover` / `wallet_discover` | `vike-wallet-discover` |
|
|
85
|
+
| Individual transfers of a wallet | `vike-data wallet transactions` / `wallet_transactions` | `vike-wallet-transactions` |
|
|
86
|
+
| Who a wallet trades with | `vike-data wallet counterparties` / `wallet_counterparties` | `vike-wallet-counterparties` |
|
|
87
|
+
| Follow funds N hops out | `vike-data wallet trace` / `wallet_trace` | `vike-wallet-trace` |
|
|
88
|
+
| Are wallets A and B related (exactly two) | `vike-data wallet compare` / `wallet_compare` | `vike-wallet-compare` |
|
|
89
|
+
| Daily net-flow series (not PnL) | `vike-data wallet pnl-history` / `wallet_pnl_history` | `vike-wallet-pnl-history` |
|
|
90
|
+
| What a wallet holds right now | `vike-data wallet balances` / `wallet_token_balances` | `vike-wallet-balances` |
|
|
91
|
+
| ENS name of an address (reverse only) | `vike-data wallet ens` / `wallet_ens` | `vike-wallet-ens` |
|
|
92
|
+
| Label many addresses (up to 100) | `vike-data wallet batch` / `wallet_batch_labels` | `vike-wallet-batch` |
|
|
93
|
+
| Why is this wallet labelled X (sources) | `vike-data labels <address>` / `wallet_label_provenance` | `vike-wallet-label-provenance` |
|
|
94
|
+
| Funding rates, funding arb, one symbol across venues | `vike-data perp funding` / `perp_funding` | `vike-perp-funding` |
|
|
95
|
+
| Cross-venue price spread, "perp market overview" | `vike-data perp spreads` + `perp funding` + `perp top-traders` | `vike-perp-overview` |
|
|
96
|
+
| Top Hyperliquid traders; "is this HL address any good" | `vike-data perp top-traders` / `hl_perp_top_traders` | `vike-hl-top-traders` |
|
|
97
|
+
| HL share card → which wallet holds it | `vike-data perp find-position` / `hl_position_match` | `vike-hl-position-match` |
|
|
98
|
+
| Candles: Hyperliquid perp/spot, Polymarket outcome token | `vike-data candles hl` / `candles polymarket` | `vike-candles` |
|
|
99
|
+
| Trending Polymarket markets (by 24h volume) | `vike-data polymarket markets` / `polymarket_markets` | `vike-polymarket-markets` |
|
|
100
|
+
| One Polymarket market | `vike-data polymarket market <condition_id>` / `polymarket_market_detail` | `vike-polymarket-market-detail` |
|
|
101
|
+
| One Polymarket trader | `vike-data polymarket wallet` / `polymarket_wallet` | `vike-polymarket-trader` |
|
|
102
|
+
| Polymarket smart-money flows / mispricings / overview | `vike-data polymarket smart-money` / `polymarket_smart_money` | `vike-polymarket-smart-money` |
|
|
103
|
+
| Alerts: create / list / edit / delete | `vike-data alerts ...` / `alerts_*` | `vike-alerts-setup` |
|
|
104
|
+
| Alert delivery to an HTTPS webhook | `vike-data alerts register-webhook` | `vike-alerts-webhook` |
|
|
105
|
+
| Install, auth, errors, conventions | — | `vike-core` |
|
|
106
|
+
|
|
107
|
+
**When in doubt, start with `vike-data token search` or `vike-data wallet summary`.** Both are cheap and disambiguate what the user actually meant.
|
|
100
108
|
|
|
101
109
|
### Example query routing
|
|
102
110
|
```
|
|
103
|
-
"
|
|
104
|
-
"What is 0xd8dA6BF...AbA96 holding?" →
|
|
105
|
-
"Funding rate for BTC across all perp venues" → perp_funding
|
|
106
|
-
"
|
|
107
|
-
"Biggest HL perp PnL last week" → hl_perp_top_traders
|
|
108
|
-
"
|
|
109
|
-
"Why is 0x28C6... labeled 'Binance hot wallet'?" → wallet_label_provenance
|
|
110
|
-
"
|
|
111
|
-
"Alert me
|
|
112
|
-
"Trace funds from 0xHACKER 3 hops out" → wallet_trace
|
|
111
|
+
"Who bought the most PEPE in the last 24h?" → token_search, then token_transfers (tab=bought, period=24h; 10 rows; rank by net_tokens)
|
|
112
|
+
"What is 0xd8dA6BF...AbA96 holding?" → wallet_token_balances (+ wallet_summary for flows)
|
|
113
|
+
"Funding rate for BTC across all perp venues" → perp_funding (symbol=BTC; raw per-interval rates)
|
|
114
|
+
"Which venue pays the most funding on ETH?" → perp_funding (symbol=ETH, normalise to daily yourself)
|
|
115
|
+
"Biggest HL perp PnL last week" → hl_perp_top_traders (window=7d, sort=pnl)
|
|
116
|
+
"What are the hottest crypto prediction markets?" → polymarket_markets (category=Crypto) → polymarket_market_detail
|
|
117
|
+
"Why is 0x28C6... labeled 'Binance hot wallet'?" → wallet_label_provenance (address=0x28C6...)
|
|
118
|
+
"What is the ENS name of 0xd8dA6BF...?" → wallet_ens (address=0xd8dA...; name → address is NOT supported)
|
|
119
|
+
"Alert me on WBTC transfers over $1M" → alerts_create (token_symbol=WBTC, min_value_usd=1000000; fires on ANY such transfer)
|
|
120
|
+
"Trace funds from 0xHACKER 3 hops out" → wallet_trace (address=0xHACKER, depth=3)
|
|
113
121
|
```
|
|
114
122
|
|
|
115
123
|
---
|
|
@@ -121,182 +129,102 @@ X-API-KEY: vk_...
|
|
|
121
129
|
**A) Via CLI (recommended for shell-bound agents).** All commands accept `--json` for machine-readable output:
|
|
122
130
|
```bash
|
|
123
131
|
vike-data wallet summary 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 --json
|
|
124
|
-
vike-data perp funding --symbol BTC --
|
|
132
|
+
vike-data perp funding --symbol BTC --json
|
|
125
133
|
```
|
|
126
134
|
|
|
127
|
-
**B) Via an MCP connector (recommended when your client has one).** All 31 tools live at `https://vike.io/mcp`. Connect the client to that address with the `X-API-KEY` header above, then call a tool by name with its arguments, for example `wallet_summary` with `address` set to a full 0x address
|
|
135
|
+
**B) Via an MCP connector (recommended when your client has one).** All 31 tools live at `https://data.vike.io/mcp`. Connect the client to that address with the `X-API-KEY` header above, then call a tool by name with its arguments, for example `wallet_summary` with `address` set to a full 0x address.
|
|
128
136
|
|
|
129
137
|
Run `vike-data schema --pretty` (or call MCP `tools/list`) to see the live arg shape for every tool. Always read the schema before constructing arguments — defaults and enum values change.
|
|
130
138
|
|
|
131
139
|
---
|
|
132
140
|
|
|
133
|
-
##
|
|
134
|
-
|
|
135
|
-
For deeper per-tool workflows (multi-step recipes, common pitfalls, output schemas), see the `skills/` directory in this repo. The router lives at `vike-router`.
|
|
141
|
+
## What each tool really returns
|
|
136
142
|
|
|
137
143
|
### Tokens
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
| Tool | Description | Skill |
|
|
144
|
+
| Tool | Returns | Not |
|
|
141
145
|
|---|---|---|
|
|
142
|
-
| `token_search` |
|
|
143
|
-
| `token_transfers` |
|
|
144
|
-
| `token_holders` |
|
|
145
|
-
| `token_screener` |
|
|
146
|
-
|
|
147
|
-
**Key chains:** `ethereum`, `bsc`, `base`, `arbitrum`, `hyperevm` (EVM); `bitcoin`, `solana`, `tron`, `xmr`, `zec`, `dash` (non-EVM, limited tool support).
|
|
148
|
-
|
|
149
|
-
---
|
|
146
|
+
| `token_search` | symbol, name, address, logo for a query | no market cap |
|
|
147
|
+
| `token_transfers` | 10 wallets, one side (`tab` = `bought` or `sold`) per call, period 1h/24h/7d/30d: `address, bought, sold, net_tokens, usd_spent, usd_received, net_usd, chains` | no `--min-usd`; window ends at the token's newest priced row; a net seller has `net_usd > 0` |
|
|
148
|
+
| `token_holders` | wallets ranked by cumulative net inflow USD, with entity/type | not balances, no concentration metric |
|
|
149
|
+
| `token_screener` | per-token volume, net/in/out USD, `unique_holders` (wallets ACTIVE in the window, not growth), tx count | no age, liquidity or sector filter; no ascending sort; native coin shows as `0x000…000`; `symbol` is often blank |
|
|
150
150
|
|
|
151
151
|
### Wallets
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
| Tool | Description | Skill |
|
|
152
|
+
| Tool | Returns | Not |
|
|
155
153
|
|---|---|---|
|
|
156
|
-
| `wallet_summary` |
|
|
157
|
-
| `wallet_discover` |
|
|
158
|
-
| `wallet_transactions` |
|
|
159
|
-
| `wallet_compare` |
|
|
160
|
-
| `wallet_trace` |
|
|
161
|
-
| `wallet_counterparties` |
|
|
162
|
-
| `wallet_pnl_history` |
|
|
163
|
-
| `wallet_token_balances` |
|
|
164
|
-
| `wallet_ens` |
|
|
165
|
-
| `wallet_batch_labels` |
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
---
|
|
154
|
+
| `wallet_summary` | a dict keyed `all, 90d, 30d, 7d, 24h`, each with `total_volume, total_inflow, total_outflow, net_flow, tx_count, tokens_traded, first_seen, last_active`, for ONE chain (the most recently active; never summed) | no PnL, holdings or labels |
|
|
155
|
+
| `wallet_discover` | `{wallets, total}` ranked by volume / inflow / outflow / net_flow / tx_count / pnl (`size` ≤ 20; ethereum, bsc) | `realized_pnl` is a ranking key only, not a dollar figure; no labels column |
|
|
156
|
+
| `wallet_transactions` | single transfers, newest first | no aggregates |
|
|
157
|
+
| `wallet_compare` | shared counterparties + shared tokens of exactly two wallets | not 3+ wallets |
|
|
158
|
+
| `wallet_trace` | nodes + edges; direction lives in each edge's `out_usd` / `in_usd` | `from` is the side expanded first, not the sender |
|
|
159
|
+
| `wallet_counterparties` | top partners with sent/received USD and labels | |
|
|
160
|
+
| `wallet_pnl_history` | daily net inflow USD (a proxy) | not realized PnL |
|
|
161
|
+
| `wallet_token_balances` | holdings read from the chain at request time (ethereum, bsc); native coin is a row with `usd_value: null` | not a DeFi-position view |
|
|
162
|
+
| `wallet_ens` | name for an address, or `null` | no name → address |
|
|
163
|
+
| `wallet_batch_labels` | entity, type, risk flag + 30-day flow fields per address, in input order | on `bsc` the 30-day fields are `null` |
|
|
164
|
+
|
|
165
|
+
Chains: most token and wallet tools accept `chain` = `ethereum` | `bsc` | `base`, but Base coverage is narrower: it is documented for token transfers and `wallet_batch_labels`, while the per-wallet transfer tools (`wallet_transactions`, `wallet_counterparties`, `wallet_trace`, `wallet_compare`, `wallet_pnl_history`) are documented for Ethereum and BSC. `wallet_discover` takes `ethereum` | `bsc`, `wallet_token_balances` serves `ethereum` | `bsc` (anything else lands in `chain_errors`) and alerts take `eth` | `bsc`. `token_screener` smart-money mode and `smart_inflow` sort are `ethereum` only (a 400 elsewhere). `wallet_label_provenance` is for Ethereum wallets. Arbitrum, Bitcoin, Solana, Tron and other non-EVM chains are not served. When a chain is not covered, say so; an empty Base result means "not covered", not "no activity".
|
|
170
166
|
|
|
171
167
|
### Labels
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
| Tool | Description | Skill |
|
|
175
|
-
|---|---|---|
|
|
176
|
-
| `wallet_label_provenance` | Why a wallet got a given label (sources + confidence) | `vike-wallet-label-provenance` |
|
|
177
|
-
|
|
178
|
-
Vike's label cascade is multi-source — when an answer hinges on "is this really a CEX hot wallet?", call `wallet_label_provenance` rather than trusting a single source.
|
|
168
|
+
`wallet_label_provenance` returns the raw source labels (at most 6 sources plus our heuristic classifier) and a consensus entity/type. When an answer hinges on "is this really a CEX hot wallet?", call it rather than trusting one source. `found: false` means the wallet is missing from our labelled-wallet table and no source is consulted at all, so it is not proof that nobody labels it, and it is not proof the wallet is clean.
|
|
179
169
|
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
| Tool | Description | Skill |
|
|
186
|
-
|---|---|---|
|
|
187
|
-
| `perp_funding` | Funding rates per symbol per venue + 24h/7d averages | `vike-perp-funding-arb` |
|
|
188
|
-
| `perp_spreads` | Mark-price spreads of the same symbol across venues | `vike-perp-spread-arb`, `vike-cross-venue-perps` |
|
|
189
|
-
|
|
190
|
-
---
|
|
191
|
-
|
|
192
|
-
### Hyperliquid Perps
|
|
193
|
-
On-chain perps data: snapshots, fills, ledger, funding, attribution.
|
|
170
|
+
### CEX perps
|
|
171
|
+
| Tool | Returns |
|
|
172
|
+
|---|---|
|
|
173
|
+
| `perp_funding` | with `symbol`: raw per-venue `funding_rate` + `interval_h` (daily % = rate × 24 / interval_h × 100); without: up to 5 pre-ranked arb rows (`long_exchange`, `short_exchange`, `spread_daily_pct`) |
|
|
174
|
+
| `perp_spreads` | up to 10 cross-venue price-gap rows (≥ 0.5%); `symbol` only filters that global top 10, so it is often empty |
|
|
194
175
|
|
|
195
|
-
|
|
196
|
-
|---|---|---|
|
|
197
|
-
| `hl_perp_top_traders` | Top HL traders by PnL/volume over a window | `vike-hl-top-traders`, `vike-hl-trader-profile` |
|
|
198
|
-
| `hl_position_match` | Reverse-lookup: share-card details (coin/side/lev/entry) → wallet holding that open position | `vike-hl-position-match` |
|
|
176
|
+
Neither returns mark prices or bid/ask per venue. "Spread" here is perp vs perp across venues, not spot vs perp.
|
|
199
177
|
|
|
200
|
-
|
|
178
|
+
### Hyperliquid
|
|
179
|
+
| Tool | Returns |
|
|
180
|
+
|---|---|
|
|
181
|
+
| `hl_perp_top_traders` | up to 20 wallets: `total_realized_pnl`, `roi_pct`, `win_rate_pct`, `max_drawdown_pct` (all percents; 12.5 = 12.5%), `trade_count`, `total_volume`. ROI = window realized PnL / CURRENT account value; drawdown is account-level and all-time |
|
|
182
|
+
| `hl_position_match` | wallets whose open position matches a share card (`symbol`, side, leverage, entry) |
|
|
183
|
+
| `hl_ohlcv` | perp or spot candles |
|
|
201
184
|
|
|
202
|
-
|
|
185
|
+
There is no per-wallet Hyperliquid profile, no open-interest and no cohort tool in the CLI yet. Say so instead of improvising from the leaderboard.
|
|
203
186
|
|
|
204
187
|
### Candles
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
| Tool | Description | Skill |
|
|
208
|
-
|---|---|---|
|
|
209
|
-
| `hl_ohlcv` | Hyperliquid perp or spot candles, 1m–1d, built from HL's own executed fills (also HIP-3 builder DEXs) | `vike-candles` |
|
|
210
|
-
| `polymarket_ohlcv` | Candles for ONE Polymarket outcome token (price = probability, 0–1); needs `token_id`, not a condition_id | `vike-candles` |
|
|
211
|
-
|
|
212
|
-
---
|
|
188
|
+
`hl_ohlcv` (Hyperliquid perp or spot, 1m–1d, built from HL's own fills, also HIP-3 builder DEXs) and `polymarket_ohlcv` (ONE outcome token, price = probability 0–1, needs a `token_id`, not a condition_id). There is no candle source for CEX tickers or an arbitrary ERC-20.
|
|
213
189
|
|
|
214
190
|
### Polymarket
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
|
218
|
-
|
|
219
|
-
| `
|
|
220
|
-
| `
|
|
221
|
-
| `polymarket_wallet` | One trader's positions, PnL, win rate | `vike-polymarket-trader` |
|
|
222
|
-
| `polymarket_smart_money` | Top-PnL Polymarket traders + their current open positions | `vike-polymarket-smart-money` |
|
|
223
|
-
|
|
224
|
-
---
|
|
191
|
+
| Tool | Returns |
|
|
192
|
+
|---|---|
|
|
193
|
+
| `polymarket_markets` | markets ranked by 24h volume only (`volume_24h`, `liquidity`, `ended`, `outcomes[]` with `token_id`, `mid`, `bid`, `ask`) |
|
|
194
|
+
| `polymarket_market_detail` | one market: quotes, smart-money cohort flows, top wallets, resolution status |
|
|
195
|
+
| `polymarket_wallet` | one trader: realized PnL, volume-weighted `hit_rate`, `resolved_markets`, positions |
|
|
196
|
+
| `polymarket_smart_money` | MARKETS where the profitable-wallet cohort is flowing (`flows`) or bought below the mid (`mispricings`); not a list of top traders |
|
|
225
197
|
|
|
226
198
|
### Alerts
|
|
227
|
-
Create + manage alerts
|
|
228
|
-
|
|
229
|
-
| Tool | Description | Skill |
|
|
230
|
-
|---|---|---|
|
|
231
|
-
| `alerts_list` | List user's existing alerts | `vike-alerts-setup` |
|
|
232
|
-
| `alerts_create` | Create a new price/transfer/funding alert | `vike-alerts-setup` |
|
|
233
|
-
| `alerts_edit` | Edit an existing alert | `vike-alerts-setup` |
|
|
234
|
-
| `alerts_delete` | Delete an alert | `vike-alerts-setup` |
|
|
235
|
-
| `alerts_list_channels` | List user's registered delivery channels | `vike-alerts-setup` |
|
|
236
|
-
| `alerts_register_webhook` | Register an HTTPS webhook (HMAC-signed deliveries) | `vike-alerts-webhook` |
|
|
237
|
-
|
|
238
|
-
Alerts fire on a 2-minute cron cycle (not streaming). Don't recommend WebSocket / push streaming — it's not how the platform works.
|
|
199
|
+
Create + manage on-chain transfer alerts delivered to email, Discord or an HTTPS webhook.
|
|
239
200
|
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
Coverage windows per dataset. Don't ask for data older than the window — the tool will return empty or 503.
|
|
243
|
-
|
|
244
|
-
### Transfers & on-chain (per chain)
|
|
245
|
-
|
|
246
|
-
| Chain | Earliest block / date | Notes |
|
|
247
|
-
|---|---|---|
|
|
248
|
-
| Ethereum | 2018-01 (block ~4.85M) | Full history; ETH + ERC-20 |
|
|
249
|
-
| BSC | 2021-01 | Full history; BNB + BEP-20 |
|
|
250
|
-
| Base | 2023-08 (chain launch) | Full history |
|
|
251
|
-
| Arbitrum | 2024-Q3 onward | Backfill in progress; pre-2024 sparse |
|
|
252
|
-
| HyperEVM | 2025-Q1 (chain launch) | Full history |
|
|
253
|
-
| Bitcoin | 2024-01 | Recent windows only — full-history backfill not active |
|
|
254
|
-
| Solana | 2026-Q1 onward | Recent only — see `vike-cli` chain-coverage notes |
|
|
255
|
-
| Tron/XMR/ZEC/Dash | 2024 onward | Recent only |
|
|
256
|
-
|
|
257
|
-
### Hyperliquid perps (hl_perps DB)
|
|
258
|
-
|
|
259
|
-
| Dataset | Window | Notes |
|
|
260
|
-
|---|---|---|
|
|
261
|
-
| Snapshots (positions / equity) | 30 days | TTL — older snapshots dropped |
|
|
262
|
-
| Fills | 30 days | TTL |
|
|
263
|
-
| Ledger (deposits/withdrawals) | 30 days | TTL |
|
|
264
|
-
| Funding payments | 90 days | API-backed since 2026-04-22 |
|
|
265
|
-
| Daily attributed PnL | All-time | `wallet_pnl_attributed_daily` is the long-history view |
|
|
266
|
-
| Daily flows | All-time | `wallet_flows_daily` |
|
|
267
|
-
| Top-trader leaderboards | rolling 24h / 7d / 30d | derived on-the-fly |
|
|
268
|
-
|
|
269
|
-
### CEX perps (data_perp DB)
|
|
270
|
-
|
|
271
|
-
| Dataset | Window |
|
|
201
|
+
| Tool | Does |
|
|
272
202
|
|---|---|
|
|
273
|
-
| `
|
|
274
|
-
|
|
|
275
|
-
|
|
|
276
|
-
|
|
277
|
-
### Polymarket
|
|
278
|
-
|
|
279
|
-
| Dataset | Window | Notes |
|
|
280
|
-
|---|---|---|
|
|
281
|
-
| Active markets | live | scraper paused 2026-05-24 (CF block); historical snapshots still queryable |
|
|
282
|
-
| Wallet positions | last known snapshot | not real-time until scraper resumes |
|
|
203
|
+
| `alerts_list`, `alerts_list_channels` | list rules / enabled channels |
|
|
204
|
+
| `alerts_create`, `alerts_edit`, `alerts_delete` | manage a rule (token symbol + chain `eth`/`bsc` + USD thresholds) |
|
|
205
|
+
| `alerts_register_webhook` | register an HTTPS webhook (HMAC-signed deliveries) |
|
|
283
206
|
|
|
284
|
-
|
|
207
|
+
An alert fires on ANY transfer of the token above the USD threshold on that chain. It cannot watch one address, and there is no price or funding alert. There is no Telegram delivery. Alerts are checked on a cron, not streamed; do not suggest WebSockets.
|
|
285
208
|
|
|
286
209
|
---
|
|
287
210
|
|
|
288
|
-
## Cost & rate
|
|
211
|
+
## Cost & rate limits
|
|
289
212
|
|
|
290
|
-
|
|
291
|
-
- **Standard (1-3 credits):** most tools.
|
|
292
|
-
- **Heavy (5+ credits):** `wallet_discover` with large pages, `wallet_trace` with deep `--depth`, `token_screener` with no filters, `hl_perp_top_traders` with `--limit > 100`.
|
|
213
|
+
Credits are an accounting figure only; they never block a call. The one limit is 20,000 requests per rolling hour per key, shared by MCP and REST.
|
|
293
214
|
|
|
294
|
-
|
|
215
|
+
- **0 credits:** `token_search`, `alerts_list`, `alerts_list_channels`.
|
|
216
|
+
- **1:** `wallet_ens`, `wallet_label_provenance`, `perp_funding`, `perp_spreads`, `hl_ohlcv`, `polymarket_markets`, `polymarket_ohlcv`.
|
|
217
|
+
- **2:** most others, `wallet_summary` among them.
|
|
218
|
+
- **3:** `token_screener`, `wallet_compare`, `wallet_token_balances`, `alerts_create`.
|
|
219
|
+
- **4:** `wallet_trace`.
|
|
295
220
|
|
|
296
221
|
## What vike does NOT do
|
|
297
222
|
|
|
298
223
|
- **No NFT data** — out of scope by design.
|
|
299
224
|
- **No on-chain trading / signing** — read-only platform, no execution.
|
|
300
|
-
- **No WebSocket / push streaming alerts
|
|
225
|
+
- **No WebSocket / push streaming alerts.**
|
|
226
|
+
- **No ENS name → address**, no per-address alerts, no candles for CEX tickers or arbitrary ERC-20 contracts.
|
|
227
|
+
- **No Hyperliquid per-wallet profile, open interest or cohort positioning** through the CLI yet.
|
|
228
|
+
- **No non-EVM chains** (Bitcoin, Solana, Tron, Monero, Zcash, Dash) and no Arbitrum.
|
|
301
229
|
|
|
302
230
|
If the user asks for any of the above, say so directly rather than proposing a workaround.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: vike-alerts-setup
|
|
3
3
|
description: Create, list, edit, and delete on-chain transfer alerts. Alerts fire when a token transfer crosses USD thresholds you set and deliver to email or Discord. Use when the user asks "alert me when X" / "watch for big transfers" / "notify on whale moves".
|
|
4
|
-
allowed-tools: Bash(vike:*)
|
|
4
|
+
allowed-tools: Bash(vike-data:*)
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# vike-alerts-setup
|
|
@@ -55,6 +55,7 @@ vike-data alerts delete 42 --hard # permanently remove
|
|
|
55
55
|
## Notes + gotchas
|
|
56
56
|
|
|
57
57
|
- Currently chains supported: **eth** and **bsc** only. For both, create two alerts.
|
|
58
|
+
- **An alert watches a token, not an address.** It fires on ANY transfer of that token on that chain whose USD value crosses the thresholds. There is no wallet filter, so "alert me when whale 0xABCD sells" cannot be built: say so, and offer the token-wide alert or periodic `vike-data wallet transactions` checks instead. There are no price or funding alerts, and delivery is email, Discord or an HTTPS webhook (no Telegram).
|
|
58
59
|
- Thresholds are in **USD value** of the transfer at fire time, not token quantity.
|
|
59
60
|
- `--cooldown` is per-alert minimum gap between triggers (default 60 min). Useful to avoid spam during high-volume hours.
|
|
60
61
|
- Tokens are matched by symbol (UPPERCASE). For cross-chain symbols like `USDC` that exist on multiple chains, be explicit with `--chain`.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: vike-alerts-webhook
|
|
3
3
|
description: Register an HTTPS webhook as an alert delivery channel — get HMAC-signed POST notifications when alerts fire. Use when the user has a server / bot / Slack integration and wants programmatic alert delivery instead of email/Discord.
|
|
4
|
-
allowed-tools: Bash(vike:*)
|
|
4
|
+
allowed-tools: Bash(vike-data:*)
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# vike-alerts-webhook
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: vike-candles
|
|
3
3
|
description: Historical OHLCV candles for a Hyperliquid perp or spot market, or for one Polymarket outcome token. Use when the user asks for a price chart, candles, OHLCV, or price history of a Hyperliquid asset or a Polymarket outcome (its probability over time).
|
|
4
|
-
allowed-tools: Bash(vike:*)
|
|
4
|
+
allowed-tools: Bash(vike-data:*)
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# vike-candles
|
|
@@ -41,7 +41,7 @@ vike-data candles polymarket <token_id>
|
|
|
41
41
|
| "Hourly BTC perp candles, last week" | `vike-data candles hl BTC --interval 1h --limit 168` |
|
|
42
42
|
| "HYPE spot daily candles" | `vike-data candles hl HYPE --market spot --interval 1d` |
|
|
43
43
|
| "4h ETH, 200 bars" | `vike-data candles hl ETH --interval 4h --limit 200` |
|
|
44
|
-
| "Price history of the YES outcome of market X" |
|
|
44
|
+
| "Price history of the YES outcome of market X" | take the leg's `token_id` from `outcomes[]` in `vike-data polymarket markets` (or `clob_token_ids` in `vike-data polymarket market <condition_id>`), then `vike-data candles polymarket <token_id> --interval 1h` |
|
|
45
45
|
|
|
46
46
|
## Output
|
|
47
47
|
|
|
@@ -50,7 +50,7 @@ Polymarket: `ts`, `open`, `high`, `low`, `close`, `volume`, `trades`, oldest fir
|
|
|
50
50
|
|
|
51
51
|
## Pitfalls
|
|
52
52
|
|
|
53
|
-
- Polymarket takes an **outcome token id**, not a `condition_id`. A condition id returns nothing useful; read the token ids off `clob_token_ids` in `vike-data polymarket market`.
|
|
53
|
+
- Polymarket takes an **outcome token id**, not a `condition_id`. A condition id returns nothing useful; read the token ids off `outcomes[].token_id` in `vike-data polymarket markets` or `clob_token_ids` in `vike-data polymarket market`.
|
|
54
54
|
- Polymarket has no cursor: a window wider than `--limit` is truncated at the **old** end. Raise `--from` to reach the recent end.
|
|
55
55
|
- Polymarket `--from` / `--to` are epoch **milliseconds**; HL `--start` / `--end` also accept ISO-8601.
|
|
56
56
|
- HL buckets are left-aligned UTC and the window is half-open.
|