WDK logoWDK documentation

Get Started

Install the MCP Toolkit and run your first AI-powered wallet server

Setup Wizard

The fastest way to get running. Clone the repository and let the wizard configure everything:

Terminal
git clone https://github.com/tetherto/wdk-mcp-toolkit.git
cd wdk-mcp-toolkit
npm install
npm run setup

The wizard will:

  1. Prompt for your seed phrase (required)
  2. Ask for optional API keys (WDK Indexer, MoonPay)
  3. Generate .vscode/mcp.json with your credentials
  4. Install required dependencies automatically

Once complete, open the project in VS Code, start the MCP server from .vscode/mcp.json, and open the chatbot with Cmd + Shift + I (or run Chat: Open Agent from the Command Palette on non-Mac).

Security - Your seed phrase is stored locally in .vscode/mcp.json, which is gitignored. Always use a dedicated development wallet with limited funds.


Manual Setup

If you prefer to set things up yourself or want to integrate the toolkit into an existing project:

Install the toolkit

Install the MCP Toolkit and the wallet modules you need:

Terminal
npm install @tetherto/wdk-mcp-toolkit @modelcontextprotocol/sdk

# Wallet modules (add any combination)
npm install @tetherto/wdk-wallet-evm    # Ethereum, Polygon, Arbitrum, etc.
npm install @tetherto/wdk-wallet-btc    # Bitcoin

Create your MCP server

Create index.js with a basic multi-chain server:

index.js
import { WdkMcpServer, CHAINS, WALLET_TOOLS, PRICING_TOOLS } from '@tetherto/wdk-mcp-toolkit'
import WalletManagerEvm from '@tetherto/wdk-wallet-evm'
import WalletManagerBtc from '@tetherto/wdk-wallet-btc'

const server = new WdkMcpServer('my-wallet-server', '1.0.0')

// 1. Enable WDK with your seed phrase
server.useWdk({ seed: process.env.WDK_SEED })

// 2. Register wallet modules
server.registerWallet('ethereum', WalletManagerEvm, {
  provider: 'https://eth-mainnet.g.alchemy.com/v2/YOUR_KEY'
})

server.registerWallet('bitcoin', WalletManagerBtc, {
  network: 'bitcoin',
  host: 'electrum.blockstream.info',
  port: 50001
})

// 3. Enable pricing
server.usePricing()

// 4. Register tools and start
server.registerTools([...WALLET_TOOLS, ...PRICING_TOOLS])

Connect your AI client

Add the MCP server to your AI tool's configuration:

Config path: .vscode/mcp.json (project-level)

.vscode/mcp.json
{
  "servers": {
    "wdk": {
      "type": "stdio",
      "command": "node",
      "args": ["index.js"],
      "env": {
        "WDK_SEED": "your twelve word seed phrase here"
      }
    }
  }
}

Then in VS Code:

  1. Open .vscode/mcp.json and click Start above the server config
  2. Open GitHub Copilot Chat and select Agent mode
  3. Click Tools to verify the MCP tools are available

VS Code MCP documentation

Try it out

Ask your AI assistant:

What's my ethereum address?
Check my BTC balance
What's the current price of ETH in USD?
Send 10 USDT to 0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb7 on ethereum

Write operations (sending, swapping, bridging) will show a confirmation dialog before executing. You must explicitly approve each transaction.


Optional Capabilities

Add more capabilities by installing additional packages and enabling them on the server:

Additional capabilities
import { INDEXER_TOOLS, SWAP_TOOLS, BRIDGE_TOOLS, LENDING_TOOLS, FIAT_TOOLS } from '@tetherto/wdk-mcp-toolkit'
import VeloraProtocolEvm from '@tetherto/wdk-protocol-swap-velora-evm'
import Usdt0ProtocolEvm from '@tetherto/wdk-protocol-bridge-usdt0-evm'
import AaveProtocolEvm from '@tetherto/wdk-protocol-lending-aave-evm'
import MoonPayProtocol from '@tetherto/wdk-protocol-fiat-moonpay'

// Indexer - transaction history
server.useIndexer({ apiKey: process.env.WDK_INDEXER_API_KEY })

// DeFi protocols
server.registerProtocol('ethereum', 'velora', VeloraProtocolEvm)
server.registerProtocol('ethereum', 'usdt0', Usdt0ProtocolEvm)
server.registerProtocol('ethereum', 'aave', AaveProtocolEvm)
server.registerProtocol('ethereum', 'moonpay', MoonPayProtocol, {
  secretKey: process.env.MOONPAY_SECRET_KEY,
  apiKey: process.env.MOONPAY_API_KEY
})

// Register the corresponding tools
server.registerTools([
  ...INDEXER_TOOLS,
  ...SWAP_TOOLS,
  ...BRIDGE_TOOLS,
  ...LENDING_TOOLS,
  ...FIAT_TOOLS
])

Environment Variables

VariableRequiredDescription
WDK_SEEDYesBIP-39 seed phrase for wallet derivation
WDK_INDEXER_API_KEYNoEnables INDEXER_TOOLS - get a key
MOONPAY_API_KEYNoEnables FIAT_TOOLS - MoonPay Dashboard
MOONPAY_SECRET_KEYNoRequired with MOONPAY_API_KEY

Next Steps

  • Configuration - Wallets, tokens, protocols, custom tools, and security
  • API Reference - All 35 built-in MCP tools with parameters and schemas

Need Help?

On this page