gate-dex-mcpwallet

Gate Wallet Portfolio Skill

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "gate-dex-mcpwallet" with this command: npx skills add gate/gate-skills/gate-gate-skills-gate-dex-mcpwallet

Gate Wallet Portfolio Skill

Wallet/Assets/History domain — Query token balance, total asset value, wallet address, chain config, transfer history, transaction details, Swap history. 7 MCP tools.

Trigger scenarios: User mentions "check balance", "how much do I have", "assets", "holdings", "address", "transaction history", "transfer records", "Swap history", "transaction details", "balance", "portfolio", "wallet address", "history", or when other Skills need balance verification / address retrieval / transaction history query.

Step 0: MCP Server Connection Check (Mandatory)

Before executing any operation, Gate Wallet MCP Server availability must be confirmed. This step cannot be skipped.

Probe call:

CallMcpTool(server="gate-wallet", toolName="chain.config", arguments={chain: "eth"})

Result Action

Success MCP Server available, proceed with subsequent steps

server not found / unknown server

Cursor not configured → Show configuration guide (see below)

connection refused / timeout

Remote unreachable → Prompt to check URL and network

401 / unauthorized

API Key authentication failed → Prompt to check auth config

Display when Cursor is not configured

❌ Gate Wallet MCP Server not configured

The MCP Server named "gate-wallet" was not found in Cursor. Please configure as follows:

Method 1: Configure via Cursor Settings (recommended)

  1. Open Cursor → Settings → MCP
  2. Click "Add new MCP server"
  3. Fill in:
  4. Save and retry

Method 2: Edit config file manually Edit ~/.cursor/mcp.json, add: { "mcpServers": { "gate-wallet": { "url": "https://your-mcp-server-domain/mcp" } } }

If you don't have an MCP Server URL yet, please contact your administrator.

Display when remote service is unreachable

⚠️ Gate Wallet MCP Server connection failed

MCP Server config was found, but connection to remote service failed. Please check:

  1. Confirm the service URL is correct (is the configured URL accessible)
  2. Check network connection (VPN / firewall impact)
  3. Confirm the remote service is running

Display when API Key authentication fails

🔑 Gate Wallet MCP Server authentication failed

MCP Server connected but API Key validation failed. This service uses AK/SK authentication (x-api-key header). Please contact your administrator for a valid API Key and confirm server-side configuration.

Authentication

All operations in this Skill require mcp_token . User must be logged in before calling any tool.

  • If no mcp_token is present → Guide user to gate-dex-mcpauth to complete login, then return.

  • If mcp_token is expired (MCP Server returns token expired error) → First try auth.refresh_token for silent refresh, on failure guide user to re-login.

MCP Tool Call Specification

  1. wallet.get_token_list — Query token list (with balance)

Get the list of tokens held by the specified account on a chain (or all chains), including balance and price info.

Field Description

Tool name wallet.get_token_list

Parameters { account_id: string, chain?: string, mcp_token: string }

Return value Token array, each item contains symbol , balance , price , value , chain , contract_address , etc.

Parameter description:

Parameter Required Description

account_id

Yes User account ID (obtained at login)

chain

No Chain identifier (e.g. "eth" , "bsc" , "sol" ). Omit to query all supported chains

mcp_token

Yes Authentication token

Call example:

CallMcpTool( server="gate-wallet", toolName="wallet.get_token_list", arguments={ account_id: "acc_12345", chain: "eth", mcp_token: "<mcp_token>" } )

Return example:

[ { "symbol": "ETH", "balance": "2.5", "price": 1920.50, "value": 4801.25, "chain": "eth", "contract_address": "native" }, { "symbol": "USDT", "balance": "5000", "price": 1.0, "value": 5000.00, "chain": "eth", "contract_address": "0xdAC17F958D2ee523a2206206994597C13D831ec7" } ]

  1. wallet.get_total_asset — Query total asset value

Get the total USD value of account assets across all chains and its change.

Field Description

Tool name wallet.get_total_asset

Parameters { account_id: string, mcp_token: string }

Return value { total_value: number, change_value: number, change_percent: number }

Parameter description:

Parameter Required Description

account_id

Yes User account ID

mcp_token

Yes Authentication token

Call example:

CallMcpTool( server="gate-wallet", toolName="wallet.get_total_asset", arguments={ account_id: "acc_12345", mcp_token: "<mcp_token>" } )

Return example:

{ "total_value": 15230.75, "change_value": 320.50, "change_percent": 2.15 }

  1. wallet.get_addresses — Get wallet addresses

Get wallet addresses for the account on each chain.

Field Description

Tool name wallet.get_addresses

Parameters { account_id: string, mcp_token: string }

Return value { addresses: { [chain: string]: string } }

Parameter description:

Parameter Required Description

account_id

Yes User account ID

mcp_token

Yes Authentication token

Call example:

CallMcpTool( server="gate-wallet", toolName="wallet.get_addresses", arguments={ account_id: "acc_12345", mcp_token: "<mcp_token>" } )

Return example:

{ "addresses": { "eth": "0xABCdef1234567890ABCdef1234567890ABCdef12", "bsc": "0xABCdef1234567890ABCdef1234567890ABCdef12", "polygon": "0xABCdef1234567890ABCdef1234567890ABCdef12", "sol": "7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU" } }

Agent behavior: EVM chains share the same address, Solana has a separate address. Display grouped by chain name.

  1. chain.config — Query chain configuration

Get network configuration info for the specified chain (RPC endpoint, chain ID, etc.). Mainly for internal validation and auxiliary operations.

Field Description

Tool name chain.config

Parameters { chain: string, mcp_token: string }

Return value { networkKey: string, endpoint: string, chainID: number }

Parameter description:

Parameter Required Description

chain

Yes Chain identifier (e.g. "eth" , "bsc" , "polygon" , "sol" )

mcp_token

Yes Authentication token

Call example:

CallMcpTool( server="gate-wallet", toolName="chain.config", arguments={ chain: "eth", mcp_token: "<mcp_token>" } )

Return example:

{ "networkKey": "ethereum", "endpoint": "https://mainnet.infura.io/v3/...", "chainID": 1 }

  1. tx.list — Query transfer transaction list

Get the user's transfer transaction history.

Field Description

Tool name tx.list

Parameters { account_id: string, chain?: string, page?: number, limit?: number, mcp_token: string }

Return value Transaction array, each item contains hash_id , chain , from , to , amount , token_symbol , status , timestamp

Parameter description:

Parameter Required Description

account_id

Yes User account ID

chain

No Chain identifier. Omit to query all chains

page

No Page number. Default 1

limit

No Items per page. Default 20

mcp_token

Yes Authentication token

Call example:

CallMcpTool( server="gate-wallet", toolName="tx.list", arguments={ account_id: "acc_12345", chain: "eth", limit: 10, mcp_token: "<mcp_token>" } )

Return example:

[ { "hash_id": "0xa1b2c3d4...", "chain": "eth", "from": "0xABC...1234", "to": "0xDEF...5678", "amount": "1000", "token_symbol": "USDT", "status": "success", "timestamp": 1700000000 } ]

  1. tx.detail — Query transaction details

Get detailed information for a specific transaction.

Field Description

Tool name tx.detail

Parameters { hash_id: string, chain: string, mcp_token: string }

Return value { hash_id: string, chain: string, from: string, to: string, amount: string, token_symbol: string, status: string, gas_used: string, gas_price: string, block_number: number, timestamp: number }

Parameter description:

Parameter Required Description

hash_id

Yes Transaction hash

chain

Yes Chain identifier

mcp_token

Yes Authentication token

Call example:

CallMcpTool( server="gate-wallet", toolName="tx.detail", arguments={ hash_id: "0xa1b2c3d4e5f6...7890", chain: "eth", mcp_token: "<mcp_token>" } )

Return example:

{ "hash_id": "0xa1b2c3d4e5f6...7890", "chain": "eth", "from": "0xABC...1234", "to": "0xDEF...5678", "amount": "1000", "token_symbol": "USDT", "status": "success", "gas_used": "65000", "gas_price": "30000000000", "block_number": 18500000, "timestamp": 1700000000 }

  1. tx.history_list — Query Swap history

Get the user's Swap transaction history.

Field Description

Tool name tx.history_list

Parameters { account_id: string, chain?: string, page?: number, limit?: number, mcp_token: string }

Return value Swap record array, each item contains hash_id , chain , from_token , from_amount , to_token , to_amount , status , timestamp

Parameter description:

Parameter Required Description

account_id

Yes User account ID

chain

No Chain identifier. Omit to query all chains

page

No Page number. Default 1

limit

No Items per page. Default 20

mcp_token

Yes Authentication token

Call example:

CallMcpTool( server="gate-wallet", toolName="tx.history_list", arguments={ account_id: "acc_12345", chain: "eth", limit: 10, mcp_token: "<mcp_token>" } )

Return example:

[ { "hash_id": "0xc3d4e5f6...", "chain": "eth", "from_token": "USDT", "from_amount": "100", "to_token": "ETH", "to_amount": "0.0521", "status": "success", "timestamp": 1700000000 } ]

Supported Chains

Chain ID Network Name Type

eth

Ethereum EVM

bsc

BNB Smart Chain EVM

polygon

Polygon EVM

arbitrum

Arbitrum One EVM

optimism

Optimism EVM

avax

Avalanche C-Chain EVM

base

Base EVM

sol

Solana Non-EVM

When querying balance, if chain parameter is not specified, token data from all supported chains will be aggregated.

Skill Routing

Based on user intent after viewing assets, route to the corresponding Skill:

User Intent Route Target

View token market data, K-line, price trend gate-dex-mcpmarket

View token security audit info gate-dex-mcpmarket (token_get_risk_info )

Transfer, send tokens to another address gate-dex-mcptransfer

Swap tokens gate-dex-mcpswap

Interact with DApp, sign messages gate-dex-mcpdapp

Login / auth expired gate-dex-mcpauth

Operation Flows

Flow A: Query token balance

Step 0: MCP Server pre-check Call chain.config({chain: "eth"}) to probe availability ↓ Success

Step 1: Auth check Confirm valid mcp_token and account_id No token → Guide to gate-dex-mcpauth for login ↓

Step 2: Intent recognition + parameter collection Determine user query scope:

  • Specific chain balance (e.g. "how much USDT do I have on Ethereum") → chain = "eth"
  • Specific token balance (e.g. "how much ETH do I have") → Query all first, then filter
  • All assets (e.g. "show my balance") → Don't specify chain ↓

Step 3: Execute query Call wallet.get_token_list({ account_id, chain?, mcp_token }) ↓

Step 4: Format display Sort by USD value descending, display:

──────────────────────────── 📊 Wallet Balance (Ethereum)

TokenBalancePrice (USD)Value (USD)
USDT5,000.00$1.00$5,000.00
ETH2.50$1,920.50$4,801.25
USDC1,000.00$1.00$1,000.00

Total: $10,801.25 ────────────────────────────

If querying all chains, display grouped by chain. ↓

Step 5: Suggest next actions

  • View market trend for a token → gate-dex-mcpmarket
  • Transfer tokens → gate-dex-mcptransfer
  • Swap tokens → gate-dex-mcpswap

Flow B: Query total asset value

Step 0: MCP Server pre-check ↓ Success

Step 1: Auth check Confirm valid mcp_token and account_id ↓

Step 2: Execute query Call wallet.get_total_asset({ account_id, mcp_token }) ↓

Step 3: Format display

──────────────────────────── 💰 Total Assets Overview

Total asset value: $15,230.75 24h change: +$320.50 (+2.15%) ────────────────────────────

Step 4: Suggest next actions

  • View holdings by chain → Flow A (wallet.get_token_list)
  • View token market data → gate-dex-mcpmarket
  • Transfer / Swap → gate-dex-mcptransfer / gate-dex-mcpswap

Flow C: Get wallet addresses

Step 0: MCP Server pre-check ↓ Success

Step 1: Auth check Confirm valid mcp_token and account_id ↓

Step 2: Intent recognition Determine user needs:

  • Specific chain address (e.g. "my Ethereum address") → Return that chain's address
  • All chain addresses → Return all ↓

Step 3: Execute query Call wallet.get_addresses({ account_id, mcp_token }) ↓

Step 4: Format display

──────────────────────────── 🔑 Wallet Addresses

EVM chains (shared address): 0xABCdef1234567890ABCdef1234567890ABCdef12 Applies to: Ethereum, BSC, Polygon, Arbitrum, Optimism, Avalanche, Base

Solana: 7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU ────────────────────────────

Note: EVM chains share the same address, Solana has a separate address. ↓

Step 5: Suggest next actions

  • View balance for this address → Flow A
  • Receive tokens to this address → Provide address to counterparty
  • Send tokens from this address → gate-dex-mcptransfer
  • Connect DApp with this address → gate-dex-mcpdapp

Flow D: Query chain config (auxiliary flow)

Step 0: MCP Server pre-check ↓ Success

Step 1: Execute query Call chain.config({ chain, mcp_token }) ↓

Step 2: Return config info Usually used as internal auxiliary info, not displayed to user separately. Used when other Skills need chain RPC info.

Flow E: View transfer history

Step 0: MCP Server connection check ↓ Success

Step 1: Auth check Confirm valid mcp_token and account_id No token → Guide to gate-dex-mcpauth for login ↓

Step 2: Parameter collection Determine query scope (chain, page) ↓

Step 3: Execute query Call tx.list({ account_id, chain?, page?, limit?, mcp_token }) ↓

Step 4: Format display

──────────────────────────── 📋 Transfer History

TimeChainDirectionAmountTokenStatusHash
{time}{chain}Sent/Received{amount}{symbol}✅/{status}{hash_short}
────────────────────────────

Step 5: Suggest next actions

  • View transaction details → Flow F (tx.detail)
  • View Swap history → Flow G (tx.history_list)
  • View current balance → Flow A (wallet.get_token_list)

Flow F: View transaction details

Step 0: MCP Server connection check ↓ Success

Step 1: Auth check ↓

Step 2: Execute query Call tx.detail({ hash_id, chain, mcp_token }) ↓

Step 3: Format display

──────────────────────────── 🔍 Transaction Details

Transaction Hash: {hash_id} Chain: {chain_name} Status: {status} Block: {block_number} Time: {timestamp} From: {from} To: {to} Amount: {amount} {token_symbol} Gas used: {gas_used} Gas price: {gas_price} Block explorer: https://{explorer}/tx/{hash_id} ────────────────────────────

Flow G: View Swap history

Step 0: MCP Server connection check ↓ Success

Step 1: Auth check ↓

Step 2: Execute query Call tx.history_list({ account_id, chain?, page?, limit?, mcp_token }) ↓

Step 3: Format display

──────────────────────────── 🔄 Swap History

TimeChainInputOutputGas FeeStatusHash
{time}{chain}{from_amount} {from_token}{to_amount} {to_token}{gas_fee} {gas_symbol} (≈ ${gas_fee_usd}){hash_short}
────────────────────────────

Cross-Skill Workflows

Called by other Skills

This Skill acts as an asset data provider and is often called by:

Caller Call scenario Tools used

gate-dex-mcptransfer

Verify sufficient balance before transfer wallet.get_token_list

gate-dex-mcpswap

Verify input token balance before Swap wallet.get_token_list

gate-dex-mcpdapp

Get wallet address for DApp connection wallet.get_addresses

gate-dex-mcpdapp

Verify balance before DApp transaction wallet.get_token_list

gate-dex-mcptransfer

View updated balance after transaction wallet.get_token_list

gate-dex-mcptransfer

View transaction details after transfer tx.detail , tx.list

gate-dex-mcpswap

View updated balance after Swap wallet.get_token_list

gate-dex-mcpswap

View history after Swap tx.history_list

gate-dex-mcpdapp

View updated balance after DApp transaction wallet.get_token_list

gate-dex-mcpdapp

View transaction details after DApp transaction tx.detail , tx.list

Typical combined workflows

Query and buy:

gate-dex-mcpwallet (check balance, confirm sufficient tokens) → gate-dex-mcpmarket (check target token market / security info) → gate-dex-mcpswap (execute buy) → gate-dex-mcpwallet (view updated balance)

Portfolio overview:

gate-dex-mcpwallet (wallet.get_total_asset → total assets) → gate-dex-mcpwallet (wallet.get_token_list → holdings detail) → gate-dex-mcpmarket (supplement token market / K-line)

Full transfer flow:

gate-dex-mcpwallet (wallet.get_token_list → verify balance) → gate-dex-mcpwallet (wallet.get_addresses → get sender address) → gate-dex-mcptransfer (build → confirm → sign → broadcast) → gate-dex-mcpwallet (view updated balance)

Display Rules

Balance display rules

  • Sorting: By USD value descending

  • Zero balance filter: Hide tokens with 0 balance by default, show only when user explicitly requests

  • Precision:

  • Token balance: Max 8 decimal places, trim trailing zeros

  • USD value: 2 decimal places, thousand separators

  • Price change percent: 2 decimal places

  • Per-chain display: When querying multiple chains, display grouped by chain with subtotal per group

Address display rules

  • EVM address shown in full (42 chars), with shared chain list

  • Solana address shown in full (32-44 chars)

  • Use masked format for short reference: 0xABCD...ef12

Edge Cases and Error Handling

Scenario Action

MCP Server not configured Abort all operations, show Cursor config guide

MCP Server unreachable Abort all operations, show network check prompt

Not logged in (no mcp_token ) Guide to gate-dex-mcpauth to complete login, then auto-return to continue query

mcp_token expired First try auth.refresh_token for silent refresh, on failure guide to re-login

wallet.get_token_list returns empty list Inform user no token holdings on this chain/account, suggest checking chain selection

Specified chain not supported Show supported chain list, ask user to choose again

Invalid account_id

Show error, suggest re-login to get valid account_id

tx.list returns empty list Prompt no transfer records, confirm chain selection

tx.history_list returns empty list Prompt no Swap records

tx.detail query failed Confirm transaction hash and chain identifier are correct

Query timeout Prompt network issue, suggest retry later or specify single chain to reduce data

Token price data missing Display balance normally, show "N/A" in price column, exclude from total USD value

MCP Server returns unknown error Display error message as-is, do not silently swallow

User-requested token not in holdings Clearly inform token not found, suggest confirming token name/chain

Security Rules

  • mcp_token confidentiality: Never display mcp_token in plain text to user; use placeholder <mcp_token> in call examples.

  • account_id masking: When displaying to user, show only partial chars (e.g. acc_12...89 ).

  • Token auto-refresh: When mcp_token expires, try silent refresh first; only require re-login on failure.

  • Read-only operations: This Skill only involves queries, no on-chain write operations; no transaction confirmation gating needed.

  • No operations when MCP Server not configured or unreachable: Abort all subsequent steps if Step 0 connection check fails.

  • MCP Server error transparency: All MCP Server error messages are displayed to user as-is; do not hide or alter.

  • Address integrity: When displaying wallet address, ensure it is complete and accurate; avoid truncation that could cause user to copy wrong address. Use masked format for short reference, but provide a way to copy full address.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Web3

gate-dex-wallet

No summary provided by upstream source.

Repository SourceNeeds Review
-17
gate
General

gate-exchange-futures

No summary provided by upstream source.

Repository SourceNeeds Review
-41
gate
General

gate-exchange-spot

No summary provided by upstream source.

Repository SourceNeeds Review
-39
gate