Overview
ZetaChain is a blockchain for universal omnichain apps that span across any blockchain, from Ethereum and Cosmos to Bitcoin and beyond.
Universal Apps
Universal apps are smart contracts deployed on ZetaChain's universal EVM. A universal app implemented as a single contract on ZetaChain can both natively access and be accessed from connected chains (such as Ethereum or Bitcoin).
Users on connected chains can interact with universal apps on ZetaChain by passing messages containing arbitrary data and tokens, both native gas and supported ERC-20s. To interact with a universal app a user only has to sign a single transaction on a connected chain, the rest is taken care by ZetaChain's Chain Abstraction Framework.
Universal apps can generate outbound transactions on connected chains: both token transfers and contract calls.
The ability to receive inbound messages and tokens and generate outbound contract calls and tokens transfers enables universal apps to orchestrate complex multi-step transactions that span across chains.
Universal EVM
ZetaChain's universal EVM is an Ethereum-compatible virtual machine enhanced with omnichain interoperability features, enabling the development of robust universal apps.
Each universal app contract has a special function called onCrossChainCall
.
This function is executed every time someone calls a universal app from a
connected chain. A message with data and the tokens are passed to this function.
Tokens transferred from connected chains to universal apps are represented in the universal EVM as ZRC-20 tokens. For instance, when a user sends ETH from Ethereum to a universal app on ZetaChain, the app receives the equivalent amount in ZRC-20 ETH tokens. These ZRC-20 tokens can be withdrawn back to the corresponding connected chain.
Universal apps can also make contract calls on connected chains using the Connector API. ZetaChain and connected smart contract chains have a connector contract capable of sending messages and ZETA tokens between chains.
Chain Abstraction Framework (CAF)
The Chain Abstraction Framework (CAF) is the connectivity layer of ZetaChain. It is powered by a decentralized network of observer-signer validators who run nodes of connected chains and an off-chain program called ZetaClient.
ZetaClient is responsible for observing connected chains for inbound transactions, casting votes for observed inbound transactions, and signing outbound transaction on behalf of the protocol.
ZetaClient is responsible for observing inbound transactions on connected chains, voting on these transactions, and signing outbound transactions on behalf of the protocol. The observer-signer validators collectively hold custody of tokens transferred from connected chains to ZetaChain's universal EVM using the Threshold Signature Scheme (TSS) process. Each connected blockchain has a special TSS address, and transferring tokens and data to this address triggers calls to universal apps.
Additionally, each smart contract chain has an ERC-20 custody contract that
holds custody of ERC-20 tokens transferred to ZetaChain. Calling the deposit
method of this contract also triggers calls to universal apps.
Observer-signer validators running ZetaClient provide a seamless omnichain interoperability layer, simplifying the complexity of building omnichain universal apps and enhancing the user experience.