Several tracked KOL wallets trading one token close together can be worth investigating. It does not establish that they acted independently, still hold the token, or will be profitable to follow. The KOL tracking methodology explains how the tracked set is assembled; a count of tracked wallets is not a count of independent investment decisions.
Request a coordination snapshot
GET /api/v1/kol/coordination is a Pro-or-higher endpoint. It accepts period=1h|6h|24h|7d, min_kols=2..50 and limit=1..50. window_minutes=1..60 controls the peak-density subwindow. Optional filters include min_score, min_avg_winrate, unique_strategies, include_majors and entry-time market-cap bounds. For example:
GET /api/v1/kol/coordination?period=1h&min_kols=3&window_minutes=15&limit=20
Authorization: Bearer <your-api-key>
The top-level array is coordination, not results. A row includes token_mint, token_symbol, kol_count, total_buys, total_sells, net_sol_flow, signal, peak_kols, peak_window_start, peak_window_end, exited_count, holders_count, coordination_score and kols. The universe object describes the candidate set: the route scores up to 150 clusters selected by KOL count and net SOL flow, then applies filters and sorts by score. A top-scoring result is therefore top within that bounded universe, not across every Solana trade.
signal is accumulating when the number of buys exceeds sells; otherwise it is distributing. It is not determined by net_sol_flow, and it does not say whether a wallet remains long. net_sol_flow is an aggregate trade flow in SOL, not the group's unrealized profit. exited_count counts tracked wallets whose observed sell SOL exceeds buy SOL in the query period. It is an exit heuristic, not a verified token-balance snapshot; holders_count subtracts that heuristic from kol_count.
Three useful research checks
- Check a fresh cluster. Compare
peak_kols with kol_count, inspect peak_window_start and peak_window_end, and examine the member wallets and trade sizes. A tight burst can also reflect a common bot, social coordination or delayed ingestion. Verify the token's liquidity, entry price and deployer separately; the deployer tracker guide covers the latter.
- Check persistence without double counting. Save the 1-hour response, then compare later snapshots, including
6h. Those windows overlap: seeing the same buyers in both is not a second independent signal. Compare new buyers, sells and entry-time market cap with your original snapshot.
- Check apparent exits. A change to
distributing or a rising exited_count warrants a closer look at the actual transactions and current liquidity. A token disappearing from a limited result page is not itself an exit event. The exit-count explanation goes deeper.
Do not use a fixed SOL-flow threshold, stop level or position size as if it were validated for every token. To evaluate the signal, save time-stamped snapshots, compare them with a baseline of similar tokens, and include alert delay, spread, fees, failed transactions and delistings in the results. Historical clusters alone cannot establish whether a follower could have obtained the quoted entry.
Polling example
This read-only Python example displays newly seen accumulating clusters. It keeps the API key outside source code and checks HTTP errors. Store seen mints durably if you need deduplication across restarts.
import os
import time
import requests
api_key = os.environ["MADEONSOL_API_KEY"]
seen = set()
url = "https://madeonsol.com/api/v1/kol/coordination"
while True:
try:
response = requests.get(
url,
headers={"Authorization": f"Bearer {api_key}"},
params={"period": "1h", "min_kols": 3, "limit": 20},
timeout=15,
)
response.raise_for_status()
for row in response.json().get("coordination", []):
mint = row["token_mint"]
if row["signal"] == "accumulating" and mint not in seen:
seen.add(mint)
print(mint, row["kol_count"], row["exited_count"], row["coordination_score"])
except requests.RequestException as exc:
print("Coordination request failed:", exc)
time.sleep(300)
Five-minute polling is 288 requests per full day, before any enrichment calls. Check current plan limits and account for other calls. For event-driven delivery, configure a coordination alert rule; the webhook guide introduces the delivery pattern. Push rule fires are user-specific threshold events, while the REST endpoint supplies the ranked snapshot.
For a fuller workflow, see the KOL copy-trading bot tutorial and the live dashboard walkthrough. Compare the coordination view with hot versus trending and the smart-money API overview; those views can share underlying trades, so treat them as cross-checks rather than independent votes.