Gate DEX MCP
REMOTE · API.GATEMCP.AI · SCANNED AUG 3
Gate DEX MCP for wallet auth, transfers, swaps, token info, market data, and RPC access.
Available components
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 →
Endpoint Security46
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (dex_agentic_report). See how to fix → View diagnostics → Fail
- HTTPS not yet verified: we couldn't determine whether a plaintext access path exists. View diagnostics → Unverified
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- 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 Usability50
- 71% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Partial
- AI-judged instruction clarity (fair).Partial
- Context-footprint check failed: tool/resource definitions use about 9735 tokens (~167/item across 58 items; 47 tools + 11 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 Management27
- Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
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
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
remote · api.gatemcp.ai
claude mcp add --transport http gateio-dev-gate-dex https://api.gatemcp.ai/mcp/dex
[mcp_servers.gateio-dev-gate-dex] url = "https://api.gatemcp.ai/mcp/dex"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"gateio-dev-gate-dex": {
"type": "remote",
"url": "https://api.gatemcp.ai/mcp/dex",
"enabled": true
}
}
} openclaw mcp add gateio-dev-gate-dex --url https://api.gatemcp.ai/mcp/dex --transport streamable-http
mcp_servers:
gateio-dev-gate-dex:
url: "https://api.gatemcp.ai/mcp/dex" {
"mcpServers": {
"gateio-dev-gate-dex": {
"type": "http",
"url": "https://api.gatemcp.ai/mcp/dex"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
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.
- 2 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.
- 31 Jul 26 −1
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 30 Jul 26 +1
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 29 Jul 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.
- 27 Jul 26 +1
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 26 Jul 26 54
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 3 Aug 2026 · Probed https://api.gatemcp.ai/mcp/dex
TLS valid
Negotiated TLS 1.3 with TLS_AES_256_GCM_SHA384 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=api.gatemcp.ai | CN=TrustAsia DV TLS RSA CA 2025,O=TrustAsia Technologies\, Inc.,C=CN | 1 Aug 2026 | 29 Oct 2026 | RSA 2048 | SHA256-RSA | 5b67f0c347846bf3451b522c6ab8381 |
| SANs: api.gatemcp.ai | ||||||
| CN=TrustAsia DV TLS RSA CA 2025,O=TrustAsia Technologies\, Inc.,C=CN (CA) | CN=DigiCert Global Root G2,OU=www.digicert.com,O=DigiCert Inc,C=US | 8 Jan 2025 | 7 Jan 2035 | RSA 4096 | SHA256-RSA | 926323b4964e368461512def1a5d52c |
| CN=DigiCert Global Root G2,OU=www.digicert.com,O=DigiCert Inc,C=US (CA) | CN=DigiCert Global Root G2,OU=www.digicert.com,O=DigiCert Inc,C=US | 1 Aug 2013 | 15 Jan 2038 | RSA 2048 | SHA256-RSA | 33af1e6a711a9a0bb2864b11d09fae5 |
DNSSEC insecure
Validation of api.gatemcp.ai. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| ai. | present | 3799 | 8 | Verified |
| gatemcp.ai. | 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 |
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://api.gatemcp.ai/mcp/dex | Verified | 200 | |
| http (plaintext) | http://api.gatemcp.ai/mcp/dex | Inconclusive | 404 |
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.
dex_agentic_report ~119
Register agentic wallet addresses with the wallet service.
| Name | Type | Req | Description |
|---|---|---|---|
| mcp_token | string | — | MCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403 |
| wallets | object | yes | Array of wallet info objects. Each wallet contains walletID and accounts array. Each account contains accountID and chainAddressList array. Each chainAddress contains networkKey, chains, chainAddress… |
No output schema declared.
No examples provided.
dex_auth_gate_login_poll ~130
Poll Gate OAuth; returns pending/ok/error. [write] On ok: replace mcp_token unless linked_to_google_session is true. Pass auto_replace_binding=true to rebind exchange UID on new Gate session.
| Name | Type | Req | Description |
|---|---|---|---|
| auto_replace_binding | boolean | — | If true and status is ok: when new session walletType is not gate_mcp/gate_quick, call BW POST /v1/wallet/inner/rebind (same as dex_wallet_replace_binding). Gate-native sessions are blocked without c… |
| flow_id | string | yes | Flow ID returned by dex_auth_gate_login_start |
No output schema declared.
No examples provided.
dex_auth_gate_login_start ~66
Start Gate device OAuth; returns verification_url. Pass link_mcp_token on a Google session to bind Gate UID without replacing mcp_token.
| Name | Type | Req | Description |
|---|---|---|---|
| link_mcp_token | string | — | Current Google wallet mcp_token for bind-only Gate OAuth; omit for standalone Gate login |
No output schema declared.
No examples provided.
dex_auth_google_login_poll ~67
Poll Google OAuth flow; returns pending/ok/error. [write] On ok: immediately replace stored mcp_token with login_result.mcp_token — new token is tied to a different account.
| Name | Type | Req | Description |
|---|---|---|---|
| flow_id | string | yes | Flow ID returned by dex_auth_google_login_start |
No output schema declared.
No examples provided.
dex_auth_google_login_start ~20
Returns browser verification URL for Google device OAuth.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
dex_auth_login_gate_wallet ~70
Exchange Gate OAuth code for MCP token. [write] On success, immediately replace any stored mcp_token — new token is tied to a different account.
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | yes | Gate OAuth authorization code |
| redirect_url | string | yes | Gate OAuth redirect URL used in the authorization request |
No output schema declared.
No examples provided.
dex_auth_login_google_wallet ~70
Exchange Google OAuth code for MCP token. [write] On success, immediately replace any stored mcp_token — new token is tied to a different account.
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | yes | Google OAuth authorization code |
| redirect_url | string | yes | Google OAuth redirect URL used in the authorization request |
No output schema declared.
No examples provided.
dex_auth_logout ~34
Revoke the MCP session identified by mcp_token.
| Name | Type | Req | Description |
|---|---|---|---|
| mcp_token | string | yes | MCP session token to revoke |
No output schema declared.
No examples provided.
dex_chain_config ~116
Returns chain config (networkKey, accountKey, chainID). Use the returned chain value in all subsequent transfer/sign/broadcast tools.
| Name | Type | Req | Description |
|---|---|---|---|
| chain | string | yes | Chain name or alias (matching is case-insensitive). Use the returned `chain` value for all subsequent tools on that network. |
| mcp_token | string | — | MCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403 |
No output schema declared.
No examples provided.
dex_market_get_kline ~220
OHLCV candles by period and window. Volume aggregates→get_tx_stats. Pool events→get_pair_liquidity.
| Name | Type | Req | Description |
|---|---|---|---|
| chain | string | yes | Chain name. Supported: bsc, base, eth, solana, arbitrum, polygon, avalanche, fantom, zksync, linea, optimism, sui, blast, tron, merlin, world, eni, bera, gatelayer, ton |
| end_time | string | — | End time (unix seconds); default: now |
| limit | string | — | Max number of candles (default 100, max 1000) |
| pair_address | string | — | Optional pair address |
| period | string | yes | K-line period: seconds (e.g. 300, 3600) or 1m, 5m, 1h, 4h, 1d |
| start_time | string | — | Start time (unix seconds); default: 100 periods before end_time |
| token_address | string | yes | Token contract address |
No output schema declared.
No examples provided.
dex_market_get_pair_liquidity ~150
AMM pool deposit and withdrawal events. Candlesticks→get_kline. Volume stats→get_tx_stats.
| Name | Type | Req | Description |
|---|---|---|---|
| chain | string | yes | Chain name. Supported: bsc, base, eth, solana, arbitrum, polygon, avalanche, fantom, zksync, linea, optimism, sui, blast, tron, merlin, world, eni, bera, gatelayer, ton |
| page_index | string | — | Page index (default 1) |
| page_size | string | — | Page size (default 15, max 15) |
| pair_address | string | — | Optional pair address |
| token_address | string | yes | Token contract address |
No output schema declared.
No examples provided.
dex_market_get_tx_stats ~127
Per-interval buy/sell volume and tx counts (5m–24h). Candlesticks→get_kline. Pool events→get_pair_liquidity.
| Name | Type | Req | Description |
|---|---|---|---|
| chain | string | yes | Chain name. Supported: bsc, base, eth, solana, arbitrum, polygon, avalanche, fantom, zksync, linea, optimism, sui, blast, tron, merlin, world, eni, bera, gatelayer, ton |
| pair_address | string | — | Optional pair address |
| token_address | string | yes | Token contract address |
No output schema declared.
No examples provided.
dex_rpc_call ~132
Proxy a JSON-RPC call to a blockchain node.
| Name | Type | Req | Description |
|---|---|---|---|
| chain | string | yes | Chain name (e.g., ETH, BSC, SOL, ARB, POLYGON) |
| mcp_token | string | — | MCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403 |
| method | string | yes | RPC method name (e.g., eth_blockNumber, eth_getBalance, getLatestBlockhash) |
| params | array | — | RPC method parameters as JSON array |
No output schema declared.
No examples provided.
dex_token_get_coin_info ~68
Price, market snapshot, metadata, optional top holders. Security audit→get_risk_info.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | Token contract address |
| chain | string | yes | Blockchain network |
| include_holders | string | — | Include top holders (true/false, default true) |
No output schema declared.
No examples provided.
dex_token_get_coins_range_by_created_at ~131
Tokens launched within a given time window; chain optional for all networks.
| Name | Type | Req | Description |
|---|---|---|---|
| chain | string | — | Optional chain filter; omit for all chains |
| end | string | yes | End of creation time range (RFC3339, e.g. 2025-01-02T00:00:00Z) |
| limit | string | — | Max number of tokens (1-100, default 20) |
| start | string | yes | Start of creation time range (RFC3339, e.g. 2025-01-01T00:00:00Z) |
No output schema declared.
No examples provided.
dex_token_get_risk_info ~133
Contract security audit (honeypot, tax, ownership flags). Price and market stats→get_coin_info.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | Token contract address |
| chain | string | yes | Chain name. Supported: bsc, polygon, avalanche, arbitrum, optimism, base, fantom, linea, zksync, world, gatelayer, merlin, blast, eni, bera, solana, ton, sui, tron |
| ignore | string | — | Set to true to hide empty risk items |
| lan | string | — | Language code (e.g. en, zh) |
No output schema declared.
No examples provided.
dex_token_list_cross_chain_bridge_tokens ~178
Receivable assets on target chain for a source token. Same-chain trading→list_swap_tokens.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string | — | User account ID. Only used when wallet is empty, to look up wallet addresses. |
| chain | string | yes | Target chain identifier, e.g. bsc, arbitrum, polygon |
| search | string | — | Search keyword (token symbol or contract address) to filter results |
| search_auth | boolean | — | When searching, only return certified tokens. Only effective when search is non-empty. |
| source_address | string | yes | Source token contract address on the source chain |
| source_chain | string | yes | Source chain identifier, e.g. eth, bsc, solana |
| wallet | string | — | User wallet address(es), comma-separated. Used to show balances and favorites. |
No output schema declared.
No examples provided.
dex_token_list_swap_tokens ~223
Tradable assets on a chain; tag selects favorites or recommendations. Bridge targets→list_cross_chain_bridge_tokens.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string | — | User account ID. Only used when wallet is empty. |
| chain | string | — | Chain identifier, e.g. eth, bsc, solana, arbitrum. Omit to query all chains. |
| ignore_bridge | boolean | — | Ignore cross-chain bridge restrictions, only filter by chain. Default false. |
| search | string | — | Search keyword (token symbol or contract address) |
| search_auth | boolean | — | When searching, only return certified tokens. Only effective when search is non-empty. |
| tag | string | — | List type: empty for normal token list; 'favorite' for user favorites (requires wallet/account_id); 'recommend' for system recommended tokens. |
| wallet | string | — | User wallet address(es), comma-separated. Used for favorites and balance display. |
| web3_key | string | — | Chain web3_key identifier. Only used when chain is empty, auto-maps to chain. |
No output schema declared.
No examples provided.
dex_token_ranking ~83
Top movers by 24h price change; direction selects gainers vs losers. Single token→get_coin_info.
| Name | Type | Req | Description |
|---|---|---|---|
| chain | string | — | Optional chain filter |
| direction | string | yes | 'desc' for top gainers, 'asc' for top losers |
| top_n | string | — | Number of tokens (1-100, default 10) |
No output schema declared.
No examples provided.
dex_tx_approve_preview ~359
Build ERC20/SPL approve or revoke tx (does not broadcast). Sign with dex_wallet_sign_transaction after user confirmation.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | — | Action type: 'approve' (default) or 'revoke' (revoke all approvals, Solana only) |
| amount | string | yes | Approval amount (human-readable). Set to '0' to revoke approval (EVM), set to 'unlimited' or 'max' for maximum allowance |
| chain | string | — | Chain name (default ETH). Based on backend chain configuration. |
| max_fee_per_gas | string | — | EVM: override max fee per gas (wei) |
| max_priority_fee_per_gas | string | — | EVM: override max priority fee per gas (wei) |
| mcp_token | string | — | MCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403 |
| nonce | string | — | EVM: transaction nonce. Omit to auto-fetch current nonce. |
| owner | string | yes | Owner address (your wallet address) |
| priority_fee_micro_lamports | string | — | Solana: priority fee (micro-lamports per compute unit) |
| spender | string | yes | Spender address (EVM: spender contract address; Solana: delegate account address) |
| token_contract | string | — | EVM: ERC20 contract address (required for EVM) |
| token_decimals | string | yes | Token decimals (e.g. 6, 18, 9) |
| token_mint | string | — | Solana: SPL Token mint address (required for Solana) |
No output schema declared.
No examples provided.
dex_tx_detail ~100
Fetch transaction detail by on-chain hash. → swap_detail for swap order detail by order ID.
| Name | Type | Req | Description |
|---|---|---|---|
| from_wallet | string | — | Optional sender wallet address filter |
| hash_id | string | yes | Transaction hash ID |
| mcp_token | string | — | MCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403 |
No output schema declared.
No examples provided.
dex_tx_gas ~140
Estimate on-chain gas price and gas limit for a given tx.
| Name | Type | Req | Description |
|---|---|---|---|
| chain | string | yes | Chain name or alias; resolved via dex_chain_config before calling upstream. |
| data | string | — | Transaction calldata (hex) |
| from | string | yes | Sender address |
| mcp_token | string | — | MCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403 |
| network | string | — | Network name |
| to | string | yes | Recipient address |
| value | string | — | Transfer value in wei |
No output schema declared.
No examples provided.
dex_tx_get_sol_unsigned ~172
Solana only: build fresh native SOL unsigned tx with latest blockhash; avoids Blockhash not found. Sign immediately. → transfer_preview for full summary first.
| Name | Type | Req | Description |
|---|---|---|---|
| amount | string | yes | Amount in SOL, e.g. 0.0001 |
| from | string | yes | Sender address (base58) |
| mcp_token | string | — | MCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403 |
| priority_fee_micro_lamports | string | — | Optional priority fee (micro-lamports per compute unit). Try 1000-10000 if broadcast returns replacement transaction underpriced. |
| to | string | yes | Recipient address (base58) |
No output schema declared.
No examples provided.
dex_tx_list ~174
List wallet transaction history (transfers). → swap_history_list for swap/bridge orders. → tx_detail for single tx by hash.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string | yes | Account ID |
| address | string | — | Wallet address filter |
| cursor | string | — | Pagination cursor |
| end_time | string | — | End time (Unix seconds or ISO8601) |
| mcp_token | string | — | MCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403 |
| page_num | string | — | Page number (1-based) |
| page_size | string | — | Page size (default 20) |
| start_time | string | — | Start time (Unix seconds or ISO8601) |
No output schema declared.
No examples provided.
dex_tx_send_raw_transaction ~447
Broadcast a signed tx to the chain. [write] Requires user confirmation after transfer preview and prior signing via dex_wallet_sign_transaction.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string | — | Account ID (for history_data) |
| action_type | string | — | Action type (history_data.action_type) |
| address | string | — | Sender wallet address (history_data.address) |
| chain | string | yes | Chain name: must match dex_chain_config response `chain` (canonical). Aliases are resolved via chain config before calling upstream. |
| mcp_token | string | — | MCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403 |
| memo | string | — | Memo (history_data.memo) |
| network | string | — | Network name |
| nonce | number | — | Nonce (history_data.nonce) |
| signed_tx | string | yes | Signed transaction data. For EVM chains: hex string (0x prefix added automatically). For other chains (e.g. Solana): use chain-specific format |
| token_addr | string | — | Token contract address (history_data.token_addr) |
| token_name | string | — | Token name (history_data.token_name) |
| token_short_name | string | — | Token symbol, e.g. USDT (history_data.token_short_name) |
| trans_balance | string | — | Display amount (history_data.trans_balance) |
| trans_balance_usd | string | — | USD value (history_data.trans_balance_usd) |
| trans_gas_fee | string | — | Gas fee display (history_data.trans_gas_fee) |
| trans_min_unit_amount | string | — | Amount in smallest unit (history_data.trans_min_unit_amount) |
| trans_min_unit_gas_fee | string | — | Gas fee in smallest unit (history_data.trans_min_unit_gas_fee) |
| trans_oppo_address | string | — | Counterparty address, e.g. recipient (history_data.trans_oppo_address) |
| trans_time | string | — | Transaction time ISO8601 (default: now) |
| trans_type | string | — | Transaction type (history_data.trans_type) |
No output schema declared.
No examples provided.
dex_tx_swap_checkin_preview ~184
Returns check-in fields for a swap stage (approve or swap). Call after prepare and before terminal tx-checkin script.
| Name | Type | Req | Description |
|---|---|---|---|
| mcp_token | string | yes | MCP session token (required in the tool schema). After Google or Gate wallet login, read it from login_result when dex_auth_google_login_poll or dex_auth_gate_login_poll returns success. The server c… |
| stage | string | yes | Preview stage: 'approve' or 'swap' |
| swap_session_id | string | yes | Swap session ID returned by dex_tx_swap_prepare |
No output schema declared.
No examples provided.
dex_tx_swap_detail ~96
Fetch swap order detail by order ID from swap_submit. → tx_detail for detail by on-chain hash.
| Name | Type | Req | Description |
|---|---|---|---|
| mcp_token | string | — | MCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403 |
| tx_order_id | string | yes | Transaction order ID from dex_tx_swap_submit |
No output schema declared.
No examples provided.
dex_tx_swap_history_list ~229
List swap/bridge order history with pagination; includes single-chain and cross-chain. → tx_list for transfer history.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string | yes | Account ID (wallet address) |
| dst_chain | number | — | Destination chain ID filter. 0 or omit for all chains |
| end_time | string | — | End time filter (ISO8601 format) |
| mcp_token | string | — | MCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403 |
| page_num | number | — | Page number (0-based, default 0) |
| page_size | number | — | Page size (default 20) |
| src_chain | number | — | Source chain ID filter (e.g. 1=ETH, 56=BSC). 0 or omit for all chains |
| start_time | string | — | Start time filter (ISO8601 format, e.g. 2025-01-01T00:00:00Z) |
No output schema declared.
No examples provided.
dex_tx_swap_prepare ~839
Stage a swap session (server-side build only); returns swap_session_id. Does not sign or submit. Call after quote confirmed by user.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string | yes | User account ID (UUID) |
| amount | string | yes | Human-readable amount (e.g. '0.01') |
| chain_id_in | number | yes | Source chain ID (e.g. 1=ETH, 56=BSC, 501=Solana) |
| chain_id_out | number | yes | Destination chain ID. Same as chain_id_in for single-chain swap |
| mcp_token | string | — | MCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403 |
| native_in | number | yes | ⚠️ CRITICAL — Must be set correctly, wrong value causes transaction failure or fund loss. Simply check: is token_in a native/gas coin? If yes, set 1; if it's a contract token, set 0. Native coins: ET… |
| native_out | number | yes | ⚠️ CRITICAL — Must be set correctly, wrong value causes transaction failure or fund loss. Simply check: is token_out a native/gas coin? If yes, set 1; if it's a contract token, set 0. Native coins: E… |
| slippage | number | yes | Slippage as decimal (0.01=1%, 0.1=10%) |
| to_wallet | string | — | Destination chain receiving address. ONLY required for CROSS-CHAIN swaps where chain_id_in and chain_id_out belong to different address groups (e.g. EVM→Solana). Obtain from dex_wallet_get_addresses.… |
| token_in | string | yes | Source token address. Use '-' for native coin |
| token_out | string | yes | Destination token address |
| user_wallet | string | yes | User's wallet address matching the SOURCE CHAIN. MUST be chain-specific: call dex_wallet_get_addresses(account_id) to get addresses, use addresses["EVM"] for EVM chains or addresses["SOL"] for Solana… |
No output schema declared.
No examples provided.
dex_tx_swap_quote ~1,192
Returns swap route and pricing. Call before swap_prepare; show result to user before proceeding. → transfer_preview for direct token send (not exchange).
| Name | Type | Req | Description |
|---|---|---|---|
| amount | string | yes | Human-readable amount of source token to swap, e.g. "0.001" for 0.001 BNB, "1" for 1 USDT. Do NOT convert to smallest unit (wei/lamports). Obtained directly from user's chat message. |
| chain_id_in | number | yes | Source chain ID. Use well-known IDs: ETH=1, BSC=56, Polygon=137, Arbitrum=42161, Base=8453, Avalanche=43114, Solana=501. Only call dex_chain_config for uncommon/unknown chains. For single-chain swap,… |
| chain_id_out | number | yes | Destination chain ID. Use same well-known IDs as chain_id_in. For single-chain swap, set equal to chain_id_in. For cross-chain swap, set to the target chain's ID. |
| mcp_token | string | — | MCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403 |
| native_in | number | yes | ⚠️ CRITICAL — Must be set correctly, wrong value causes transaction failure or fund loss. Simply check: is token_in a native/gas coin? If yes, set 1; if it's a contract token, set 0. Native coins: ET… |
| native_out | number | yes | ⚠️ CRITICAL — Must be set correctly, wrong value causes transaction failure or fund loss. Simply check: is token_out a native/gas coin? If yes, set 1; if it's a contract token, set 0. Native coins: E… |
| slippage | number | yes | Slippage tolerance as decimal ratio: 0.01 = 1%, 0.03 = 3%. Valid range: 0.001 (0.1%) to 0.499 (49.9%). If the user already specified slippage, use it directly. Only ask to confirm when not provided.… |
| to_wallet | string | — | Destination chain receiving address. ONLY required for CROSS-CHAIN swaps where chain_id_in and chain_id_out belong to different address groups (e.g. EVM→Solana or Solana→EVM). Obtain from dex_wallet_… |
| token_in | string | yes | Source token contract address. Use "-" for native coins (ETH, BNB, MATIC, etc.). For ERC20/BEP20 tokens, provide the full contract address (e.g. 0x55d398326f99059ff775485246999027b3197955 for BSC USD… |
| token_out | string | yes | Destination token contract address. Use "-" for native coins. For ERC20/BEP20 tokens, provide the full contract address. Obtain from user input, wallet_get_token_list, or known token mappings. If nat… |
| user_wallet | string | yes | User's wallet address matching the SOURCE CHAIN. CRITICAL: You MUST use the chain-specific address — call dex_wallet_get_addresses(account_id) first, then use addresses["EVM"] for EVM chains (ETH/BSC… |
No output schema declared.
No examples provided.
dex_tx_swap_sign_approve ~136
[write] Sign the ERC20 approve tx for a staged EVM swap. Requires need_approved=true in prepare result.
| Name | Type | Req | Description |
|---|---|---|---|
| checkin_token | string | yes | Approve-stage checkin_token returned by the local skill check-in script after dex_tx_swap_checkin_preview(stage='approve') |
| mcp_token | string | — | MCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403 |
| swap_session_id | string | yes | Swap session ID returned by dex_tx_swap_prepare |
No output schema declared.
No examples provided.
dex_tx_swap_sign_swap ~146
[write] Sign the main swap tx for a staged session. EVM: call sign_approve first if need_approved=true. Solana: generates a fresh signable payload.
| Name | Type | Req | Description |
|---|---|---|---|
| checkin_token | string | yes | Swap-stage checkin_token returned by the local skill check-in script after dex_tx_swap_checkin_preview(stage='swap') |
| mcp_token | string | — | MCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403 |
| swap_session_id | string | yes | Swap session ID returned by dex_tx_swap_prepare |
No output schema declared.
No examples provided.
dex_tx_swap_submit ~110
[write] Broadcast a staged swap to the chain. Does not sign. Requires all signing steps complete (sign_approve if EVM+approval, then sign_swap).
| Name | Type | Req | Description |
|---|---|---|---|
| mcp_token | string | — | MCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403 |
| swap_session_id | string | yes | Swap session ID returned by dex_tx_swap_prepare |
No output schema declared.
No examples provided.
dex_tx_transfer_preview ~528
Build unsigned transfer tx; displays summary (sender, recipient, amount, gas). Returns unsigned_tx_hex and txBundle for check-in. Does not broadcast. Wait for user confirmation before signing. → swap_quote/swap_prepare for token exchange.
| Name | Type | Req | Description |
|---|---|---|---|
| amount | string | yes | Amount in token units. Precision depends on token/decimals. Examples: '1', '0.5', '0.000001' |
| chain | string | — | Chain name or alias (default ETH). Resolved to canonical name from chain config; downstream sign/broadcast should use the same logical chain. |
| from | string | yes | Sender (your wallet) address |
| max_fee_per_gas | string | — | EVM only: override max fee per gas (wei). Use when replacing a pending tx: set ≥1.1× the previous max_fee_per_gas to fix replacement transaction underpriced. |
| max_priority_fee_per_gas | string | — | EVM only: override max priority fee per gas (wei). When replacing, set ≥1.1× previous max_priority_fee_per_gas. |
| mcp_token | string | — | MCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403 |
| nonce | string | — | Transaction nonce. Omit to use current chain nonce (eth_getTransactionCount), ensuring tx can be mined and found on explorer; wrong nonce causes tx to fail or not appear. |
| priority_fee_micro_lamports | string | — | Solana only: optional priority fee (micro-lamports per compute unit). Use 1000-10000 if broadcast returns replacement transaction underpriced. |
| to | string | yes | Recipient address |
| token | string | — | Token symbol for display (default USDT). Use ETH/NATIVE for native; USDT for USDT; or use token_contract/token_mint for any token. |
| token_contract | string | — | EVM: ERC20 contract address for arbitrary token. When set, token_decimals is used (default 18). Solana: unused. |
| token_decimals | string | — | Token decimals (e.g. 6, 18). Required when using token_contract (EVM) or token_mint (Solana); default 18 for ERC20, 9 for SOL. |
| token_mint | string | — | Solana: SPL token mint address for SPL transfer. When set, token_decimals is required. EVM: unused. |
No output schema declared.
No examples provided.
dex_tx_x402_checkin_preview ~276
Prepare Gate Verify tx_checkin for x402 (EVM exact / EIP-3009 only): returns tx_checkin.message (64-hex digest) and x402_payment_required_b64 without signing. Flow: 1) this tool 2) Gate Verify tx_checkin with returned tx_checkin fields 3) dex_tx_x402_fetch with same url/body/headers, checkin_token, and the same x402_payment_required_b64. If x402_payment_required_b64 is omitted, performs one HTTP call and requires HTTP 402.
| Name | Type | Req | Description |
|---|---|---|---|
| body | string | — | Optional request body |
| headers | string | — | Optional JSON object of request headers |
| mcp_token | string | — | MCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403 |
| method | string | — | HTTP method; default GET |
| url | string | yes | Same URL as dex_tx_x402_fetch |
| x402_payment_required_b64 | string | — | Optional: PAYMENT-REQUIRED header base64; when omitted, one outbound request is made and must return 402 |
| x402_preferred_network | string | — | Same as dex_tx_x402_fetch |
No output schema declared.
No examples provided.
dex_tx_x402_fetch ~419
[write] Send an HTTP request to the given URL. If the server responds with 402 Payment Required, pay via x402 (Coinbase-style: USDC EIP-3009 / Permit2 on EVM, SPL on Solana), retry with PAYMENT-SIGNATURE. REQUIRED: Gate Verify tx_checkin before signing; pass checkin_token. For EVM EIP-3009, use dex_tx_x402_checkin_preview first so the agent does not build digest manually; then pass checkin_token and the same x402_payment_required_b64 from preview. CoinGecko Pro x402: do not send x-cg-pro-api-key; default network Base unless x402_preferred_network=solana.
| Name | Type | Req | Description |
|---|---|---|---|
| body | string | — | Optional request body |
| checkin_token | string | yes | From Gate Verify MCP tool tx_checkin success (e.g. structuredContent.data.checkin_token or data.checkin_token). Required before every call so GV can verify signing. |
| headers | string | — | Optional JSON object of request headers |
| mcp_token | string | — | MCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403 |
| method | string | — | HTTP method; default GET |
| url | string | yes | Request URL (CoinGecko x402: https://pro-api.coingecko.com/api/v3/x402/...) |
| x402_payment_required_b64 | string | — | Optional: base64 PAYMENT-REQUIRED header payload from the same 402 as EIP-3009 tx-checkin. When set, skips the first HTTP call and pays using this snapshot (digest/checkin_token must match). |
| x402_preferred_network | string | — | Optional: base, eth, solana, eip155:8453, ... — restrict which accept.network is used. CoinGecko Pro /x402/ defaults to base when omitted. |
No output schema declared.
No examples provided.
dex_wallet_bind_exchange_uid ~114
Bind Gate exchange UID to session. Standalone Gate session only; gateUid must equal login_result.gate_uid from Gate OAuth. → replace_binding to rebind.
| Name | Type | Req | Description |
|---|---|---|---|
| gateUid | string | yes | Must equal login_result.gate_uid from Gate OAuth that created this session |
| mcp_token | string | — | MCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403 |
No output schema declared.
No examples provided.
dex_wallet_get_addresses ~94
Returns address map by chain type (EVM, SOL, etc.). Call before transfer/swap tools to get the sender address.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string | yes | Account ID |
| mcp_token | string | — | MCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403 |
No output schema declared.
No examples provided.
dex_wallet_get_bindings ~69
Returns current Gate UID binding for the session wallet.
| Name | Type | Req | Description |
|---|---|---|---|
| mcp_token | string | — | MCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403 |
No output schema declared.
No examples provided.
dex_wallet_get_token_list ~174
Token balances and prices with pagination; filter by network_keys. → get_total_asset for portfolio summary only.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string | — | Account ID (optional, auto-detected from login session) |
| mcp_token | string | — | MCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403 |
| network_keys | string | — | Optional. Comma-separated network keys to filter (e.g. ETH,SOL,ARB). Omit or leave empty for all networks. Do not pass a separate chain field — use network_keys only. |
| page | number | — | Page number, default 1 |
| page_size | number | — | Page size, default 20 |
No output schema declared.
No examples provided.
dex_wallet_get_total_asset ~97
Total portfolio value and 24h change. → get_token_list for per-token balance detail.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string | — | Account ID (optional, auto-detected from login session) |
| mcp_token | string | — | MCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403 |
No output schema declared.
No examples provided.
dex_wallet_get_wallet_type ~210
Returns walletAddress, walletType, gateUid. With for_withdraw_to_exchange or for_gate_oauth_bind, also starts Gate OAuth when gateUid is missing.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string | — | Account ID; used with session to resolve EVM address if wallet_address omitted |
| for_gate_oauth_bind | boolean | — | Bind/rebind Gate exchange: when walletType is NOT gate_mcp/gate_quick, start Gate OAuth (Google: link); when already Gate-native with gateUid, returns nextSteps only |
| for_withdraw_to_exchange | boolean | — | Withdraw-to-exchange: when gateUid is missing, start Gate device OAuth (Google: link binding) |
| mcp_token | string | — | MCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403 |
| wallet_address | string | — | EVM wallet address to classify |
No output schema declared.
No examples provided.
dex_wallet_google_gate_bind_start ~84
Google sessions only: starts Gate OAuth to bind Gate exchange UID to this session. mcp_token stays unchanged after poll.
| Name | Type | Req | Description |
|---|---|---|---|
| mcp_token | string | — | MCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403 |
No output schema declared.
No examples provided.
dex_wallet_replace_binding ~121
Rebind Gate exchange UID. [write] newUid must equal login_result.gate_uid from a fresh Gate OAuth. Blocked for gate_mcp/gate_quick sessions and Google sessions.
| Name | Type | Req | Description |
|---|---|---|---|
| mcp_token | string | — | MCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403 |
| newUid | string | yes | Must equal login_result.gate_uid from latest Gate OAuth (stamped on session) |
No output schema declared.
No examples provided.
dex_wallet_sign_message ~204
Sign a 32-byte hex message with wallet key. [write] Requires checkin_token from terminal tx-checkin. → sign_transaction for raw tx signing.
| Name | Type | Req | Description |
|---|---|---|---|
| chain | string | yes | Chain: dex_chain_config name/alias (e.g. ETH, BSC, SOL), or pass EVM / SOL directly for the signing family. Unknown names are rejected via chain config; web3_business_wallet sign-message receives cha… |
| checkin_token | string | yes | From successful tx-checkin response: the checkin_token string (terminal CLI stdout JSON). Must match the signing intent in the same flow. |
| mcp_token | string | — | MCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403 |
| message | string | yes | Message to sign (hex) |
No output schema declared.
No examples provided.
dex_wallet_sign_transaction ~168
Sign a raw unsigned transaction. [write] Requires user confirmation after transfer preview and checkin_token from terminal tx-checkin. → dex_tx_send_raw_transaction to broadcast.
| Name | Type | Req | Description |
|---|---|---|---|
| chain | string | yes | Chain name: must match dex_chain_config response `chain` (canonical). Aliases are resolved via chain config. |
| checkin_token | string | yes | From successful tx-checkin response: the checkin_token string (terminal CLI stdout JSON). Must match the signing intent in the same flow. |
| mcp_token | string | — | MCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403 |
| raw_tx | string | yes | Raw transaction data |
No output schema declared.
No examples provided.
dex_withdraw_deposit_address ~197
Fetch Gate exchange deposit address for the session-bound Gate UID. [write] amount must be ≥ min_deposit_amount; do not pass uid — it is resolved from the session.
| Name | Type | Req | Description |
|---|---|---|---|
| amount | string | yes | Required. Human-readable amount (same units as on-chain transfer); must be ≥ exchange min_deposit_amount |
| chain_name | string | yes | Chain name, e.g. BSC, ETH |
| coin_symbol | string | yes | Coin symbol, e.g. USDT |
| mcp_token | string | — | MCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403 |
| token_address | string | — | Optional. ERC20 contract for gate-deposit; empty for native. If omitted, USDT is resolved from chain_name; other symbols may require this field |
No output schema declared.
No examples provided.