While Abstract is EVM compatible and you can use familiar development tools from the Ethereum ecosystem, the bytecode that Abstract’s VM (the ZKsync VM) understands is different than what Ethereum’s EVM understands. These differences exist to both optimize the VM to perform efficiently with ZK proofs and to provide more powerful ways for developers to build consumer-facing applications. When building smart contracts on Abstract, it’s helpful to understand what the differences are between Abstract and Ethereum, and how best to leverage these differences to create the best experience for your users.Documentation Index
Fetch the complete documentation index at: https://docs.abs.xyz/llms.txt
Use this file to discover all available pages before exploring further.
Recommended Best Practices
Learn more about best practices for building and deploying smart contracts on Abstract.Best practices
Recommended changes to make to your smart contracts when deploying on
Abstract.
Contract deployment
See how contract deployment differs on Abstract compared to Ethereum.
Differences in EVM Instructions
See how Abstract’s VM differs from the EVM’s opcodes and precompiled contracts.EVM opcodes
See what opcodes are supported natively or supplemented with system
contracts.
EVM precompiles
See what precompiled smart contracts are supported by Abstract.
Other Differences
Learn the nuances of other differences between Abstract and Ethereum.Gas fees
Learn how gas fees and gas refunds work with the bootloader on Abstract.
Nonces
Explore how nonces are stored on Abstract’s smart contract accounts.
Libraries
Learn how the compiler handles libraries on Abstract.