# Setting the scene

What we have:

\------

What we need:

* The verification on **Gnosis Chain** chain of USDC total supply on **Optimism**.

How Hashi enables the Event verification:

* With **HashiAPI:** a offchain component used to retrieve the **Storage Proof** of a specific storage slot (the one holding the USDC total supply).
* With **HashiProver:** a onchain contract provided by Hashi which can verify the block proof provided by **HashiAPI**. **HashiProver** must be deployed on the target chain (**Gnosis Chain** in this case) and can be used in a custom contract which can use the Event proof verification provided by **HashiProver** itself.
* The proof will be verified using the latest block header that was relayed to Hashi from **Optimism** to **Gnosis Chain** (check the [Hashi explorer](https://crosschain-alliance.gitbook.io/hashi/meta/explorer)).

Steps followed in this example:

* Fetch the storage proof for the USDC total supply on **Optimism**.
* Deploy a custom contract on **Gnosis Chain** that will verify the event proof using **HashiProver**.
* Submitting the proof to the custom contract.
