For wallet-tracker, alert and dashboard developers
The MadeOnSol Wallet Tracker watches a list of Solana wallets and turns their transactions into structured swap and transfer events, ordered by slot and delivered over REST, signed webhooks and a WebSocket channel.
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
Monitor addresses, interpret onchain activity and deliver usable wallet signals without building a wallet-indexing stack from scratch.
Two responses, one wallet view
Wallet Tracker
Your watchlist, event by event
event_typeactioncounterpartyslotreplayedUniversal Wallet API
Any address, on request
is_kolis_alpha_trackedbot_confidenceis_sniperis_bundlerThe problem
Wallet tracking looks simple at one address and becomes an infrastructure problem at scale. Products need transaction interpretation, filtering, history, deduplication, delivery and a consistent model across many watched addresses.
Show me
Add an address once; every swap and SOL transfer it makes becomes an event. Values are illustrative, keys are what the API returns.
Add the address with an optional label. The label comes back on every event.
POST /api/v1/wallet-tracker/watchlist
Authorization: Bearer msk_...
Content-Type: application/json
{ "wallet_address": "7xKX...3bPq", "label": "watch #1" }Swaps carry the token and side; transfers name the counterparty. The first page is in slot order.
// GET /api/v1/wallet-tracker/trades?limit=2
{
"events": [
{
"wallet_address": "7xKX...3bPq",
"label": "whale #1",
"event_type": "swap",
"action": "buy",
"token_mint": "8vdc...pump",
"token_symbol": null,
"token_name": null,
"sol_amount": 2.5,
"token_amount": 1000000,
"tx_signature": "5Hyj...kMnP",
"block_time": 1790157600,
"slot": 449476673,
"replayed": false,
"ingested_at": "2026-09-23T10:00:00.000Z",
"timestamp": "2026-09-23T10:00:00.000Z"
},
{
"wallet_address": "7xKX...3bPq",
"label": "whale #1",
"event_type": "transfer",
"action": null,
"token_mint": null,
"token_symbol": null,
"token_name": null,
"sol_amount": 40,
"token_amount": null,
"counterparty": "9WzD...AWWM",
"tx_signature": "2mLq...Xw9e",
"block_time": 1790157540,
"slot": 449476520,
"replayed": false,
"ingested_at": "2026-09-23T09:59:00.000Z",
"timestamp": "2026-09-23T09:59:00.000Z"
}
],
"count": 2,
"ordered_by": "slot",
"next_cursor": 1790157540,
"next_cursor_slot": 449476520
}KOL, early-buyer wallet and bot flags come from the Universal Wallet API, a separate endpoint that answers for any address.
// GET /api/v1/wallet/7xKX...3bPq (a separate endpoint, any address)
{
"address": "7xKX...3bPq",
"flags": {
"is_kol": false,
"kol_name": null,
"is_alpha_tracked": true,
"bot_confidence": "low",
"is_deployer": false,
"is_sniper": false,
"is_bundler": false
}
}slot, not the timestamp
block_time and ingested_at are when MadeOnSol saw the transaction, not when the chain produced it. slot is the chain position: without a cursor the first page comes back with ordered_by: "slot", and next_cursor_slot goes back in as before_slot.
replayed
true when the event reached you through recovery after a reconnect or restart rather than live delivery. Code that must not act on recovered history checks this flag, never the timestamp.
Try it
The free wallet scanner shows PnL, trading style and the same KOL and early-buyer wallet flags for any Solana address, no key needed.
Enriched events
What you would otherwise decode yourself, and the field that carries it. Coverage windows in the data dictionary
Raw: Balance changes spread over pre- and post-token accounts
One swap event with buy or sell, the token and the SOL amount, on any venue
event_typeactiontoken_mintsol_amountRaw: A lamport delta with no token movement
A transfer event naming the other side
event_typecounterpartyRaw: Arrival order, which a reconnect can scramble
Chain position, and a flag for events recovered after a reconnect
slotreplayedordered_byRaw: An address with no context
Your label, plus KOL, early-buyer wallet and bot flags from the Universal Wallet API
labelis_kolis_alpha_trackedbot_confidenceDelivery
Pull
From Pro
Read the activity of your watched wallets as swap and transfer events, filtered by wallet, action or event type, and summarised per wallet.
Wallet Tracker APIPush
From Pro
Receive each wallet tracker event as a signed HTTPS request to your endpoint, with slot and replayed on the payload.
Webhook docsStream
From Ultra
Subscribe to the wallet_tracker:events channel on the WebSocket stream and handle events as they arrive.
Streaming docsCapabilities
01
Turn wallet transactions into structured data your application can filter, display or trigger on.
02
Watch up to 50 wallets on Pro, 250 on Ultra and 1,000 on Business, and look up many wallets per call with batch endpoints.
03
Connect behavior with KOL, early-buyer wallet, token and deployer intelligence. Wallet PnL, open positions and funding evidence from Pro; verified holdings from Ultra.
04
Events carry their slot and a replayed flag, so pages sort by chain position and your code can tell recovered history from a live trade.
Architecture
1 · Source
Chain activity
Transactions and program events
2 · MadeOnSol
Data and intelligence layer
3 · Delivery
4 · Yours
Your watchlists and alert rules
Keys and business logic stay server-side
5 · Users
Your wallet product
Build outcomes
Displaying MadeOnSol data to your own users requires a Business plan. See pricing
Keep going
Solution
Smart Money
Which tracked KOL wallets to watch, and why.
Solution
Copy Trading
Rules and sized signals on wallets you choose.
Solution
Portfolio Trackers
Turn watchlist events into a user-facing activity feed.
Guide
Add wallets, poll events, build a dashboard
Wallet Tracker walkthrough.
Guide
Wallet alerts over signed webhooks
Receive and verify each event.
Guide
A copy-trading signal feed from watched wallets
From watchlist events to signals.
FAQ
Next step
Scan an address for free, see how the data is verified, then add your watchlist on a paid plan.