[Breaking Change] v2.2.2 Hardfork Upgrade: Removal of Bytecode at address(0)

Hi builders,

Starting from the v2.2.2 Hardfork (estimated date: Apr 7, 2026 block number: 213333000), the bytecode deployed at address(0) on Kaia Mainnet will be completely removed. After this change, address(0) will behave identically to an EOA without code.

Key behavior changes:

  • Calls to address(0) will succeed (previously reverted)

  • isContract(address(0)) will return false (previously true)

  • KAIA transfers to address(0) will succeed (previously failed)

Most applications will not be affected, but if any of your contracts, services, or tooling depend on the previous behavior of address(0), please review and update your code before the hardfork.

For the full breakdown including a before/after comparison, builder checklist with migration guidance, and testnet verification steps, please refer to the blog post: [Breaking Change] v2.2.2 Hardfork Upgrade: Removal of Bytecode at address(0)

If you have any questions, feel free to ask in this thread.

1 Like

This is a necessary shift to standardize address(0) behavior, but it could definitely trigger silent failures in contracts that use it as a pseudo-burn address or a null check. It would be wise for teams to audit their extcodesize checks and call value transfers now, especially where logic relies on reverts to handle invalid recipients.

This is a significant shift for state-level consistency, but definitely check your low-level assembly calls if you use address(0) as a sink for burning tokens, as the state transition will now allow those transfers to succeed instead of reverting. It is also worth auditing any proxy patterns or factory logic that might inadvertently rely on static analysis of address(0) being treated as a contract during deployment checks.