Skip to main content

Comparison Table

A side-by-side comparison between Leo (Aleo) and Solidity (Ethereum/EVM).

FeatureLeoSolidity
Execution ModelOff-chain execution + on-chain proof verification and optional on-chain executionFully on-chain execution
State ModelPublic key-value mapping and private record storageKey-value contract storage, temporary transient storage, temporary memory and read-only calldata
PrivacyBuilt-in privacy with private inputs (messages), private outputs (state changes) and private userNo privacy – all state and calldata are public
Execution CostStorage cost + finalize cost (on-chain compute based on instruction)Gas based on opcode
Supported Typesbool, u8…u128, i8…i128, plus field, group, scalar; no bytes, dynamic arrays and stringbool, (u)int8…256, bytes, dynamic arrays, string, etc.
Toolingleo CLI, Leo debugger, snarkVM CLI, IDE plugins, DokoJS, AmareleoHardhat, Foundry, Remix, Truffle etc.
RandomnessChaCha random functionRelies on 3rd party off-chain oracle (e.g. Chainlink VRF)
Error Handlingassert, assert_eq, assert_neq (no custom msg)assert, require, revert with optional revert strings
Dispatch TypeStatic dispatch (with dynamic dispatch in roadmap)Dynamic dispatch
Built-in Functionsblock.height, self.signer, self.caller, self.address, network.id, signature::verify, group::GEN, BHP hashes and commits, Keccak hashes, Pedersen hashes and commits, Poseidon hashes, SHA3 hashes etc.keccak256, sha256, ripemd160, ecrecover, address.(member functions), abi.encode, abi.decode, block.(metadata) etc.
Token StandardARC-21ERC20
NFT StandardARC-721ERC721
UpgradabilityNative upgradeability coming soon with ARC-6Via proxy patterns (Transparent, UUPS, Beacon)
Block ExplorersProvable Explorer (Beta), VXB.ai (Formerly Aleo123.io), Aleoscan etc.Etherscan, Blockscout etc.