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, 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, block.timestamp, 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.