EVM Compatibility
Bitplanet integrates the Ethereum Virtual Machine (EVM) through BitEVM to enable full Ethereum smart contract compatibility. This page explains how the EVM layer works within Bitplanet's architecture.
What is BitEVM?
BitEVM is Bitplanet's implementation of EVM compatibility, built on top of Cosmos EVM v1.0.0-rc2. It provides:
Full Ethereum smart contract compatibility
Web3 JSON-RPC API support
Integration with BitSDK modules
Custom precompiles for BitSDK-EVM interoperability
EVM Integration Architecture
Bitplanet implements a complete EVM execution environment through the x/vm module (BitEVM), providing Ethereum compatibility while leveraging BitSDK infrastructure.
How It Works
Ethereum Transaction → JSON-RPC (8545) → EVM Module → State Execution → BitSDK StateKey Components:
EVM Execution Engine
Processes Ethereum bytecode
Executes smart contract operations
Manages contract state transitions
State Mapping
EVM state stored in BitSDK KVStore
Ethereum accounts mapped to Cosmos accounts
Contract storage persisted in module store
Transaction Bridge
Converts Ethereum transactions to Cosmos messages
Handles both EIP-1559 and legacy transaction formats
Routes transactions through BitSDK ante handlers
Transaction Processing
Ethereum Transaction Flow
Submission: User submits transaction via JSON-RPC (port 8545)
Conversion: Transaction converted to BitSDK message
Validation: AnteHandler validates signature and deducts fees
Execution: EVM executes bytecode against current state
Commitment: State changes committed to BitSDK store
Supported Transaction Types
EIP-1559 Dynamic Fee Transactions
Legacy Transactions
EIP-2930 Access List Transactions
State Management
Account Model
Bitplanet uses the Ethereum account model:
Storage Layer
EVM State Storage:
State Root:
Merkle tree of all EVM state
Enables state proofs for light clients
Consistent with BitSDK state commitment
Address System
Format: 20-byte Ethereum addresses (0x...)
Conversion:
Ethereum hex:
0x742d35Cc6634C0532925a3b844Bc9e7595f0bEbCosmos bech32:
cosmos142dvx7xxnsx2n2jfke9wvdz9ew4ahr7slnxtfr
The chain automatically converts between formats as needed.
Gas Mechanics
Gas Model
Bitplanet implements Ethereum gas metering with custom modifications:
Standard Opcodes: Use Ethereum gas costs
Modified Opcodes:
CREATE/CREATE2: 10× standard costCALL: 10x standard costSSTORE: Fixed 500 gas
Reason: Optimized for BitSDK state writes and prevent spam
Fee Market
EIP-1559 Implementation:
Fee Distribution:
Base fee: Burned (deflationary)
Priority fee: Goes to validators
Compatible with standard Ethereum fee estimation
EVM Version and Opcodes
Supported EVM Features
Opcode Support: Full Ethereum opcode compatibility
Precompiled Contracts:
Standard Ethereum precompiles (
0x01-0x09)Custom BitSDK precompiles (
0x0800-0x0805)
Smart Contract Standards:
ERC-20, ERC-721, ERC-1155
All OpenZeppelin contracts
Complex DeFi protocols (Uniswap, etc.)
Contract Upgradeability
Bitplanet implements UUPS (Universal Upgradeable Proxy Standard) for contract upgrades:
Architecture:
User → Proxy Contract (holds state) → Implementation Contract (holds logic)
Key Components:
Proxy Contract: Stores all state and delegates calls to implementation
Implementation Contract: Contains business logic, replaceable via governance
Upgrade Function: Protected by access control, enables logic updates
Benefits:
Preserve user balances and state during upgrades
Fix bugs without redeploying entire system
Add new features to existing contracts
Maintain same contract addresses for users
Used By:
GemCoreNFT Factory (Core/Gem token operations) - see Core Tokens and Gem Tokens
ERC20/ERC1155 token contracts
Future protocol upgrades
BitSDK Precompiles
Special precompiled contracts that bridge EVM to BitSDK:
These enable smart contracts to interact with native BitSDK functionality.
JSON-RPC Interface
Available Endpoints
Bitplanet exposes standard Ethereum JSON-RPC on port 8545:
Transaction Methods:
eth_sendTransactioneth_sendRawTransactioneth_calleth_estimateGas
Query Methods:
eth_getBalanceeth_getCodeeth_getStorageAteth_getTransactionReceipt
Block Methods:
eth_blockNumbereth_getBlockByNumbereth_getBlockByHash
WebSocket Support
Real-time event streaming on port 8546:
Block subscriptions
Transaction subscriptions
Log subscriptions (contract events)
Key Differences from Ethereum
Consensus Layer
Ethereum: Proof of Stake with probabilistic finality Bitplanet: CometBFT consensus with instant finality
Impact:
Transactions are final immediately (no reorgs)
Block time is deterministic (~6 seconds)
No uncle blocks or chain reorganizations
Block Structure
Ethereum Block:
Bitplanet Block:
Bitplanet blocks can contain both EVM transactions and native BitSDK transactions.
State Persistence
Ethereum: LevelDB/RocksDB with separate state trie Bitplanet: BitSDK KVStore with IAVL tree
EVM state is stored within the BitSDK state tree, enabling:
Unified state commitment
IBC state proofs
BitSDK querying of EVM state
Token Bridge
Native Coin ↔ ERC-20 Conversion
The x/erc20 module enables bidirectional conversion:
Cosmos Coin → ERC-20:
ERC-20 → Cosmos Coin:
This allows seamless interaction between:
BitSDK modules (staking, governance)
EVM smart contracts
Cross-chain IBC transfers
BeaconFactory Pattern
Efficient multi-token deployment using beacon proxy architecture:
Architecture:
BeaconFactory
Beacon (points to implementation)
Implementation Contract (shared logic)
Proxy 1 (AI_1 tokens) → Beacon
Proxy 2 (AI_2 tokens) → Beacon
Proxy 3 (AI_3 tokens) → Beacon
... (unlimited proxies)
Deployment Flow:
Deploy Implementation (once)
Deploy Beacon pointing to Implementation (once)
For each new AI token:
Factory.deploy() → new Proxy (minimal bytecode)
Gas Savings:
Traditional: ~2.5M gas per full ERC20 deployment
BeaconProxy: ~200K gas per proxy deployment
Savings: ~90% reduction in deployment costs
Benefits:
Batch Upgrades: Update beacon → all proxies upgraded
Gas Efficient: Minimal proxy bytecode (~200 bytes)
Unlimited Tokens: Deploy thousands of AI tokens economically - see Gem Tokens
Consistent Logic: All tokens share same validated implementation
Precision Banking
The x/precisebank module handles fractional token amounts:
EVM uses 18 decimals (wei)
BitSDK uses 6 decimals (micro)
Precise tracking prevents rounding errors
Integration Benefits
Ethereum Compatibility
For Developers:
Use familiar Ethereum tools (MetaMask, Hardhat, Foundry)
Deploy existing Solidity contracts without modification
Access standard libraries (ethers.js, web3.js)
For Smart Contracts:
Full EVM bytecode compatibility
All Solidity features supported
Standard precompiles available
BitSDK Features
Additional Capabilities:
Instant transaction finality
Access to BitSDK modules via precompiles
IBC cross-chain communication
On-chain governance for chain parameters
Hybrid Architecture
Smart contracts can:
Call BitSDK functions (staking, governance)
Interact with IBC for cross-chain transfers
Use both EVM and Cosmos state
Benefit from both ecosystems
Last updated