← Back to home

Monet Bridge

Monet Bridge is a multi-chain zk light client bridge. Improving on existing solutions, our bridge supports burning wrapped tokens when bridging back the ERC20 to its original chain and unlocking the native tokens. We aim to be the dev tool for all dapps to bridge ERC20 tokens.

Screenshots

Monet Bridge screenshot 1
Monet Bridge screenshot 2
Monet Bridge screenshot 3
Monet Bridge screenshot 4

Problem Statement

We are building a network of zero knowledge light client pairwise bridges across Goerli, Gnosis, and Optimism. Specifically, our pairwise contract interface is implemented in two contracts: Deposit and Withdrawal. The Deposit contract checks whether the token being bridged is native and proceeds to lock or burn the token. In withdrawal, we emit the wrapped token in the destination chain or unlock the tokens from the Deposit contract if the tokens are being bridged back to their source chain. For our Relayer, we used Covalent’s API to watch for onchain events and sent the message to another chain.

Solution

The basis of our codebase is from the zk light client bridge design of Succinct LabsSpecifically, our pairwise contract interface is implemented in two contracts: Deposit and Withdrawal.The Deposit contract checks whether the token being bridged is native and proceeds to lock or burn the token.In withdrawal, we emit the wrapped token in the destination chain or unlock the tokens from the Deposit contract if the tokens are being bridged back to their source chain.For our Relayer, we used Covalent’s API to watch for onchain events and sent the message to another chain.Gnosis Chain: Our demo consists of a two-way bridge between Goerli and Gnosis. We deployed our bridge contract on the Goerli testnet and deployed our demo token Goofy token on Gnosis.Optimism: we deployed another bridge contract between Goerli and Optimism. We want dapps to be easily bridged to Optimism.Covalent: we called the Covalent API to look for events from our Deposit pairwise bridge contract to build our Relayer.QuickNode: we used quicknode’s RPC API.Tenderly: we’ve used Tenderly extensively throughout the project for debugging. Tenderly has been immensely helpful in helping us trace our errors.

Hackathon

ETHSanFrancisco 2022

2022

Prizes

  • 🏆

    🥇 Gnosis Chain — Best Use

  • 🏆

    🥇 Covalent — Best Use

Contributors