Wallet Modules Overview
Explore WDK wallet modules for building self-custodial wallets across supported chains.
The Wallet Development Kit (WDK) provides a set of modules that support multiple blockchain networks. All modules share a common interface, ensuring consistent behavior across different blockchain implementations.
Shared Fee Limits
Wallet modules can expose fee caps through their configuration objects. Use the chain-specific docs for exact units and supported operations.
| Option | Applies to | Description |
|---|---|---|
transferMaxFee | transfer() | Caps token transfer fees in the module's base fee unit. |
transactionMaxFee | sendTransaction() and signTransaction() | Caps native transaction send/sign flows separately from token transfers when the module supports that base wallet option. |
Shared Signer Interface
The base @tetherto/wdk-wallet package defines a cross-chain ISigner interface for wallet modules that support external signing. Signer-aware modules can be constructed from a default signer instead of a seed, can register named signers with addSigner(name, signer), and can resolve accounts by passing signerName to account retrieval methods.
| Surface | Description |
|---|---|
ISigner.derive(relPath) | Derives a child signer from a relative derivation path, when the signer supports derivation. |
ISigner.getAddress() | Returns the address controlled by the signer. |
ISigner.dispose() | Clears signer-held secret material or external resources. |
WalletManager.addSigner(name, signer) | Registers a named signer. Blank names throw an error. |
WalletManager.getSigner(name?) | Returns a named signer, or the default signer when called without a name. |
WalletManager.getSigners() | Returns a shallow copy of the named signer map. |
signTransaction(tx) is an account-level operation, not part of ISigner. Use the chain account's IWalletAccount.signTransaction(tx) when a module supports signing without broadcast. Modules can also type their signed transaction payloads so sendTransaction(tx) and quoteSendTransaction(tx) accept either unsigned transactions or module-specific signed payloads where that behavior is implemented.
Module support depends on the chain-specific wallet implementation. Check each module's reference before relying on signer-based account creation.
Supported Networks
This package works with multiple blockchain networks through wallet registration.

Bitcoin Mainnet

Ethereum, Sepolia Testnet, L2s, etc.

Tron Mainnet

TON Mainnet

Solana Mainnet


Spark Mainnet
Classic Wallet Modules
Standard wallet implementations that use native blockchain tokens for transaction fees:
| Module | Blockchain | Status | Documentation |
|---|---|---|---|
@tetherto/wdk-wallet-evm | EVM | ✅ Ready | Documentation |
@tetherto/wdk-wallet-ton | TON | ✅ Ready | Documentation |
@tetherto/wdk-wallet-btc | Bitcoin | ✅ Ready | Documentation |
@tetherto/wdk-wallet-spark | Spark | ✅ Ready | Documentation |
@tetherto/wdk-wallet-tron | TRON | ✅ Ready | Documentation |
@tetherto/wdk-wallet-solana | Solana | ✅ Ready | Documentation |
@arkade-os/wdk | Arkade | ✅ Ready | README |
Account Abstraction Wallet Modules
Wallet implementations that support Account Abstraction for gasless transactions using paymaster tokens like USD₮:
| Module | Blockchain | Status | Documentation |
|---|---|---|---|
@tetherto/wdk-wallet-evm-erc4337 | EVM | ✅ Ready | Documentation |
@tetherto/wdk-wallet-evm-7702-gasless | EVM | ✅ Ready | Documentation |
@tetherto/wdk-wallet-ton-gasless | TON | ✅ Ready | Documentation |
@tetherto/wdk-wallet-tron-gasfree | TRON | ✅ Ready | Documentation |
@tetherto/wdk-wallet-solana-jupiterz | Solana | In progress | - |
Community Wallet Modules
Wallet modules developed by the community. See the Community Modules page for more details.
Community modules are developed and maintained independently. Use your own judgment and proceed at your own risk.
| Module | Blockchain | Description | Repository |
|---|---|---|---|
@utexo/wdk-wallet-rgb | Bitcoin (RGB) | RGB protocol wallet integration for Bitcoin-based smart contracts | GitHub |
Next Steps
To get started with WDK modules, follow these steps:
- Get up and running quickly with our Quickstart Guide
- Choose the modules that best fit your needs from the tables above
- Check specific documentation for modules you wish to use
You can also:
- Learn about key concepts like Account Abstraction and other important definitions
- Use one of our ready-to-use examples to be production ready