zksync

Installation
SKILL.md

zkSync Era Development

What You Probably Got Wrong

  1. Bytecode is NOT EVM bytecode — zkSync compiles to zkEVM bytecode via zksolc/zkvyper. You cannot deploy raw EVM bytecode. Standard solc output does not work.
  2. CREATE/CREATE2 behave differently — Address derivation uses the bytecode hash, not the creation code. CREATE2 addresses differ from Ethereum for the same inputs.
  3. All accounts are smart accounts — EOAs are implemented as a default account contract. Native account abstraction means every account goes through validateTransaction / executeTransaction.
  4. Gas has two components — L2 execution gas + L1 pubdata gas. The gas_per_pubdata_byte_limit field is mandatory on every transaction.
  5. No SELFDESTRUCT — The opcode is a no-op. Contracts cannot be destroyed.
  6. No EXTCODECOPY of other contracts — You can only EXTCODECOPY your own bytecode. Copying another contract's code returns zeros.
  7. msg.value works differently — Handled by the MsgValueSimulator system contract, not natively at the EVM level.
  8. Contract deployment uses a system contract — All deployments go through the ContractDeployer system contract, not raw CREATE opcodes.

Quick Start

Install Tools

Installs
1
First Seen
Aug 4, 2026
zksync — justaname-id/cryptoskills