Pre-trade crypto intelligence: survival rating, order-book depth, unlocks and contract flags.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Ask CoinGraph anything about a token, or test whether a statement is true. A `question` gets a plain answer with key points and their evidence. A `claim` gets a verdict — supported, contradicted or unknown — with the reasoning. Provide exactly one of the two. Takes 20–40 seconds.
The token: a CoinGecko id (cardano, chainlink, solana), a symbol (BTC) or a contract address
A statement to test, e.g. "Whales are moving this token onto exchanges"
A question, e.g. "Is leverage crowded right now?"
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Ask CoinGraph anything about a token, or test whether a statement is true. A `question` gets a plain answer with key points and their evidence. A `claim` gets a verdict — supported, contradicted or unknown — with the reasoning. Provide exactly one of the two. Takes 20–40 seconds.
| Argument | Type | Description |
|---|---|---|
| claim | string | A statement to test, e.g. "Whales are moving this token onto exchanges" |
| token* | string | The token: a CoinGecko id (cardano, chainlink, solana), a symbol (BTC) or a contract address |
| question | string | A question, e.g. "Is leverage crowded right now?" |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"token"
],
"properties": {
"claim": {
"type": "string",
"maxLength": 500,
"minLength": 3,
"description": "A statement to test, e.g. \"Whales are moving this token onto exchanges\""
},
"token": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "The token: a CoinGecko id (cardano, chainlink, solana), a symbol (BTC) or a contract address"
},
"question": {
"type": "string",
"maxLength": 500,
"minLength": 3,
"description": "A question, e.g. \"Is leverage crowded right now?\""
}
}
}The check to run before acting on a token. Returns a verdict — proceed, caution or avoid — rated across momentum, liquidity, leverage, onchain flows, supply, context and contract, with the reasons and their sources. Add `size_usd` to see how your order compares with available liquidity, and `policy` to test your own rules. Each check gets an id you can prove later with get_proof.
| Argument | Type | Description |
|---|---|---|
| token* | string | The token: a CoinGecko id (cardano, chainlink, solana), a symbol (BTC) or a contract address |
| policy | object | Optional: your rules; each one is reported as pass, fail or unknown |
| size_usd | number | Optional: your intended order size in US dollars |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"token"
],
"properties": {
"token": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "The token: a CoinGecko id (cardano, chainlink, solana), a symbol (BTC) or a contract address"
},
"policy": {
"type": "object",
"properties": {
"min_depth_usd": {
"type": "number",
"description": "Minimum liquidity within 2% of the price"
},
"max_unlock_pct": {
"type": "number",
"description": "Maximum token unlock (currently reported as unknown)"
},
"max_funding_pct": {
"type": "number",
"description": "Maximum futures funding rate per 8 hours, in percent"
},
"allow_mint_authority": {
"type": "boolean",
"description": "Whether a contract that can still mint is acceptable (currently reported as unknown)"
},
"max_top10_holder_pct": {
"type": "number",
"description": "Maximum share of supply held by the top 10 holders"
},
"max_exchange_inflow_usd": {
"type": "number",
"description": "Maximum net USD moved onto exchanges in 24 hours"
}
},
"description": "Optional: your rules; each one is reported as pass, fail or unknown"
},
"size_usd": {
"type": "number",
"description": "Optional: your intended order size in US dollars",
"exclusiveMinimum": 0
}
}
}The whole crypto market at a glance: total market cap and volume, BTC and ETH dominance, sectors, how many tokens are up or down, Fear & Greed, stablecoins moving to exchanges, network fees, exchange outages, rankings (top gainers and losers, volume spikes, whale activity, exchange inflows and outflows) and the latest market-wide events. Pass `sections` to get only some parts.
| Argument | Type | Description |
|---|---|---|
| sections | string | Optional comma list: overview, sectors, breadth, sentiment, flows, chains, venues, rankings, events, pulse. Default: all |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"sections": {
"type": "string",
"description": "Optional comma list: overview, sectors, breadth, sentiment, flows, chains, venues, rankings, events, pulse. Default: all"
}
}
}Proof of exactly what CoinGraph told you. Give the id of a check (eval_…), an answer (ans_…), an agent run (run_…) or a brief (a number) and get the original object, its SHA-256 fingerprint, the Chainlink attestation status and the list of data-source calls behind it.
| Argument | Type | Description |
|---|---|---|
| id* | string | The id from a previous answer: eval_…, ans_…, run_… or a brief number |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"maxLength": 60,
"minLength": 1,
"description": "The id from a previous answer: eval_…, ans_…, run_… or a brief number"
}
}
}Is CoinGraph working right now? Shows whether data collection is healthy, how fresh each data source is, what is covered (tokens, exchanges, chains), the current prices and the payment details.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}Why did this token move? Returns CoinGraph's brief: a headline, what happened, the likely causes with confidence, the onchain evidence (whale moves, exchange flows), market context and what to watch next. Every statement cites the evidence behind it. Returns the latest brief; set `fresh` to true to run a new investigation now (takes about a minute).
| Argument | Type | Description |
|---|---|---|
| fresh | boolean | Optional: true to run a new investigation instead of returning the latest brief |
| hours | number | Optional, with fresh: how many hours back to investigate (default 2) |
| token* | string | The token: a CoinGecko id (cardano, chainlink, solana), a symbol (BTC) or a contract address |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"token"
],
"properties": {
"fresh": {
"type": "boolean",
"description": "Optional: true to run a new investigation instead of returning the latest brief"
},
"hours": {
"type": "number",
"maximum": 24,
"minimum": 1,
"description": "Optional, with fresh: how many hours back to investigate (default 2)"
},
"token": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "The token: a CoinGecko id (cardano, chainlink, solana), a symbol (BTC) or a contract address"
}
}
}Everything CoinGraph knows about a token right now, in one answer: price and market data, liquidity and order-book depth, futures (open interest, funding, long/short, liquidations), onchain flows to and from exchanges, large transfers, exchange reserves, supply, contract security (honeypot, mint/freeze powers, taxes), news, TVL, developer activity, open signals and the latest brief. Each part says its source and age. Pass `sections` to get only some parts.
| Argument | Type | Description |
|---|---|---|
| token* | string | The token: a CoinGecko id (cardano, chainlink, solana), a symbol (BTC) or a contract address |
| sections | string | Optional comma list of parts: identity, market, liquidity, derivatives, onchain, supply, security, context, signals, brief. Default: all |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"token"
],
"properties": {
"token": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "The token: a CoinGecko id (cardano, chainlink, solana), a symbol (BTC) or a contract address"
},
"sections": {
"type": "string",
"description": "Optional comma list of parts: identity, market, liquidity, derivatives, onchain, supply, security, context, signals, brief. Default: all"
}
}
}What happened to a token over time. Charts: price, 1-minute candles, open interest, funding, long/short ratios, exchange net flow, exchange reserves and TVL. Events: large transfers, liquidations, signals, headlines and briefs, each with a timestamp. Default window: last 24 hours of events and 14 days of charts.
| Argument | Type | Description |
|---|---|---|
| since | string | Optional ISO-8601 time to start from, e.g. 2026-10-06T00:00:00Z |
| token* | string | The token: a CoinGecko id (cardano, chainlink, solana), a symbol (BTC) or a contract address |
| series | string | Optional comma list of charts to include: price, candles, open_interest, funding, long_short, exchange_net_flow, reserves, tvl |
| resolution | string | Optional chart bucket: 15m, 1h, 6h, raw (every row). Default auto: 15m up to 2 days, 1h up to 30 days, 6h beyond |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"token"
],
"properties": {
"since": {
"type": "string",
"description": "Optional ISO-8601 time to start from, e.g. 2026-10-06T00:00:00Z"
},
"token": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "The token: a CoinGecko id (cardano, chainlink, solana), a symbol (BTC) or a contract address"
},
"series": {
"type": "string",
"description": "Optional comma list of charts to include: price, candles, open_interest, funding, long_short, exchange_net_flow, reserves, tvl"
},
"resolution": {
"enum": [
"auto",
"15m",
"1h",
"6h",
"raw"
],
"type": "string",
"description": "Optional chart bucket: 15m, 1h, 6h, raw (every row). Default auto: 15m up to 2 days, 1h up to 30 days, 6h beyond"
}
}
}CoinGraph's public scorecard. Every check, signal and brief it issued, what it said, what the price did 1 hour, 24 hours and 7 days later, and whether the call was right — plus the overall hit rate by kind and severity. Pass `token` for one token only.
| Argument | Type | Description |
|---|---|---|
| kind | string | Optional: only checks (evaluation), signals or briefs |
| since | string | Optional ISO-8601 time; default the last 7 days |
| token | string | Optional: limit to one token |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"kind": {
"enum": [
"evaluation",
"signal",
"brief"
],
"type": "string",
"description": "Optional: only checks (evaluation), signals or briefs"
},
"since": {
"type": "string",
"description": "Optional ISO-8601 time; default the last 7 days"
},
"token": {
"type": "string",
"maxLength": 100,
"description": "Optional: limit to one token"
}
}
}Who is behind a blockchain address? Returns its label (an exchange such as Binance, a contract, a burn address, or unlabelled), a screening result (OFAC sanctions, scam/phishing flags), what kind of address it is (exchange, whale, new wallet…), its balances, how many transactions it has made and its recent large transfers. Read live from the chain.
| Argument | Type | Description |
|---|---|---|
| chain* | string | The chain: eth (Ethereum), bsc (BNB Chain), btc (Bitcoin), sol (Solana) or ada (Cardano) |
| address* | string | The address on that chain |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"chain",
"address"
],
"properties": {
"chain": {
"enum": [
"eth",
"bsc",
"btc",
"sol",
"ada"
],
"type": "string",
"description": "The chain: eth (Ethereum), bsc (BNB Chain), btc (Bitcoin), sol (Solana) or ada (Cardano)"
},
"address": {
"type": "string",
"maxLength": 130,
"minLength": 20,
"description": "The address on that chain"
}
}
}Watches your tokens and explains every alert. Give it a list of tokens and optionally a webhook URL. It returns what is happening right now on each token (recent signals with the brief that explains them) and, with a webhook, keeps watching: every new signal or brief is pushed to you as a signed message. Returns one of: ACTIVE / QUIET, with a plain summary, structured result, sourced reasons and a proof id. Price: 5 tADA on testnet (premium).
| Argument | Type | Description |
|---|---|---|
| hours | integer | |
| tokens* | array | |
| webhook_url | string | Optional public https URL for continuous alerts |
| min_severity | integer |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"tokens"
],
"properties": {
"hours": {
"type": "integer",
"default": 24,
"maximum": 48,
"minimum": 1
},
"tokens": {
"type": "array",
"items": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Token: CoinGecko id (chainlink), symbol (LINK) or contract address"
},
"maxItems": 50,
"minItems": 1
},
"webhook_url": {
"type": "string",
"format": "uri",
"description": "Optional public https URL for continuous alerts"
},
"min_severity": {
"type": "integer",
"default": 2,
"maximum": 3,
"minimum": 1
}
}
}The whole market in one readable page. Opens with CoinGraph's own record from the last 24 hours (what followed each check), then the market regime (risk-on or risk-off, breadth, leverage, Fear & Greed), what changed ranked by importance, stablecoin and exchange flows, the most crowded futures markets, top movers and headlines — and, if you pass your holdings, a line on each. Returned as Markdown and JSON. Returns one of: RISK_ON / RISK_OFF / NEUTRAL, with a plain summary, structured result, sourced reasons and a proof id. Price: 5 tADA on testnet (premium).
| Argument | Type | Description |
|---|---|---|
| holdings | array | Optional tokens you hold, for a personal section |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"holdings": {
"type": "array",
"items": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Token: CoinGecko id (chainlink), symbol (LINK) or contract address"
},
"maxItems": 20,
"description": "Optional tokens you hold, for a personal section"
}
}
}A full due-diligence memo on any token in one run. Structured like exchange listing reviews (Coinbase, Kraken) and lending-risk onboarding (Aave, Gauntlet, LlamaRisk): liquidity and markets, supply and holder concentration, contract and admin powers, onchain activity, derivatives, development and community, and CoinGraph's own track record on the token. Each section gets a grade with its evidence, plus red flags, strengths and an overall grade. Returns one of: A / B / C / D / F, with a plain summary, structured result, sourced reasons and a proof id. Price: 10 tADA on testnet (pro).
| Argument | Type | Description |
|---|---|---|
| token* | string | Token: CoinGecko id (chainlink), symbol (LINK) or contract address |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"token"
],
"properties": {
"token": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Token: CoinGecko id (chainlink), symbol (LINK) or contract address"
}
}
}Spots crowded futures trades before they unwind. Scores every token with a futures market from 0 to 100 for crowding, combining funding against its own 14-day history, open-interest growth (especially while price is flat), top traders' long/short versus their 7-day average, open interest as a share of market cap, and recent liquidations. Returns which side is crowded and how fragile the market is. Returns one of: CROWDED / ELEVATED / BALANCED, with a plain summary, structured result, sourced reasons and a proof id. Price: 5 tADA on testnet (premium).
| Argument | Type | Description |
|---|---|---|
| top | integer | |
| tokens | array | Tokens to score; default every token with a futures market |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"top": {
"type": "integer",
"default": 10,
"maximum": 50,
"minimum": 1
},
"tokens": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 50,
"description": "Tokens to score; default every token with a futures market"
}
}
}Finds what's moving, keeps only what's safe to act on. Scans the 100 tracked tokens for momentum, volume spikes, coins leaving exchanges and fresh signals, runs the full CoinGraph check on each candidate and drops anything rated avoid. Returns a ranked shortlist; each setup has why it is interesting, what could go wrong, an invalidation price and a time horizon. Every setup is recorded and graded later. Returns one of: SETUPS_FOUND / NOTHING_CLEAN, with a plain summary, structured result, sourced reasons and a proof id. Price: 10 tADA on testnet (pro).
| Argument | Type | Description |
|---|---|---|
| limit | integer |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "integer",
"default": 5,
"maximum": 10,
"minimum": 1
}
}
}A health check for everything in a wallet. Reads a wallet's holdings live from the chain, runs the CoinGraph check on each tracked token, and measures concentration, how many days each position would take to exit at normal volume, and contract risks. Returns a health grade from A to F with fixes ranked by impact. Returns one of: A / B / C / D / F, with a plain summary, structured result, sourced reasons and a proof id. Price: 10 tADA on testnet (pro).
| Argument | Type | Description |
|---|---|---|
| chain* | string | Chain: eth (Ethereum), bsc (BNB Chain), btc (Bitcoin), sol (Solana), ada (Cardano) |
| address* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"chain",
"address"
],
"properties": {
"chain": {
"enum": [
"eth",
"bsc",
"btc",
"sol",
"ada"
],
"type": "string",
"description": "Chain: eth (Ethereum), bsc (BNB Chain), btc (Bitcoin), sol (Solana), ada (Cardano)"
},
"address": {
"type": "string",
"maxLength": 130,
"minLength": 20
}
}
}The check every trade passes before it is placed. Give it a token, an order size and optionally your rules. It runs the CoinGraph check, measures the real on-chain price impact of your size (DEX aggregator quote) against order-book depth and daily volume, reads leverage, onchain flows and contract risk, and returns ALLOW, REDUCE (with the largest safe size) or BLOCK, with every reason sourced. Returns one of: ALLOW / REDUCE / BLOCK, with a plain summary, structured result, sourced reasons and a proof id. Price: 5 tADA on testnet (premium).
| Argument | Type | Description |
|---|---|---|
| side | string | |
| token* | string | Token: CoinGecko id (chainlink), symbol (LINK) or contract address |
| policy | object | |
| size_usd | number | Order size in USD |
| max_impact_pct | number | Largest acceptable price impact; default 1% for top-20 tokens, 2% otherwise |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"token"
],
"properties": {
"side": {
"enum": [
"buy",
"sell"
],
"type": "string",
"default": "buy"
},
"token": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Token: CoinGecko id (chainlink), symbol (LINK) or contract address"
},
"policy": {
"type": "object",
"properties": {
"min_depth_usd": {
"type": "number"
},
"max_funding_pct": {
"type": "number"
},
"allow_mint_authority": {
"type": "boolean"
},
"max_top10_holder_pct": {
"type": "number"
},
"max_exchange_inflow_usd": {
"type": "number"
}
}
},
"size_usd": {
"type": "number",
"default": 10000,
"maximum": 10000000000,
"description": "Order size in USD",
"exclusiveMinimum": 0
},
"max_impact_pct": {
"type": "number",
"maximum": 50,
"description": "Largest acceptable price impact; default 1% for top-20 tokens, 2% otherwise",
"exclusiveMinimum": 0
}
}
}Enforces the treasury's rules, with proof. Give it the treasury's assets and its investment policy (minimum liquidity, maximum holder concentration, maximum funding, maximum exchange inflow, mint authority, maximum exit slippage, maximum share of market cap). It tests every asset against every rule — exit slippage with a live DEX quote for the actual position size — and returns pass/fail per rule per asset, each backed by a proof id, ready to attach to a governance vote. Returns one of: COMPLIANT / BREACH / INCOMPLETE, with a plain summary, structured result, sourced reasons and a proof id. Price: 10 tADA on testnet (pro).
| Argument | Type | Description |
|---|---|---|
| assets* | array | |
| policy* | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"assets",
"policy"
],
"properties": {
"assets": {
"type": "array",
"items": {
"type": "object",
"required": [
"token",
"value_usd"
],
"properties": {
"token": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Token: CoinGecko id (chainlink), symbol (LINK) or contract address"
},
"value_usd": {
"type": "number",
"maximum": 100000000000,
"exclusiveMinimum": 0
}
}
},
"maxItems": 20,
"minItems": 1
},
"policy": {
"type": "object",
"properties": {
"min_depth_usd": {
"type": "number",
"description": "Minimum liquidity within 2% of price"
},
"max_funding_pct": {
"type": "number"
},
"allow_mint_authority": {
"type": "boolean"
},
"max_top10_holder_pct": {
"type": "number"
},
"max_exit_slippage_pct": {
"type": "number",
"description": "Largest acceptable price impact to sell the whole position"
},
"max_exchange_inflow_usd": {
"type": "number"
},
"max_position_pct_of_market_cap": {
"type": "number"
}
}
}
}
}Checks a swap or a send before you sign it. Before a swap, it checks the token: contract risks (honeypot, taxes, mint/freeze/blacklist powers), the real price impact of the amount, holder concentration and market conditions. Before a send, it checks the recipient live on the chain: OFAC sanctions, scam and phishing flags, burn addresses, brand-new wallets and lookalikes of known addresses (address poisoning). Returns SAFE, WARN or STOP with one plain sentence for the user. Returns one of: SAFE / WARN / STOP, with a plain summary, structured result, sourced reasons and a proof id. Price: 5 tADA on testnet (premium).
| Argument | Type | Description |
|---|---|---|
| chain | string | Chain of the recipient address |
| token | string | The token being swapped into or sent |
| amount_usd | number | Amount in USD |
| to_address | string | Recipient address (for a send) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"chain": {
"enum": [
"eth",
"bsc",
"btc",
"sol",
"ada"
],
"type": "string",
"description": "Chain of the recipient address"
},
"token": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "The token being swapped into or sent"
},
"amount_usd": {
"type": "number",
"maximum": 10000000000,
"description": "Amount in USD",
"exclusiveMinimum": 0
},
"to_address": {
"type": "string",
"maxLength": 130,
"minLength": 20,
"description": "Recipient address (for a send)"
}
}
}Shows what the big wallets are doing with a token. Reads onchain flows through NOWNodes: large transfers tagged with exchange names, net flows onto or off exchanges compared with the token's own 7-day pattern, exchange reserve trends and, live from the chain, who the biggest unlabelled wallets are. Returns ACCUMULATING, DISTRIBUTING or NEUTRAL with the moves behind it. Returns one of: ACCUMULATING / DISTRIBUTING / NEUTRAL / NO_DATA, with a plain summary, structured result, sourced reasons and a proof id. Price: 5 tADA on testnet (premium).
| Argument | Type | Description |
|---|---|---|
| token* | string | Token: CoinGecko id (chainlink), symbol (LINK) or contract address |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"token"
],
"properties": {
"token": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Token: CoinGecko id (chainlink), symbol (LINK) or contract address"
}
}
}Find a token. With no input, lists the 100 tokens CoinGraph tracks with price, 1h and 24h change, open signals and the latest headline. With `query`, searches 21,000+ tokens by name, symbol or contract address and says whether each one is tracked. Use this first to get the token id.
| Argument | Type | Description |
|---|---|---|
| query | string | Name, symbol or contract address to search for. Leave empty to list the tracked tokens |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"query": {
"type": "string",
"maxLength": 100,
"description": "Name, symbol or contract address to search for. Leave empty to list the tracked tokens"
}
}
}Watch up to 50 tokens and get told when something important happens. CoinGraph sends a signed message to your webhook URL when a signal fires (price, volume, whale transfer, liquidations, exchange flows, news…) or a new brief is written. Returns a watch id and a secret that verifies each message (shown once — keep it).
| Argument | Type | Description |
|---|---|---|
| kinds | array | Optional: only these signal kinds, e.g. whale_transfer, exchange_inflow, price_move |
| tokens* | array | Token ids to watch |
| webhook_url* | string | Public https URL that receives the messages |
| min_severity | integer | Optional: only send signals at or above this severity, 1 (low) to 3 (high). Default 2 |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"tokens",
"webhook_url"
],
"properties": {
"kinds": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional: only these signal kinds, e.g. whale_transfer, exchange_inflow, price_move"
},
"tokens": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 50,
"minItems": 1,
"description": "Token ids to watch"
},
"webhook_url": {
"type": "string",
"format": "uri",
"description": "Public https URL that receives the messages"
},
"min_severity": {
"type": "integer",
"maximum": 3,
"minimum": 1,
"description": "Optional: only send signals at or above this severity, 1 (low) to 3 (high). Default 2"
}
}
}