The Spice Melange Trading Desk: DeepBook market data connector
Measured conclusion: Alive, not deep-tested. L2 outcome: not_attempted.
A Mentat's eye on Sui DeepBook v3: read-only market data plus desk template tools. No keys.
| Author | io.github.SajanMelcher |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Alive, not deep-tested |
| L1 liveness | alive |
| L1 latency | 216 ms |
| Last measured | 2026-10-26 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"The Spice Melange Trading Desk: DeepBook market data connector": {
"url": "https://plumbline-mcp.fly.dev/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (31)
list_poolsread-onlyList Sui DeepBook v3 spot pools with base/quote assets and trading params (tick, lot, min size in human units). Optional filter by asset symbol. Education/information only; not financial advice. Read-only public data, may be delayed or wrong. Free: 100 calls/day per client, then 0.002 USDC per call on Sui mainnet, prepaid in batches of about 0.01 USDC (the payment-required response gives an exact amount and a payment_token).
Parameters:
asset— string — Only pools containing this asset symbol, e.g. SUI or USDCpayment_tx— string — Only after the free tier: Sui transaction digest of your exact USDC payment for payment_token (see the payment-required response)include_ids— boolean — Include pool object IDs and coin types (longer output)payment_token— string — Only after the free tier: the private payment_token from the payment-required response; it holds your prepaid calls
Hints: read-only yes · destructive no · idempotent yes · open-world yes
get_mid_priceread-onlyBest bid, best ask, mid price and spread (abs and bps) for a DeepBook pool, plus last trade price. Education/information only; not financial advice. Read-only public data, may be delayed or wrong. Free: 100 calls/day per client, then 0.002 USDC per call on Sui mainnet, prepaid in batches of about 0.01 USDC (the payment-required response gives an exact amount and a payment_token).
Parameters:
pool(required) — string — DeepBook pool name BASE_QUOTE, e.g. SUI_USDC (case-insensitive; '/' or '-' also accepted)payment_tx— string — Only after the free tier: Sui transaction digest of your exact USDC payment for payment_token (see the payment-required response)payment_token— string — Only after the free tier: the private payment_token from the payment-required response; it holds your prepaid calls
Hints: read-only yes · destructive no · idempotent yes · open-world yes
get_order_bookread-onlyOrder book for a DeepBook pool: top N price levels per side and cumulative liquidity (base qty and quote notional) within ±X% of mid. Education/information only; not financial advice. Read-only public data, may be delayed or wrong. Free: 100 calls/day per client, then 0.002 USDC per call on Sui mainnet, prepaid in batches of about 0.01 USDC (the payment-required response gives an exact amount and a payment_token).
Parameters:
pool(required) — string — DeepBook pool name BASE_QUOTE, e.g. SUI_USDC (case-insensitive; '/' or '-' also accepted)levels— integer — Price levels to return per side (1-100, default 10)payment_tx— string — Only after the free tier: Sui transaction digest of your exact USDC payment for payment_token (see the payment-required response)within_pct— array — Depth bands as % distance from mid, e.g. [0.5, 1, 2]payment_token— string — Only after the free tier: the private payment_token from the payment-required response; it holds your prepaid calls
Hints: read-only yes · destructive no · idempotent yes · open-world yes
get_volumeread-only24h volume, high/low, last price and % change for one DeepBook pool, or the top pools by 24h quote volume if no pool is given. Set window_hours for a custom trailing window (single pool). Education/information only; not financial advice. Read-only public data, may be delayed or wrong. Free: 100 calls/day per client, then 0.002 USDC per call on Sui mainnet, prepaid in batches of about 0.01 USDC (the payment-required response gives an exact amount and a payment_token).
Parameters:
top— integer — When no pool is given: how many pools to return (default 10)pool— string — DeepBook pool name BASE_QUOTE, e.g. SUI_USDC (case-insensitive; '/' or '-' also accepted)payment_tx— string — Only after the free tier: Sui transaction digest of your exact USDC payment for payment_token (see the payment-required response)window_hours— integer — Trailing window in hours (default 24). Non-24 values need a pool.payment_token— string — Only after the free tier: the private payment_token from the payment-required response; it holds your prepaid calls
Hints: read-only yes · destructive no · idempotent yes · open-world yes
get_pool_paramsread-onlyTaker/maker fees, DEEP stake required, tick/lot/min size, whitelist/stable flags and vault balances for a DeepBook pool. Reads the live on-chain Pool object via Sui GraphQL; falls back to indexer pool-creation values if GraphQL is unavailable. Education/information only; not financial advice. Read-only public data, may be delayed or wrong. Free: 100 calls/day per client, then 0.002 USDC per call on Sui mainnet, prepaid in batches of about 0.01 USDC (the payment-required response gives an exact amount and a payment_token).
Parameters:
pool(required) — string — DeepBook pool name BASE_QUOTE, e.g. SUI_USDC (case-insensitive; '/' or '-' also accepted)payment_tx— string — Only after the free tier: Sui transaction digest of your exact USDC payment for payment_token (see the payment-required response)payment_token— string — Only after the free tier: the private payment_token from the payment-required response; it holds your prepaid calls
Hints: read-only yes · destructive no · idempotent yes · open-world yes
get_recent_tradesread-onlyMost recent fills in a DeepBook pool (newest first): time, taker side, price, base and quote size. Optional time range. Education/information only; not financial advice. Read-only public data, may be delayed or wrong. Free: 100 calls/day per client, then 0.002 USDC per call on Sui mainnet, prepaid in batches of about 0.01 USDC (the payment-required response gives an exact amount and a payment_token).
Parameters:
pool(required) — string — DeepBook pool name BASE_QUOTE, e.g. SUI_USDC (case-insensitive; '/' or '-' also accepted)limit— integer — Number of trades (1-200, default 20)end_time— Unix timestamp in SECONDSinclude_tx— boolean — Include transaction digests (longer output)payment_tx— string — Only after the free tier: Sui transaction digest of your exact USDC payment for payment_token (see the payment-required response)start_time— integer — Unix timestamp in SECONDSpayment_token— string — Only after the free tier: the private payment_token from the payment-required response; it holds your prepaid calls
Hints: read-only yes · destructive no · idempotent yes · open-world yes
get_ohlcvread-onlyOHLCV candles for a DeepBook pool (oldest first). Intervals: 1m, 5m, 15m, 30m, 1h, 4h, 1d, 1w. Volume is in the base asset. Education/information only; not financial advice. Read-only public data, may be delayed or wrong. Free: 100 calls/day per client, then 0.002 USDC per call on Sui mainnet, prepaid in batches of about 0.01 USDC (the payment-required response gives an exact amount and a payment_token).
Parameters:
pool(required) — string — DeepBook pool name BASE_QUOTE, e.g. SUI_USDC (case-insensitive; '/' or '-' also accepted)limit— integer — Number of candles (1-500, default 24)end_time— Unix timestamp in SECONDSinterval— stringpayment_tx— string — Only after the free tier: Sui transaction digest of your exact USDC payment for payment_token (see the payment-required response)start_time— integer — Unix timestamp in SECONDSpayment_token— string — Only after the free tier: the private payment_token from the payment-required response; it holds your prepaid calls
Hints: read-only yes · destructive no · idempotent yes · open-world yes
get_indexer_statusread-onlyHealth and freshness of the public DeepBook indexer (status, latest checkpoint, server time). Use when data looks stale. Education/information only; not financial advice. Read-only public data, may be delayed or wrong.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
get_bm_fillsread-onlyFills (OrderFilled) where a given DeepBook BalanceManager was the maker or the taker in one pool, newest first: time, its side, price, qty, fee, tx. Public data; no keys. Education/information only; not financial advice. Read-only public data, may be delayed or wrong. Free: 100 calls/day per client, then 0.002 USDC per call on Sui mainnet, prepaid in batches of about 0.01 USDC (the payment-required response gives an exact amount and a payment_token).
Parameters:
pool(required) — string — DeepBook pool name BASE_QUOTE, e.g. SUI_USDC (case-insensitive; '/' or '-' also accepted)balance_manager_id(required) — string — DeepBook BalanceManager object id (0x + 64 hex)role— stringhours— integer — Look-back window in hours (default 168 = 7 days)limit— integerpayment_tx— string — Only after the free tier: Sui transaction digest of your exact USDC payment for payment_token (see the payment-required response)payment_token— string — Only after the free tier: the private payment_token from the payment-required response; it holds your prepaid calls
Hints: read-only yes · destructive no · idempotent yes · open-world yes
get_swing_rangeread-only1h/4h/24h high-low range and realized volatility from hourly candles, a regime (CALM < 2%, ELEVATED 2-4%, HIGH_VOL > 4% 4h range) and a suggested ladder rung count (3/4/5). Information only, not a trading instruction. Education/information only; not financial advice. Read-only public data, may be delayed or wrong. Free: 100 calls/day per client, then 0.002 USDC per call on Sui mainnet, prepaid in batches of about 0.01 USDC (the payment-required response gives an exact amount and a payment_token).
Parameters:
pool(required) — string — DeepBook pool name BASE_QUOTE, e.g. SUI_USDC (case-insensitive; '/' or '-' also accepted)payment_tx— string — Only after the free tier: Sui transaction digest of your exact USDC payment for payment_token (see the payment-required response)payment_token— string — Only after the free tier: the private payment_token from the payment-required response; it holds your prepaid calls
Hints: read-only yes · destructive no · idempotent yes · open-world yes
get_pool_statsread-onlyScorecard-style stats for one pool over the last N hours: trade count, taker buy/sell split, base/quote volume, VWAP, average trade size, price range, current spread. Education/information only; not financial advice. Read-only public data, may be delayed or wrong. Free: 100 calls/day per client, then 0.002 USDC per call on Sui mainnet, prepaid in batches of about 0.01 USDC (the payment-required response gives an exact amount and a payment_token).
Parameters:
pool(required) — string — DeepBook pool name BASE_QUOTE, e.g. SUI_USDC (case-insensitive; '/' or '-' also accepted)hours— integerpayment_tx— string — Only after the free tier: Sui transaction digest of your exact USDC payment for payment_token (see the payment-required response)payment_token— string — Only after the free tier: the private payment_token from the payment-required response; it holds your prepaid calls
Hints: read-only yes · destructive no · idempotent yes · open-world yes
estimate_feesread-onlyEstimated DeepBook fee for a fill of qty at price as maker or taker, paid in the input token (rate x 1.25) versus in DEEP (base rate), using the live on-chain fee rates and the DEEP_USDC mid. Education/information only; not financial advice. Read-only public data, may be delayed or wrong. Free: 100 calls/day per client, then 0.002 USDC per call on Sui mainnet, prepaid in batches of about 0.01 USDC (the payment-required response gives an exact amount and a payment_token).
Parameters:
pool(required) — string — DeepBook pool name BASE_QUOTE, e.g. SUI_USDC (case-insensitive; '/' or '-' also accepted)qty(required) — number — Base quantityrole— stringprice— number — Price; defaults to the current midpayment_tx— string — Only after the free tier: Sui transaction digest of your exact USDC payment for payment_token (see the payment-required response)payment_token— string — Only after the free tier: the private payment_token from the payment-required response; it holds your prepaid calls
Hints: read-only yes · destructive no · idempotent yes · open-world yes
list_templatesread-onlyList The Spice Melange Golden Path Grok Bot templates with prices in Sui USDC, versions and the no-checkout agent buying flow (from https://thespicemelange.org/store/catalog.json). Educational templates, not financial advice; no returns promised. All sales final, except where the law requires otherwise. You pay from your own wallet; this connector never holds keys or funds.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
create_template_orderCreate a store order for one template. Returns the order id, a PRIVATE order token (shown once; keep it secret), the payee and the EXACT Sui USDC amount to send from your own wallet before the expiry. Nothing is charged by this call. Limited to a few orders per client per hour. Educational templates, not financial advice; no returns promised. All sales final, except where the law requires otherwise. You pay from your own wallet; this connector never holds keys or funds.
Parameters:
sku(required) — string — Template sku from list_templates, e.g. dune-saga-collection or fish-speakersemail— string — Optional receipt email
Hints: read-only no · destructive no · idempotent no · open-world yes
check_template_orderWith a digest: verify your on-chain payment for an order and get the signed download link (plus add-ons). Without: return the order's status (and a fresh link once paid). The token is sent only to the store, in a header, and is never stored. Educational templates, not financial advice; no returns promised. All sales final, except where the law requires otherwise. You pay from your own wallet; this connector never holds keys or funds.
Parameters:
order_id(required) — string — Order id from create_template_order (SM-...)token(required) — string — Private order token from create_template_order (smt_...). Sent only to the store, in a header.digest— string — Sui transaction digest of your exact USDC payment
Hints: read-only no · destructive no · idempotent yes · open-world yes
get_desk_rhythmread-onlyThe desk's weekly rhythm from https://thespicemelange.org/rhythm.json: focus pools, ladder windows, rung guidance, rebalance ranges, projects and lessons. The ed25519 signature is verified against the pinned release key, and the call fails closed if it doesn't match. Guidance only: no orders, no sizes in money, no promised returns. Not financial advice.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
wallet_setup_guideread-onlyExact steps and @mysten/sui code for an agent to create its OWN Sui Ed25519 keypair locally, fund it with SUI (gas) and USDC, and sign/submit transactions itself. Non-custodial: the desk never sees or holds keys and never moves funds; it returns quotes and UNSIGNED transactions only. Spot only, no leverage. Education only, not financial advice.
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_swap_quoteread-onlyQuote a spot swap between SUI/USDC/WAL/DEEP/CETUS and compare DeepBook v3 pools directly (direct or 2-hop) with the Cetus aggregator. Returns the best route, expected output, price impact and fees. Non-custodial: the desk never sees or holds keys and never moves funds; it returns quotes and UNSIGNED transactions only. Spot only, no leverage. Education only, not financial advice.
Parameters:
from(required) — string — Coin symbol: SUI, USDC, WAL, DEEP, CETUSto(required)amount(required) — number — Amount of the from coin in human units, e.g. 2.5sender(required) — string — YOUR Sui address (0x...). Public address only; never send a key.
Hints: read-only yes · destructive no · idempotent no · open-world yes
build_swap_txread-onlyBuild base64 UNSIGNED Sui transaction bytes for a swap on the chosen venue, with the sender set to your address and an on-chain minimum-out from slippage_bps. The bytes are simulated against mainnet before return. You sign locally and submit yourself; nothing is executed by the desk. Non-custodial: the desk never sees or holds keys and never moves funds; it returns quotes and UNSIGNED transactions only. Spot only, no leverage. Education only, not financial advice.
Parameters:
from(required) — string — Coin symbol: SUI, USDC, WAL, DEEP, CETUSto(required)amount(required) — number — Amount of the from coin in human units, e.g. 2.5sender(required) — string — YOUR Sui address (0x...). Public address only; never send a key.venue(required) — string — Venue from get_swap_quote (best.venue)route— string — DeepBook only: route string from get_swap_quote, e.g. 'SUI_USDC -> WAL_USDC'simulate— boolean — Simulate the unsigned bytes against mainnet (no signature, nothing executed)slippage_bps— integer — Max slippage in basis points (50 = 0.5%); tx reverts below min_out
Hints: read-only yes · destructive no · idempotent no · open-world yes
check_holderread-onlyCheck on chain (Sui mainnet) whether an address holds the The Secret Journals license token. Holders unlock extra read-only education tools (golden_path_market_read). Non-holders keep every basic tool. Non-custodial: the desk never sees or holds keys and never moves funds; it returns quotes and UNSIGNED transactions only. Spot only, no leverage. Education only, not financial advice.
Parameters:
address(required) — string — YOUR Sui address (0x...). Public address only; never send a key.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
golden_path_market_readread-onlyFor The Secret Journals holders (checked on chain from 'address'): a compact market read across SUI, WAL and DEEP on DeepBook (mid, spread, 24h volume, 1h/4h/24h range and regime) plus the Golden Path pre-trade checklist. Education only, not a signal to buy or sell, no return claims. Non-custodial: the desk never sees or holds keys and never moves funds; it returns quotes and UNSIGNED transactions only. Spot only, no leverage. Education only, not financial advice.
Parameters:
address(required) — string — YOUR Sui address (0x...). Public address only; never send a key.
Hints: read-only yes · destructive no · idempotent no · open-world yes
build_create_balance_manager_txread-onlyCreate and share a DeepBook v3 BalanceManager owned by your address (needed for limit orders). Returns UNSIGNED tx bytes (simulated against mainnet). Non-custodial: the desk never sees or holds keys and never moves funds; it returns quotes and UNSIGNED transactions only. Spot only, no leverage. Education only, not financial advice.
Parameters:
sender(required) — string — YOUR Sui address (0x...). Public address only; never send a key.
Hints: read-only yes · destructive no · idempotent no · open-world yes
build_bm_deposit_txread-onlyDeposit a coin from your wallet into your own BalanceManager. Returns UNSIGNED tx bytes (simulated against mainnet). Non-custodial: the desk never sees or holds keys and never moves funds; it returns quotes and UNSIGNED transactions only. Spot only, no leverage. Education only, not financial advice.
Parameters:
sender(required) — string — YOUR Sui address (0x...). Public address only; never send a key.balance_manager_id(required) — string — YOUR DeepBook BalanceManager id (0x + 64 hex), from build_create_balance_manager_tx effectscoin(required) — string — Coin symbol: SUI, USDC, WAL, DEEP, CETUSamount(required) — number — Amount of the from coin in human units, e.g. 2.5
Hints: read-only yes · destructive no · idempotent no · open-world yes
build_bm_withdraw_txread-onlyWithdraw a coin from your own BalanceManager back to your address (always to the owner). Returns UNSIGNED tx bytes (simulated against mainnet). Non-custodial: the desk never sees or holds keys and never moves funds; it returns quotes and UNSIGNED transactions only. Spot only, no leverage. Education only, not financial advice.
Parameters:
sender(required) — string — YOUR Sui address (0x...). Public address only; never send a key.balance_manager_id(required) — string — YOUR DeepBook BalanceManager id (0x + 64 hex), from build_create_balance_manager_tx effectscoin(required) — string — Coin symbol: SUI, USDC, WAL, DEEP, CETUSamount(required) — number — Amount of the from coin in human units, e.g. 2.5
Hints: read-only yes · destructive no · idempotent no · open-world yes
build_limit_order_txread-onlyPlace a spot limit order on a DeepBook v3 pool from your BalanceManager (fees in the input coin, no DEEP needed). Validates tick/lot/min size. Optional deposit_first funds it in the same tx. No leverage. Returns UNSIGNED tx bytes (simulated against mainnet). Non-custodial: the desk never sees or holds keys and never moves funds; it returns quotes and UNSIGNED transactions only. Spot only, no leverage. Education only, not financial advice.
Parameters:
sender(required) — string — YOUR Sui address (0x...). Public address only; never send a key.balance_manager_id(required) — string — YOUR DeepBook BalanceManager id (0x + 64 hex), from build_create_balance_manager_tx effectspool(required) — string — DeepBook pool BASE_QUOTE, e.g. SUI_USDCside(required) — stringprice(required) — numberquantity(required) — number — Base quantitypost_only— boolean — Post-only (maker): rejects if it would crossexpire_hours— numberdeposit_first— boolean — Also deposit the needed coin from your wallet in the same txclient_order_id— string
Hints: read-only yes · destructive no · idempotent no · open-world yes
build_cancel_order_txread-onlyCancel one order (order_id) or all your orders in a pool, and withdraw settled amounts into your BalanceManager. Returns UNSIGNED tx bytes (simulated against mainnet). Non-custodial: the desk never sees or holds keys and never moves funds; it returns quotes and UNSIGNED transactions only. Spot only, no leverage. Education only, not financial advice.
Parameters:
sender(required) — string — YOUR Sui address (0x...). Public address only; never send a key.balance_manager_id(required) — string — YOUR DeepBook BalanceManager id (0x + 64 hex), from build_create_balance_manager_tx effectspool(required) — string — DeepBook pool BASE_QUOTE, e.g. SUI_USDCorder_id— string
Hints: read-only yes · destructive no · idempotent no · open-world yes
get_book_depthread-onlyLevel-2 depth around mid read on chain from a DeepBook v3 pool (bids/asks [price, qty]). Non-custodial: the desk never sees or holds keys and never moves funds; it returns quotes and UNSIGNED transactions only. Spot only, no leverage. Education only, not financial advice.
Parameters:
pool(required) — string — DeepBook pool BASE_QUOTE, e.g. SUI_USDCticks— integer
Hints: read-only yes · destructive no · idempotent yes · open-world yes
get_cetus_poolread-onlyRead-only Cetus CLMM pool state (coins, fee rate, tick spacing, liquidity, current tick, price) by pool_id, or discover the Cetus pools on the current from->to route. Non-custodial: the desk never sees or holds keys and never moves funds; it returns quotes and UNSIGNED transactions only. Spot only, no leverage. Education only, not financial advice.
Parameters:
to— Coin symbol: SUI, USDC, WAL, DEEP, CETUSfrom— string — Coin symbol: SUI, USDC, WAL, DEEP, CETUSpool_id— string
Hints: read-only yes · destructive no · idempotent yes · open-world yes
walrus_store_guideread-onlyHow to store a PUBLIC trade receipt or strategy note on Walrus mainnet with your own key (receipt schema + @mysten/walrus code). Non-custodial: the desk never sees or holds keys and never moves funds; it returns quotes and UNSIGNED transactions only. Spot only, no leverage. Education only, not financial advice.
Hints: read-only yes · destructive no · idempotent yes · open-world no
build_walrus_register_txread-onlyEncode your public text (receipt/note) and build the Walrus register-blob tx paid in WAL by you; returns the blob_id. Then upload+certify locally (see walrus_store_guide). Refuses content that looks like a secret. Returns UNSIGNED tx bytes (simulated against mainnet). Non-custodial: the desk never sees or holds keys and never moves funds; it returns quotes and UNSIGNED transactions only. Spot only, no leverage. Education only, not financial advice.
Parameters:
sender(required) — string — YOUR Sui address (0x...). Public address only; never send a key.content(required) — stringepochs— integer
Hints: read-only yes · destructive no · idempotent no · open-world yes
read_walrus_blobread-onlyRead a public Walrus mainnet blob by id via the public aggregator (text, or base64 preview if binary; max 64 KB). Non-custodial: the desk never sees or holds keys and never moves funds; it returns quotes and UNSIGNED transactions only. Spot only, no leverage. Education only, not financial advice.
Parameters:
blob_id(required) — stringmax_bytes— integer
Hints: read-only yes · destructive no · idempotent yes · open-world yes
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.