WDK logoWDK documentation
EVM

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. It is not published on npm. These pages use the GitHub revision 6476ea5f79d669968b0d0fd0a1413b962f61129f, whose manifest declares version 0.1.8. Follow the pinned GitHub installation.

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.

AccountRetrieve withUse for
Public EVM accountawait wallet.getAccount(0)Public balances, token allowances, ordinary EVM transactions, and transaction confirmation. This account funds Bermuda deposits.
Bermuda shielded accountawait 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

TaskMethod
Read the shielded addressgetAddress()
Read one or several shielded token balancesgetTokenBalance(), getTokenBalances()
Deposit from the public EVM accountdeposit()
Send shielded funds to another Bermuda accounttransfer()
Withdraw to a public EVM addresswithdraw()

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 configured RPC, relayer, chain-state, policy/compliance, and proof-artifact services. The manager's provider configures its public EVM account; it does not replace the SDK's endpoints.
  • Native gas for public EVM transactions and any required token allowance before a deposit. transactionMaxFee rejects 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


Need Help?

On this page