Wallet EVM Bermuda Overview
Create Bermuda shielded accounts alongside public EVM accounts on Plasma testnet.
Community modules are developed and maintained independently by third-party contributors.
Tether and the WDK Team do not endorse or assume responsibility for their code, security, or maintenance. Use your own judgment and proceed at your own risk.
Use @bermuda/wdk-wallet-evm-bermuda to derive Bermuda shielded accounts from a WDK EVM wallet. A shielded account can deposit supported tokens into a Bermuda pool, transfer shielded balances to another Bermuda account, and withdraw to a public EVM address.
The module is in beta and supports Plasma testnet, chain ID 9746. These pages use GitHub revision 59c711af9d5c348db740a37f19d96414fc6750f6, whose manifest declares version 0.3.2, with Bermuda SDK 0.3.2. Installation uses the GitHub repository, rather than an npm registry release. Follow the pinned installation.
Upgrading from 0.1.x
Version 0.3.2 uses a new pool and a new shielded address format. Shielded balances from 0.1.x stay in the previous pool; use the matching 0.1.x installation to withdraw them before upgrading. The same spending-key source does not preserve the old full Bermuda address, and changing the package version does not migrate funds.
The current address is 0x followed by 2,496 hex characters. Replace stored recipient addresses, change transaction note fields to memo, and review native versus wrapped deposits and fee accounting. Withdrawal now defaults to targeting the requested recipient amount, with fees added to the sender's spend. See the maintainer's migration guidance and the updated operations guide.
Choose This Module
Use Bermuda when your application needs a separate shielded account on Plasma testnet and can handle token allowances, proof generation, SDK services, and confirmation after submission.
For ordinary EVM transfers, use Standard EVM. Deposits are sent from a public EVM account, and withdrawals expose a public EVM recipient. Shielded-account support does not establish anonymity, production readiness, or availability on other EVM chains.
Two Account Roles
WalletManagerBermuda extends the EVM wallet manager and adds getBermudaAccount(). Its ordinary account getters continue to return public EVM accounts.
| Account | Retrieve with | Use for |
|---|---|---|
| Public EVM account | await wallet.getAccount(0) | Public balances, token allowances, ordinary EVM transactions, and transaction confirmation. This account funds Bermuda deposits. |
| Bermuda shielded account | await wallet.getBermudaAccount(0, 0) | A separate Bermuda address, shielded token balances, deposits, shielded transfers, and withdrawals. |
The Bermuda account is not an EVM account and does not implement the full generic WDK account interface. Its getAddress() returns a string synchronously. Use a Bermuda address for a shielded transfer and an EVM address for a withdrawal.
Account Capabilities
| Task | Method |
|---|---|
| Read the shielded address | getAddress() |
| Read one or several shielded token balances | getTokenBalance(), getTokenBalances() |
| Deposit from the public EVM account | deposit() |
| Send shielded funds to another Bermuda account | transfer() |
| Withdraw to a public EVM address | withdraw() |
All three fund-moving methods return a transaction hash. A hash is not a successful receipt. Confirm the transaction and reconcile the relevant balances before displaying completion or retrying an interrupted operation.
Integration Requirements
- An application-managed BIP-39 mnemonic or seed bytes. The examples use a seed-backed manager; do not infer shielded support for hardware or custom signers.
- A Plasma testnet RPC endpoint, a supported testnet token, and the matching Bermuda pool. The operations guide shows public-chain checks for the USD₮0 testnet example.
- A Node.js or Bare runtime with network access and writable storage for the prover's downloaded setup data. WDK worklet bundles are unsupported. See runtime setup.
- Access to the Bermuda SDK's relayer, chain-state, policy/compliance, and proof-artifact services. The manager forwards the wallet RPC to the SDK by default; a nested
bermudaconfiguration can override SDK routing. RPC configuration alone does not replace the other service endpoints. - Native gas for public EVM transactions and any required token allowance covering the deposit and its applicable protocol and lifetime fees.
transactionMaxFeerejects an EVM operation when its estimated network fee exceeds the configured threshold; it does not bind final network fees or cap protocol token fees. EVM fee caps do not bound shielded transfer or withdrawal fees. See Configuration.
These pages use the standalone manager. Directly retrieved Bermuda accounts do not automatically pass through WDK core's registered policies or middleware. The SDK's separate issuer-policy checks are part of its own proof and service flow; they are not a substitute for application authorization.
Next Steps
Usage
Install the pinned source and create public and shielded accounts.
Shield, Transfer, and Withdraw
Check the testnet deployment, handle allowances, and confirm each operation.
Configuration
Review providers, cache storage, fee boundaries, and cleanup.
API Reference
Review imports, signatures, options, and return values.