# Validating your statements

Once you’ve fetched the proof, you can now verify it using a contract on **Gnosis Chain**. The contract will use the **HashiProver** helper library to check the proof against the block header stored on **Gnosis Chain**.

**Deploying the Verification Contract on Gnosis Chain**

Here is the contract that you will deploy on **Gnosis Chain** to read and verify the USDC total supply on **Optimism**:

**Explanation**:

This contract uses

**HashiProver**to verify the storage proof fetched earlier from**Optimism**.It checks that the proof is from

**Optimism**(chain ID 10), and that the USDC contract address and storage key match the expected values.The

`verifyForeignStorage`

function validates the proof against the block header stored on**Gnosis Chain**, which was relayed from**Optimism**.If the proof is valid, the contract emits the

**total supply**of USDC on Optimism.

**Submitting the Proof**

Once the contract is deployed on **Gnosis Chain**, you can submit the proof fetched from the API using the following command:

This will trigger the contract to verify the proof using the block header stored in Hashi from **Optimism**. If the proof is valid, the **total supply of USDC** will be emitted.

Last updated