Crate risc0_steel

source ·
Expand description

Steel banner

§Steel - Boundless runtime for EVM apps

§Introducing Steel, a production-ready smart contract execution prover

Steel is a production-ready smart contract execution prover designed to bring boundless runtime to all EVM apps. Using execution proofs, Steel enables EVM apps to run offchain, while preserving onchain security. With Steel, you can prove correct smart contract execution without re-execution, allowing blockchain developers unbounded computation over on-chain data.

Our partners are already developing game-changing applications with Steel. One application has shown gas savings of 1.2 billion gas for a contract call using around 400,000 SLOADs. 1.2 billion gas is around 30 blocks worth of execution and this can be verified onchain in one proof, that costs under $10 to generate, and less than 300k gas to verify. Steel unlocks boundless application runtime, without rollups, without centralization, without re-writing your smart contracts, and without writing ZK circuits. The brakes are off.

§Getting Started with Steel

The recommended place is to start is Steel examples, specifically the ERC20 Counter example.

The create-steel-app script will allow you to set up the erc20-counter example locally in one command:

sh <(curl -fsSL https://raw.githubusercontent.com/risc0/risc0-ethereum/refs/heads/main/crates/steel/docs/create-steel-app/create-steel-app)

This example acts as your skeleton project structure for further development. Once the script is finished, you can run through a test workflow with either local proving or Bonsai proving. The documentation below uses the ERC20-counter example as a guide to explain Steel in detail.

You can watch this video tutorial for a quick runthrough of using the create-steel-app script to get started.

§Documentation

This documentation covers the core concepts of Steel. After reading, you will understand how Steel creates verifiable EVM execution proofs allowing you to carry out execution off-chain verifiably.

§Further Reading & Ask Questions

The RISC Zero dev docs are a great place to start to understand the zkVM in detail. If you have any questions, and/or just want to hang out with other builders, please join the RISC Zero Discord.

Re-exports§

Modules§

  • Types related to account queries.
  • Types related to commitments to the beacon block root.
  • Handling different blockchain specifications.
  • Type aliases and specifications for Ethereum.
  • eventunstable-event
    Types related to event queries.
  • historyunstable-history
    Types related to commitments to a historical state.
  • hosthost
    Functionality that is only needed for the host and not the guest.
  • Serde related helpers.

Structs§

  • Input committing to the corresponding execution block hash.
  • A builder for calling an Ethereum contract.
  • A Solidity struct representing a commitment used for validation.
  • A generalized input type consisting of a block-based input and a commitment wrapper.
  • Represents a contract that is initialized with a specific environment and contract address.
  • The environment to execute the contract calls in.
  • A sparse Merkle Patricia trie storing byte values.
  • Represents an TrieAccount in the account trie.
  • A simple MPT-based read-only EVM database implementation.
  • SteelVerifierunstable-verifier
    Represents a verifier for validating Steel commitments within Steel.

Enums§

Traits§