For Solana trading-bot developers
MadeOnSol sends your Solana bot deployer alerts, KOL trades and copy-trade signals on one WebSocket stream, with token-risk and wallet context over REST; your code executes.
Try it free
Pro
€43/month
Go further with Ultra
€131/month
Billed in euros by card. Checkout shows today's dollar estimate; your card issuer sets the exact amount. USDC or SOL at the day's rate. Cancel anytime.
Free, Pro and Ultra keys are for your own internal use, such as bots, backends and research. Showing MadeOnSol data to your own users, for example in a public terminal or dashboard, needs Business. Compare plans
Build trading systems with parsed DEX activity, wallet intelligence, token context and real-time delivery, without turning your application into an indexing project.
What your bot subscribes to
Channels on wss://madeonsol.com/ws/v1/stream, one token for all of them.
deployer:alertsFrom ProNew launches from tracked deployers, with tier and track record
kol:tradesFrom ProBuys and sells by tracked KOL wallets, with market cap at the trade
copytrade:signalsFrom ProYour copy-trade rules firing, with a suggested size
token:surgesFrom ProYoung tokens running against their launch market cap, with risk flags
The problem
Sending a swap is only one part of a trading system. Before execution, a bot must detect the right event, interpret venue-specific activity, normalize fields, enrich wallets and tokens, filter noise and retain enough context to decide whether a signal deserves action.
Show me
Start on REST with a free key, then one stream token for three channels. SDKs: TypeScript and Python as madeonsol-x402 (npm 4.4.0, PyPI 2.1.0), Rust as madeonsol (crates 0.34.0). Field names are the real payload keys; values are illustrative and the frames are abridged.
A free key reads the KOL feed right away, 5 minutes delayed; a paid key gets it in real time.
GET /api/v1/kol/feed?limit=5 Authorization: Bearer msk_...
The SDK fetches the stream token, reconnects with backoff and calls your handlers with each event's data.
import { MadeOnSolREST } from "madeonsol-x402";
const rest = new MadeOnSolREST({ apiKey: process.env.MADEONSOL_API_KEY! });
const stream = rest.stream(); // fetches the stream token, reconnects with backoff
stream.on("deployer:alert", (a) => console.log(a.deployer_tier, a.token_mint));
stream.on("kol:trade", (t) => console.log(t.kol_name, t.action, t.sol_amount));
stream.on("copytrade:signal", (s) => console.log(s.suggested_sol_amount, s.tx_signature));
stream.subscribe(["deployer:alerts", "kol:trades", "copytrade:signals"]);An elite deployer launches, a tracked KOL buys, and your copy-trade rule on that KOL fires with a suggested size.
[
{
"id": "deployer:alert:918273",
"seq": 184212,
"channel": "deployer:alerts",
"event": "deployer:alert",
"data": {
"alert_id": 918273,
"alert_type": "new_deploy",
"deployer_wallet": "7vfC...rXs2",
"deployer_tier": "elite",
"token_mint": "8vdc...pump",
"token_symbol": "NEW",
"launchpad": "pumpfun",
"tx_signature": "3xQm...",
"slot": 449476601
},
"ts": 1790157600000
},
{
"id": "kol:trade:5K7j...",
"seq": 184219,
"channel": "kol:trades",
"event": "kol:trade",
"data": {
"kol_name": "Cented",
"wallet_address": "CyaE...n5Lb",
"token_mint": "8vdc...pump",
"token_symbol": "NEW",
"action": "buy",
"sol_amount": 5.27,
"tx_signature": "5K7j...",
"slot": 449476688,
"traded_at": "2026-09-23T10:00:35.000Z",
"market_cap_usd_at_trade": 28430
},
"ts": 1790157635000
},
{
"id": "copytrade:signal:77120",
"seq": 184220,
"channel": "copytrade:signals",
"event": "copytrade:signal",
"data": {
"signal_id": 77120,
"subscription_id": 41,
"subscription_name": "follow cented",
"fired_at": "2026-09-23T10:00:36.120Z",
"source_wallet": "CyaE...n5Lb",
"kol_name": "Cented",
"action": "buy",
"token_mint": "8vdc...pump",
"token_symbol": "NEW",
"source_sol_amount": 5.27,
"suggested_sol_amount": 0.5,
"tx_signature": "5K7j...",
"traded_at": "2026-09-23T10:00:35.000Z",
"market_cap_usd_at_trade": 28430
},
"ts": 1790157636120
}
]Try it
A free key calls the REST API right away, with live feeds 5 minutes delayed. The KOL Tracker and surge alerts show the same data in the browser.
Signal chain
Each step names the channel or endpoint that carries it. MadeOnSol covers detection and context; the last step is yours.
01
MadeOnSol
A tracked deployer launches a token. The alert names the deployer and the launchpad.
deployer:alertsGET /api/v1/deployer-hunter/alerts02
MadeOnSol
The alert carries deployer_tier (elite, good or rising, the tracked tiers); the profile adds bonding rate and history.
GET /api/v1/deployer-hunter/{wallet}03
MadeOnSol
A 0-100 score with every factor listed: mint and freeze authority, liquidity, LP burn, bundled open, deployer record. From Pro.
GET /api/v1/tokens/{mint}/risk04
MadeOnSol
Tracked KOL wallets buy or sell the token, with market cap at the trade.
kol:tradesGET /api/v1/kol/feed05
MadeOnSol
Your rule fires with a suggested size. A rule follows any wallet you list, KOL or not; here it follows one of those KOL wallets.
copytrade:signalsPOST /api/v1/copytrade/subscriptions06
Your bot
Sizing, risk limits, building, signing and sending the swap stay in your code.
For AI agents
The same data is available to AI agents: as tools in the MCP server, or per call over x402 with no account.
MCP tools
madeonsol_deployer_alertsmadeonsol_kol_feedmadeonsol_token_riskmadeonsol_copytrade_createmadeonsol_tokens_surgesx402, pay per call
GET /api/x402/deployer-hunter/alertsGET /api/x402/kol/feedGET /api/x402/tokens/{mint}/riskCapabilities
01
Consume parsed DEX activity instead of maintaining custom decoding for every supported venue.
02
Enrich signals with wallet, KOL and scored early-buyer wallet intelligence where relevant.
03
Reduce downstream noise with targeted endpoints and supported server-side filters.
04
Combine live delivery with queryable data on one platform.
Architecture
1 · Source
Chain activity
Transactions and program events
2 · MadeOnSol
Data and intelligence layer
3 · Delivery
4 · Yours
Your bot's strategy and risk logic
Keys and business logic stay server-side
5 · Users
Your execution
Build outcomes
Keep going
Solution
Copy Trading
Rules on wallets you choose, sized signals out.
Solution
Telegram Bots
When the bot posts alerts instead of trading.
Solution
Wallet Tracking
Events from a watchlist of any addresses.
Solution
Token Risk
Risk evidence and deployer history before the bot acts.
Guide
A first trading bot, step by step
Beginner guide in code.
Guide
A sniper bot on the DEX firehose
Filtered launch trades into a bot.
FAQ
Next step
Read the measured numbers, prototype on a free key, then open the stream on a paid plan.