Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Certificate recorded, valid to 2027-02-01
Authorization not required
Added "agent_pass_precheck", "agent_pass_report", "agent_wallet" and 10 more; changed the definition of "yield_plan" (25 tools before, 38 now)
⟨46 unchanged words⟩ that reach target_apy first, then lowest risk. With build: true and sender it also returns the unsigned transaction for the top option, already dry-run and checked, ready for the wallet to sign. Example: { amount_usd: 5000, asset: "USDC", target_apy: 6, max_risk_tier: 2, build: true, sender: "0x..." }.
{"additionalProperties":false,"properties":{"amount":{"description":"With build: amount of asset in whole coins. Default amount_usd at today's price.","type":["number","string"]},"amount_usd":{"description":"Amount in USD.","minimum" ⟨13 unchanged words⟩ coin type.","type":"string"},"build":{"description":"Also build the unsigned transaction for the top option (or build_ranks), checked on current mainnet state. Needs sender.","type":"boolean"},"build_ranks":{"description":"With build: option ranks to build, default [1], at most 3.","items":{"maximum":6,"minimum":1,"type":"integer"},"type":"array"},"horizon_days":{"description":"Days you plan to ⟨29 unchanged words⟩ ":5,"minimum":1,"type":"integer"},"pass":{"description":"With build: an Agent Pass id instead of sender; builds for the pass's agent within the owner's rules, with a signed receipt.","type":"string"},"sender":{"description":"With build: the wallet that holds asset and will sign.","type":"string"},"slippage_pct":{"description":"With build: slippage for a swap into the option's coin, percent, default 0.5.","type":"number
Will the pass accept this? — Before building: check one action against an Agent Pass's rules as they stand now (active, signer is the agent, rule for the coin or pair, per-action and daily limits, listed pools, price floor, named recipient, budget left). Returns accept or the rule that would refuse it. Example: { pass: "0x03c7...7bac", step: { action: "swap", coin_in: "USDC", coin_out: "SUI", amount: "0.2" } }.
What agents did under Agent Passes — A report for a human on Agent Pass (Sui's on-chain agent authorization): for an owner, an agent or one pass, each pass's status, its rules in plain words (pools, caps, price floor, recipients), budgets left, today's usage and every transaction signed under it, including what Sui refused and why. Example: { owner: "0x1eb7...e0b1" } or { pass: "0x03c7...7bac" }.
One AI agent wallet — Is this address an AI agent, who does it act for and under what limits (Agent Pass, sui::allowance, Sui Agent Payments grant, t2000, Talus), how much of each limit is used, who pays its gas, and what it did lately in plain English. Example: { address: "0xb569f5371380e339038c0cdce2729621d36bfc89e740c28e3976bf04357edab6" }.
What AI agents do on Sui now — The agent world on Sui: agent wallets active in 24 hours, their transactions and volume, Agent Passes, sui::allowance spend, Sui Agent Payments (testnet, mainnet when live), gasless and sponsored transactions, every agent product with its status (mainnet, testnet, announced), the latest agent actions in plain English and the most active agents this week. Example: {}.
Credits left and USDC top-ups — Your credits: what the plan has left this month, prepaid credits bought with USDC, the rate ($3 per million credits, so 1 USDC buys 333,333 credits), auto top-up settings and the latest payments. Needs an API key. Free. Example: {}. Needs an API key.
Buy credits with USDC — Build an unsigned transaction that pays USDC on Sui to tide's treasury for credits ($3 per million credits; 1 USDC buys 333,333). Returns base64 tx_bytes that need no SUI for gas (unless gas: true). Sign them with the paying address and send them, or POST them with the signature to https://api.tide.ad/v1/billing/topup/submit. Credits land on the paying address's account about a second after the transaction is final. With an API key the key's account pays; without one pass address. Free. Example: { usd: "10" }.
Build a transaction to sign — Build an unsigned Sui transaction for an action and get it back already checked: tide adds the protocol's own calls, picks the sender's gas coins, sets the budget, dry-runs the exact bytes on current mainnet state and runs the pre-sign check. Returns tx_bytes, a plain description, what leaves and enters the wallet, gas and the verdict. If it would fail or the check says danger you get the reason and no bytes. Amounts are whole coins. Actions: stake {amount, validator}; unstake {staked_sui_id, validator, amount}; lst_mint {lst, amount}; lst_redeem {lst, amount}; swap {from, to, amount, slippag…
Did it do what the receipt said? — After execution: give the executed digest and the receipt (its id, or the receipt object). tide reads the transaction from the chain and compares status, balance changes, objects and events with the receipt. Returns match, or each difference in one plain sentence to report to your human (also not_executed, or other_transaction when the signed bytes were not the receipt's). Example: { digest: "CRDt...", receipt: "8e56072be767fadb73a18169d8dcfc3c" }.
Agents an address runs — The AI agents one address runs on Sui: Agent Passes, allowances it granted, Sui Agent Payments grants, t2000 wallets it funded and agent wallets it pays gas for; per agent the limits in words, how much is used, payments refused on chain, and their latest actions. Example: { address: "adeniyi.sui" }.
Signed receipt before signing — Before you sign: send the exact unsigned bytes and your intent; tide dry-runs them on mainnet and returns a receipt signed by tide (ed25519) with the digest Sui will give them, every simulated balance change, object and event, what Sui itself enforces (Agent Pass caps, listed pools, price floor, budget), checks of your intent (max_spend, min_receive, nothing else leaves the wallet) and a verdict. Give your human the url. After sending, call confirm_execution. Example: { tx_bytes: "AAAC...", intent: { action: "swap", max_spend: { USDC: "5" }, min_receive: { SUI: "4.9" } } }.
Verify a tide receipt — Check a receipt's ed25519 signature against tide's published key (https://api.tide.ad/.well-known/tide-attest.json), that its id matches its content, and that its digest is the blake2b digest of the bytes inside it. Pass the receipt id or the receipt object with its signature. Example: { receipt: "8e56072be767fadb73a18169d8dcfc3c" }.
Read a Walrus blob — Everything about one Walrus blob: status (registered, certified, expired, deleted), owner and uploader, size, the register and certify transactions, start and end epoch with an estimated end date, deletable or permanent, shared blob funds, extensions, WAL paid, attributes, and what the content is (image, video, audio, pdf, json, markdown, csv, code, text, html, quilt with its patches, Seal encrypted with its policy package, binary), with a preview URL. Takes a blob id, a quilt patch id, the u256 or a Blob object id. Example: { id: "FHQl1gK7Rb5X5X3Q-DiNe4qvyTojL262p0JUn-ijQkQ" }.
Exit a wallet's positions — List a wallet's staking, liquid staking and lending positions (native stakes, afSUI, haSUI, vSUI, sSUI, stSUI, Suilend, NAVI, Scallop), each with an id and the step that exits it, and with exit build the exit transactions: unsigned, gassed and checked on current mainnet state, or the reason one would fail. to swaps the proceeds into one coin in the same transaction. Example: { wallet: "0x...", exit: "all", to: "USDC" }.
Added "perp_market", "yield_options" and "yield_plan" (22 tools before, 25 now)
A perps market — One perpetual futures market on Sui (Aftermath or Bluefin): mark and index price, 24h change and volume, open interest, funding (last, estimated next, when), max leverage, fees, the latest trades and pools it backs. Pass a symbol; venue is optional (the busiest market wins). Example: { market: "BTC", venue: "aftermath" }.
Where to earn yield on Sui — Every place on Sui to earn yield (lending, pools, liquid staking, native staking) with the APY each actually paid over 7 and 30 days, deposits, exit liquidity and a risk tier from 1 (lowest) to 5 with reasons. Filter by asset, kind, protocol, max_tier, min_apy; sort by tvl, apy, tier or exit. Example: { asset: "USDC", max_tier: 2, sort: "apy" }.
Plan where to put an amount — A ranked menu of 3 to 6 yield options on Sui for an amount: the realized APY used (never the advertised one), expected USD over the horizon, cost to get in and out at that size, risk tier with reasons, plain steps and links. Ranks options that reach target_apy first, then lowest risk. Example: { amount_usd: 5000, asset: "USDC", target_apy: 6, max_risk_tier: 2 }.
Unknown → Live
First tool surface recorded: 22 tools (server version 2.0.0)
https://api.tide.ad/mcp (mcp_streamable_http) — from mcp_registry, with the record
Showing the latest 7 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed