# Smart Contracts

Smart contracts on MES are **upgradeable**. You may find the source code in our GitHub repository.

### Mainnet Contract Addresses:

<table><thead><tr><th width="203">Chain</th><th>Contract Address</th></tr></thead><tbody><tr><td>Ethereum Mainnet</td><td><pre data-full-width="true"><code>0x1f79BD2f67b35ddC08BFFa41e34EC2a83770B38B
</code></pre></td></tr><tr><td>zkSync Era</td><td><pre><code>0x174584AC2bA11D9D4b808407ef0F0e3e65CA08C2
</code></pre></td></tr><tr><td>Arbitrum One</td><td><pre><code>0x1f79BD2f67b35ddC08BFFa41e34EC2a83770B38B
</code></pre></td></tr><tr><td>Optimism</td><td><pre><code>0x1f79BD2f67b35ddC08BFFa41e34EC2a83770B38B
</code></pre></td></tr></tbody></table>

### Testnet Contract Addresses:

<table><thead><tr><th width="203">Chain</th><th>Contract Address</th></tr></thead><tbody><tr><td>Goerli Testnet</td><td><pre><code>0x2A0529679712FE748E948B03B2c6A25D71cedC7E
</code></pre></td></tr><tr><td>zkSync Testnet</td><td><pre><code>0x2dD687E37323BD71A3b31b28Dc6dEF2f2Addd9b5
</code></pre></td></tr><tr><td>Arbitrum Nitro</td><td><pre><code>0x669AD667907F604E9C6B4B8f025723F47AA9eA60
</code></pre></td></tr><tr><td>Optimism Goerli</td><td><pre><code>0x8f3Ddd0FBf3e78CA1D6cd17379eD88E261249B52
</code></pre></td></tr><tr><td>Polygon zkEVM Testnet</td><td><pre><code>0x34910cA595c135822f8DE908e29CD381f3EC9581
</code></pre></td></tr><tr><td>Linea Goerli</td><td><pre><code>0x8f3Ddd0FBf3e78CA1D6cd17379eD88E261249B52
</code></pre></td></tr><tr><td>Scroll Testnet</td><td><pre><code>0x8f3Ddd0FBf3e78CA1D6cd17379eD88E261249B52
</code></pre></td></tr><tr><td>Base Goerli</td><td><pre><code>0x8f3Ddd0FBf3e78CA1D6cd17379eD88E261249B52
</code></pre></td></tr></tbody></table>

We also deployed our own version of USDC and USDT on testnet. Here is a list of USDT and USDC addresses:<br>

<table><thead><tr><th width="203">Chain</th><th width="277">USDC Address</th><th>USDT Address</th></tr></thead><tbody><tr><td>Goerli Testnet</td><td><pre class="language-markup" data-overflow="wrap"><code class="lang-markup">0xC65e7B01910D456f594f13fB98eC0DEE2DD6797E
</code></pre></td><td><pre data-overflow="wrap"><code>0x3Bbb89820adFEc9C8a9fcbc241bba4F34A9707EB
</code></pre></td></tr><tr><td>zkSync Testnet</td><td><pre data-overflow="wrap"><code>0x1a866b77d516645Ccac77E0e38e2C2a137ca7ff2
</code></pre></td><td><pre data-overflow="wrap"><code>0xc481d47f31e52BaD6A277279E79Fc4aA61720815
</code></pre></td></tr><tr><td>Arbitrum Nitro</td><td><pre data-overflow="wrap"><code>0xe44f732337780EB1cEd38Afd641Bdf3056C2Ea2E
</code></pre></td><td><pre data-overflow="wrap"><code>0x73b391aeF25668cBeE298672a66F4FdFF98E06d1
</code></pre></td></tr><tr><td>Optimism Goerli</td><td><pre data-overflow="wrap"><code>0x3714A8C7824B22271550894f7555f0a672f97809
</code></pre></td><td><pre data-overflow="wrap"><code>0x6296Fa5C9Bd67A2C34b674d486cD557eEf89AB6c
</code></pre></td></tr><tr><td>Polygon zkEVM Testnet</td><td><pre data-overflow="wrap"><code>0xC65e7B01910D456f594f13fB98eC0DEE2DD6797E
</code></pre></td><td><pre data-overflow="wrap"><code>0x9654627Bda5a9a7c87f16fA77b14C353C0177DA3
</code></pre></td></tr><tr><td>Linea Goerli</td><td><pre data-overflow="wrap"><code>0xb77c5A8426Ee2af0Ef2A69FE1202DbAfFD0fBddF
</code></pre></td><td><pre data-overflow="wrap"><code>0x6296Fa5C9Bd67A2C34b674d486cD557eEf89AB6c
</code></pre></td></tr><tr><td>Scroll Testnet</td><td><pre data-overflow="wrap"><code>0xEe0Ed0EE9E7a64Dcf3D79B93bD6919843e9747aa
</code></pre></td><td><pre data-overflow="wrap"><code>0x9654627Bda5a9a7c87f16fA77b14C353C0177DA3
</code></pre></td></tr><tr><td>Base Goerli</td><td><pre data-overflow="wrap"><code>0x34910cA595c135822f8DE908e29CD381f3EC9581
</code></pre></td><td><pre data-overflow="wrap"><code>0x6296Fa5C9Bd67A2C34b674d486cD557eEf89AB6c
</code></pre></td></tr></tbody></table>
