# tide (remote · api.tide.ad)

Sui blockchain data in plain English: transactions, wallets, coins, balances, fund flows and SQL.

- Trust score: 73/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-04

## Components

- remote · `api.tide.ad`: 73/100 (this document), [markdown](https://verifymcp.io/servers/ad-tide-mcp/api.md), [page](https://verifymcp.io/servers/ad-tide-mcp/api)

## Channel facts

- Endpoint: `https://api.tide.ad/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `2.0.0`

## Trust breakdown

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. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-04.

- **Endpoint Security**: 80/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 70/100
  - AI-judged instruction clarity (good).
  - 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.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 22 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 23 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

**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.

## Install

### 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.

### Claude

```bash
claude mcp add --transport http ad-tide-mcp 'https://api.tide.ad/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "ad-tide-mcp": {
      "url": "https://api.tide.ad/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "ad-tide-mcp": {
      "type": "http",
      "url": "https://api.tide.ad/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.ad-tide-mcp]
url = "https://api.tide.ad/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "ad-tide-mcp": {
      "type": "remote",
      "url": "https://api.tide.ad/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add ad-tide-mcp --url 'https://api.tide.ad/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  ad-tide-mcp:
    url: "https://api.tide.ad/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "ad-tide-mcp": {
      "Transport": "http",
      "Url": "https://api.tide.ad/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add ad-tide-mcp -t streamable-http -u 'https://api.tide.ad/mcp'
```

### Other

```json
{
  "mcpServers": {
    "ad-tide-mcp": {
      "type": "http",
      "url": "https://api.tide.ad/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-04 (score 73)

First indexed and scored.

## MCP tools (22)

### `explain_transaction` (~101 tokens)

Explain a transaction

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" }.

Input parameters:

- `digest` (string, required): Transaction digest, base58 (43 or 44 characters).

### `wallet_profile` (~108 tokens)

Profile a wallet

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" }.

Input parameters:

- `address` (string, required): A Sui address (0x...), a SuiNS name like example.sui, or @example.

### `wallet_history` (~213 tokens)

A wallet's transactions

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 }.

Input parameters:

- `address` (string, required): 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).

### `balance_at` (~191 tokens)

Balance at a past time

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" }.

Input parameters:

- `address` (string, required): 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.

### `token_info` (~106 tokens)

Check a coin

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" }.

Input parameters:

- `coin` (string, required): A coin type like 0x2::sui::SUI, or a symbol like DEEP (verified coins win ties).

### `trace_funds` (~198 tokens)

Trace where money came from or went

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 }.

Input parameters:

- `address` (string, required): 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.

### `search` (~103 tokens)

Search Sui

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" }.

Input parameters:

- `limit` (integer): Matches to return, 1 to 15. Default 8.
- `query` (string, required): Search text, a symbol, a name.sui, an id or a digest.

### `price` (~84 tokens)

Coin prices

USD prices for up to 50 coins, now or at a past time. Pass coin types or symbols. Example: { coins: ["SUI", "DEEP"] }.

Input parameters:

- `at` (string): Optional past time: ISO 8601 or unix seconds.
- `coins` (array, required): Coin types or symbols, up to 50 (up to 10 symbols).

### `sql` (~175 tokens)

Run SQL over all of Sui

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.

Input parameters:

- `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.

### `explain_unsigned` (~137 tokens)

Check a transaction before signing

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..." }.

Input parameters:

- `sender` (string): The signer. Required with TransactionKind bytes; with TransactionData it runs the check as this address.
- `tx_bytes` (string, required): The unsigned transaction as base64: TransactionData, or TransactionKind bytes with sender.

### `get_object` (~55 tokens)

Read an object

Read any Sui object by id: type, owner, version and fields, with its recent change history (which transactions changed it). Example: { id: "0x..." }.

Input parameters:

- `id` (string, required): Object id.

### `get_object_at` (~154 tokens)

Read an object at a past time

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" }.

Input parameters:

- `checkpoint` (integer): A checkpoint sequence number, instead of time.
- `id` (string, required): Object id.
- `time` (string|integer): A past time: ISO 8601 like 2025-06-01T00:00:00Z (UTC), or unix seconds.
- `version` (integer): Object version.

### `object_children` (~128 tokens)

List an object's dynamic fields

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..." }.

Input parameters:

- `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, required): Parent object id.
- `limit` (integer): Fields per page, up to 50.

### `package_info` (~146 tokens)

Read a Move package

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" }.

Input parameters:

- `function` (string): Function name, with module.
- `id` (string, required): Package id.
- `module` (string): Module name, with function.
- `window` (string): 24h, 7d or 30d, for usage.

### `events` (~146 tokens)

List events

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 }.

Input parameters:

- `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.

### `checkpoint` (~71 tokens)

Read a checkpoint

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" }.

Input parameters:

- `seq` (string): Checkpoint sequence number, or latest.

### `candles` (~142 tokens)

Price candles

OHLCV price candles for a coin, in USD. Pick interval and an optional from and to. Example: { coin: "SUI", interval: "1h" }.

Input parameters:

- `coin` (string, required): 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.

### `nfts` (~107 tokens)

NFTs a wallet owns

The NFTs and kiosk items an address owns: name, collection, image and listing state. Page with cursor. Example: { address: "example.sui" }.

Input parameters:

- `address` (string, required): 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.

### `staking` (~97 tokens)

Stakes and validators

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" }.

Input parameters:

- `address` (string): A Sui address (0x...), a SuiNS name like example.sui, or @example.
- `validator` (string): Validator address, for its history.

### `order_book` (~116 tokens)

DeepBook order books

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..." }.

Input parameters:

- `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.

### `address_kind` (~107 tokens)

What kind of address

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..." }.

Input parameters:

- `address` (string, required): A Sui address (0x...), a SuiNS name like example.sui, or @example.

### `docs` (~103 tokens)

Find the right tide API method

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" }.

Input parameters:

- `limit` (integer): Matches, 1 to 8. Default 3.
- `question` (string, required): What you want to do, in plain words.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/ad-tide-mcp/api#diagnostics

## Score history

- 2026-11-04: 73

## Common questions

### 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.

## Links

- Remote endpoint: https://api.tide.ad/mcp
- Website: https://tide.ad/docs/mcp
- Changelog RSS feed: https://verifymcp.io/servers/ad-tide-mcp/api.xml
- Changelog JSON feed: https://verifymcp.io/servers/ad-tide-mcp/api.json
- HTML version of this page: https://verifymcp.io/servers/ad-tide-mcp/api
