Skip to main content

Tokyo Hardfork (Japan Open Chain v2)

Japan Open Chain will carry out a network upgrade called the Tokyo Hardfork. With this hardfork, the consensus mechanism migrates from Clique PoA to PoSA (Proof of Staked Authority / PoA v2).

Schedule​

NetworkDateStatus
TestnetSeptember 7, 2026Completed
Mainnet (beacon chain launch)September 18, 2026Completed
Mainnet (Phase 1 / The Merge)To be determined (decided at the validator meeting)In preparation
For node operators

If you operate a node on Testnet, please complete the configuration change before September 7, 2026. Upgrading Geth alone is not sufficient. See the steps below for details.

About the Mainnet beacon chain​

The Mainnet upgrade proceeds in two stages.

  1. Beacon chain launch (September 18, 2026 — completed)
    The Consensus Layer started running ahead of the Execution Layer. Blocks are still produced by Clique PoA, so there is no impact on general users or node operators at this time.
  2. Phase 1 — Hardfork (The Merge) (to be determined)
    The Execution Layer will start operating under instructions from the beacon chain. Organizations running their own node will need to change their configuration at this point. The date will be announced on this page once it is decided at the validator meeting.

The Mainnet configuration files (config.yaml, genesis.ssz, deposit contract information, and the bootnode / boot ENR lists) are published under the metadata/ directory of the japan-open-chain/mainnet repository. For the detailed node setup steps, see the Mainnet node connection guide.

What you need to do at this stage​

Who you areRequired action
JOC holders, general users, and users of the JOC RPC endpointsNo action required
Organizations running their own node on MainnetKeeping your current Execution Client (Geth)–only setup is fine, but we recommend setting up a Consensus Client (recommended: Lighthouse) now, ahead of the next hardfork (The Merge), by following the Mainnet node connection guide
For Mainnet node operators

Before the hardfork, Geth v1.14.0 or later cannot sync the chain. Please continue using the v1.13 series.

What you need to do​

Who you areRequired action
JOC holders and general usersNo action required
Users of the JOC RPC endpointsNo action required
dApp developersThe Chain ID does not change. Action is required only if you run your own node
Organizations running their own nodeAction required at the hardfork. Follow the steps below to change your node configuration
ValidatorsAction required. Separate instructions will be provided

Steps for Testnet node operators​

Who this applies to: organizations that sync directly from the JOC Testnet boot nodes and operate their own node. If you use the JOC RPC endpoints, no action is required.

Upgrading Geth alone is not sufficient​

Under PoA, the Execution Client (Geth) verified and synced blocks on its own. After the migration to PoSA, block validity is determined by the Consensus Layer (the beacon chain). Geth handles execution only, and receives fork choice instructions from the Consensus Client.

The work required is therefore a configuration change, not a version upgrade.

[Current] [After the Tokyo Hardfork]

Geth (standalone) Geth ── Engine API ── Lighthouse
│ │ │
P2P to execution only consensus / fork choice
boot nodes │
to CL boot nodes

1. Complete before the hardfork​

Step 1 — Obtain the configuration files​

FilePurposeNotes
genesis.json (updated)For the Execution Client. Contains the TTD and each fork timeDifferent from the currently published version
config.yamlChain specification for the Consensus ClientDefines fork epochs and the network ID
deposit_contract_block.txtBlock number of the Deposit Contract
genesis.sszBeacon chain genesis stateApprox. 5.5 MB
note

The distribution URL for these files will be announced on this page once confirmed.

Step 2 — Keep Geth on the v1.13 series​

Continue to use Geth v1.13.5, the version verified on this site. Geth v1.14.0 and later cannot currently sync the chain.

note

A newer version of Geth will be required for the Shapella, Dencun, and Pectra phases. We will announce the supported version on this page once the schedule is confirmed.

Step 3 — Set up a Consensus Client​

  • Recommended: Lighthouse v7.0.1 (Docker image sigp/lighthouse:v7.0.1)
  • Prysm is not recommended: our internal testing found connection errors and sync issues from the Shapella phase onward
  • It can run on the same host as your existing Geth
  • Boot nodes (ENR) for the Consensus Layer must be configured (to be announced once confirmed)
  • We recommend checkpoint sync for the initial sync (the endpoint will be announced once confirmed)

Step 4 — Connect Geth and the Consensus Client over the Engine API​

The two communicate over the authenticated Engine API (default port 8551). Generate a shared JWT secret and configure it on both sides.

# Example: generating the JWT secret
openssl rand -hex 32 | tr -d "\n" > /data/jwt.hex

Startup options to add on the Geth side:

--authrpc.addr=127.0.0.1
--authrpc.port=8551
--authrpc.jwtsecret=/data/jwt.hex
--authrpc.vhosts=localhost

Step 5 — Verify sync and connectivity​

  • The Consensus Client has caught up with the beacon chain
  • Geth's log records fork choice updates over the Engine API
  • Keep both clients running on the day of the hardfork. The Merge fires automatically when the configured TTD is reached

2. Work required at each phase after the hardfork​

For the Shapella, Dencun, and Pectra phases, you will need to update your configuration and restart after our announcement.

PhaseExecution ClientConsensus Client
Phase 2 — ShapellaSet shanghaiTimeCAPELLA_FORK_VERSION / CAPELLA_FORK_EPOCH
Phase 3 — DencunSet cancunTimeDENEB_FORK_VERSION / DENEB_FORK_EPOCH
Phase 4 — PectraSet pragueTimeELECTRA_FORK_VERSION / ELECTRA_FORK_EPOCH
warning

Do not update your configuration or restart at your own discretion before our announcement.

3. If you do not take action​

  • After the hardfork, the node will no longer receive new blocks and will not be able to follow the head of the chain
  • Applications and wallets connected to that node over RPC will not be able to retrieve the latest blocks or transactions
  • A node left behind on the old chain may keep returning data from the discontinued chain
  • Note that ordinary nodes are never slashed (only validators are subject to slashing)

4. Frequently asked questions​

Q. Do I need to register as a validator or deposit 32 JOC?

No. Ordinary nodes that do not produce blocks require neither Launchpad registration nor deposit data. Only the configuration change described above is needed.

Q. Do I need to delete my existing chain data and resync?

No. All existing chain data and transaction history are preserved.

Q. Does the Chain ID change?

No.

Q. Do I need an additional server?

The Consensus Client can run on your existing host, provided it has sufficient disk and memory headroom.

Contact​

For questions about this hardfork, please reach out via the contact form.