> ## Documentation Index
> Fetch the complete documentation index at: https://www.dynamic.xyz/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# How to use Dynamic with Particle Network's EIP-7702 Universal Account

> Pair Dynamic embedded wallets (WaaS) with Particle Universal Accounts in EIP-7702 mode: sign delegations and inline authorizations when JSON-RPC wallets cannot.

## Overview

This guide explains how to use **Dynamic embedded wallets** with **[Particle Universal Accounts](https://developers.particle.network/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](https://developers.particle.network/universal-accounts/ua-reference/desktop/eip-7702-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](https://eips.ethereum.org/EIPS/eip-7702) uses an `authorizationList` 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.

<Warning>
  **Particle’s EIP-7702 Universal Account mode expects an embedded wallet that can sign EIP-7702 authorizations.** External wallets generally do not implement `signAuthorization` (or equivalent) on the user’s EOA. If you must support only external wallets with Particle, use the account mode their docs describe for JSON-RPC wallets instead of strict EIP-7702 delegation from that EOA.
</Warning>

## Stack in the reference demo

The [ua-dynamic-7702](https://github.com/soos3d/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`                                     |

Call **`isDynamicWaasConnector()`** before using `signAuthorization` on the connector. For the same signing pattern in other React setups, see [Delegate to a custom smart account](/react/smart-wallets/advanced#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:

1. **Check status** — Universal Account client (for example `getEIP7702Deployments()`).
2. **Fetch auth parameters** — Per chain from the client (for example `getEIP7702Auth([chainId])`).
3. **Sign** — `waasConnector.signAuthorization({ address, chainId, nonce })` with Dynamic WaaS (see [Stack in the reference demo](#stack-in-the-reference-demo)).
4. **Broadcast** — Type-4 transaction with `authorizationList` (often via `walletClient.sendTransaction`).
5. **Later steps** — Particle may require a `rootHash` or message signature via normal signing, then `sendTransaction` on the Universal Account client.

Steps 3–4 require Dynamic **embedded** WaaS; method names on the Particle side follow [their reference](https://developers.particle.network/universal-accounts/ua-reference/desktop/eip-7702-wallets).

## Inline authorizations on later transactions

After delegation, Universal Account transactions can include **pending EIP-7702 authorizations** on individual user operations. Sign each with Dynamic’s `signAuthorization`, 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](https://github.com/soos3d/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 calling `signAuthorization`
* **Network** — Switching to the chain used for delegation before sending the Type-4 transaction
* **Signature shape** — Using `ethers` `Signature.from()` when the downstream SDK expects serialized authorizations
* **Provider edge cases** — The repo documents a **`getSigner()` / `account` workaround** in `hooks/universal-account-provider.tsx` for their Universal Account integration

**Dependencies and env vars** — Match the [stack table](#stack-in-the-reference-demo); use the demo `package.json`, lockfile, and README for exact versions and `.env.local` keys.

<Card title="ua-dynamic-7702 on GitHub" icon="github" href="https://github.com/soos3d/ua-dynamic-7702">
  Next.js demo: Dynamic embedded wallet, EIP-7702 delegation, and Universal Accounts cross-chain convert.
</Card>

For the full Particle-side API and provider comparison, see [EIP-7702 compatible embedded wallets](https://developers.particle.network/universal-accounts/ua-reference/desktop/eip-7702-wallets).
