|
| 1 | +--- |
| 2 | +title: Chain Abstraction at OpenZeppelin |
| 3 | +--- |
| 4 | + |
| 5 | +Our work focuses on building the secure primitives for cross-chain messaging, intent-based execution, and unified account experiences, creating a world where users and assets move freely across ecosystems with complexity abstracted away from users. |
| 6 | + |
| 7 | +## Ecosystem Contributions |
| 8 | + |
| 9 | +We have partnered with ecosystems and projects to deliver contracts libraries and tooling for cross-chain coordination and smart accounts. |
| 10 | + |
| 11 | +<Cards> |
| 12 | + <Card title="Ethereum & EVM" href="https://github.com/OpenZeppelin/openzeppelin-contracts/tree/master/contracts/account"> |
| 13 | + Contracts libraries for modular smart accounts in Solidity |
| 14 | + </Card> |
| 15 | + |
| 16 | + <Card title="Axelar" href="https://github.com/OpenZeppelin/openzeppelin-contracts/tree/master/contracts/crosschain"> |
| 17 | + Contracts libraries for cross-chain messaging in Solidity |
| 18 | + </Card> |
| 19 | + |
| 20 | + <Card title="Open Intents Framework" href="https://github.com/openintentsframework"> |
| 21 | + Contracts libraries in Solidity and solvers for cross-chain intents |
| 22 | + </Card> |
| 23 | + |
| 24 | + <Card title="Starknet" href="https://github.com/OpenZeppelin/cairo-contracts/tree/main/packages/account"> |
| 25 | + Contracts libraries for smart accounts in Cairo |
| 26 | + </Card> |
| 27 | + |
| 28 | + <Card title="Stellar" href="https://github.com/OpenZeppelin/stellar-contracts/tree/main/packages/accounts"> |
| 29 | + Contracts libraries for smart accounts in Soroban |
| 30 | + </Card> |
| 31 | + |
| 32 | + <Card title="zkEmail" href="https://github.com/OpenZeppelin/openzeppelin-community-contracts/tree/master/contracts/utils/cryptography"> |
| 33 | + Cryptography contracts libraries in Solidity for transactions and social recovery using email |
| 34 | + </Card> |
| 35 | +</Cards> |
| 36 | + |
| 37 | +## Cross-Chain Intents |
| 38 | + |
| 39 | +Universal format for expressing and fulfilling user actions across chains. |
| 40 | + |
| 41 | +### Use Cases |
| 42 | + |
| 43 | +- **Simplified Onboarding to Chains and Apps**: Onboard users by automating gas, approvals, and cross chain setup, allowing users to interact with any app or network instantly without prior configuration. |
| 44 | + |
| 45 | +- **Abstracted Gas and Settlement**: Allows operation across multiple chains without managing native gas tokens or complex bridge flows. |
| 46 | + |
| 47 | +- **Token Bridging and Swapping**: Enable seamless asset transfers and swaps across chains, abstracting away bridge risks and fragmented liquidity. |
| 48 | + |
| 49 | +- **Universal Balances**: Users can maintain a single cross chain balance, allowing applications to fetch, display, and transact from unified liquidity sources. |
| 50 | + |
| 51 | +### Standards |
| 52 | + |
| 53 | +- **ERC-7683: Cross Chain Intents** (draft): A [standard](https://eips.ethereum.org/EIPS/eip-7683) that enables cross chain value transfer using a standard api. OpenZeppelin is a contributor to and leading the redesign of the ERC through the [Open Intents Framework](https://www.openintents.xyz) and is building contracts libraries in the [Open Intents Framework Contracts Repo](https://github.com/openintentsframework/oif-contracts). |
| 54 | + |
| 55 | +- **ERC-7888: Cross Chain Broadcaster** (draft): A [standard](https://eips.ethereum.org/EIPS/eip-7888) that enables cross chain messaging using storage proofs. OpenZeppelin is a contributor to the ERC through the [Open Intents Framework](https://www.openintents.xyz) and is building contracts libraries in the [Open Intents Framework Broadcaster Repo](https://github.com/openintentsframework/broadcaster). |
| 56 | + |
| 57 | +### Associations |
| 58 | + |
| 59 | +- **Open Intents Framework**: The [group](https://www.openintents.xyz/) is building a modular, open source framework for building and deploying intent product experiences by providing ready-to-use, protocol-agnostic features for solvers, interop providers, and cross-chain builders. OpenZeppelin is a [member](https://www.openintents.xyz/#1976d35200d68051bfe5f0bdb3ced9bc) with many major organizations. |
| 60 | + |
| 61 | +## Cross-Chain Messaging |
| 62 | + |
| 63 | +Common interface for sending and receiving messages across chains. |
| 64 | + |
| 65 | +### Use Cases |
| 66 | + |
| 67 | +- **State Synchronization for Multi-Chain Apps**: Use single controller contract or governance action to coordinate updates on multiple chains. |
| 68 | + |
| 69 | +- **Token Bridges**: Enables verifiable message passing between bridge contracts, ensuring consistent state and transfer logic across multiple chains without relying on trusted intermediaries. |
| 70 | + |
| 71 | +- **Intent Settlement**: Facilitates secure delivery and confirmation of intent execution results across chains, allowing applications to finalize actions and synchronize states. |
| 72 | + |
| 73 | +### Standards |
| 74 | + |
| 75 | +- **ERC-7786: Cross Chain Messaging Gateway** (last call): A [standard](https://eips.ethereum.org/EIPS/eip-7786) that enables cross-chain messaging via a universal gateway interface. OpenZeppelin co-authored the standard with Axelar and is building contracts libraries in the [OpenZeppelin Solidity Community Contracts Repo](https://github.com/OpenZeppelin/openzeppelin-community-contracts/tree/master/contracts/crosschain). |
| 76 | + |
| 77 | +## Smart Accounts |
| 78 | + |
| 79 | +Composable architecture that enables customizable modules to support secure and extensible account functionality. |
| 80 | + |
| 81 | +### Use Cases |
| 82 | + |
| 83 | +- **Gasless Transactions**: Allow users to interact with apps without holding native tokens, enabling seamless onboarding. |
| 84 | + |
| 85 | +- **Social Recovery**: Allow trusted guardians to securely restore access to accounts without centralized intermediaries. |
| 86 | + |
| 87 | +- **Keyless Signatures**: Authenticate and approve transactions using biometrics, hardware modules, or passkeys instead of a traditional private key. |
| 88 | + |
| 89 | +### Standards |
| 90 | + |
| 91 | +- **ERC-4337: Account Abstraction Using Alt Mempool** (final): A [standard](https://eips.ethereum.org/EIPS/eip-4337) that enables account abstraction using an alternative mempool. OpenZeppelin has built contracts libraries for modular smart accounts in the [OpenZeppelin Solidity Contracts Repo](https://github.com/OpenZeppelin/openzeppelin-contracts/tree/master/contracts/account) and [Wizard](https://wizard.openzeppelin.com/#account) integration. |
| 92 | + |
| 93 | +- **ERC-7579: Minimal Modular Smart Accounts** (draft): A [standard](https://eips.ethereum.org/EIPS/eip-7579) that enables interoperability between accounts and modules. OpenZeppelin has built contracts libraries for modules in the [OpenZeppelin Solidity Community Contracts Repo](https://github.com/OpenZeppelin/openzeppelin-community-contracts/tree/master/contracts/account/modules) and [Wizard](https://wizard.openzeppelin.com/#account) integration. |
| 94 | + |
| 95 | +- **EIP-7702: Set Code for EOAs** (complete): A [protocol standard](https://eips.ethereum.org/EIPS/eip-7702) that enables EOA’s to adopt smart contract capabilities using a new transaction type to set code in their account. OpenZeppelin has built contracts libraries for modules in the [OpenZeppelin Solidity Contracts Repo](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/cryptography/signers/SignerEIP7702.sol) and [Wizard](https://wizard.openzeppelin.com/#account) integration. |
| 96 | + |
| 97 | +- **ERC-7739: Readable Typed Signatures for Smart Accounts** (draft): A [standard](https://eips.ethereum.org/EIPS/eip-7739) for a defensive rehashing scheme which prevents signature replays across smart accounts and preserves the readability of the signed contents. OpenZeppelin co-authored the standard and is building contracts libraries in the [OpenZeppelin Solidity Contracts Repo](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/cryptography/signers/draft-ERC7739.sol). |
| 98 | + |
| 99 | +- **ERC-7821: Minimal Batch Executor Interface** (draft): A [standard](https://eips.ethereum.org/EIPS/eip-7821) for a minimal batch executor interface for delegations. OpenZeppelin co-authored the standard and is building contracts libraries in the [OpenZeppelin Solidity Contracts Repo](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/account/extensions/draft-ERC7821.sol). |
| 100 | + |
| 101 | +- **ERC-7913: Signature Verifiers** (draft): A [standard](https://eips.ethereum.org/EIPS/eip-7913) that enables signature verification for address-less keys (e.g. email, non-ethereum cryptographic curves). OpenZeppelin authored the standard and is building contracts libraries in the [OpenZeppelin Solidity Contracts Repo](https://github.com/OpenZeppelin/openzeppelin-contracts/tree/master/contracts/utils/cryptography/verifiers). |
| 102 | + |
| 103 | +- **SNIP-6: Standard Account Interface** (review): A [standard](https://github.com/starknet-io/SNIPs/blob/main/SNIPS/snip-6.md) for a standard interface for accounts. OpenZeppelin co-authored the standard and is building contracts libraries in the [OpenZeppelin Staknet Cairo Contracts Repo](https://github.com/OpenZeppelin/cairo-contracts/tree/main/packages/account). |
| 104 | + |
| 105 | +## Private Email Verification |
| 106 | + |
| 107 | +Ownership of accounts using email. |
| 108 | + |
| 109 | +### Use Cases |
| 110 | + |
| 111 | +- **Send Crypto Using Only Email Address**: Users can authorize transactions (e.g. send money, DAO voting, any blockchain transaction) by proving control of their email address with no private key management required. Email never revealed! |
| 112 | + |
| 113 | +- **Recover Account Using Email Gaurdians**: Lost keys can be restored by proving control of an email account, enabling user-friendly recovery. |
| 114 | + |
| 115 | +### Standards |
| 116 | + |
| 117 | +- **ERC-7969: DomainKeys Identified Mail (DKIM) Registry** (draft): A [standard](https://eips.ethereum.org/EIPS/eip-7969) that enables trustless email ownership verification using a DKIM restistry. OpenZeppelin co-authored with OKX and is building contracts libraries in the [OpenZeppelin Solidity Community Contracts Repo](https://github.com/OpenZeppelin/openzeppelin-community-contracts/blob/master/contracts/utils/cryptography/DKIMRegistry.sol). |
0 commit comments