Skip to main content
Monad is a high-throughput, EVM-compatible Layer 1. Dynamic supports it like any other EVM chain: no custom adapter or signer required. This guide shows how to sign a user in with email, create their embedded wallet, switch it to Monad, and send a transaction using the Dynamic JavaScript SDK.

1. Dashboard setup

In the Dynamic dashboard:
  • Under Chains & Networks, enable Monad (Chain ID: 143)
  • Under Sign-in Methods, enable Email
  • Under Wallets, enable Embedded wallets
  • Under SecurityAllowed Origins, add the origin where the app runs (for example http://localhost:5173)
Then follow the Quickstart (or React Quickstart) to install and initialize the SDK.

2. Sign users in and create a wallet

The wallet isn’t created automatically. After verifyOTP succeeds, call createWaasWalletAccounts and wait for it before reading the wallet’s address.
The wallet then shows up from getWalletAccounts() (or useGetWalletAccounts() in React), used in the next step.

3. Switch to Monad and send a transaction

Switch the wallet’s active network to Monad (networkId: '143'), then use createWalletClientForWalletAccount to get a viem WalletClient for signing.
If switchActiveNetwork throws NetworkNotAddedError, call addNetwork first, then switch again. See Switch Active Network.

What you can do next

A Monad wallet works like any other EVM wallet: read balances, sign typed data, sponsor gas. Monad also supports Earn, so users can deposit into yield vaults (for example the Hyperithm USDC vault) without leaving your app.
Last modified on September 11, 2026