Skip to main content

Main article

Lorentz is an upgrade hardfork on the BNB Smart Chain mainnet that activates on April 29, 2025. Lorentz introduces one single change: BEP-520: Short Block Interval Phase One: 1.5 seconds

Chainstack nodes are Lorentz-ready

Chainstack nodes are prepared for the Lorentz network upgrade.
Here’s what you need to know:
  • Block time halved from 3 seconds to 1.5 seconds
  • Gas limit per block halved from 140 million to 70 million
  • Epoch extended from 200 blocks to 500 blocks
  • Consecutive block validation per validator increased from 4 blocks to 8 blocks
The most important changes that may affect you as a dApp developer are gas limit per block and faster block times. The gas limit per block is an obvious one—slashing 140 million gas to 70 million gas means you can fit fewer heavy compute transactions in a block. Now let’s focus on faster block times

1.5 second block time

Going from 3 seconds to 1.5 seconds means you will need to be ingesting the blocks at 2x the pre-fork speed. Chainstack infrastructure is handling the nodes, so just make sure your client-side service is ready for that. Now let’s have a look at the block structure.

Lorentz block structure

Compare post-fork and post-node-upgrade:
And pre-fork and pre-node-upgrade:
Let’s have a look at milliTimestamp. The milliTimestamp field is introduced to keep the original timestamp in integer seconds. With the switch from 3 seconds to 1.5 seconds, the value becomes more granular, allowing for precise millisecond-level timing while maintaining backward compatibility with the existing second-based timestamp system. The original timestamp value is preserved post-fork, and the previously unused mixHash value now contains the last bytes of the sub-second timestamp to complement the original timestamp value. This means you can retrieve the post-fork block timestamp either via the milliTimestamp field or via the timestamp + mixHash calculation. The timestamp + mixHash calculation algorithm: 1. Convert timestamp to decimal seconds: 0x6807302f > 1745301551 s 2. Multiply by 1000 to get milliseconds: 1745301551 × 1000 > 1745301551000 ms 3. Extract the ms remainder from mixHash: 0x…01f4 > 0x1f4 > 500 ms 4. Add them together: 1745301551000 + 500 > 1745301551500 ms 5. Convert back to hex if desired 0x1965c14398c Or in Python:
And there you have it. Unless your service heavily relies on block numbers or block timestamps, you don’t have much to worry about.

About the author

Ake

Ake Director of Developer Experience @ Chainstack
Talk to me all things Web3
20 years in technology | 8+ years in Web3 full time years experience
Last modified on April 13, 2026