Build self-custodial wallets with AI assistance. A universal Agent Skill for integrating Tether's Wallet Development Kit into any project.
WDK Skill is an Agent Skill that helps developers integrate Tether's Wallet Development Kit (WDK) into any project. It works with Claude Code, Cursor, VS Code, OpenAI Codex, Gemini CLI, and 20+ other AI coding assistants.
- Installation Wizard - Set up WDK from scratch with guided steps
- Integration Helper - Add wallet capabilities to existing projects
- Operations Guide - Execute transactions, swaps, bridges, and more
- Node.js / TypeScript
- React Native / Expo
- Browser / Vanilla JS
| Chain | Module |
|---|---|
| Ethereum | @tetherto/wdk-wallet-evm |
| Polygon | @tetherto/wdk-wallet-evm |
| Arbitrum | @tetherto/wdk-wallet-evm |
| TON | @tetherto/wdk-wallet-ton |
| Bitcoin | @tetherto/wdk-wallet-btc |
| TRON | @tetherto/wdk-wallet-tron |
| Solana | @tetherto/wdk-wallet-sol |
# Install the skill
claude plugins add wdk-skill
# Use the skill
claude> /wdk initCopy the SKILL.md file to your agent's skills directory, or point your agent to this repository.
# Install WDK
npm install @tetherto/wdk @tetherto/wdk-wallet-evm
# Initialize in your codeimport { WDK } from '@tetherto/wdk';
import { WalletManagerEvm } from '@tetherto/wdk-wallet-evm';
const wdk = new WDK('your twelve word seed phrase')
.registerWallet('ethereum', WalletManagerEvm, {
rpcUrl: 'https://eth.llamarpc.com',
});
const account = await wdk.getAccount('ethereum', 0);
const balance = await account.getBalance();wdk-skill/
├── SKILL.md # Main skill file (Agent Skills standard)
├── README.md # This file
├── LICENSE # Apache 2.0
│
├── scripts/ # Automation scripts
│ ├── install-wdk.js
│ ├── setup-nodejs.js
│ ├── setup-react-native.js
│ └── setup-browser.js
│
├── references/ # Detailed documentation
│ ├── getting-started.md
│ ├── api-reference.md
│ ├── platforms/
│ │ ├── nodejs.md
│ │ ├── react-native.md
│ │ └── browser.md
│ └── operations/
│ ├── wallets.md
│ ├── transactions.md
│ ├── swaps.md
│ ├── bridges.md
│ └── lending.md
│
├── templates/ # Ready-to-use code templates
│ ├── nodejs/
│ ├── react-native/
│ └── browser/
│
└── .claude/ # Claude Code plugin
└── plugins/
└── wdk-skill/
WDK Skill follows the Agent Skills specification and works with:
| Agent | Status |
|---|---|
| Claude Code | Supported |
| Cursor | Supported |
| VS Code (Copilot) | Supported |
| OpenAI Codex | Supported |
| Gemini CLI | Supported |
| Goose | Supported |
| Roo Code | Supported |
| And 15+ more... | Supported |
When you ask to set up WDK, the skill will:
- Detect your project type (Node.js, React Native, Browser)
- Install the appropriate dependencies
- Create configuration files
- Set up environment variables
- Generate starter code
Add WDK capabilities to existing projects:
- Express/Fastify APIs
- React/Next.js apps
- React Native/Expo mobile apps
- Vanilla JavaScript
Get help with common operations:
- Wallets - Create, import, derive accounts
- Transactions - Send, receive, estimate gas
- Swaps - Token exchanges via ParaSwap
- Bridges - Cross-chain transfers via USDT0
- Lending - DeFi operations via Aave
import { WDK } from '@tetherto/wdk';
import { WalletManagerEvm } from '@tetherto/wdk-wallet-evm';
import { WalletManagerTon } from '@tetherto/wdk-wallet-ton';
const wdk = new WDK(seed)
.registerWallet('ethereum', WalletManagerEvm, { rpcUrl: ETH_RPC })
.registerWallet('polygon', WalletManagerEvm, { rpcUrl: POLYGON_RPC, chainId: 137 })
.registerWallet('ton', WalletManagerTon, { rpcUrl: TON_RPC });
// Get accounts
const ethAccount = await wdk.getAccount('ethereum', 0);
const polygonAccount = await wdk.getAccount('polygon', 0);
const tonAccount = await wdk.getAccount('ton', 0);import { SwapProtocolParaswap } from '@tetherto/wdk-swap-paraswap';
wdk.registerProtocol('paraswap', SwapProtocolParaswap, {});
const account = await wdk.getAccount('ethereum', 0);
const swap = account.getSwapProtocol('paraswap');
await swap.swap({
srcToken: USDC_ADDRESS,
destToken: USDT_ADDRESS,
amount: '1000000000',
slippage: 1,
});import { BridgeProtocolUSDT0 } from '@tetherto/wdk-bridge-usdt0';
wdk.registerProtocol('usdt0', BridgeProtocolUSDT0, {});
const account = await wdk.getAccount('ethereum', 0);
const bridge = account.getBridgeProtocol('usdt0');
await bridge.bridge({
destChain: 'polygon',
amount: '1000000000',
recipient: recipientAddress,
});- WDK Documentation: https://docs.wallet.tether.io/
- WDK GitHub: https://github.com/tetherto/wdk-core
- Agent Skills Spec: https://agentskills.io
- Discord Community: https://discord.gg/arYXDhHB2w
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
- Fork the repository
- Create your feature branch (
git checkout -b feature/awesome) - Commit changes (
git commit -m 'Add awesome feature') - Push to branch (
git push origin feature/awesome) - Open a Pull Request
Apache 2.0 - See LICENSE for details.
Built for developers, by developers. Integrate self-custodial wallets into any project with AI assistance.