Overview
This guide explains how to use Dynamic embedded wallets with Particle Universal Accounts in EIP-7702 mode. In that mode, the user keeps the same EOA address while delegating execution to Particle’s Universal Account contract via a Type-4 transaction—Particle’s docs describe the model in EIP-7702 compatible embedded wallets. Universal Accounts provide users with a single account and balance that works across any chain, eliminating the need to manage multiple wallets or manually bridge assets. Particle Network’s infrastructure handles all cross-chain liquidity routing and bridging behind the scenes, making the entire Web3 ecosystem feel like one unified network. Developers can easily integrate them via the Universal SDK, with built-in support for social logins, wallet connections, and gasless cross-chain transactions. EIP-7702 uses anauthorizationList on the transaction; each authorization must be signed by the EOA key. Standard JSON-RPC wallets (for example MetaMask or Rabby) typically do not expose what you need, so Particle documents embedded / WaaS signers for this path—including Dynamic.
Dynamic supplies signAuthorization on the WaaS connector so your app can satisfy Particle’s delegation and inline-auth steps. Use the reference demo and Dynamic API notes below together with Particle’s Universal Account SDK.
Stack in the reference demo
The ua-dynamic-7702 app uses this combination end to end:| Piece | Role |
|---|---|
| Next.js | App Router host app |
@dynamic-labs/sdk-react-core plus Ethereum and @dynamic-labs/waas-evm | Auth, embedded WaaS EOA, and signAuthorization({ address, chainId, nonce }) |
@particle-network/universal-account-sdk | Universal Account client: delegation status, auth parameters, routing, and sendTransaction |
| ethers v6 | Serialize authorizations (for example Signature.from() on the object Dynamic returns) for the SDK |
viem walletClient | Send the Type-4 delegation transaction with authorizationList |
isDynamicWaasConnector() before using signAuthorization on the connector. For the same signing pattern in other React setups, see Delegate to a custom smart account.
Delegation flow with Universal Accounts
Particle’s client drives status, auth parameters, and broadcast; Dynamic signs. The shape usually matches:- Check status — Universal Account client (for example
getEIP7702Deployments()). - Fetch auth parameters — Per chain from the client (for example
getEIP7702Auth([chainId])). - Sign —
waasConnector.signAuthorization({ address, chainId, nonce })with Dynamic WaaS (see Stack in the reference demo). - Broadcast — Type-4 transaction with
authorizationList(often viawalletClient.sendTransaction). - Later steps — Particle may require a
rootHashor message signature via normal signing, thensendTransactionon the Universal Account client.
Inline authorizations on later transactions
After delegation, Universal Account transactions can include pending EIP-7702 authorizations on individual user operations. Sign each with Dynamic’ssignAuthorization, serialize as your integration expects (for example ethers Signature.from()), pass them into Particle’s sendTransaction flow along with the rootHash signature. The demo in the next section does this for a cross-chain convert.
Reference demo: Next.js, Dynamic, and Particle
The open-source app ua-dynamic-7702 implements Dynamic WaaS login, EIP-7702 delegation on Arbitrum, and a cross-chain convert with Particle’s Universal Account SDK. Use it as the working reference for:isDynamicWaasConnector()before callingsignAuthorization- Network — Switching to the chain used for delegation before sending the Type-4 transaction
- Signature shape — Using
ethersSignature.from()when the downstream SDK expects serialized authorizations - Provider edge cases — The repo documents a
getSigner()/accountworkaround inhooks/universal-account-provider.tsxfor their Universal Account integration
package.json, lockfile, and README for exact versions and .env.local keys.
ua-dynamic-7702 on GitHub
Next.js demo: Dynamic embedded wallet, EIP-7702 delegation, and Universal Accounts cross-chain convert.