ZetaChain is a blockchain designed for universal apps—smart contracts on the ZetaChain EVM that are natively connected to other blockchains like Ethereum, BNB, Solana, and Bitcoin.
A universal app can accept incoming contract calls, messages, and token transfers from connected chains and initiate outgoing transactions to those chains.
Each chain, including ZetaChain, has a Gateway. On ZetaChain and EVM chains, the Gateway is a smart contract; on Solana, it is a program; and on Bitcoin, it is an address. All interactions with universal apps happen through Gateways.
ZetaChain acts as a hub in the hub-spoke-model and developers build universal apps that can orchestrate cross-chain transactions. This architecture allows most of the app's logic to be encapsulated in a single universal contract.
Native Token Transfer
Universal apps can accept transfers of supported native tokens from connected chains. For example, native USDC can be transferred (deposited) from Ethereum through the Gateway to a universal app on ZetaChain. Assets transferred from connected chains are represented as ZRC-20 tokens on ZetaChain. A ZRC-20 token can be transferred back (withdrawn) to its origin chain as a native asset. To facilitate native token transfers ZetaChain validators maintain custody of tokens on every connected chain. Tokens get locked in the custody when being transferred to ZetaChain and get unlocked when being transferred from ZetaChain.
There are ZRC-20 liquidity pools on ZetaChain, which can be used by universal apps to swap between ZRC-20s and other tokens, to acquire ZRC-20 to pay for gas for outgoing transactions and by the ZetaChain protocol to handle gas when processing reverts.
Gas Fees
Making an incoming call or a deposit to a universal app only costs a gas fee on the connected chain from which the call is made. Execution of universal apps is free when called from a connected chain.
Making an outgoing call or a withdrawal from a universal app costs a gas fee on the destination chain. The Gateway charges a universal app making a call in ZRC-20 token. To cover the gas fee a universal app can swap tokens