win.moby/moby · v1.0.0 · crypto-web3
Moby is healthy: it completed an MCP handshake in 1590 ms and exposes 77 tools.
Trade Solana from your Moby wallet with app-set caps and Guardrails. No withdrawals.
Endpoint: https://mcp.moby.win/mcp (streamable-http)
No repository listed · Website · JSON · Add to my inventory
| Users (last 30 days) | 0 |
| Handshake | Healthy |
| Auth needed | None |
| Tool count | 77 |
| Latency | 1590 ms |
| Last checked (UTC) | 2026-11-02T08:00:26.192Z |
| Checked (UTC) | Status | Latency | Error |
|---|---|---|---|
| 2026-11-02T08:00:26.192Z | Healthy | 1590 |
get_screener_leaderboard | The main Moby token leaderboard: the tokens with the most notable activity right now, ranked best-first by Moby's composite 24h score. Start here when the user asks what is moving, what is trending, or what they should be looking at, and they have not named a specific token. Page 1 is the top of the |
get_degen_leaderboard | The high-risk ('degen') leaderboard: newer, smaller, far more volatile tokens than `get_screener_leaderboard`. Tokens here can lose most of their value in minutes and many are short-lived. Say that plainly when you present them. Ranked best-first; page 1 is the top. Moby's leaderboards: Main = `get_ |
get_screener_groups | List the token groups/categories Moby tracks (themes, sectors, narratives). Use this to discover a valid `group_id`, then pass that to `get_group_leaderboard` to see the tokens inside it. `home_tabs` lists the app's Home boards by `tab_id` (`home_majors`, `home_stocks`, `home_pulse`), also valid `gr |
get_group_leaderboard | The ranked tokens inside one group/category. `group_id` must come from `get_screener_groups` — a group's `group_id`, or a `home_tabs` `tab_id` such as `home_majors` / `home_stocks` — do not invent or guess one. Ranked best-first; page 1 is the top. Moby's leaderboards: Main = `get_screener_leaderboa |
get_launchpads | Tokens grouped by the launchpad they were created on (pump.fun and similar). Useful for 'what launched recently' questions. Newly launched tokens are the riskiest category on the platform. This is public market data about the whole market — it is NOT about the user's own wallet or holdings. Tools wh |
get_market_movers | Screener events — discrete things that happened to tokens (price and volume moves, notable activity) over a period, newest first. This is the event stream behind the leaderboards, so use it when the user asks what CHANGED or what HAPPENED rather than what ranks highest right now. Poll for new events |
search_tokens | Find tokens by name, symbol or contract address. Use this FIRST whenever the user names a token in words ('buy some BONK') — every other token tool needs a contract address, and searching is the only safe way to get one. Never guess a contract address: on-chain there are many impostor tokens sharing |
get_token_trade_brief | START HERE for pre-buy research on one token: a compact brief (a few KB) in one call instead of 5-10. Sections: `about` (description, socials, age, launchpad; `liquidity_source`, and `graduation_pct` while on a bonding curve), `safety` (`safety_tier` + `safety_note`), `smart_money_flow` (h1/h4/h24 n |
get_token_overview | Everything Moby knows about one token in a single call: price, market cap, liquidity, volume, holder counts, safety signals and metadata. This is the default tool for 'tell me about <token>'. Get `token_address` from `search_tokens`. `liquidity_source` says where `liquidity` sits: `bonding_curve` = |
get_token_risk_signals | Holder-concentration and contract risk for one token: sniper, insider, bundler and fresh-wallet shares, dev hold, mint/freeze authority, honeypot and buy/sell tax. Same fields and rules as the Moby app's Risk Signals block. `status` is `ok` / `pending` / `unavailable` / `unsupported`: `pending` mean |
get_token_smart_money | Which tracked high-performing wallets (whales, KOLs, proven traders) are positioned in this token, and on which side. This is Moby's core edge signal — it answers 'is anyone good in this?'. These are OTHER people's wallets, never the user's. Each window (`h1`, `h4`, `h24`) carries `last_buy_at` / `l |
get_token_key_holders | The most significant holders of this token and how concentrated ownership is. High concentration is a risk signal worth stating explicitly to the user. ⚠️ These are OTHER people's wallets — this is NOT the user's position in the token. For that, use `get_my_position`. `whale_count`/`trader_count`/`k |
get_token_live_feed | Trade-by-trade feed of the TRACKED whale, KOL and trader wallets that traded one token, newest first. It is NOT the whole market: only wallets Moby tracks appear. Every tracked trade is listed, with no $ floor (the app's feed hides trades under $100). One row per swap: a wallet that is both a whale |
get_token_chart | Price history for one token as a series of points, for describing or plotting a trend. `period` selects the window and defaults to `1d`. Prices are in USD. Choosing between the two price tools: `get_token_chart` returns a ready-to-read price line for describing a trend; `get_token_ohlcv` returns raw |
get_token_ohlcv | Raw OHLCV candles for one token — open, high, low, close and volume per interval — for calculation, technical analysis, or computing a return over a specific window. Prices are always USD (the response says so in `denomination`). Pick the candle size with `interval` (`1m`, `5m`, `15m`, `1h`, `4h`, ` |
get_token_price | The current USD price of one token, and nothing else. Cheapest call for a price check; use `get_token_overview` if you also need market cap, liquidity or volume. This is public market data about the whole market — it is NOT about the user's own wallet or holdings. Tools whose names start with `get_m |
get_whalewatch_feed | Moby's WhaleWatch feed: buys and sells by tracked whale wallets across the market, newest first. Filter to one token with `token_address`, to one tracked wallet with `wallet_address`, or to specific whale lists with `list_ids` (from `get_whalewatch_lists`). ⚠️ `wallet_address` here filters TRACKED W |
get_whalewatch_feed_window | Every tracked-whale buy and sell inside one time window (at most 48 hours), for bulk reads such as 'everything whales did in the last 6 hours'. Unlike `get_whalewatch_feed`, it returns ONE ROW PER SWAP (the plain feed repeats a swap once per whale list the wallet is on; `list_id` here is one of the |
get_whalewatch_kol_feed | Same feed as `get_whalewatch_feed` but pre-filtered to KOLs — public, named crypto influencers — rather than anonymous whales. The list filter is applied server-side, so there is no `list_ids` argument. Use this when the user asks what influencers or 'the callers' are buying. For one KOL's trades, u |
get_smart_money_pulse | The WHOLE MARKET's whale flow in one call: tracked whale/KOL/smart-money buys, sells and dumps for the last 1h, 4h and 24h (`h1`, `h4`, `h24`). Use it to tell 'whales are dumping everything' from 'this one coin is weak' before reading a single token, instead of paging `get_whalewatch_feed_window`. E |
get_whalewatch_lists | The tracked-wallet lists Moby maintains (whale groups, KOL groups, proven-trader cohorts). Call this to discover valid `list_ids` for `get_whalewatch_feed`. This is public market data about the whole market — it is NOT about the user's own wallet or holdings. Tools whose names start with `get_my_` a |
get_whale_wallet_holdings | What one TRACKED WHALE wallet currently holds. ⚠️ This is somebody else's portfolio, taken from Moby's public whale-tracking data. It is NOT the user's portfolio under any circumstances — for that, call `get_my_balances`. Take `wallet_address` from a WhaleWatch feed result; addresses may be returned |
get_whale_wallet_wins | The biggest realised wins of one TRACKED WHALE wallet — its top closed trades by profit, at most five. Use it to judge whether a wallet seen in a WhaleWatch feed is actually good before weighting its activity. ⚠️ Somebody else's track record, not the user's — the user's own realised results come fro |
get_whalewatch_home_feed | The short, curated WhaleWatch feed the Moby app shows on its home screen — the most notable recent whale trades across the whole market, already filtered down. Use it for an open-ended 'what are whales doing right now'. For anything filtered — one token, one wallet, specific lists, a time window, or |
get_whalewatch_legend | The key explaining the icons and badges attached to rows in the WhaleWatch feeds. Static reference data — call it once if you need to explain what a marker on a feed row means, and do not poll it. It contains no market data and no wallets. This is public market data about the whole market — it is NO |
get_top_held | TOKENS ranked by aggregate USD held, either by tracked WHALES or by Moby USERS — never a person-vs-person ranking. Use `holder_type=whale` (default) for 'what are whales piling into'; `holder_type=user` for 'what do Moby users collectively hold most of'. This is public market data about the whole ma |
get_screener_event_filters | The VALID VALUES for `get_market_movers`' `event_types`, `period` and `market_cap_group` arguments, for one network. Call this BEFORE filtering `get_market_movers` — an invented filter string returns an empty list that reads as 'no events found' rather than 'you guessed a value that does not exist'. |
get_token_holdings | Aggregate holder-distribution summary for one token — the concentration picture in bucketed form. For the individually itemised top holders use `get_token_holders`; for just the tracked whales/KOLs use `get_token_key_holders`. This is public market data about the whole market — it is NOT about the u |
get_token_holders | ALL top holders of this token, paginated and ranked by size — not just the wallets Moby tracks. `get_token_key_holders` is the tracked-whale/KOL SUBSET of this same population; this is the full concentration picture. Results are capped. Raise `limit` or step `page` only if the answer is genuinely no |
get_token_whale_holders | Tracked WHALES holding this token, GROUPED BY WHALE LIST. `get_token_key_holders` returns the same population UNGROUPED (whales and KOLs together); use this when the question is 'which KIND of whale is in this'. This is public market data about the whole market — it is NOT about the user's own walle |
get_kol_top_held | Tracked KOLs — named public traders/influencers — holding this token. The KOL-only slice of `get_token_key_holders`. This is public market data about the whole market — it is NOT about the user's own wallet or holdings. Tools whose names start with `get_my_` are the ones that return the user's own d |
get_token_dca_orders | PUBLIC, on-chain DCA (dollar-cost-average) orders open against this token — who ELSE in the market is accumulating it on a schedule. ⚠️ NOT the user's own DCAs — those come from `get_my_dca_schedules`. The two are unrelated datasets that both use the word 'DCA'. This is public market data about the |
get_token_x_profile | The project's X/Twitter account: follower count, age, verification — 'is this project's social presence real or a two-day-old burner'. ⚠️ CALL SPARINGLY: X charges paid credits per lookup. Not for routine enrichment of every token in a list. This is public market data about the whole market — it is |
get_whale_wallet_track_record | The full track record behind a TRACKED WHALE: win rate, realized PnL, trade count, typical hold time, and whether Moby has finished indexing it (`backfill_state`). Judge whether a wallet seen in a WhaleWatch feed is actually good before weighting its activity. For everything in one call — including |
get_whale_wallet_pnl_chart | A TRACKED WHALE's cumulative realized PnL over time — is the track record a steady climb or one lucky trade? ⚠️ Somebody else's equity curve, never the user's. This is public market data about the whole market — it is NOT about the user's own wallet or holdings. Tools whose names start with `get_my_ |
get_whale_wallet_positions | A TRACKED WHALE's current holdings WITH cost basis and unrealized PnL per position. Richer than `get_whale_wallet_holdings`, which is amount + USD value only. ⚠️ Somebody else's positions, never the user's — for the user's own, use `get_my_balances` or `get_my_position`. This is public market data a |
get_whale_wallet_profile | THE RICHEST WHALE READ ON THIS SURFACE: one call combining identity, realized track record, current holdings, recent trades, and whether Moby has stopped tracking this wallet (`identity.tracking_paused_at`). Prefer this over calling `get_whale_wallet_track_record` + `get_whale_wallet_positions` sepa |
get_whale_wallet_profiles | Rate 10-20 key holders before a buy in one call; stats only, no holdings. Pass the `wallet_address` refs from `get_token_key_holders` (max 20). Each profile carries `windows.d7` / `windows.d30` (realized P/L, closes, win rate, median hold, short-hold share), `track_record`, `realized` and `identity` |
get_my_balances | The user's CURRENT holdings in their Solana agent wallet, with balances and USD values. USDC is your cash (flagged `is_cash: true`). SOL and every other token are positions; sell with quick_sell to raise USDC. What each part contains: - `tokens` — EVERYTHING held in the wallet, and the authoritative |
get_my_portfolio | EVERYTHING the user's agent holds, in one call — with a single combined total of the AGENT'S OWN wallets only: the user's Copy Trading wallet and manual wallets are NOT counted. `excluded_wallets` lists what was left out (shortened address, `owner_kind`, label) and `scope` is `agent_wallets`; do not |
get_my_position | The user's position in ONE token: how much they hold, what they paid, and their unrealised profit or loss. Use this for 'am I up on X'. Amounts are in token units and USD; profit figures are USD. HOW MUCH THE USER HOLDS comes from the CHAIN and is reported by `get_my_balances`, `get_my_token_balanc |
get_my_closed_positions | 🔴 CLOSED POSITIONS ONLY — positions the user has already fully exited, with their realised profit and loss. IMPORTANT: `get_my_closed_positions` returns ONLY positions the user has already exited. Positions the user still holds come from `get_my_balances`. Never tell a user they hold nothing based |
get_my_activity | The user's own wallet activity feed — their trades, transfers, deposits and withdrawals, newest first. ⚠️ This one is CURSOR-paginated, not page-numbered: read `cursor` out of the response and pass it back to get the next page. Do not send a page number. Choosing between the two history feeds: `get_ |
get_my_token_balance | How much of ONE token the user holds right now, and what it is worth. The cheapest way to answer 'do I have any X', and the tool to size a sell from before placing one. ⭐ `balance_token_amount` IS THE ANSWER. It is the on-chain balance and it always agrees with `get_my_balances`. HOW MUCH THE USER |
get_my_closed_trades | The user's completed trades, newest first — one entry per closed buy→sell cycle, with what was bought or sold and the realised result. Each cycle carries `fills`: every buy/sell leg with timestamp, side, price_usd, token_amount, usd_amount and tx_hash (pass `include_fills=false` to skip them), plus |
get_my_transactions | The user's raw wallet transaction list, newest first and page-numbered. Filter by `transaction_type` to answer questions about one kind of movement — deposits, withdrawals, swaps, transfers or trigger-order fills. Choosing between the two history feeds: `get_my_activity` is the merged, human-readabl |
get_my_wallets | The user's AGENTIC wallets, with their addresses. AI Trading is Solana only for now: tell the user to deposit to the Solana one. 🔴 THE USER'S REGULAR APP WALLETS ARE NOT HERE — an agent's world is agentic wallets only, and every other `get_my_*` tool here reads from one of these, never from the use |
get_my_transaction | One transaction in full detail, by its id. Get the id from `get_my_transactions` first — this tool does not search or list. This returns the CURRENT USER's own data, resolved from their API key. There is no way to ask about someone else's wallet with this tool. |
get_my_watchlists | The user's watchlists on one network — names and ids only. Pass an id to `get_my_watchlist_tokens` to read a list's contents. Start here for 'what's on my watchlist' or 'anything on my watchlist moving?'. A watchlist is the tokens the user chose to follow, NOT what they hold (`get_my_balances`) and |
get_my_watchlist_tokens | The tokens on one of the user's watchlists, each with market data in ONE call, so you can triage a list without a `get_token_overview` per token. Each row carries `price_usd`, `price_change_24hr` (24h %, there is no 1h figure here), `market_cap`, `liquidity_usd`, `whale_count`, `key_holder_count` an |
get_my_orders | The user's single orders — limit orders, take-profit and stop-loss. By default only LIVE ones (not executed yet): use that before placing a new order (to avoid duplicates) and to find an `order_id` for `cancel_order`. For HISTORY — what filled, what was cancelled and why — pass `status="terminal"` ( |
get_my_dca_schedules | The user's DCA schedules — recurring buys or sells that split an amount into slices over time — with progress so far (how many slices have filled and when the next one is due). The same rows `get_my_orders` returns as `dca_schedules`; use this one when you only need the DCAs. `get_my_orders` answers |
get_my_guardrails | The limits the user set on you in the Moby app, READ-ONLY — you cannot change them; only the user can, in the app. Read this before planning trades instead of discovering limits by refusal. - `maxTradeUsd` / `dailyVolumeUsd`: per-trade and rolling-24h trading-volume limits (null = uncapped). `maxTra |
get_swap_quote | Price a token swap before doing it: how much of `output_token` the user would receive for `amount` of `input_token`, plus price impact, fees, the slippage tolerance (`slippage_bps`) and the least the route can deliver (`minimum_output_amount_ui`). Quote `output_amount_ui` to the user — `output_amoun |
execute_swap | Execute a swap that `get_swap_quote` already priced. ⚠️ THIS SPENDS REAL MONEY. It submits a real transaction from the user's wallet using real funds and cannot be undone. Confirm the exact amount, token and network with the user in plain language, and get their explicit go-ahead, BEFORE calling thi |
quick_buy | Buy a token in one step, without a separate quote. ⚠️ THIS SPENDS REAL MONEY. It submits a real transaction from the user's wallet using real funds and cannot be undone. Confirm the exact amount, token and network with the user in plain language, and get their explicit go-ahead, BEFORE calling this. |
quick_sell | Sell a token the user holds, in ONE step, at market — quote and execute happen together on the server, so it never fails on an expired quote while you wait for the user. This is THE tool to close or trim a position. ⚠️ THIS SPENDS REAL MONEY. It submits a real transaction from the user's wallet usin |
get_swap_status | Check where a quote or swap stands, by `request_id` (the `quote_id`) OR `transaction_signature` — exactly one. Moves nothing and is safe to call again. `status` is one of: `not_executed` (quoted but never executed — nothing was traded; it can still be executed until `quote_expires_at`), `expired` (n |
create_order | Place a resting order that executes later when its condition is met: a limit order, take-profit, stop-loss, trigger buy, or a DCA schedule. ⚠️ THIS SPENDS REAL MONEY. It submits a real transaction from the user's wallet using real funds and cannot be undone. Confirm the exact amount, token and netwo |
cancel_order | Cancel one resting order — or a whole DCA schedule — so it can no longer fire. Pass EXACTLY ONE of `order_id` (from `get_my_orders`) or `schedule_id` (from `get_my_dca_schedules`; stops every remaining slice, filled slices stay filled). This does not move funds, but it is not reversible — a cancelle |
get_whalewatch_wallet_lists | The Find-wallets tab shell: a manual 'picks' strip, then one summary per curated wallet list that has rows on this chain (whale groups, KOL groups, proven-trader cohorts). Call this first to learn the valid `slug` values for `get_whalewatch_wallet_list_detail`. NOT the same lists as `get_whalewatch_ |
get_whalewatch_wallet_list_detail | One curated wallet list's rows, pre-ranked. `slug` MUST come from `get_whalewatch_wallet_lists` — an invented or stale slug is a 404, not an empty list. This is public market data about the whole market — it is NOT about the user's own wallet or holdings. Tools whose names start with `get_my_` are t |
search_whalewatch_wallets | Find PUBLIC whale/KOL/trader wallets by a KOL name or a whale-list brand — NOT by pasted address, and NOT the same search as `search_tokens`. Use `discover_wallets_to_follow` if you also want to know which of the results the caller already follows. This is public market data about the whole market — |
discover_wallets_to_follow | The Find-Wallets suggested pool: PUBLIC wallets ranked for discovery, `is_following` marked per row. With `query` set, searches by name/brand or an exact pasted address (followed wallets ARE included). With no `query`, returns a ranked pool that EXCLUDES wallets the caller already follows — use `get |
get_my_recommended_wallets | 'For you': the tracked wallets that overlap the CALLER's OWN holdings, in the same shape as `get_whalewatch_wallet_list_detail`. A caller holding nothing Moby tracks gets `total: 0, rows: []` — that is a real answer, not an error. This returns the CURRENT USER's own data, resolved from their API key |
follow_wallet | Follow a PUBLIC whale/KOL/trader wallet, so its trades appear in `get_my_following_feed`. Idempotent — following an already-followed wallet is a no-op and does not count against the follow cap (`max_follows` on `get_my_followed_wallets`). Moves no money and needs no agentic wallet. Fails if the call |
unfollow_wallet | Unfollow a wallet. Idempotent — a no-op if the caller does not follow it. Also clears the caller's Following-feed history for this wallet, so `get_my_following_feed` reflects the change immediately. Moves no money. |
get_my_followed_wallets | Every wallet the CALLER follows, with `max_follows` so you can report 'N of 50' without a second call, each row's current list associations, and any nickname set with `follow_wallet`. This returns the CURRENT USER's own data, resolved from their API key. There is no way to ask about someone else's w |
get_my_following_feed | Trades made by wallets the CALLER follows, newest first. ⚠️ EMPTY MEANS 'you follow nobody, or nobody you follow has traded recently' — NOT 'no whale activity anywhere'; for the market-wide feed use `get_whalewatch_feed`. Filters mirror that tool minus list selection, since following is orthogonal t |
get_my_trading_profile | The user's saved trading profile: experience, assets, work mode, sizing and protection (v1 rows read as v2). 🔴 Call this BEFORE ANY OTHER TOOL on every connect — before balances, portfolio, strategies or research. - `interview_due: true` = onboard first: show `onboarding_brief` verbatim, then run t |
save_trading_profile | Save the user's interview answers, or record that they skipped. Call it after you played the answers back in TWO lines and the user said yes; or with `skipped: true` when they decline. Pass `profile` OR `skipped`, not both. - `replace: false` (default) MERGES into what is saved, so for 'update my tr |
list_strategies | The starter strategies from the Strategies section of AI Trading in the Moby app: each card's `id`, `name`, `summary`, `how_it_works`, `chips` (the editable defaults), `risk_label`, `warning` and the Moby `tools` it uses, with the user's max per trade already filled in. Use it during or after onboar |
get_strategy | One starter strategy with its ready-to-run `prompt` — the same text the app copies. Run that prompt as the user's standing instructions for this session. Before starting: confirm the editable numbers (`chips`: amounts, exits, schedule) with the user, and check `get_my_active_strategies` so you never |
get_my_active_strategies | The strategies the user's agents are running, saved on Moby so every client and session sees them: `name`, `strategy_id` (the starter card, null = custom), `settings`, `schedule`, `status` (active / paused; pass `include_stopped=true` for stopped ones too), `started_at`, `last_run_at`. Call it at th |
save_active_strategy | Record what you run, so other sessions and clients see it. - START: omit `active_strategy_id`; pass `strategy_id` for a starter card (its name is used if you omit `name`) or `name` for a custom one, plus `settings` (the numbers the user confirmed: amounts, mix, exits, the ask-first flag) and `schedu |
submit_feedback | Log a bug, a wrong number (data_issue, name the tool) or an idea to improve Moby, once per issue; tell the user it was logged with its id. Not for payments, lost funds or account problems: send those to support in the Moby app. `kind`: bug (something broke), data_issue (a Moby number looks wrong; `t |
get_my_feedback | Your earlier submissions and their status; mention a shipped one to the user when relevant. Each has `id`, `kind`, `title`, `status` (new / reviewed / planned / shipped / wont_fix) and the team's `reply` when there is one, newest first. This returns the CURRENT USER's own data, resolved from their A |