Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

Evolve

Evolve is a modular Rust SDK for building blockchain applications with Ethereum compatibility.

Build flexible blockchain systems without starting from scratch. Define modules with simple primitives, integrate with any VM, and work with any consensus engine.

Core Principles

  • No Sudo Model - All execution is account-driven; no privileged escalation
  • Everything is an Account - Storage, execution, and queries are namespaced by AccountId
  • Macro-Driven Development - #[account_impl], #[init], #[exec], #[query] eliminate boilerplate
  • Deterministic Execution - Sequential block processing with checkpoint/rollback for atomicity
  • Ethereum Compatible - Full EIP-2718 typed transactions, EIP-1559, and JSON-RPC support

Quick Example

#[account_impl(Counter)]
pub mod counter {
    #[init]
    fn initialize(env: &impl Env) -> SdkResult<()> {
        VALUE.set(env, 0)?;
        Ok(())
    }
 
    #[exec]
    fn increment(env: &impl Env) -> SdkResult<()> {
        let current = VALUE.get(env)?.unwrap_or(0);
        VALUE.set(env, current + 1)?;
        Ok(())
    }
 
    #[query]
    fn get_value(env: &impl Env) -> SdkResult<u128> {
        Ok(VALUE.get(env)?.unwrap_or(0))
    }
}

Get Started