https://github.com/zeta-chain/protocol-contracts-evm
Protocol contracts implementing the core logic of the protocol, deployed on ZetaChain and on connected chains
https://github.com/zeta-chain/protocol-contracts-evm
Last synced: 2 months ago
JSON representation
Protocol contracts implementing the core logic of the protocol, deployed on ZetaChain and on connected chains
- Host: GitHub
- URL: https://github.com/zeta-chain/protocol-contracts-evm
- Owner: zeta-chain
- License: mit
- Created: 2023-04-14T09:15:58.000Z (over 3 years ago)
- Default Branch: develop
- Last Pushed: 2026-05-22T16:02:59.000Z (2 months ago)
- Last Synced: 2026-05-22T20:44:42.501Z (2 months ago)
- Language: TypeScript
- Homepage:
- Size: 16.4 MB
- Stars: 82
- Watchers: 5
- Forks: 70
- Open Issues: 42
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
- awesome-ccamel - zeta-chain/protocol-contracts-evm - Protocol contracts implementing the core logic of the protocol, deployed on ZetaChain and on connected chains (TypeScript)
README
# ZetaChain Protocol Contracts
Contracts of official protocol contracts deployed by the core ZetaChain team.
## Learn more about ZetaChain
* Check our [website](https://www.zetachain.com/).
* Read our [docs](https://docs.zetachain.com/).
## Codebase
The protocol contracts codebase is separated into two sections:
- `zevm`: contracts deployed on ZetaChain
- `evm`: contracts deployed on EVM connected chains (Ethereum, Base, etc..)
**ZEVM Contracts**
- `GatewayZEVM`: entrypoints for interaction. The users call the gateway contract to initiate cctx. The gateway contract is also the contract calling the target when a smart contract call is initiated on a connected chain
- `ZRC20`: is a ERC20 compliant contract that represents fungible assets from connected chains
- `WZETA`: wrapped ZETA (fork of WETH)
**EVM Contracts**
- `GatewayEVM`: similar to GatewayZEVM for connected chains. Entrypoint for users.
- `ERC20Custody`: hold ERC20 assets being sent to ZetaChain
- `ZetaConnector`: manage ZETA for connected chains. There are two version of the contract:
- Native: when the ZETA tokens are native to the chain (ZETA where initially deployed as a ERC20 on Ethereum, not emitted fully on ZetaChain). Use lock/unlock model.
- Non-Native: when ZETA tokens where never native to the chains but withdrawn from ZetaChain. Use mint/burn model.
- TSS (EOA): Threshold-signature-scheme wallet, this address holds the gas token sent to ZetaChain (like Ethers)
[Learn more about the Gateway contracts](https://www.zetachain.com/docs/developers/evm/gateway/)
## Usage
**Install dependencies**
```shell
$ yarn
$ forge soldeer update
```
**Build**
```shell
$ forge build
```
**Test**
```shell
$ forge test
```
**Format**
```shell
$ forge fmt
```
**Deploy**
```shell
$ forge script script/.s.sol: --rpc-url --private-key
```
To view detailed instructions on how to deploy the contracts, please refer to the [Deployment Guide](./scripts/deploy/readme.md).
This guide covers all steps required to deploy the contracts, including environment setup, commands, and best practices.
## Community
[X](https://x.com/zetachain) | [Discord](https://discord.com/invite/zetachain) | [Telegram](https://t.me/zetachainofficial) | [Website](https://zetachain.com)