Skip to main content

Differences between Kakarot and Ethereum

Although Kakarot is Ethereum-compatible and aims to support the latest features of Ethereum (e.g. Cancun new opcodes), it still has some edge case behaviors. They are listed below:

ItemEthereumKakarot
BLOCKHASHGet the hash of one of the 256 most recent complete blocksThe last 10 blocks are not available, and 0 is returned instead
BLOBBASEFEEGet the current data-blob base-feeReturn 0 as there are no blobs on Kakarot
BLOBHASHGet blob versioned hashes at indexReturn 0 as there are no blobs on Kakarot
Block hash computationkeccak256(RLP.encode(Block Header))pedersen(Starknet Block Header)
State root computationRoot of state keccak-MPTposeidon(root of contract pedersen-MPT, root of contract class pedersen-MPT)
Transaction receiptTransaction receipt is available once a transaction is minedTransaction receipt is available once a transaction is processed and guaranteed to be mined. This means that blockhash field of the receipt is optional and will be non-null only once the transaction is mined.