# Smart Contract Verification

<https://explorer.harmony.one/verifycontract>

Right now, we support verification only for one single solidity file - therefore, before deployment and verification, you will need to flatten all solidity sources to one file.

## 1. Flatten your Solidity Files

To flatten your solidity files we recommended to use [Truffle Flattener lib](https://www.npmjs.com/package/truffle-flattener).

```javascript
npm install truffle-flattener -g
truffle-flattener <solidity-files>
```

Or you can use any other flattener lib.

## 2. Deploy Contract to Harmony

To easy the verification we recommend the contract deployment using [Harmony Remix](https://docs.harmony.one/home/developers/deploying-on-harmony/using-remix/deployment-using-remix).

## 3. Verify Contract

You can verify your contract here: <https://explorer.harmony.one/verifycontract>

![Verify Contract](https://3781397247-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LlEOlYqEG_GKuO5Rehq%2F-Mez8JsChphkP1dA-qKL%2F-Mez8aLukIa32Qf8A5Wl%2Fsmart_contact_verification1.png?alt=media\&token=223d5dac-9c13-424d-b841-fa2a8a97eb79)

It is important to use the correct parameters (same as on deployment):

* Contract address
* Contract name
* Compiler version
* Optimizer
* Chain Type (mainnet or testnet)
* Sources
* Imported libs

Then click on **Submit** button. If all params are correct - you should to see a Success message, or an Error if bytecodes are not equal. On Success case - your contract will verify and you will see all contract details on contract explorer page.

![Contract Verification](https://3781397247-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LlEOlYqEG_GKuO5Rehq%2F-Mez8JsChphkP1dA-qKL%2F-Mez97Pbz97Vmyjscmnn%2Fsmart_contact_verification2.png?alt=media\&token=5c8832fb-1013-41e8-a868-33f2e1e7b5a4)
