EIP-7702 mode is the default and recommended way to use Universal Accounts. It upgrades a user’s existing EOA in-place—no new address, no asset migration—by delegating execution to Particle’s Universal Account contract via a Type-4 transaction. However, not all wallets can produce the authorization signature required for this delegation. Type-4 transactions carry anDocumentation Index
Fetch the complete documentation index at: https://developers.particle.network/llms.txt
Use this file to discover all available pages before exploring further.
authorizationList field that must be signed by the EOA’s private key. Standard JSON-RPC wallets (MetaMask, Rabby, etc.) do not expose this primitive, so they cannot be used in 7702 mode.
The following embedded wallet providers have been verified to work with Particle’s EIP-7702 Universal Account implementation:
| Provider | Signing API | Auth method |
|---|---|---|
| Dynamic (WaaS) | waasConnector.signAuthorization() | isDynamicWaasConnector() guard required |
| Magic | magic.wallet.sign7702Authorization() | magic.wallet.send7702Transaction() handles Type-4 tx |
| Privy | signAuthorization() hook | Returns r, s, yParity; serialize via ethers.Signature |
How Delegation Works (Any Provider)
Regardless of the embedded wallet you use, the delegation flow follows the same structure:Demos
Magic
Next.js demo showing Magic email-OTP login, EIP-7702 delegation on Arbitrum, and a cross-chain ETH → USDC (Solana) conversion.Key packages:
magic-sdk, @magic-ext/evmDynamic (WaaS)
Next.js demo showing Dynamic WaaS login, EIP-7702 delegation on Arbitrum, and a cross-chain ETH → USDC (Solana) conversion.Key packages:
@dynamic-labs/sdk-react-core, @dynamic-labs/ethereum-aaPrivy
Next.js demo showing Privy social login, EIP-7702 delegation, unified balance view, and cross-chain swaps.Key packages:
@privy-io/react-auth, @privy-io/wagmiInline Delegation During Transactions
For chains where delegation hasn’t happened yet, the Universal Account SDK can request inline authorizations as part of a regular transaction. You don’t need a separate delegation step—iterate over theuserOps in the transaction and sign any pending eip7702Auth entries before calling sendTransaction():
signAuthorization call.