---
description: >-
  Since web3 is verifiable, we will discuss the tools to verify the code we are
  interacting with
---

# Verify source code on Etherscan

Now that we have navigated to out contract address in Etherscan we will be able to verify that the functions that exist in the contract are the ones we are expecting to be there.

<figure><img src="https://62720068-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNQrWPKDHvXg0HQjwzHbY%2Fuploads%2F32qKElDGGU2n8G4n654N%2Fimage.png?alt=media&#x26;token=5cb285e0-5c6e-40c9-8edd-0c19a618adbc" alt=""><figcaption><p>Example Register Etherscan Display</p></figcaption></figure>

To do this, first select the tab labeled **Contract**

<figure><img src="https://62720068-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNQrWPKDHvXg0HQjwzHbY%2Fuploads%2FoehDlyCBkyTF7tiUI7jO%2Fimage.png?alt=media&#x26;token=0cf3c99b-c3d6-4437-a0c2-dc4b1977b7d7" alt=""><figcaption><p>Example Contract Display on Etherscan</p></figcaption></figure>

We can see three "views" -  the bytecode (the machine-readable version of our Solidity contract!), opcodes view and the similar contracts view. Since we have access to the original source code for this Register contract, we can **Verify and Publish** the code that we have associated with the contract address.

<figure><img src="https://62720068-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNQrWPKDHvXg0HQjwzHbY%2Fuploads%2FNppbincSa6tiz9J1qB2G%2Fimage.png?alt=media&#x26;token=79c7521d-f461-427d-9a66-2243595b53c6" alt=""><figcaption><p>Verify and Publish Display</p></figcaption></figure>

We will need to complete the forms information in our case, we will select

* Solidity (Single File): since our file is a simple single file contract
* Compiler v0.8.19+commit.hash: this was defined in our pragma portion of the Solidity code (the second line in our Register.sol file)
* License Type: MIT as defined in our code also (In production, you will need to research and select the License that best fits your organizations needs).

On the next screen we will paste the human-readable Solidity Code into the **Enter the Solidity Contract Code Below**.&#x20;

<figure><img src="https://62720068-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNQrWPKDHvXg0HQjwzHbY%2Fuploads%2FRfM2Y34WZ4hnZD0yloFB%2Fimage.png?alt=media&#x26;token=c7f43b21-6756-4962-ba2d-c97a779f5ffd" alt=""><figcaption><p>Example Register.sol upload contract source code</p></figcaption></figure>

Complete by selecting the captcha at the bottom and submit using **Verify and Publish**. Upon Successful Completion you will receive the following screen:\


<figure><img src="https://62720068-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNQrWPKDHvXg0HQjwzHbY%2Fuploads%2FoY4z9FAAqtyNKDm6eQTm%2Fimage.png?alt=media&#x26;token=d6414349-dd82-4a56-b4ad-cead02c508bc" alt=""><figcaption><p>Example Successful Confirmation</p></figcaption></figure>

While this is easy for you to do with your own code, you can also use this function to verify that other contract addresses have the smart contract code that is claimed to be there (provided you have the original Solidity code for that contract!).&#x20;

Now you are ready to start interacting with Web3 at large!
