Network upgradesDevelopers1 min read
alt_bn128 little-endian (SIMD-0284) activates at epoch 411 (FG 05)
Little-endian BN254 syscalls for zk verifiers, matching EVM and zk tooling.
Nick P · X1 Labs ·
SIMD-0284 activated at the start of epoch 411 (slot 86,230,112, 22:42 UTC on 15 October). It gives X1 programs a little-endian version of the alt_bn128 syscalls.
What it is
Groth16, the proof system most zk apps on SVM chains use today, is built on a curve called BN254, which X1 exposes to programs as the alt_bn128 syscalls. X1 already had syscalls for it, but they were modelled on Ethereum's precompiles and take numbers in big-endian byte order. The Rust libraries zk teams actually use, such as ark-bn254, store the same numbers little-endian. Every verifier had to reverse bytes on the way in and out.
Why it's good for X1
- Building a zk verifier gets simpler. Proofs and keys from standard Rust tooling go straight into the syscall.
- Fewer silent failures. When bytes are flipped the wrong way, nothing errors out; honest proofs are simply rejected, and finding out why can take days.
- Each proof check costs slightly less compute, because the byte swapping is gone.
That matters for X1's privacy work. Confidential payments, zk proofs of state and proof-carrying bridges all rest on this kind of verification, and making it easier lowers the bar for teams building them on X1.
What to watch
The big-endian syscalls are unchanged, so deployed programs keep working. The new ones are an option, not a requirement.
Sources
- The X1 Labs announcement (below)
- SIMD-0284: https://github.com/solana-foundation/solana-improvement-documents/blob/main/proposals/0284-alt-bn128-little-endian.md
- Feature account 27nGQNFnLrrYnq7UjqLdaCrSvHKB9e1sssx35ouP7sN5
Original post · Nick P
Feature gate update: FG 05 is live Little-endian support for alt_bn128 (SIMD-0284) activates on mainnet at the start of epoch 411 (slot 86,230,112, around 22:42 UTC on Oct 15). This adds little-endian versions of the alt_bn128 (BN254) syscalls used by zk verifiers and proof checks, matching the byte order most EVM and zk tooling uses. The existing big-endian syscalls are unchanged, so deployed programs keep working exactly as before. This has been live on testnet since early September. Feature: 27nGQNFnLrrYnq7UjqLdaCrSvHKB9e1sssx35ouP7sN5 Activation tx: 3Rrc5msb3rmjxNSdGdq9qbNeiWhBDwP2QFRw7qmbR4xHtjNw16M2BdMgWaAJm9AWLr8dh5LmPUHMTmf1mhtT1GBm
Feature gates in this post
alt_bn128 little-endian (SIMD-0284)
Little-endian BN254 syscalls, matching EVM and zk tooling.
27nG…7sN5Liveepoch 411