tide
REMOTE · API.TIDE.AD
Sui blockchain data in plain English: transactions, wallets, coins, balances, fund flows and SQL.
Available components
Last scanned (21 hours ago)
Scores higher than 60% of remote servers
Reachable. Last reached 4 Nov 2026.
Category Crypto and Web3
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security80
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one. See how to fix → View diagnostics → Partial
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability70
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 2940 tokens (~133/item across 22 items; 22 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management0
- Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 22 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 23 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Unverified: 1 category
A category scored 0 because we could not verify it: authentication we do not have, an unreachable endpoint, or not enough scan history. We only credit what we can confirm.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 4 Nov 26 73
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 4 Nov 2026 · Probed https://api.tide.ad/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=tide.ad | CN=YE2,O=Let's Encrypt,C=US | 3 Nov 2026 | 1 Feb 2027 | ECDSA 256 | ECDSA-SHA384 | 6665e6e21cb12af312f4955dfc8e25a3ff7 |
| SANs: *.tide.ad, tide.ad | ||||||
| CN=YE2,O=Let's Encrypt,C=US (CA) | CN=Root YE,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | ECDSA 384 | ECDSA-SHA384 | 4df3b15dd6c0784c507cd37b58e6f115 |
| CN=Root YE,O=ISRG,C=US (CA) | CN=ISRG Root X2,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | ECDSA-SHA384 | 872165fc34b6e5fba8add5b3705fb53a |
| CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | SHA256-RSA | 6c8f1dc727c7117f7baf853ac980f9cd |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of api.tide.ad. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| ad. | present | 6062 | 8 | Verified |
| tide.ad. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
| Header | Value |
|---|---|
| strict-transport-security | max-age=15552000; includeSubDomains |
| x-content-type-options | nosniff |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://api.tide.ad/mcp | Verified | 200 | |
| http (plaintext) | http://api.tide.ad/mcp | HTTPS enforced | 301 | https://api.tide.ad/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
address_kind What kind of address ~107
Tell what an address is: a plain key (ed25519, secp256k1, secp256r1), a passkey, a zkLogin address (with its provider), a multisig (members and threshold), an object, a package, or an address that never signed. Example: { address: "0x..." }.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | A Sui address (0x...), a SuiNS name like example.sui, or @example. |
No output schema declared.
No examples provided.
balance_at Balance at a past time ~191
The exact balance a wallet held at a past time or checkpoint, read from full history. With coin, that coin's balance and the transaction that last changed it. Without coin, every coin it held then, valued at that time's prices. Example: { address: "example.sui", coin: "SUI", time: "2025-06-01T00:00:00Z" }.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | A Sui address (0x...), a SuiNS name like example.sui, or @example. |
| checkpoint | integer | – | A checkpoint sequence number, instead of time. |
| coin | string | – | Coin type or symbol. Leave it out for all coins. |
| time | string|integer | – | A past time: ISO 8601 like 2025-06-01T00:00:00Z (UTC), or unix seconds. |
No output schema declared.
No examples provided.
candles Price candles ~142
OHLCV price candles for a coin, in USD. Pick interval and an optional from and to. Example: { coin: "SUI", interval: "1h" }.
| Name | Type | Req | Description |
|---|---|---|---|
| coin | string | yes | A coin type like 0x2::sui::SUI, or a symbol like DEEP (verified coins win ties). |
| from | string | – | Start time, ISO 8601 or unix seconds. |
| interval | string | – | Candle size: 1m, 5m, 15m, 1h, 4h or 1d. Default 1h. |
| to | string | – | End time. |
No output schema declared.
No examples provided.
checkpoint Read a checkpoint ~71
One checkpoint by sequence number, or the newest with seq "latest": time, epoch, gas totals and its transactions as one-line sentences. Use it to see what is happening on chain right now. Example: { seq: "latest" }.
| Name | Type | Req | Description |
|---|---|---|---|
| seq | string | – | Checkpoint sequence number, or latest. |
No output schema declared.
No examples provided.
docs Find the right tide API method ~103
Search the tide API docs for the method that answers a question, with its parameters, credits and a curl example. Use it when no other tool fits; then call the method over REST at https://api.tide.ad. Example: { question: "transfers of a coin between two times" }.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Matches, 1 to 8. Default 3. |
| question | string | yes | What you want to do, in plain words. |
No output schema declared.
No examples provided.
events List events ~146
List on-chain events by Move event type or by package, newest first, with an optional time or checkpoint range. Page with cursor. Example: { type: "0x...::pool::SwapEvent", limit: 10 }.
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | – | The cursor from the previous result, for the next page. |
| fromTime | string | – | Start time, ISO 8601. |
| limit | integer | – | Rows per page, up to 50. Default 10. |
| package | string | – | Package id, instead of type. |
| toTime | string | – | End time, ISO 8601. |
| type | string | – | Full Move event type. |
No output schema declared.
No examples provided.
explain_transaction Explain a transaction ~101
Explain one Sui transaction in plain English: what happened, the steps, who gained or lost which coins (with USD), the fee and the status. Use it whenever you have a transaction digest. Example: { digest: "5ajkuHAnivMiKRne6EYS2bzvHpCHWYx849cmoSHN89Vm" }.
| Name | Type | Req | Description |
|---|---|---|---|
| digest | string | yes | Transaction digest, base58 (43 or 44 characters). |
No output schema declared.
No examples provided.
explain_unsigned Check a transaction before signing ~137
Check a Sui transaction before signing it: tide simulates it, explains what it would do in plain words, and checks every recipient, coin and package against full history. Returns safe, caution or danger with findings and evidence links. Block on danger. Pass tx_bytes (base64 TransactionData, or TransactionKind bytes with sender). Example: { tx_bytes: "AAAC..." }.
| Name | Type | Req | Description |
|---|---|---|---|
| sender | string | – | The signer. Required with TransactionKind bytes; with TransactionData it runs the check as this address. |
| tx_bytes | string | yes | The unsigned transaction as base64: TransactionData, or TransactionKind bytes with sender. |
No output schema declared.
No examples provided.
get_object Read an object ~55
Read any Sui object by id: type, owner, version and fields, with its recent change history (which transactions changed it). Example: { id: "0x..." }.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Object id. |
No output schema declared.
No examples provided.
get_object_at Read an object at a past time ~154
Read a Sui object as it was at a version, checkpoint or time: its fields and owner then, or whether it was deleted or wrapped. Use it for what a pool, vault or position looked like before a change. Example: { id: "0x...", time: "2026-10-30T00:00:00Z" }.
| Name | Type | Req | Description |
|---|---|---|---|
| checkpoint | integer | – | A checkpoint sequence number, instead of time. |
| id | string | yes | Object id. |
| time | string|integer | – | A past time: ISO 8601 like 2025-06-01T00:00:00Z (UTC), or unix seconds. |
| version | integer | – | Object version. |
No output schema declared.
No examples provided.
nfts NFTs a wallet owns ~107
The NFTs and kiosk items an address owns: name, collection, image and listing state. Page with cursor. Example: { address: "example.sui" }.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | A Sui address (0x...), a SuiNS name like example.sui, or @example. |
| cursor | string | – | The cursor from the previous result, for the next page. |
| limit | integer | – | Items per page, up to 50. Default 10. |
No output schema declared.
No examples provided.
object_children List an object's dynamic fields ~128
List the dynamic fields of an object with decoded names and values (tables, bags, kiosks, pools, registries), or with depth 1 to 3, its tree of children. Page with cursor. Example: { id: "0x..." }.
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | – | The cursor from the previous result, for the next page. |
| depth | integer | – | 1 to 3 for the tree of children instead of one page of fields. |
| id | string | yes | Parent object id. |
| limit | integer | – | Fields per page, up to 50. |
No output schema declared.
No examples provided.
order_book DeepBook order books ~116
DeepBook order books. With nothing: every pool with best bid, ask and 24h volume. With pool: its depth and latest trades. With address: the wallet's open orders and recent fills. Example: { pool: "0x..." }.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | – | A Sui address (0x...), a SuiNS name like example.sui, or @example. |
| levels | integer | – | Price levels per side for depth. Default 10. |
| pool | string | – | Pool object id. |
No output schema declared.
No examples provided.
package_info Read a Move package ~146
A Move package. With only id: its modules, functions and upgrade history. With module and function: how to call it, each parameter explained, with a TypeScript snippet. With window (24h, 7d or 30d): calls per day and per function, failures and top callers. Example: { id: "0x2", module: "coin", function: "split" }.
| Name | Type | Req | Description |
|---|---|---|---|
| function | string | – | Function name, with module. |
| id | string | yes | Package id. |
| module | string | – | Module name, with function. |
| window | string | – | 24h, 7d or 30d, for usage. |
No output schema declared.
No examples provided.
price Coin prices ~84
USD prices for up to 50 coins, now or at a past time. Pass coin types or symbols. Example: { coins: ["SUI", "DEEP"] }.
| Name | Type | Req | Description |
|---|---|---|---|
| at | string | – | Optional past time: ISO 8601 or unix seconds. |
| coins | array | yes | Coin types or symbols, up to 50 (up to 10 symbols). |
No output schema declared.
No examples provided.
search Search Sui ~103
Find anything on Sui by text: coins by symbol or name, SuiNS names, perps markets, pools, packages, addresses, objects and digests. Returns ids to pass to the other tools. Example: { query: "deep" }.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Matches to return, 1 to 15. Default 8. |
| query | string | yes | Search text, a symbol, a name.sui, an id or a digest. |
No output schema declared.
No examples provided.
sql Run SQL over all of Sui ~175
Run one SQL SELECT over every Sui transaction, event, object version and balance change since genesis. Needs an API key. Returns up to 100 rows; page with execution_id and offset. If it is still running, call again with execution_id. Tables and columns: https://api.tide.ad/v1/sql/schema. Example: { query: "SELECT sequence_number, total_transaction_blocks FROM sui.checkpoints ORDER BY sequence_number DESC LIMIT 5" }. Needs an API key.
| Name | Type | Req | Description |
|---|---|---|---|
| execution_id | string | – | The execution_id of an earlier run, to get its rows or more of them. |
| limit | integer | – | Rows to return, 1 to 100. Default 50. |
| offset | integer | – | Rows to skip, for the next page. |
| query | string | – | One SQL SELECT statement. |
No output schema declared.
No examples provided.
staking Stakes and validators ~97
With address: the wallet's staked SUI, per stake its validator, principal, rewards and status. With validator: that validator's stake, commission and APY per epoch. Example: { address: "example.sui" }.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | – | A Sui address (0x...), a SuiNS name like example.sui, or @example. |
| validator | string | – | Validator address, for its history. |
No output schema declared.
No examples provided.
token_info Check a coin ~106
A coin's price, market cap, liquidity, volume and holder count, its safety checks (mint authority, deny list, concentration), its top 10 holders with linked-wallet clusters, and a report on its creator's past launches. Use it to judge a coin. Example: { coin: "DEEP" }.
| Name | Type | Req | Description |
|---|---|---|---|
| coin | string | yes | A coin type like 0x2::sui::SUI, or a symbol like DEEP (verified coins win ties). |
No output schema declared.
No examples provided.
trace_funds Trace where money came from or went ~198
Follow money between addresses. direction in: who sent funds to this address, hop by hop back, plus who first funded it. out: where its funds went, hop by hop forward. both: its largest counterparties either way. Exchanges and protocols end a path. Returns the 15 largest flows. Example: { address: "0x...", direction: "in", depth: 2 }.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | A Sui address (0x...), a SuiNS name like example.sui, or @example. |
| coin | string | – | Only this coin (coin type or symbol). |
| depth | integer | – | Hops to follow, 1 to 3. Default 2. |
| direction | string | – | in (sources), out (destinations) or both (top counterparties). Default in. |
| minUsd | number | – | Skip flows smaller than this many USD. Default 10. |
No output schema declared.
No examples provided.
wallet_history A wallet's transactions ~213
A wallet's transactions since genesis, newest first, each as one decoded sentence with the coins in and out. Filter by coin, direction (in or out) and days. Page with cursor. Spam airdrops are left out. Example: { address: "0x...", limit: 10 }.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | A Sui address (0x...), a SuiNS name like example.sui, or @example. |
| coin | string | – | Only transactions that moved this coin (coin type or symbol). |
| cursor | string | – | The cursor from the previous result, for the next page. |
| direction | string | – | Only coins coming in, or going out. |
| from | string | – | First day to include, like 2025-06-01 (UTC). |
| limit | integer | – | Rows per page, 1 to 25. Default 10. |
| to | string | – | Last day to include, like 2025-06-30 (UTC). |
No output schema declared.
No examples provided.
wallet_profile Profile a wallet ~108
Everything about a wallet in one call: total value with price status, top coins, DeFi and launchpad positions, SuiNS names and labels, who first funded it, its trading record and its latest transactions. Use it first for any question about an address or a .sui name. Example: { address: "example.sui" }.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | A Sui address (0x...), a SuiNS name like example.sui, or @example. |
No output schema declared.
No examples provided.
How do I install the tide MCP server?
tide is a hosted endpoint at https://api.tide.ad/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · api.tide.ad
claude mcp add --transport http ad-tide-mcp 'https://api.tide.ad/mcp'
What is the tide MCP server?
tide is an MCP server listed in the public MCP registry as ad.tide/mcp. Sui blockchain data in plain English: transactions, wallets, coins, balances, fund flows and SQL. This page covers its hosted endpoint (https://api.tide.ad/mcp).
Is the tide MCP server safe to use?
tide scores 73 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the tide MCP server expose?
tide exposes 22 tools: explain_transaction, wallet_profile, wallet_history, balance_at, token_info, and 17 more. Their descriptions and schemas cost roughly 2,788 tokens of context every time the server is loaded.
Does the tide MCP server require authentication?
No. We connected to tide without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the tide MCP server still maintained?
tide is still listed as active in the MCP registry. We last reached this channel on 4 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.