Kaia v3.0.0 Release Notice (Kairos Testnet)

Kaia v3.0.0 Release Notice (Kairos Testnet)
IMPORTANT: Kaia v3.0.0 contains a hardfork upgrade that results in changes that are not backward compatible. All Kairos testnet nodes must be upgraded to v3.0.0 or later before the target block number. The Mainnet hardfork number is not included in this version and will be specified in a subsequent release.

Kaia v3.0.0 introduces the Permissionless hardfork. Validators join, pause, resume, and leave the network through the AddressBookV2 contract under the validator lifecycle of KIP-286. Validator performance is scored by VRank as per KIP-227. Peer admission and the CN-EN network topology follow KIP-311, and the proxy node (PN) role is retired. This version also hardens consensus and P2P message handling and improves transaction-pool and tracing performance.

Here is the hardfork schedule for the Kairos testnet:

  • Block number: 233366400 (estimated time: 18 Nov 2026, 23:06 UTC+9)
  • Hardfork contents: Permissionless hardfork

Notes to Node Operators

Notes to Core Cell Operators (CCO): Consensus Node (CN) and Proxy Node (PN)

  • Validator operations are available as kcn valops subcommands. Use --datadir for tar-based installations.
    • generate-keys: creates the missing ECDSA and BLS onboarding keys in <datadir>/klay offline. Existing key files are reused and never overwritten.
    • sign-create-node: creates the node ID ownership signature that AddressBookV2.createNode requires, offline with the node key.
    • Lifecycle Subcommands: ready-candidate, unready-candidate, ready-validator, unready-validator, pause, resume, exit, and offboard are now available. These subcommands send a transaction to AddressBookV2. Each transaction is checked with eth_call before it is sent.
    • suspend-validator, unsuspend-validator: suspend and unsuspend a validator. Only the suspender role can run them.
  • The packaged kcnd.conf sets MAXCONNECTIONS=103 (previously 100) so that a full mesh of 100 CNs and the reserved CN-EN slots fit. A package upgrade keeps a kcnd.conf that you have edited, so set MAXCONNECTIONS=103 in it, or remove the line to use the CN default of 103.
  • --maxconnections now limits the number of peers for inbound connections as well.
  • A CN reserves 3 connection slots for ENs and an EN reserves 2 slots for CNs by default. Use --reserved-cross-type-slots to change the reservation. The node does not start if --maxconnections is not larger than the reservation.
  • The proxy node (PN) role is retired. The kpn and kspn binaries and packages are removed, and --nodetype pn and --nodetype spn now fail at startup with Unknown node type. ENs connect to CNs directly. A v3.0.0 node still accepts connections from PNs that run an older version and treats them as ENs.

Notes to Endpoint Node (EN) Operators

  • ENs connect to CNs directly, without a PN in between.

Notes to All Node Operators

  • The default bootnode lists are replaced with new Mainnet and Kairos bootnodes, and all node types, including CNs, now use the same list. If you set BOOTNODES (--bootnodes) to the previous default bootnodes, update or remove the setting.
  • The web3 RPC namespace is removed. It is also removed from RPC_API and WS_API in the packaged configuration files. An unknown module name in an existing configuration is ignored, and the node starts normally.
  • The --vrank.log-frequency flag is removed. A node started with this flag fails.
  • The miner/block/* mining timer metrics now report per-block values and percentile series (_0_5 to _0_9999). The _maxgauge series is removed; use _0_9999 instead. Review dashboards and alerts that use these metrics.
  • The vrank/commit/*, vrank/preprepare/first, miner/resultch, and miner/tx/resend/gauge metrics are removed. Review dashboards and alerts that use these metrics.

API Changes

  • Removed: web3 RPC namespace (use kaia_clientVersion instead of web3_clientVersion).
  • Removed: Bootnode allowlist (the kbn --authorized-nodes flag and associated RPC methods).
  • Changed: The bootnode RPC namespace of kbn.
  • Changed: Renamed the eth_feeHistory result field blobBaseFeePerGas to baseFeePerBlobGas and added blobGasUsedRatio, as in Ethereum.
  • Changed: kaia_getStakingInfo and governance_getStakingInfo behavior after the Permissionless hardfork (they now list only the nodes that receive the staking reward of block N).
  • Changed: The pending block tag now behaves as latest on all node types.
  • Added: governance_getPFS and governance_getCFS to return the VRank proposal-failure and candidate-failure scores.
  • Added: kaia_getNodesByState to return the AddressBookV2 validator nodes at a block, filtered by state.

Permissionless Hardfork Features

  • Implemented the validator lifecycle as per KIP-286.
  • Implemented VRank as per KIP-227.
  • Implemented permissionless networking as per KIP-311.
  • Updated the system contracts to kaia-system-contracts v3.0.0.
  • Applied the half fee burn of the non-deferred reward mode. The block reward base is now decided before transaction execution.

(For the complete list of improvements, bug fixes, and commit histories, please refer to the official v3.0.0 release notes on GitHub.)

Downloads

Please find the download links and installation instructions at Kaia Docs: Node Downloads or on the Kaia v3.0.0 GitHub Release Page.