# Chain Abstraction with Safe Unified Account

*Sign once, execute on every chain.*

Safe Unified Account is a Safe module that enables chain abstraction. Instead of signing separately on each chain, you sign once and that single signature authorizes execution across every chain you target. This works across any EVM chain where Safe is deployed: L2 rollups, sidechains like Gnosis Chain, and other L1s.

## Demo[​](#demo "Direct link to Demo")

Try the live demo at **[unified.candide.dev](https://unified.candide.dev)**

## Start Integrating[​](#start-integrating "Direct link to Start Integrating")

Paste this into your agent to integrate the Safe Unified Account:

* Claude Code
* Codex CLI
* Chat Agents
* Raw URL

```
claude "Read https://docs.candide.dev/safe-unified-account-agent-skill.md and integrate the Safe Unified Account"
```

```
codex "Read https://docs.candide.dev/safe-unified-account-agent-skill.md and integrate the Safe Unified Account"
```

Paste this into Cursor, Windsurf, Copilot, or any chat-based agent:

```
Fetch https://docs.candide.dev/safe-unified-account-agent-skill.md and use it to integrate the Safe Unified Account
```

```
https://docs.candide.dev/safe-unified-account-agent-skill.md
```

Drop this file into your agent's system prompt or knowledge base.

## What You Can Do[​](#what-you-can-do "Direct link to What You Can Do")

| Action                                 | Without Chain Abstraction         | With Safe Unified Account                                                   |
| -------------------------------------- | --------------------------------- | --------------------------------------------------------------------------- |
| Consolidate USDC/USDT to one chain     | Bridge from each chain separately | 1 signature triggers transfers via CCTP or LayerZero from all source chains |
| Replace owner on 5 chains              | 5 signing sessions                | 1 signature                                                                 |
| Add recovery guardian on 5 chains      | 5 signing sessions                | 1 signature                                                                 |
| Update multisig threshold on 5 chains  | 5 signing sessions                | 1 signature                                                                 |
| Deploy consistent config to new chains | Manual per-chain setup            | 1 signature                                                                 |

## Audits[​](#audits "Direct link to Audits")

* [Audit Report by Nethermind (NM-0874)](https://github.com/candidelabs/safe-4337-multi-chain-signature-module/blob/main/audit/NM_0874_Candide_safe.pdf)
* [Safe 4337 Multi-Chain Signature Module repository](https://github.com/candidelabs/safe-4337-multi-chain-signature-module)

## Examples[​](#examples "Direct link to Examples")

| Example         | Description                                                | Code                                                                                                                                        |
| --------------- | ---------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
| Add Owner       | Add an owner across chains with one signature              | [add-owner.ts](https://github.com/candidelabs/abstractionkit-examples/blob/main/chain-abstraction/add-owner.ts)                             |
| Add Guardian    | Sync recovery guardians across chains                      | [add-guardian.ts](https://github.com/candidelabs/abstractionkit-examples/blob/main/chain-abstraction/add-guardian.ts)                       |
| Passkey Signing | Use WebAuthn/passkeys for multichain signing               | [add-owner-passkey.ts](https://github.com/candidelabs/abstractionkit-examples/blob/main/chain-abstraction/add-owner-passkey.ts)             |
| EIP-712 Signing | Wallet-compatible signing for browser and hardware wallets | [add-owner-eip712-signed.ts](https://github.com/candidelabs/abstractionkit-examples/blob/main/chain-abstraction/add-owner-eip712-signed.ts) |

## Get Started[​](#get-started "Direct link to Get Started")

Follow the [Getting Started guide](https://docs.candide.dev/wallet/guides/chain-abstraction-getting-started.md) to add an owner across multiple chains with a single signature.

For the full SDK method reference, see [Safe Unified Account SDK Reference](https://docs.candide.dev/wallet/abstractionkit/safe-unified-account.md).

***

*Technical questions? Reach out on [Discord](https://discord.gg/MfbK7aNWsY) or [GitHub](https://github.com/candidelabs)*.
