OnchainEvm
Rust NIFs for Elixir: local EVM simulation via revm, Solidity ABI parsing via Alloy, debug/trace APIs, and contract codegen. Built on onchain.
Installation
Requires Rust toolchain for NIF compilation.
def deps do
[
{:onchain, "~> 0.4"},
{:onchain_evm, "~> 0.1"}
]
endModules
| Module | Purpose |
|---|---|
Onchain.EVM | Local EVM execution (fork mainnet, simulate transactions) |
Onchain.Solidity | Alloy-powered Solidity ABI parser |
Onchain.Trace | Debug/trace APIs (trace_transaction, trace_call, storage_at) |
Onchain.Contract.Generator | .sol file -> typed Elixir module at compile time |
Discovery
All modules use descripex for self-describing APIs:
OnchainEvm.describe() # Module overview
OnchainEvm.describe(:evm) # Function listings
OnchainEvm.describe(:evm, :simulate_call) # Full function detailsConfiguration
EVM simulation requires an RPC URL passed per-call:
Onchain.EVM.simulate_call(address, calldata, rpc_url: "https://eth-mainnet.example.com")