npm package: @sei-mcp-v2/sei-mcp-server
Description: Model Context Protocol (MCP) server for interacting with Sei blockchain
Author: Testing User
Latest version: 2.0.1

# SEI MCP Server V2: The Autonomous Agent Toolkit for Sei 🚀

![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)
![EVM Networks](https://img.shields.io/badge/Networks-30+-green)
![TypeScript](https://img.shields.io/badge/TypeScript-5.0+-3178C6)
![Viem](https://img.shields.io/badge/Viem-1.0+-green)

Sei Model Context Protocol (Sei MCP) server provides blockchain services for the Sei blockchain. 
This server enables AI assistants and agents to interact via unified interface.

---

#### 🎥 [Sei MCP V2 Demo Video](https://youtu.be/oxnJykE-Lpk)

Watch the demo video to see Sei MCP V2 in action.

---

#### 📦 [Sei MCP V2 Package on npm](https://www.npmjs.com/package/@sei-mcp-v2/sei-mcp-server)

You can install the Sei MCP V2 package via npm:

```bash
npm install @sei-mcp-v2/sei-mcp-server
```

---

## 📋 Contents

- [Overview](#overview)
- [Features](#features)
- [Supported Networks](#supported-networks)
- [Prerequisites](#prerequisites)
- [Installation](#installation)
- [Server Configuration](#server-configuration)
- [Usage](#usage)
- [API Reference](#api-reference)
  - [Tools](#tools)
  - [Resources](#resources)
- [Security Considerations](#security-considerations)
- [Project Structure](#project-structure)
- [Development](#development)
- [License](#license)

---

## 🔭 Overview

Our vision is to provide the foundational infrastructure that empowers AI to act as autonomous agents, simplifying complex on-chain actions—from DeFi trading to cross-chain bridging—into easy, natural language conversations.

To bring this vision to life, we've built **SEI MCP V2**, a massively expanded, multi-protocol infrastructure suite designed as the ultimate toolkit for AI agents on the **Sei Network**. This server transforms the core MCP concept into an all-in-one gateway to the Web3 ecosystem, accessible through a unified interface.

### 💪 Core Capabilities

- **🐝 Hive Natural Language Querying**
    - A revolutionary tool allowing AI agents to query complex on-chain data with simple English prompts. 
    - Example query: “What are the holdings in my wallet 0x...?”

- **💹 Advanced DeFi & NFT Trading**
    SEI MCP V2 offers a complete suite for decentralized finance and NFT trading:

    - **Citrex Perpetual Futures Exchange:**  
        - Place advanced orders (market, limit)
        - Manage orders in batches
        - Monitor account health and margin
        - Access real-time market data (order books, klines)

    - **DragonSwap V3 DEX:**  
        - Execute atomic token swaps
        - Manage concentrated liquidity positions
        - Create new liquidity pools

    - **OpenSea NFT Marketplace:**  
        - Discover collections and NFTs
        - Analyze stats
        - Create and fulfill listings and offers
        - Track event history and buy NFTs with a single command

    - **Yei Finance Lending Protocol:**  
        - Supply assets to earn interest
        - Borrow against collateral
        - Utilize advanced features like flash loans and credit delegation

- **🌉 DEX & Bridge Aggregation**
    Robust cross-chain capabilities through leading protocols:

    - **Symphony & Kame DEX Aggregators:**  
        - Find optimal swap routes
        - Execute trades with advanced options
        - Discover supported tokens
        - Generate transaction calldata for offline use

    - **Li.Fi & deBridge Cross-Chain Bridging:**  
        - Seamlessly bridge assets across different blockchains
        - Get quotes from multiple bridge providers
        - Track order status and manage the cross-chain transaction lifecycle

- **🪙 Complete Token Lifecycle Management**
    Tools to manage on-chain assets:

    - Create new ERC20 and ERC721 (NFT) tokens from scratch
    - Deploy, verify, and mint tokens on Sei and on SeiTrace

- **📊 Rich Data & Analytics**
    Comprehensive data integrations for a holistic view of the ecosystem:

    - **SeiTrace:** Deep on-chain analysis (wallets, transactions, token holders, etc.)
    - **CoinGecko & DexScreener:** Real-time market data, historical prices, live DEX analytics

SEI MCP V2 is built to be compatible with existing AI assistants like **Claude** or **Cursor**, enabling users and developers to interact with the entire Sei ecosystem through simple, conversational interfaces. This empowers the development of sophisticated, autonomous AI agents, capable of executing complex multi-step tasks effortlessly.

---

## ✨ Features

<details>
  <summary>Blockchain Data Access</summary>

### 🔗 Blockchain Data Access
- 🌐 **Chain information** including blockNumber, chainId, and RPCs  
- 📦 **Block data** access by number, hash, or latest  
- 🔍 **Transaction details** and receipts with decoded logs  
- 💰 **Address balances** for native tokens and all token standards  
</details>

<details>
  <summary>Token Services</summary>

### 🪙 Token Services
- ⚡ **Native SEI & Wrapped SEI (WSEI)**  
  - 💸 Transfer native SEI tokens  
  - 🔄 Wrap SEI into WSEI and unwrap WSEI back to SEI  

- 🏦 **ERC20 Tokens**  
  - 🏷️ Get token metadata (name, symbol, decimals, supply)  
  - 💳 Check token balances  
  - 🔁 Transfer tokens between addresses  
  - ✅ Approve spending allowances  

- 🎨 **NFTs (ERC721)**  
  - 🖼️ Get collection and token metadata, including token URIs  
  - 🔑 Verify token ownership  
  - 📤 Transfer NFTs between addresses  
  - 📊 Count token holdings for a collection  

- 🎲 **Multi-tokens (ERC1155)**  
  - 📦 Get token balances and metadata URIs  
  - 📤 Transfer tokens with specified quantities  
</details>

<details>
  <summary>Smart Contract Interactions</summary>

### 🤖 Smart Contract Interactions
- 📖 **Read contract state** with view/pure functions  
- ✍️ **Write services** with private key signing for state changes  
- 🛡️ **Contract verification** to distinguish smart contracts from EOAs  
- 📜 **Event logs** retrieval and filtering
</details>

<details>
  <summary>ERC20 Token Deployment</summary>

### 🪙 ERC20 Token Deployment

- 🏗️ **Token Creation**: Deploy a new ERC20 token with a custom name, symbol, and initial supply  
- ✅ **Contract Verification**: Verify deployed contracts both locally by checking parameters and publicly on the SeiTrace block explorer  
- ➕ **Supply Management**: Mint additional tokens to any address after deployment  
</details>

<details>
  <summary>ERC721 (NFT) Deployment</summary>

### 🖼️ ERC721 (NFT) Deployment

- 🏗️ **NFT Collection Creation**: Deploy a new ERC721 contract with a custom name, symbol, and metadata URI  
- ✅ **Contract Verification**: Verify deployed NFT contracts both locally (by checking parameters) and publicly on a block explorer  
- 🎨 **NFT Minting**: Mint single or multiple NFTs from a deployed collection  
</details>

<details>
  <summary>SeiTrace Insights</summary>

### 🔍 SeiTrace Insights

- 🧾 **Deep Address Analysis**: Get detailed profiles, transaction histories, and comprehensive token balances (Native, ERC20, ERC721, ERC1155) for any address  
- 🪙 **Comprehensive Token Data**: Look up token information, discover all holders, and track transfer histories for any token standard on Sei  
- 🎨 **NFT Inspection**: Retrieve details and ownership information for individual NFT instances within a collection  
</details>

<details>
  <summary>DragonSwap V3 DEX Integration</summary>

### 🐉 DragonSwap V3 DEX Integration

- 🔄 **Token Swaps**: Execute single-hop, multi-hop, and find the optimal swap route for the best price  
- 💱 **Price & Quote Fetching**: Get real-time swap quotes and token prices from liquidity pools  
- 💧 **Liquidity Provision**: Add and remove liquidity from pools, and collect accrued trading fees  
- 🏦 **Pool Management**: Get comprehensive pool information, find existing pool addresses, and create new pools  
- 📊 **Data & Analytics**: Access historical pool data (swaps, mints, burns) and calculate impermanent loss  
- 🧮 **Advanced Utilities**: Calculate tick ranges, slippage, and batch multiple operations into a single transaction
</details>

<details>
  <summary>Yei Finance Lending Protocol Integration</summary>

### 🏦 Yei Finance Lending Protocol Integration

- 💸 **Lending & Borrowing**: Supply assets like SEI and stablecoins to earn interest, and borrow other assets against your deposited collateral  
- 📊 **Comprehensive Position Management**: Track user account health, total collateral, and current debt to manage risk effectively  
- 🛡️ **Collateral & E-Mode Control**: Dynamically toggle which supplied assets are used as collateral and enter High-Efficiency Modes (E-Mode) for better borrowing power on correlated assets  
- ⚡ **Advanced DeFi Primitives**: Execute multi-asset flash loans for complex atomic operations and delegate borrowing power to other users
</details>

<details>
  <summary>Symphony DEX Aggregator Integration</summary>

### 🎶 Symphony DEX Aggregator Integration

- 🛣️ **Optimal Trade Routing**: Finds the most efficient paths and prices for token swaps across multiple liquidity sources to ensure the best rates  
- ⚡ **Flexible Swap Execution**: Perform simple one-click swaps or use advanced options to control slippage, routing, and other trade parameters  
- 🪙 **Token & Approval Management**: Discover all supported tokens, check spender allowances before trading, and grant token approvals  
- 🛠️ **SDK Configuration**: Dynamically configure the Symphony SDK's core parameters for custom use cases  
- 🔒 **Offline Transaction Building**: Generate raw transaction calldata for a swap, allowing for integration with multi-sig wallets or other offline signing systems  
</details>

<details>
  <summary>deBridge Cross-Chain Bridging Integration</summary>

### 🌉 deBridge Cross-Chain Bridging Integration

- 🔄 **Cross-Chain Asset Transfers**: Seamlessly bridge tokens between different blockchain networks like BSC, Ethereum, and Sei  
- 💱 **Order Creation & Estimation**: Get accurate quotes for cross-chain swaps and generate signable transactions for execution  
- 📡 **Comprehensive Order Tracking**: Monitor the real-time status of bridging orders by their unique ID or creation transaction hash  
- 🗂️ **Full Order History**: Retrieve a complete history of a user's past bridging transactions with advanced filtering by chain or order status  
- ❌ **Order Management**: Cancel pending orders that have not yet been fulfilled by the network  
</details>

<details>
  <summary>Li.Fi Bridge & DEX Aggregation Integration</summary>

### 🔗 Li.Fi Bridge & DEX Aggregation Integration

- 💱 **Aggregated Cross-Chain Swaps**: Get quotes and execute swaps across a wide range of bridges and DEXs for optimal pricing and routes  
- 🛣️ **Flexible Routing**: Choose between a single recommended quote or explore all possible routes for a cross-chain transaction  
- ⚡ **Simplified Execution**: Perform complex multi-chain swaps with a single, high-level tool  
- 🌐 **Protocol Discovery**: Explore all supported EVM chains and look up specific token details within the Li.Fi ecosystem  
</details>

<details>
  <summary>OpenSea NFT Marketplace Integration</summary>

### ⛵ OpenSea NFT Marketplace Integration

- 🔎 **Comprehensive NFT Discovery**: Browse collections on Sei, get detailed metadata for specific NFTs, and view the holdings of any account  
- 📊 **Advanced Collection Analytics**: Fetch real-time collection statistics, including floor price, volume, and owner counts  
- 🛒 **Full Trading Lifecycle**: Create and fulfill listings and offers for individual NFTs, or make collection-wide offers  
- ⚡ **High-Level Trading Functions**: Easily buy an NFT at its best price with a single command  
- 📜 **Activity & Event Tracking**: Monitor all marketplace activity for accounts, collections, or specific NFTs  
- ❌ **Order Management**: Cancel active listings or offers on-chain  
</details>

<details>
  <summary>Citrex Perpetual Futures Exchange Integration</summary>

### 📈 Citrex Perpetual Futures Exchange Integration

- 🛒 **Advanced Order Execution**: Place market and limit orders with options for time-in-force and expiration, and execute multiple orders in a single batch transaction  
- 📋 **Comprehensive Order Management**: List all open orders, cancel single or multiple orders, and atomically cancel-and-replace orders for efficient trading  
- 📊 **Real-time Market Data**: Access live tickers, full order books, historical kline (candlestick) data, and recent trade histories for all available markets  
- 💳 **On-chain Account Management**: Deposit and withdraw funds, check all asset balances, and monitor account health and margin requirements in real-time  
- 🧮 **Pre-trade Analysis**: Calculate the margin requirement for a potential trade before execution  
- ⚙️ **SDK Configuration**: Dynamically configure the Citrex SDK for different environments (mainnet/testnet) and sub-accounts  
</details>

<details>
  <summary>Kame DEX Aggregator Integration</summary>

### 🐢 Kame DEX Aggregator Integration

- 💱 **Aggregated Swap Quotes**: Get efficient swap quotes by sourcing liquidity from multiple DEXs on Sei  
- ⚡ **Direct Swap Execution**: Execute token swaps directly through the aggregator with configurable slippage  
- 🔎 **Token & Price Discovery**: Browse and search the list of available tokens on the platform and fetch their real-time prices  
- 🔒 **Offline Transaction Building**: Generate raw transaction calldata for swaps to be used with external signers or systems  
</details>

<details>
  <summary>Coingecko Market Data Integration</summary>

### 🦎 CoinGecko Market Data Integration

- ⏱️ **Real-time Price Data**: Get current prices, market caps, and 24-hour volume for thousands of cryptocurrencies  
- 📜 **Historical Data**: Fetch historical price data for tokens with daily, hourly, or minutely intervals  
- 🔎 **Token Discovery**: Search for tokens, discover trending assets, and find token details by contract address
</details>

<details>
  <summary>DexScreener DEX Analytics Integration</summary>

### 📈 DexScreener DEX Analytics Integration

- ⏱️ **Real-time Pair Data**: Search and retrieve live trading pair data from thousands of DEXs  
- 🔎 **Token & Pair Discovery**: Find tokens by name, symbol, or address, and discover their multi-chain presence  
- 🔗 **On-chain Activity**: Get information on recently updated tokens, community-boosted tokens, and trading activity on specific chains
</details>

<details>
  <summary>Comprehensive Transaction Support</summary>

### 🚀 Comprehensive Transaction Support

- 💸 **Native token transfers** across all supported networks  
- ⛽ **Gas estimation** for effective transaction planning  
- 🔄 **Transaction status** and receipt updates  
- 🔑 **Wallet utility** to derive an EVM address from a private key  
- ⚠️ **Error handling** with descriptive failure messages
</details>

<details>
  <summary>Hive Intelligence Blockchain Querying</summary>
  
### 🐝 Hive Intelligence Blockchain Querying

- 🗣️ **Natural Language Interface**: Query blockchain data using plain English questions instead of structured tool calls (e.g., "What is the transaction history for wallet 0x...?")  
- 📊 **Versatile Data Retrieval**: Ask for wallet holdings, transaction histories, token information, and more through a single, unified prompt  
- ✨ **Simplified Interaction**: Lowers the barrier to entry for accessing complex on-chain information by removing the need to know specific tool names or parameters  
</details>

---

## 🌐 Supported Networks

- Sei Mainnet
- Sei Testnet
- Sei Devnet

## 🛠️ Prerequisites

- [Bun](https://bun.sh/) 1.0.0 or higher
- Node.js 18.0.0 or higher (if not using Bun)

## 📦 Installation

```bash
# Clone the repository
git clone https://github.com/testinguser1111111/sei-mcp-server.git
cd sei-mcp-server

# Install dependencies with Bun
bun install

# Or with npm
npm install
```

## ⚙️ Server Configuration

The server uses the following default configuration:

- **Default Chain ID**: 1329 (Sei Mainnet)
- **Server Port**: 3001
- **Server Host**: 0.0.0.0 (accessible from any network interface)

These values are hardcoded in the application. If you need to modify them, you can edit the following files:

- For chain configuration: `src/core/chains.ts`
- For server configuration: `src/server/http-server.ts`

### Environment Variables

The server supports loading configuration from environment variables:

- `PRIVATE_KEY`: **Required** private key for any blockchain operations that involve signing transactions (e.g., transferring tokens, interacting with smart contracts that modify state). This is the **sole method** for providing a private key. If this environment variable is not set when a transaction-signing tool is invoked, the tool will return an error message instructing the AI assistant to ask the user to set the `PRIVATE_KEY` environment variable and restart the MCP server.
- `COINGECKO_PRO_API_KEY`: **Optional** CoinGecko Pro API key for accessing CoinGecko API services.
- `SEITRACE_API_KEY`: **Optional** SeiTrace Insights API key for accessing SeiTrace Insights API services.
- `OPENSEA_API_KEY`: **Optional** OpenSea API key for accessing OpenSea API services.
- `HIVE_INTELLIGENCE_API_KEY`: **Optional** Hive Intelligence API key for accessing Hive Intelligence API services.

Create a `.env` file in the root directory based on the `.env.example` template:

```bash
# .env.example
PRIVATE_KEY=your_private_key_here
COINGECKO_PRO_API_KEY=your_coingecko_pro_api_key_here
SEITRACE_API_KEY=your_seitrace_api_key_here
OPENSEA_API_KEY=your_opensea_api_key_here
HIVE_INTELLIGENCE_API_KEY=your_hive_intelligence_api_key_here
```

> **SECURITY WARNING**: Never commit your actual private key, API keys, or any sensitive information to version control. The `.env` file is included in `.gitignore` by default.

## 🚀 Usage

### Using with Claude Desktop

1. Install the [Claude Desktop](https://claude.ai/download).
2. Go to Settings > Developer > Edit Config.
3. Add the following to the `mcpServers` section:
```json
{
  "mcpServers": {
    "sei": {
      "command": "npx",
      "args": [
        "-y",
        "@sei-mcp-v2/sei-mcp-server"
      ],
      "env": {
        "PRIVATE_KEY": "your_private_key_here",
        "COINGECKO_PRO_API_KEY": "your_coingecko_pro_api_key_here",
        "SEITRACE_API_KEY": "your_seitrace_api_key_here",
        "OPENSEA_API_KEY": "your_opensea_api_key_here",
        "HIVE_INTELLIGENCE_API_KEY": "your_hive_intelligence_api_key_here"
      }
    }
  }
}
```
4. Save the configuration file and restart Claude.
When done, Claude will add new prompts, resources and tools.
To access prompts, click "+" button in the bottom left corner. And then "Add from sei".

![Sei Prompts](img/ClaudeSeiPrompts.png)

From there, click "Add from sei" to and for example, add a "my_wallet_address" prompt.
Claude should invoke now `get_address_from_private_key` tool and return the wallet address.
Sometimes, model may fail to understand tbe prompt or random question. Try to add a bit more context or retry with 
extensive thinking option.

All tools available could be found by clicking "Search And Tools" button and then "sei".

![Claude Search And Tools](img/ClaudeSearchAndTools.png)
![Sei Tools](img/ClaudeSeiTools.png)


### Using npx (No Installation Required)

You can run the Sei MCP Server directly without installation using npx:

```bash
# Run the server in stdio mode (for CLI tools)
npx @sei-mcp-v2/sei-mcp-server

# Run the server in HTTP mode (for web applications)
npx @sei-mcp-v2/sei-mcp-server --http
```

### Running the Server Locally

Start the server using stdio (for embedding in CLI tools):

```bash
# Start the stdio server
bun start

# Development mode with auto-reload
bun dev
```

Or start the HTTP server with SSE for web applications:

```bash
# Start the HTTP server
bun start:http

# Development mode with auto-reload
bun dev:http
```

### Connecting to the Server

Connect to this MCP server using any MCP-compatible client. For testing and debugging, you can use the [MCP Inspector](https://github.com/modelcontextprotocol/inspector).

### Connecting from Cursor

To connect to the MCP server from Cursor:

1. Open Cursor and go to Settings (gear icon in the bottom left)
2. Scroll down to "MCP" section
3. Click "Add new Global MCP server"
4. In mcp.json tab add the following configuration

```json
{
  "mcpServers": {
    "sei-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "@sei-mcp-v2/sei-mcp-server"
      ],
      "env": {
        "PRIVATE_KEY": "your_private_key_here",
        "COINGECKO_PRO_API_KEY": "your_coingecko_pro_api_key_here",
        "SEITRACE_API_KEY": "your_seitrace_api_key_here",
        "OPENSEA_API_KEY": "your_opensea_api_key_here",
        "HIVE_INTELLIGENCE_API_KEY": "your_hive_intelligence_api_key_here"
      }
    }
  }
}
```

### Example: HTTP Mode with SSE

If you're developing a web application and want to connect to the HTTP server with Server-Sent Events (SSE), you can use this configuration:

```json
{
  "mcpServers": {
    "sei-mcp-sse": {
      "url": "http://localhost:3001/sse"
    }
  }
}
```

This connects directly to the HTTP server's SSE endpoint, which is useful for:
- Web applications that need to connect to the MCP server from the browser
- Environments where running local commands isn't ideal
- Sharing a single MCP server instance among multiple users or applications

To use this configuration:
1. Create a `.cursor` directory in your project root if it doesn't exist
2. Save the above JSON as `mcp.json` in the `.cursor` directory
3. Restart Cursor or open your project
4. Cursor will detect the configuration and offer to enable the server(s)

### Example: Using the MCP Server in Cursor

After configuring the MCP server with `mcp.json`, you can easily use it in Cursor. Here's an example workflow:

1. Create a new JavaScript/TypeScript file in your project:

```javascript
// blockchain-example.js
async function main() {
  try {
    // Get Sei balance for an address
    console.log("Getting Sei balance for 0x1234...");
    
    // When using with Cursor, you can simply ask Cursor to:
    // "Check the Sei balance of 0x1234 on mainnet"
    // Or "Transfer 0.1 Sei from my wallet to 0x1234"
    
    // Cursor will use the MCP server to execute these operations 
    // without requiring any additional code from you
    
    // This is the power of the MCP integration - your AI assistant
    // can directly interact with blockchain data and operations
  } catch (error) {
    console.error("Error:", error.message);
  }
}

main();
```

2. With the file open in Cursor, you can ask Cursor to:

   - "Check the current Sei balance of 0x1234 on mainnet"
   - "Show me the latest block on Sei"
   - "Check if 0x1234... is a contract address"

3. Cursor will use the MCP server to execute these operations and return the results directly in your conversation.

The MCP server handles all the blockchain communication while allowing Cursor to understand and execute blockchain-related tasks through natural language.

### Connecting using Claude CLI

If you're using Claude CLI, you can connect to the MCP server with just two commands:

```bash
# Add the MCP server
claude mcp add sei-mcp-server npx @sei-mcp/sei-mcp-server

# Start Claude with the MCP server enabled
claude
```

### Example: Getting a Token Balance

```javascript
// Example of using the MCP client to check a token balance
const mcp = new McpClient("http://localhost:3000");

const result = await mcp.invokeTool("get-token-balance", {
  tokenAddress: "0x3894085ef7ff0f0aedf52e2a2704928d1ec074f1", // USDC on Sei
  ownerAddress: "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", 
  network: "sei"
});

console.log(result);
// {
//   tokenAddress: "0x3894085ef7ff0f0aedf52e2a2704928d1ec074f1",
//   owner: "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
//   network: "sei",
//   raw: "1000000000",
//   formatted: "1000",
//   symbol: "USDC",
//   decimals: 6
// }
```

---

## 📚 API Reference

### Tools

The server provides the following MCP tools for agents.
<details>
  <summary>Tools</summary>

<details>
  <summary> 🔹 Token & Wallet Tools</summary>

These tools are used to interact with the blockchain and perform various operations.

**🔹 Native SEI**
| Tool | Description | Parameters |
|------|-------------|------------|
| `get_address_from_private_key` | Get the EVM address derived from the PRIVATE_KEY env variable | – |
| `get_balance` | Get the native token (SEI) balance for an address | `address` (address), `network` |
| `transfer_sei` | Transfer native SEI tokens to an address | `to` (address), `amount`, `network` |

**🔹 ERC20 Tokens**
| Tool | Description | Parameters |
|------|-------------|------------|
| `get_token_info` | Get comprehensive information about an ERC20 token | `tokenAddress` (address), `network` |
| `get_erc20_balance` | Get the ERC20 token balance of an EVM address | `address` (address), `tokenAddress` (address), `network` |
| `transfer_erc20` | Transfer ERC20 tokens to another address | `tokenAddress` (address), `toAddress` (address), `amount`, `network` |
| `approve_token_spending` | Approve an address to spend your ERC20 tokens | `tokenAddress` (address), `spenderAddress` (address), `amount`, `network` |

**🔹 NFTs (ERC721)**
| Tool | Description | Parameters |
|------|-------------|------------|
| `get_nft_info` | Get detailed information about a specific NFT (ERC721) | `tokenAddress` (address), `tokenId`, `network` |
| `get_nft_balance` | Get the total number of NFTs an address owns from a collection | `tokenAddress` (address), `ownerAddress` (address), `network` |
| `check_nft_ownership` | Check if an address owns a specific NFT (ERC721) | `tokenAddress` (address), `tokenId`, `ownerAddress` (address), `network` |
| `transfer_nft` | Transfer an NFT (ERC721 token) to another address | `tokenAddress` (address), `tokenId`, `toAddress` (address), `network` |

**🔹 Multi-Token (ERC1155)**
| Tool | Description | Parameters |
|------|-------------|------------|
| `get_erc1155_balance` | Get the balance of a specific ERC1155 token ID for an address | `tokenAddress` (address), `tokenId`, `ownerAddress` (address), `network` |
| `get_erc1155_token_uri` | Get the metadata URI for an ERC1155 token | `tokenAddress` (address), `tokenId`, `network` |
| `transfer_erc1155` | Transfer ERC1155 tokens to another address | `tokenAddress` (address), `tokenId`, `amount`, `toAddress` (address), `network` |

**🔹 Wrapping / Unwrapping**
| Tool | Description | Parameters |
|------|-------------|------------|
| `wrap_sei_directly` | Wrap SEI into WSEI | `wrappedSeiAddress` (address), `amount`, `network` |
| `unwrap_sei_directly` | Unwrap WSEI back to SEI | `wrappedSeiAddress` (address), `amount`, `network` |
</details>


<details>
  <summary> 🪙 ERC20 Deployment & Management Tools</summary>

These tools help you deploy and manage ERC20 tokens.

| ⚒️ Tool Name                            | 📖 Description                                                        | 🔑 Key Parameters                                                 |
| --------------------------------------- | --------------------------------------------------------------------- | ----------------------------------------------------------------- |
| 🚀 **deploy\_erc20**                    | Deploys a new ERC20 token to the specified network.                   | `network, name, symbol, initialSupply, decimals`                  |
| 🔍 **verify\_erc20\_contract\_locally** | Verifies a deployed ERC20 by checking its on-chain parameters.        | `contractAddress, name, symbol, initialSupply, decimals, network` |
| 📝 **verify\_erc20\_contract**          | Submits an ERC20 contract's source code for verification on SeiTrace. | `contractAddress, name, symbol, initialSupply, decimals, network` |
| 📡 **check\_verification\_status**      | Checks the verification status of a contract on SeiTrace.             | `contractAddress, network`                                        |
| 💰 **mint\_erc20\_tokens**              | Mints additional tokens from a deployed ERC20 contract.               | `tokenAddress, toAddress, amount, network`                        |
</details>

<details>
  <summary> 🎨 ERC721 (NFT) Deployment & Management Tools</summary>

These tools help you deploy and manage ERC721 (NFT) tokens.

| ⚒️ Tool Name                             | 📖 Description                                                                 | 🔑 Key Parameters                                  |
| ---------------------------------------- | ------------------------------------------------------------------------------ | -------------------------------------------------- |
| 🚀 **deploy\_erc721**                    | Deploys a new ERC721 (NFT) token contract.                                     | `network, name, symbol, baseURI_`                  |
| 🔍 **verify\_erc721\_contract\_locally** | Verifies a deployed ERC721 by checking its on-chain parameters.                | `contractAddress, name, symbol, baseURI_, network` |
| 📝 **verify\_erc721\_contract**          | Submits an ERC721 contract's source code for verification on a block explorer. | `contractAddress, name, symbol, baseURI_, network` |
| 🎁 **mint\_nft**                         | Mints a single new NFT from the collection to a specified address.             | `nftContractAddress, toAddress, network`           |
| 📦 **mint\_batch\_nfts**                 | Mints a batch of new NFTs to a specified address.                              | `nftContractAddress, toAddress, quantity, network` |
</details>

<details>
  <summary> 🔹 DragonSwap DEX Tools</summary>

These tools help you interact with DragonSwap for token swaps, routes, and trade checks.

**🔄 Swapping**
| Tool | Description | Parameters |
|------|-------------|------------|
| `dragonswap_get_swap_quote` | Get a swap quote for a single token pair | `quoterAddress`, `amountIn`, `tokenIn`, `tokenOut`, `fee` |
| `dragonswap_get_multi_hop_swap_quote` | Get a swap quote for a multi-hop path | `quoterAddress`, `amountIn`, `path` |
| `dragonswap_get_optimal_swap_route` | Find the best swap route (direct or multi-hop) for the best price | `quoterAddress`, `tokenIn`, `tokenOut`, `amountIn` |
| `dragonswap_execute_swap` | Execute a single-hop token swap | `routerAddress`, `tokenIn`, `tokenOut`, `amountIn`, `amountOutMinimum`, `recipient` |
| `dragonswap_execute_multi_hop_swap` | Execute a multi-hop swap using an encoded path | `routerAddress`, `path`, `amountIn`, `amountOutMinimum`, `recipient` |

**💧 Liquidity Provision**
| Tool | Description | Parameters |
|------|-------------|------------|
| `dragonswap_add_liquidity` | Add liquidity to a V3 pool within a specific tick range | `positionManagerAddress`, `token0`, `token1`, `fee`, `tickLower`, `tickUpper`, `amount0Desired`, `amount1Desired`, ... |
| `dragonswap_remove_liquidity` | Remove liquidity from a position NFT | `positionManagerAddress`, `tokenId`, `liquidity`, `amount0Min`, `amount1Min` |
| `dragonswap_collect_fees` | Collect accrued fees from a liquidity position | `positionManagerAddress`, `tokenId`, `recipient` |
| `dragonswap_get_position_info` | Get detailed information about a liquidity position NFT | `positionManagerAddress`, `tokenId` |

**🏦 Pool Information**
| Tool | Description | Parameters |
|------|-------------|------------|
| `dragonswap_get_token_price` | Get the current price of a token from a specific pool | `poolAddress`, `tokenAddress` |
| `dragonswap_get_pool_address` | Get the address of an existing pool for a token pair and fee | `factoryAddress`, `tokenA`, `tokenB`, `fee` |
| `dragonswap_create_pool` | Create a new liquidity pool for a token pair and fee | `factoryAddress`, `tokenA`, `tokenB`, `fee` |
| `dragonswap_get_pool_info` | Get comprehensive information about a specific pool | `poolAddress` |
| `dragonswap_get_pool_historical_data` | Get historical swap, mint, and burn events for a pool | `poolAddress`, `fromBlock`, `toBlock` |
| `dragonswap_monitor_pool` | Monitor a pool for real-time events like swaps, mints, and burns | `poolAddress`, `callback` |

**🛠 Utilities**
| Tool | Description | Parameters |
|------|-------------|------------|
| `dragonswap_check_token_allowance` | Check the token allowance for a spender | `tokenAddress`, `owner`, `spender` |
| `dragonswap_calculate_impermanent_loss` | Calculate the impermanent loss for a liquidity position | `initialPrice`, `currentPrice`, `initialAmount0`, `initialAmount1` |
| `dragonswap_batch_operations` | Batch multiple operations (e.g., swap and add liquidity) into one transaction | `routerAddress`, `operations` |
</details>

<details>
  <summary> 🏦 Yei Finance Lending Tools</summary>

These tools help you interact with Yei Finance for token lending and borrowing.

**📊 Market & User Data**
| ⚒️ Tool Name                   | 📖 Description                                                     | 🔑 Key Parameters      |
| ------------------------------ | ------------------------------------------------------------------ | ---------------------- |
| 📡 **get\_yei\_reserves**      | Get data for all available reserve assets in the Yei Finance pool. | `network`              |
| 👤 **get\_yei\_user\_account** | Get a user's account data, including health factor and balances.   | `userAddress, network` |

**⚡ Core Actions**
| ⚒️ Tool Name                      | 📖 Description                                                       | 🔑 Key Parameters                                               |
| --------------------------------- | -------------------------------------------------------------------- | --------------------------------------------------------------- |
| ✅ **approve\_yei\_token**         | Approve the Yei Finance pool to spend a specified amount of a token. | `tokenAddress, amount, network`                                 |
| 💰 **supply\_yei\_asset**         | Supply (deposit) an ERC20 token to the pool to earn interest.        | `reserveAddress, amount, onBehalfOf, network`                   |
| 🪙 **supply\_yei\_native\_asset** | Supply (deposit) the native asset (SEI) to the pool.                 | `amount, onBehalfOf, network`                                   |
| 💳 **borrow\_yei\_asset**         | Borrow an asset against supplied collateral.                         | `reserveAddress, amount, interestRateMode, onBehalfOf, network` |
| 🔄 **repay\_yei\_asset**          | Repay a borrowed asset to the pool.                                  | `reserveAddress, amount, interestRateMode, onBehalfOf, network` |
| 📤 **withdraw\_yei\_asset**       | Withdraw a supplied ERC20 asset from the pool.                       | `reserveAddress, amount, toAddress, network`                    |
| 🏧 **withdraw\_native\_asset**    | Withdraw the native asset (SEI) from the pool.                       | `amount, toAddress, network`                                    |

**🛡️ Position Management**
| ⚒️ Tool Name                    | 📖 Description                                               | 🔑 Key Parameters                          |
| ------------------------------- | ------------------------------------------------------------ | ------------------------------------------ |
| 🏗️ **set\_collateral\_status** | Enable or disable a supplied asset to be used as collateral. | `reserveAddress, useAsCollateral, network` |
| ⚙️ **set\_emode\_category**     | Enter or exit a High-Efficiency Mode (E-Mode) category.      | `categoryId, network`                      |

**🧠 Advanced Features**
| ⚒️ Tool Name                       | 📖 Description                                                    | 🔑 Key Parameters                                                             |
| ---------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------------------- |
| ⚡ **execute\_flash\_loan**         | Executes a flash loan with multiple assets.                       | `receiverAddress, assets, amounts, onBehalfOf, network`                       |
| 🤝 **delegate\_credit\_by\_asset** | Delegate borrowing power to another address for a specific asset. | `underlyingAssetAddress, delegateeAddress, amount, interestRateMode, network` |
</details>

<details>
  <summary> 🎶 Symphony DEX Aggregator Tools</summary>

These tools help you interact with Symphony for token swaps and route discovery.

**⚙️ Configuration**
| **Tool Name**         | **Description**                                                   | **Key Parameters** |
| --------------------- | ----------------------------------------------------------------- | ------------------ |
| `get_symphony_config` | Retrieves the current configuration of the Symphony SDK instance. | –                  |
| `set_symphony_config` | Updates the configuration of the Symphony SDK instance.           | `options`          |

**🔎 Token & Route Discovery**
| **Tool Name**                   | **Description**                                                     | **Key Parameters**                            |
| ------------------------------- | ------------------------------------------------------------------- | --------------------------------------------- |
| `get_symphony_token_list`       | Retrieves the list of all available tokens for swapping.            | –                                             |
| `is_symphony_token_listed`      | Checks if a given token address is available for swaps.             | `tokenAddress`                                |
| `get_symphony_route`            | Finds the best swap route for a given token pair without executing. | `tokenInAddress`, `tokenOutAddress`, `amount` |
| `get_symphony_total_amount_out` | Calculates the total output amount for a given swap route.          | `tokenInAddress`, `tokenOutAddress`, `amount` |

**🔄 Swap Execution**
| **Tool Name**               | **Description**                                                          | **Key Parameters**                                      |
| --------------------------- | ------------------------------------------------------------------------ | ------------------------------------------------------- |
| `swap_on_symphony`          | Swaps one token for another using the optimal route.                     | `tokenInAddress`, `tokenOutAddress`, `amount`           |
| `swap_on_symphony_advanced` | Swaps tokens with advanced options for routing, execution, and slippage. | `tokenInAddress`, `tokenOutAddress`, `amount`, `params` |

**📜 Transaction Management**
| **Tool Name**                     | **Description**                                                     | **Key Parameters**                            |
| --------------------------------- | ------------------------------------------------------------------- | --------------------------------------------- |
| `check_symphony_approval`         | Checks if the protocol has sufficient allowance to spend a token.   | `tokenInAddress`, `tokenOutAddress`, `amount` |
| `approve_symphony_token`          | Approves the protocol to spend a specific token for swapping.       | `tokenInAddress`, `tokenOutAddress`, `amount` |
| `generate_symphony_swap_calldata` | Generates the transaction calldata for a swap without executing it. | `tokenInAddress`, `tokenOutAddress`, `amount` |
</details>

<details>
  <summary> 🌉 deBridge Cross-Chain Tools</summary>

These tools help you interact with deBridge for cross-chain asset transfers.

**📝 Order Creation & Execution**
| Tool Name                              | Description                                                                   | Key Parameters                                                                                                          |
| -------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
| ⚡ `create_debridge_order`              | Creates a cross-chain order. Returns an estimation or a signable transaction. | `srcChainId`, `srcChainTokenIn`, `srcChainTokenInAmount`, `dstChainId`, `dstChainTokenOut`, `dstChainTokenOutRecipient` |
| 🔗 `create_and_execute_debridge_order` | Creates **and executes** a deBridge cross-chain order in one step.            | `srcChainId`, `srcChainTokenIn`, `srcChainTokenInAmount`, `dstChainId`, `dstChainTokenOut`                              |
| 🧪 `get_debridge_quote_by_name`        | Gets a deBridge quote using **chain names** (for dev use only).               | `srcChain`, `srcChainTokenIn`, `srcChainTokenInAmount`, `dstChain`, `dstChainTokenOut`                                  |

**📜 Order Tracking & History**
| Tool Name                              | Description                                                                 | Key Parameters                                                           |
| -------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------ |
| 🕵️ `get_debridge_orders_by_wallet`    | Retrieves a list of historical deBridge orders for a wallet.                | `address`, `orderStates`, `giveChainIds`, `takeChainIds`, `skip`, `take` |
| 🔍 `get_debridge_order_by_tx_hash`     | Retrieves details of a deBridge order by its **creation transaction hash**. | `txHash`                                                                 |
| 🧾 `get_debridge_order_ids_by_tx_hash` | Retrieves all deBridge order IDs created in a single transaction.           | `txHash`                                                                 |
| ⏳ `get_debridge_order_status_by_id`    | Retrieves the **status and details** of a specific deBridge order.          | `orderId`                                                                |

**🛠️ Order Management**
| Tool Name                 | Description                            | Key Parameters |
| ------------------------- | -------------------------------------- | -------------- |
| ❌ `cancel_debridge_order` | Cancels an unfulfilled deBridge order. | `orderId`      |
</details>

<details>
  <summary> 🌉 Li.Fi Cross-Chain Tools</summary>

These tools help you interact with Li.Fi for cross-chain asset transfers.

| **Tool Name**                           | **Description**                                            | **Key Parameters**                                                   |
| --------------------------------------- | ---------------------------------------------------------- | -------------------------------------------------------------------- |
| 🔎 **get\_lifi\_quote**                 | Gets a single cross-chain swap quote from Li.Fi.           | fromChainId, toChainId, fromTokenAddress, toTokenAddress, fromAmount |
| 🛤️ **get\_lifi\_route**                | Gets all available routes for a cross-chain swap.          | fromChainId, toChainId, fromTokenAddress, toTokenAddress, fromAmount |
| ⚡ **create\_and\_execute\_lifi\_order** | Creates and executes a Li.Fi cross-chain swap in one step. | fromChainId, toChainId, fromTokenAddress, toTokenAddress, fromAmount |
| 🌐 **get\_lifi\_chains**                | Fetches all EVM chains supported by the Li.Fi SDK.         | —                                                                    |
| 💠 **get\_lifi\_token**                 | Fetches details for a specific token on a given chain.     | chainId, tokenAddress                                                |
</details>

<details>
  <summary> 🖼️ OpenSea NFT Marketplace Tools</summary>

These tools help you interact with OpenSea for NFT discovery and information.

**🔹 Discovery & Information**
| Tool                             | Description                                                 | Key Parameters          |
| -------------------------------- | ----------------------------------------------------------- | ----------------------- |
| `get_opensea_account`            | Get an OpenSea Account Profile.                             | `addressOrUsername`     |
| `get_opensea_collections`        | Get a list of OpenSea collections for the Sei chain.        | —                       |
| `get_opensea_collection_stats`   | Get stats for a single collection.                          | `collectionSlug`        |
| `get_opensea_nft`                | Get a single NFT's metadata, traits, and ownership info.    | `address`, `identifier` |
| `get_opensea_nfts_by_account`    | Get NFTs owned by a given account address on the Sei chain. | `address`               |
| `get_opensea_nfts_by_collection` | Get multiple NFTs for a collection.                         | `collectionSlug`        |
| `get_opensea_contract`           | Get a smart contract for a given address on the Sei chain.  | `address`               |

**🔹 Activity & Events**
| Tool                               | Description                            | Key Parameters          |
| ---------------------------------- | -------------------------------------- | ----------------------- |
| `get_opensea_events_by_account`    | Get a list of events for an account.   | `address`, `options`    |
| `get_opensea_events_by_collection` | Get a list of events for a collection. | `collectionSlug`        |
| `get_opensea_events_by_nft`        | Get a list of events for a single NFT. | `address`, `identifier` |

**🔹 Trading & Order Management**
| Tool                                      | Description                                                       | Key Parameters                                           |
| ----------------------------------------- | ----------------------------------------------------------------- | -------------------------------------------------------- |
| `get_opensea_best_listings_by_collection` | Get the cheapest active listings on a single collection.          | `collectionSlug`                                         |
| `get_opensea_best_listing_for_nft`        | Get the best (lowest priced) listing for a single NFT.            | `collectionSlug`, `identifier`                           |
| `create_opensea_listing`                  | Create and submit a listing for an asset on OpenSea.              | `params`                                                 |
| `create_opensea_offer`                    | Create and submit an offer for an asset on OpenSea.               | `asset`, `accountAddress`, `startAmount`                 |
| `create_opensea_collection_offer`         | Create and submit a collection offer.                             | `collectionSlug`, `accountAddress`, `amount`, `quantity` |
| `fulfill_opensea_order`                   | Fulfill an order for an asset (listing or offer).                 | `order`, `accountAddress`                                |
| `buy_opensea_nft`                         | Buy an NFT by fetching its best listing and fulfilling the order. | `collectionSlug`, `identifier`, `accountAddress`         |
| `cancel_opensea_order`                    | Cancel an order on-chain to prevent it from being fulfilled.      | `order`, `accountAddress`                                |
</details>

<details>
  <summary> ⛓ Blockchain & Contract Tools</summary>

These tools help you interact with the blockchain and smart contracts.

| Tool | Description | Parameters |
|------|-------------|------------|
| `get_chain_info` | Get information about a supported network | `network` |
| `get_supported_networks` | Get a list of all supported EVM networks | – |
| `get_block_by_number` | Get a block by its number | `blockNumber`, `network` |
| `get_latest_block` | Get the latest block from the blockchain | `network` |
| `get_transaction` | Get detailed information about a transaction by its hash | `txHash`, `network` |
| `get_transaction_receipt` | Get a transaction receipt by its hash | `txHash`, `network` |
| `estimate_gas` | Estimate the gas cost for a transaction | `to`, `value` (optional), `data` (optional), `network` |
| `is_contract` | Check if an address is a smart contract or an EOA | `address`, `network` |
| `read_contract` | Read data from a smart contract (view/pure function) | `contractAddress`, `abi`, `functionName`, `args` (optional), `network` |
| `write_contract` | Write data to a smart contract (state-changing function) | `contractAddress`, `abi`, `functionName`, `args`, `network` |
</details>

<details>
  <summary> 📊 CoinGecko Market Data Tools</summary>

These tools let you fetch token prices, market data, and trending coins from CoinGecko. 

| Tool Name | Description | Key Parameters |
|-----------|-------------|----------------|
| 📈 **get_token_price** | Gets current price and market data for a token. | tokenId, vsCurrency |
| 📊 **get_multiple_token_prices** | Gets current prices for multiple tokens in a single call. | tokenIds, vsCurrency |
| ⏳ **get_token_historical_data** | Gets historical price data for a token. | tokenId, vsCurrency, days, interval |
| 🔍 **search_tokens** | Searches for tokens on CoinGecko by name or symbol. | query |
| 🚀 **get_trending_tokens** | Gets currently trending tokens from CoinGecko. | — |
| 🔗 **get_token_by_contract** | Gets token information by its on-chain contract address. | platformId, contractAddress |
</details>

<details>
  <summary> 📊 DexScreener Analytics Tools</summary>

These tools let you analyze token pairs, profiles, and activity across chains using DexScreener. 

| Tool Name | Description | Key Parameters |
|-----------|-------------|----------------|
| 🔍 **dex_search_pairs** | Search for token pairs by name, symbol, or address. | query |
| 🪙 **dex_get_token_pairs** | Get all pairs for a specific token address. | tokenAddresses |
| 🔗 **dex_get_pairs_by_address** | Get information for a specific pair contract address. | chainId, pairAddress |
| 📄 **dex_get_token_profile** | Get a token's profile, including description and links. | chainId, tokenAddress |
| 🆕 **dex_get_latest_token_profiles** | Get recently updated or active token profiles. | — |
| 🚀 **dex_get_top_boosted_tokens** | Get tokens that have been promoted by their communities. | — |
| 📈 **dex_get_orders_by_chain** | Get recent trading activity for a token on a specific chain. | chainId, tokenAddress |
| 🎯 **dex_advanced_search** | Perform multiple, limited searches for token pairs. | queries, limit |
| 🌐 **dex_get_multi_chain_token_data** | Get pair data for a token across multiple chains. | tokenAddresses, maxPairsPerToken |
</details>

<details>
  <summary> 🔍 SeiTrace Insights Tools</summary>

These tools let you analyze token pairs, profiles, and activity across chains using SeiTrace.

**📌 Address & Contract Tools**
| Tool                                  | Description                                   | Key Parameters       |
| ------------------------------------- | --------------------------------------------- | -------------------- |
| `seitrace_get_address_details`        | Get details for a wallet or contract address. | `network`, `address` |
| `seitrace_get_smart_contract_details` | Fetch detailed smart contract information.    | `network`, `address` |

**📜 Transaction History Tools**
| Tool                                   | Description                                 | Key Parameters                                                            |
| -------------------------------------- | ------------------------------------------- | ------------------------------------------------------------------------- |
| `seitrace_get_address_transactions`    | Fetch transactions for an address.          | `network`, `address`, `status`, `limit`, `offset`, `from_date`, `to_date` |
| `seitrace_get_address_token_transfers` | Get **all token transfers** for an address. | `network`, `address`, `limit`, `offset`                                   |
| `seitrace_get_erc20_token_transfers`   | ERC20 transfers for a specific contract.    | `network`, `contract_address`, `wallet_address`, `limit`                  |
| `seitrace_get_erc721_token_transfers`  | NFT (ERC721) transfers for a collection.    | `network`, `contract_address`, `wallet_address`, `token_id`               |
| `seitrace_get_erc1155_token_transfers` | ERC1155 token transfers for a contract.     | `network`, `contract_address`, `wallet_address`, `token_id`               |
| `seitrace_get_native_token_transfers`  | Native token (SEI) transfers.               | `network`, `token_denom`, `wallet_address`                                |

**🪙 Token Information Tools**
| Tool                              | Description                | Key Parameters                |
| --------------------------------- | -------------------------- | ----------------------------- |
| `seitrace_get_erc20_token_info`   | ERC20 token details.       | `network`, `contract_address` |
| `seitrace_get_erc721_token_info`  | ERC721 collection details. | `network`, `contract_address` |
| `seitrace_get_erc1155_token_info` | ERC1155 contract details.  | `network`, `contract_address` |
| `seitrace_get_native_token_info`  | Native token details.      | `network`, `token_denom`      |

**💰 Token Balances & Holders**
| Tool                                 | Description                        | Key Parameters                         |
| ------------------------------------ | ---------------------------------- | -------------------------------------- |
| `seitrace_get_erc20_balances`        | Get ERC20 balances for a wallet.   | `network`, `address`, `limit`          |
| `seitrace_get_erc721_balances`       | Get NFT balances for a wallet.     | `network`, `address`, `limit`          |
| `seitrace_get_erc1155_balances`      | Get ERC1155 balances for a wallet. | `network`, `address`, `limit`          |
| `seitrace_get_native_balances`       | Get native balances for a wallet.  | `network`, `address`, `limit`          |
| `seitrace_get_erc20_token_holders`   | List holders of an ERC20 token.    | `network`, `contract_address`, `limit` |
| `seitrace_get_erc721_token_holders`  | List holders of an NFT collection. | `network`, `contract_address`, `limit` |
| `seitrace_get_erc1155_token_holders` | List holders of an ERC1155 token.  | `network`, `contract_address`, `limit` |
| `seitrace_get_native_token_holders`  | List holders of a native token.    | `network`, `token_denom`, `limit`      |

**🎨 NFT Tools**
| Tool                             | Description                        | Key Parameters                                     |
| -------------------------------- | ---------------------------------- | -------------------------------------------------- |
| `seitrace_get_erc721_instances`  | Get specific NFTs in a collection. | `network`, `contract_address`, `token_id`, `limit` |
| `seitrace_get_erc1155_instances` | Get ERC1155 token instances.       | `network`, `contract_address`, `token_id`, `limit` |
</details>

<details>
  <summary> 🏦 Citrex Perpetuals Exchange Tools</summary>

These tools let you interact with the Citrex Perpetuals Exchange.

**📊 Market Data**
| Tool                       | Description                                                | Key Parameters                  |
| -------------------------- | ---------------------------------------------------------- | ------------------------------- |
| `citrex_get_tickers`       | Fetches ticker information for one or all markets.         | `symbol`                        |
| `citrex_get_product`       | Fetches product information by its ID or symbol.           | `identifier`                    |
| `citrex_get_products`      | Fetches all available products and their mark prices.      | —                               |
| `citrex_get_order_book`    | Fetches the order book for a specific market.              | `symbol`                        |
| `citrex_get_klines`        | Fetches historical kline (candlestick) data for a product. | `productSymbol`, `optionalArgs` |
| `citrex_get_trade_history` | Fetches the recent trade history for a product.            | `productSymbol`, `quantity`     |
| `citrex_get_server_time`   | Fetches the current server time from the exchange.         | —                               |

**🧾 Account Management**
| Tool                        | Description                                                  | Key Parameters |
| --------------------------- | ------------------------------------------------------------ | -------------- |
| `citrex_get_account_health` | Fetches the health and margin information of the account.    | —              |
| `citrex_list_balances`      | Fetches a list of all asset balances for the user's account. | —              |
| `citrex_deposit`            | Deposits funds into the user's Citrex account.               | `amount`       |
| `citrex_withdraw`           | Withdraws funds from the user's Citrex account.              | `amount`       |

**💹 Trading & Order Management**
| Tool                                    | Description                                                    | Key Parameters                            |
| --------------------------------------- | -------------------------------------------------------------- | ----------------------------------------- |
| `citrex_list_open_orders`               | Lists the user's open orders for a specific market or all.     | `productSymbol`                           |
| `citrex_calculate_margin_requirement`   | Calculates margin requirement for a potential trade.           | `isBuy`, `price`, `productId`, `quantity` |
| `citrex_place_order`                    | Places a new order on the exchange.                            | `orderArgs`                               |
| `citrex_place_orders`                   | Places multiple new orders in a single transaction.            | `ordersArgs`                              |
| `citrex_cancel_order`                   | Cancels an existing open order.                                | `orderId`, `productId`                    |
| `citrex_cancel_orders`                  | Cancels multiple existing open orders in a single transaction. | `ordersArgs`                              |
| `citrex_cancel_and_replace_order`       | Atomically cancels an order and replaces it with a new one.    | `orderId`, `orderArgs`                    |
| `citrex_cancel_open_orders_for_product` | Cancels all open orders for a specific product.                | `productId`                               |

**⚙️ SDK Configuration**
| Tool                   | Description                                            | Key Parameters                                |
| ---------------------- | ------------------------------------------------------ | --------------------------------------------- |
| `citrex_get_config`    | Retrieves the configuration currently used by the SDK. | —                                             |
| `citrex_update_config` | Updates and re-initializes the Citrex SDK instance.    | `debug`, `environment`, `rpc`, `subAccountId` |
</details>

<details>
  <summary> 🪙 Kame DEX Aggregator Tools</summary>

These tools let you interact with the Kame DEX Aggregator.

**🔹 Swapping & Quoting**
| Tool                          | Description                                                         | Key Parameters                                             |
| ----------------------------- | ------------------------------------------------------------------- | ---------------------------------------------------------- |
| `get_kame_quote`              | Retrieves a quote for a token swap from the Kame Aggregator.        | `fromTokenAddress`, `toTokenAddress`, `amount`             |
| `swap_on_kame`                | Executes a token swap on the Kame Aggregator.                       | `fromTokenAddress`, `toTokenAddress`, `amount`, `slippage` |
| `generate_kame_swap_calldata` | Generates the transaction calldata for a swap without executing it. | `fromTokenAddress`, `toTokenAddress`, `amount`             |

**🔹 Token & Price Discovery**
| Tool                  | Description                                          | Key Parameters                      |
| --------------------- | ---------------------------------------------------- | ----------------------------------- |
| `get_kame_token_list` | Retrieves a list of tokens from the Kame Aggregator. | `ids`, `cursor`, `count`, `pattern` |
| `get_kame_prices`     | Retrieves token prices from the Kame Aggregator.     | `ids`                               |
</details>

<details>
  <summary> ❓ Hive Intelligence Query Tool</summary>

These tools let you interact with the Hive Intelligence Query Tool.

| Tool                       | Description                                                                                                                   | Key Parameters |
| -------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | -------------- |
| `search_hive_intelligence` | Sends a natural language prompt to retrieve blockchain data like wallet holdings, transaction history, and token information. | `prompt`       |
</details>
</details>

---

### Resources
<details>
<summary>Resources</summary>

The server exposes blockchain data through the following MCP resource URIs.

#### ⛓️ Blockchain Resources

<details>
<summary>Blockchain Resources</summary>

| Resource URI Pattern | Description                              |
|-----------|------------------------------------------|
| `evm://{network}/chain` | Chain information for a specific network |
| `evm://chain` | Sei mainnet chain information            |
| `evm://{network}/block/{blockNumber}` | Block data by number                     |
| `evm://{network}/block/latest` | Latest block data                        |
| `evm://{network}/address/{address}/balance` | Native token balance                     |
| `evm://{network}/tx/{txHash}` | Transaction details                      |
| `evm://{network}/tx/{txHash}/receipt` | Transaction receipt with logs            |
</details>

#### 🪙 Token Resources

<details>
<summary>Token Resources</summary>

| Resource URI Pattern | Description |
|-----------|-------------|
| `evm://{network}/token/{tokenAddress}` | ERC20 token information |
| `evm://{network}/token/{tokenAddress}/balanceOf/{address}` | ERC20 token balance |
| `evm://{network}/nft/{tokenAddress}/{tokenId}` | NFT (ERC721) token information |
| `evm://{network}/nft/{tokenAddress}/{tokenId}/isOwnedBy/{address}` | NFT ownership verification |
| `evm://{network}/erc1155/{tokenAddress}/{tokenId}/uri` | ERC1155 token URI |
| `evm://{network}/erc1155/{tokenAddress}/{tokenId}/balanceOf/{address}` | ERC1155 token balance |
</details>
</details>

---

## 🔒 Security Considerations

- **Private keys** are used only for transaction signing and are never stored by the server
- Consider implementing additional authentication mechanisms for production use
- Use HTTPS for the HTTP server in production environments
- Implement rate limiting to prevent abuse
- For high-value services, consider adding confirmation steps

## 📁 Project Structure

```
sei-mcp-server/
├── src/
│   ├── index.ts                # Main stdio server entry point
│   └── server/                 # Server-related files
│   │    ├── http-server.ts      # HTTP server with SSE
│   │    └── server.ts           # General server setup
│   └── core/
│       ├── chains.ts           # Chain definitions and utilities 
│       ├── config.ts           # MCP configuration
│       ├── resources.ts        # MCP resources implementation
│       ├── prompts.ts          # MCP prompts implementation
│       ├── services/           # Core blockchain logic and service implementations
│       │   ├── index.ts        # Service exports
│       │   ├── abi/            # Contract ABI definitions
│       │   ├── balance.ts      # Balance services
│       │   ├── blocks.ts       # Block services
│       │   ├── citrex.ts       # Citrex perpetuals exchange services
│       │   ├── clients.ts      # RPC client utilities
│       │   ├── coingecko.ts    # CoinGecko API service logic
│       │   ├── contracts.ts    # Smart contract interaction services
│       │   ├── deBridge.ts     # deBridge cross-chain service logic
│       │   ├── deployERC20.ts  # ERC20 deployment service logic
│       │   ├── deployERC721.ts # ERC721 deployment service logic
│       │   ├── dexscreener.ts  # Dexscreener API service logic
│       │   ├── dragonswap.ts   # DragonSwap V3 DEX API service logic
│       │   ├── hive_intelligence.ts         # Hive Intelligence Query service logic
│       │   ├── kame_ag.ts         # Kame DEX Aggregator service logic
│       │   ├── lifi.ts         # Li.Fi cross-chain service logic
│       │   ├── network.ts      # Network and block services
│       │   ├── opensea.ts      # OpenSea NFT marketplace service logic
│       │   ├── seitrace.ts     # SeiTrace API service logic
│       │   ├── symphony.ts     # Symphony DEX Aggregator service logic
│       │   ├── tokens.ts       # Token metadata services
│       │   ├── transactions.ts # Transaction services
│       │   ├── transfers.ts    # Transfers services
│       │   ├── utils.ts        # Utility services
│       │   ├── wrappedSei.ts   # WSEI wrapping and unwrapping services
│       │   └── yeifinance.ts   # Yei Finance API service logic
│       └── tools/              # MCP tool registrations
│           ├── index.ts        # Tool exports
│           ├──