Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
117 changes: 117 additions & 0 deletions content/impact/chain-abstraction.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
---
title: Chain Abstraction at OpenZeppelin
---

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.

## Ecosystem Contributions

We have partnered with ecosystems and projects to deliver contracts libraries and tooling for cross-chain coordination and smart accounts.

<Cards>
<Card title="Ethereum & EVM" href="https://github.com/OpenZeppelin/openzeppelin-contracts/tree/master/contracts/account">
Contracts libraries for modular smart accounts in Solidity
</Card>

<Card title="Axelar" href="https://github.com/OpenZeppelin/openzeppelin-contracts/tree/master/contracts/crosschain">
Contracts libraries for cross-chain messaging in Solidity
</Card>

<Card title="Open Intents Framework" href="https://github.com/openintentsframework">
Contracts libraries in Solidity and solvers for cross-chain intents
</Card>

<Card title="Starknet" href="https://github.com/OpenZeppelin/cairo-contracts/tree/main/packages/account">
Contracts libraries for smart accounts in Cairo
</Card>

<Card title="Stellar" href="https://github.com/OpenZeppelin/stellar-contracts/tree/main/packages/accounts">
Contracts libraries for smart accounts in Soroban
</Card>

<Card title="zkEmail" href="https://github.com/OpenZeppelin/openzeppelin-community-contracts/tree/master/contracts/utils/cryptography">
Cryptography contracts libraries in Solidity for transactions and social recovery using email
</Card>
</Cards>

## Cross-Chain Intents

Universal format for expressing and fulfilling user actions across chains.

### Use Cases

- **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.

- **Abstracted Gas and Settlement**: Allows operation across multiple chains without managing native gas tokens or complex bridge flows.

- **Token Bridging and Swapping**: Enable seamless asset transfers and swaps across chains, abstracting away bridge risks and fragmented liquidity.

- **Universal Balances**: Users can maintain a single cross chain balance, allowing applications to fetch, display, and transact from unified liquidity sources.

### Standards

- **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).

- **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).

### Associations

- **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.

## Cross-Chain Messaging

Common interface for sending and receiving messages across chains.

### Use Cases

- **State Synchronization for Multi-Chain Apps**: Use single controller contract or governance action to coordinate updates on multiple chains.

- **Token Bridges**: Enables verifiable message passing between bridge contracts, ensuring consistent state and transfer logic across multiple chains without relying on trusted intermediaries.

- **Intent Settlement**: Facilitates secure delivery and confirmation of intent execution results across chains, allowing applications to finalize actions and synchronize states.

### Standards

- **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).

## Smart Accounts

Composable architecture that enables customizable modules to support secure and extensible account functionality.

### Use Cases

- **Gasless Transactions**: Allow users to interact with apps without holding native tokens, enabling seamless onboarding.

- **Social Recovery**: Allow trusted guardians to securely restore access to accounts without centralized intermediaries.

- **Keyless Signatures**: Authenticate and approve transactions using biometrics, hardware modules, or passkeys instead of a traditional private key.

### Standards

- **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.

- **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.

- **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.

- **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).

- **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).

- **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).

- **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).

## Private Email Verification

Ownership of accounts using email.

### Use Cases

- **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!

- **Recover Account Using Email Gaurdians**: Lost keys can be restored by proving control of an email account, enabling user-friendly recovery.

### Standards

- **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).
Loading