In this article, let’s take a look at how zkSync is currently holding the assets. How they are represented on L1 and on L2(s) - as there are more chains in the zk chain ecosystem now.
When you ‘deposit’ assets into L2, the original asset on L1 is getting ‘locked’ in the bridge contract, and you receive a ‘wrapped’ asset on L2 chain.
When you ‘withdraw’ the process goes in opposite direction - you ‘burn’ your wrapped asset on L2, and this gives you the possibility to ‘claim’/’transfer’ the original asset on L1.
First, let’s find the bridge address on L1 for Era ecosystem: It is 0xD7f9f54194C633F36CCD5F3da84ad4a1c38cB2cB
You can find this and other addresses in the documentation:
https://docs.zksync.io/build/developer-reference/addresses/zk-chain-addresses
We can clearly see that it is holding ETH and some other ERC20 tokens.

Let’s look at the random token - for example IDO. Here we can see that there are 47.9M tokens ‘locked’ into this bridge contract on L1.
Let’s see how many are ‘minted’ on Era. Let’s start with list of tokens in zkSync explorer (explorer.zksync.io/tokens). There we can check IDO token address on L2 ( 0xDea6d5161978d36b5C0FA6a491faA754f4BC809C):

To see the total amount of tokens minted on L2, we have to query the contract itself:

And we can verify that the total supply is 47.9M (the number below is large, as you have to divide it by 10^18 decimals)

I’ve mentioned at the beginning of the article, that there are more networks in the ecosystem - and the L1 bridge hold the assets for all of them - and it also knows how much each network has.
For this, let’s go back to the L1 bridge contract, and query it:

But this time, we’ll querying chainBalance method:

For this part, let’s look at the CRONOS L1 token (0xa0b73e1ff0b80914ab6fe0444e65848c4c34450b) and see its balance on Cronos chain (chain id 388) and on Era (chain id 324). You can find chain id on chainlist.org page.


And now you can repeat the experiment from above, and go to Cronos explorer to verify that the amount of CRO tokens minted there is matching the value above.
explorer.zkevm.cronos.org/token/0xbcaa34ff9d5bfd0d948b18cf6bf39a882f4a1cbd#code

If you look carefully, you can see that the supply can differ a little - this is mostly due to deposits and withdrawals that are ‘in flight’. But the balance on L1, must be always greater than the one on L2 (otherwise it would mean that L2 minted some additional tokens without having their equivalent locked in L1).
Try doing the experiment above for other tokens - for example WBTC.

