Skip to content

celestiaorg/celestia-zkevm-ibc-demo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ZK EVM IBC demo

Warning

This repository is a work in progress and under active development.

This repo exists to showcase transferring tokens between SimApp (a Cosmos SDK chain representing Celestia) and a ZK proveable EVM via IBC V2 (formerly known as IBC Eureka) and the IBC V2 solidity contracts. The diagram below is meant to detail the components involved and, at a high level, how they interact with one another.

mvp-zk-accounts

For more information refer to the architecture. Note that the design is subject to change.

Usage

Preamble

SP1 supports generating proofs in mock mode or network mode. By default, mock mode is used which is faster for testing and development purposes. Network mode is used for production purposes to generate real proofs. To use network mode, modify your .env file:

SP1_PROVER=network
NETWORK_PRIVATE_KEY="PRIVATE_KEY" to the SP1 prover network private key from Celestia 1Password

Prerequisites

  1. Install Docker
  2. Install Rust
  3. Install Foundry
  4. Install Bun
  5. Install Just
  6. Install SP1

Steps

  1. Fork this repo and clone it

  2. Set up the git submodule for solidity-ibc-eureka

    git submodule init
    git submodule update
  3. Create the .env file in this repo

    cp .env.example .env
  4. Install contract dependencies and the SP1 Tendermint light client operator binary from solidity-ibc-eureka.

    make install-dependencies
  5. Run the demo

    # This runs make start, setup, and transfer
    make demo

Architecture

See ARCHITECTURE.md for more information.

Contributing

See CONTRIBUTING.md for more information.