Crate risc0_steel

Source
Expand description

Steel banner

§Steel: The ZK Coprocessor for EVM Apps

“Unbounded EVM computation made simple”

Steel lets Solidity developers effortlessly scale their applications by moving computation offchain without compromising on onchain security. Steel drastically reduces gas costs and this enables previously impossible applications.

Steel pulls state from any EVM chain, performs verifiable computation across multiple blocks offchain, and generates concise execution proofs. Developers simply verify these proofs onchain to access boundless compute, without worrying about gas limits.

** Example **

A single Steel proof has verified a computation equivalent to 30 Ethereum blocks—saving 1.2 billion gas—generated for under $10 and verified onchain for under 300k gas.

§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/boundless-xyz/steel/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.

§Documentation

Steel Documentation can be found on the Boundless Docs. risc0-steel also has crate 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§

pub use account::Account;
pub use beacon::BeaconInput;
pub use event::Event;
pub use history::HistoryInput;
pub use alloy;host
pub use revm;

Modules§

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

Structs§

BlockInput
Input committing to the corresponding execution block hash.
CallBuilder
Represents a prepared EVM contract call, ready for configuration and execution.
Commitment
A Solidity struct representing a commitment used for validation within Steel proofs.
ComposeInput
A generalized input type consisting of a block-based input and a commitment wrapper.
Contract
Represents a contract instance for interacting with EVM environments.
EvmEnv
Represents the complete execution environment for EVM contract calls.
MerkleTrie
A sparse Merkle Patricia trie storing byte values.
StateAccount
Represents an TrieAccount in the account trie.
StateDb
A simple MPT-based read-only EVM database implementation.
SteelVerifier
Represents a verifier for validating Steel commitments within Steel.

Enums§

CommitmentVersion
Version identifier for a Commitment, indicating the type of claim.
EvmInput
The serializable input to derive and validate an EvmEnv from.

Traits§

BlockHeaderCommit
A trait linking the block header to a commitment.
EvmBlockHeader
An EVM abstraction of a block header.
EvmDatabase
A database abstraction for the Steel EVM.
EvmFactory
Abstracts the creation and configuration of a specific EVM implementation.