# Bridging

### Introduction <a href="#introduction" id="introduction"></a>

Bridging is implemented by having two contracts (one deployed to L1, and the second deployed to L2) communicating with each other using [L1 <-> L2 interoperability](https://era.zksync.io/docs/dev/developer-guides/bridging/l1-l2-interop.html).

Developers are free to build their own bridge for any token. However, we provide our default bridges (one for ETH and one for ERC20 tokens), which can be used for basic bridging.

{% hint style="info" %}
Addresses of tokens on L2 will always differ from the same token L1 address.
{% endhint %}

**Zksync Bridge**：

{% embed url="<https://bridge.zksync.io/>" %}

**Other bridges**：

{% embed url="<https://celer.network/>" %}

{% embed url="<https://www.orbiter.finance/>" %}

{% embed url="<https://multichain.org/>" %}
