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.