Configuration
Configuration options and settings for @tetherto/wdk-wallet-evm
Wallet Configuration
The WalletManagerEvm accepts a configuration object that defines how the wallet interacts with the blockchain:
import WalletManagerEvm from '@tetherto/wdk-wallet-evm'
const config = {
  // Required: RPC endpoint URL or EIP-1193 provider
  provider: 'https://eth-mainnet.g.alchemy.com/v2/your-api-key',
  
  // Optional: Maximum fee for transfer operations (in wei)
  transferMaxFee: 100000000000000 // 0.0001 ETH
}
const wallet = new WalletManagerEvm(seedPhrase, config)Account Configuration
Both WalletAccountEvm and WalletAccountReadOnlyEvm share similar configuration options:
import { WalletAccountEvm, WalletAccountReadOnlyEvm } from '@tetherto/wdk-wallet-evm'
// Full access account
const account = new WalletAccountEvm(
  seedPhrase,
  "0'/0/0", // BIP-44 derivation path
  {
    provider: 'https://eth-mainnet.g.alchemy.com/v2/your-api-key',
    transferMaxFee: 100000000000000
  }
)
// Read-only account
const readOnlyAccount = new WalletAccountReadOnlyEvm(
  '0x...', // Ethereum address
  {
    provider: 'https://eth-mainnet.g.alchemy.com/v2/your-api-key'
  }
)Configuration Options
Provider
The provider option specifies how to connect to the blockchain. It can be either a URL string or an EIP-1193 compatible provider instance.
Type: string | Eip1193Provider
Examples:
// Option 1: Using RPC URL
const config = {
  provider: 'https://eth-mainnet.g.alchemy.com/v2/your-api-key'
}
// Option 2: Using browser provider (e.g., MetaMask)
const config = {
  provider: window.ethereum
}
// Option 3: Using custom JsonRpcProvider
import { JsonRpcProvider } from 'ethers'
const config = {
  provider: new JsonRpcProvider('https://eth-mainnet.g.alchemy.com/v2/your-api-key')
}Transfer Max Fee
The transferMaxFee option sets a maximum limit for transaction fees to prevent unexpectedly high costs.
Type: number (optional)
Unit: Wei (1 ETH = 1000000000000000000 Wei)
Examples:
const config = {
  // Set maximum fee to 0.0001 ETH
  transferMaxFee: 100000000000000n,
}
// Usage example
try {
  const result = await account.transfer({
    token: '0x...', // ERC20 address
    recipient: '0x...',
    amount: 1000000n
  })
} catch (error) {
  if (error.message.includes('Exceeded maximum fee')) {
    console.error('Transfer cancelled: Fee too high')
  }
}Fee Rate Multipliers
The wallet manager uses predefined multipliers for fee calculations:
// Normal fee rate = base fee × 1.1
const normalFee = await wallet.getFeeRates()
console.log('Normal fee:', normalFee.normal)
// Fast fee rate = base fee × 2.0
const fastFee = await wallet.getFeeRates()
console.log('Fast fee:', fastFee.fast)Network Support
The configuration works with any EVM-compatible network. Just change the provider URL:
// Ethereum Mainnet
const mainnetConfig = {
  provider: 'https://eth-mainnet.g.alchemy.com/v2/your-api-key'
}
// Polygon (Matic)
const polygonConfig = {
  provider: 'https://polygon-rpc.com'
}
// Arbitrum
const arbitrumConfig = {
  provider: 'https://arb1.arbitrum.io/rpc'
}
// BSC (Binance Smart Chain)
const bscConfig = {
  provider: 'https://bsc-dataseed.binance.org'
}Next Steps
</tbody>
