WDK logoWDK documentation

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.

OptionApplies toDescription
transferMaxFeetransfer()Caps token transfer fees in the module's base fee unit.
transactionMaxFeesendTransaction() 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.

SurfaceDescription
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.

Classic Wallet Modules

Standard wallet implementations that use native blockchain tokens for transaction fees:

Account Abstraction Wallet Modules

Wallet implementations that support Account Abstraction for gasless transactions using paymaster tokens like USD₮:

ModuleBlockchainStatusDocumentation
@tetherto/wdk-wallet-evm-erc4337EVM✅ ReadyDocumentation
@tetherto/wdk-wallet-evm-7702-gaslessEVM✅ ReadyDocumentation
@tetherto/wdk-wallet-ton-gaslessTON✅ ReadyDocumentation
@tetherto/wdk-wallet-tron-gasfreeTRON✅ ReadyDocumentation
@tetherto/wdk-wallet-solana-jupiterzSolanaIn 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.

ModuleBlockchainDescriptionRepository
@utexo/wdk-wallet-rgbBitcoin (RGB)RGB protocol wallet integration for Bitcoin-based smart contractsGitHub

Next Steps

To get started with WDK modules, follow these steps:

  1. Get up and running quickly with our Quickstart Guide
  2. Choose the modules that best fit your needs from the tables above
  3. 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

On this page