Overview

EtaFinance Bridge is trustless cross-chain liquidity bridge, designed to simplify and streamline token transfers across multiple chains.

With EtaFinance Bridge, users can transfer $USDC between supported chains in a single transaction—eliminating the need for wrapping or unwrapping tokens. The platform is designed to be simple, fast, secure, and cost-effective.

Key Features:

  • Open-Source & Trustless: EtaFinance Bridge operates without a centralised authority or a fixed group of validators. All core logic is implemented in publicly verified and accessible smart contracts.
  • Decentralized Validation: Cross-chain transactions are validated using the LayerZero protocol, which allows anyone to become a validator. Currently we use validators from BCW, LayerZero, and Horizen Labs, expanding this list in the future as more validators appear.
  • Single transaction. With classic bridges you have to do several steps, including buying wrapped tokens, which leads to losses from price impact. Unlike classic bridges, EtaFinance Bridge operates based on native token liquidity stored on both ends, where the user puts tokens into the treasury on the source chain, we verify the transaction, and send them tokens from the treasury on the destination chain.

How it works

EtaFinance Bridge has adapters deployed on each supported chain. These adapters contain liquidity. Bridging happens in the following scenario:

  1. User signs an approval transaction for X amount of tokens to bridge.
  2. User calls the bridgeTokens method on the source chain. The smart contract takes X amount of tokens and initiates a LayerZero message.
  3. After validation by DVNs, the LayerZero executor delivers the message to the destination chain adapter, which allocates (X - fee) amount of tokens and sends them to the user.

In order to execute a transaction on the destination chain, the adapter on that chain must have enough liquidity on its balance. If at that moment the adapter doesn't have enough liquidity, the transaction issued by the LayerZero executor will fail. If a message fails due to lack of liquidity, the user needs to wait until liquidity is rebalanced and execute the message manually (or reach out to the team for help). On https://eta.finance/bridge UI we display a warning and prevent the user from bridging if the destination adapter does not have enough liquidity. However, if you are going to call the smart contract directly or build your own UI, you should check if there is a sufficient amount of liquidity on the destination chain before initiating a transaction.

If message delivery fails for any reason on the destination chain, it can be executed later manually.