Alright. Let's walk you through the Mina state proof in-EVM verification process.

First of all, we need Mina's state proof and it's verification key.
When Chainsafe finish their Mina protocol implementation,
it will be possible to retrieve it automatically right in browser.
But for now we got the sample of it for you in here already.

Now, state proof needs to be preprocessed.
Wait a minute, while auxiliary proof generator wraps Kimchi proof verification
into auxiliary proof.

The waiting time depends on a particular machine's performance.


Now it is time to submit the preprocessed proof to Ethereum's Ropsten or Polygon's Mumbai.

Proof verification is going to cost about 2.5m gas.

You can get some rETH with some of these faucets:
https://faucet.metamask.io/
https://faucet.egorfine.com/

Polygon's Mumbai test MATIC tokens can be received from Polygon Technology's faucet: https://faucet.polygon.technology/



Connect Metamask.


Alright, let's see the result.

So, what does that mean?

We've just verified a part of Mina's state proof on Ethereum's Ropsten or Polygon's Mumbai (depending on what you've picked).
It means that a part of Mina's state is now known to be valid on Ethereum's Ropsten or Polygon's Mumbai. We still don't have the actual Mina's data on EVM, but now we can verify it's validity.


That means every time someone tries to put some Mina's actual state data on EVM, we can:

1. Request a Mina's state Merkle tree Poseidon hash.

2. Verify the Kimchi state proof using it as a public assignment.

3. If the verification was successful, put the data through the Ouroboros's chain selection rule to make sure replication packet was finalized on Mina's side.

4. If all those checks passed, we can use this new Mina's state data on EVM side as plaintext one - to request some account's balance for example.


What there is left regarding this:

1. Finalize the in-EVM verification part.

2. Work with the auditors.

3. Implement the in-EVM Ouroboros chain selection rule so Mina's plaintext data could be put on EVM.

Meanwhile, stay tuned on Twitter and keep track of progress in Github repository.