Note: This package is currently in beta. Please test thoroughly in development environments before using in production.
A flexible manager for orchestrating WDK wallet and protocol modules through a single interface. This package lets you register blockchain-specific wallet managers, derive accounts, and coordinate multi-chain wallet flows from one WDK instance.
This module is part of the WDK (Wallet Development Kit) project, which empowers developers to build secure, non-custodial wallets with unified blockchain access, stateless architecture, and complete user control.
For detailed documentation about the complete WDK ecosystem, visit docs.wdk.tether.io.
npm install @tetherto/wdkimport WDK from '@tetherto/wdk'
import WalletManagerSolana from '@tetherto/wdk-wallet-solana'
import WalletManagerTon from '@tetherto/wdk-wallet-ton'
import WalletManagerTron from '@tetherto/wdk-wallet-tron'
const seedPhrase = 'abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about'
const wdk = new WDK(seedPhrase)
.registerWallet('solana', WalletManagerSolana, {
rpcUrl: 'https://api.devnet.solana.com',
commitment: 'confirmed',
})
.registerWallet('ton', WalletManagerTon, {
tonClient: { url: 'https://testnet.toncenter.com/api/v2/jsonRPC' },
})
.registerWallet('tron', WalletManagerTron, {
provider: 'https://api.shasta.trongrid.io',
})
const account = await wdk.getAccount('solana', 0)
const address = await account.getAddress()
console.log('Address:', address)
wdk.dispose()- Wallet Registration: Register multiple blockchain wallet managers through one WDK instance
- Unified Account Access: Retrieve accounts by chain, index, or derivation path through a consistent API
- Multi-Chain Operations: Coordinate balances, fee lookups, and transaction flows across registered chains
- Protocol Registration Support: Attach swap, bridge, lending, and fiat protocols to registered blockchains
- Middleware Hooks: Intercept account derivation with custom middleware
- Seed Utilities: Generate and validate BIP-39 seed phrases
- Selective Disposal: Dispose specific registered wallets or clear the full WDK instance
- WDK Wallet Modules including EVM, Solana, TON, TRON, and Bitcoin integrations
- Protocol Modules registered through the WDK interface
- Node.js and ESM-based applications that coordinate multiple wallet modules in one runtime
| Topic | Description | Link |
|---|---|---|
| Overview | Module overview and feature summary | WDK Core Overview |
| Usage | End-to-end integration walkthrough | WDK Core Usage |
| Configuration | Wallet registration and manager configuration | WDK Core Configuration |
| API Reference | Complete class and type reference | WDK Core API Reference |
| Example | Description |
|---|---|
| Getting Started | Generate a seed phrase, validate it, and create a WDK instance |
| Register Wallets | Register Solana, TON, and TRON wallet managers in one WDK instance |
| Manage Accounts | Retrieve accounts by index and path and inspect multi-chain balances |
| Send Transactions | Quote and optionally send native transactions across multiple chains |
| Middleware | Register middleware and inspect account access hooks |
| Error Handling | Handle missing registrations and dispose selected wallets safely |
For detailed walkthroughs, see the Usage Guide. See all runnable examples in the wdk-examples repository.
Join the WDK Discord to connect with other developers.
For support, please open an issue on GitHub or reach out via email.
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.