X1 has started switching on the v4.0 feature gates. Nick Pettas of X1 Labs announced in the X1 World Telegram channel on October 12 that activations were resuming, with the mainnet fleet “now fully on Tachyon v4.0.3”. Gates go live one per epoch, about a day each, and the full rollout should take roughly two weeks.
Three gates are live as of October 15. The vote-account stake floor went first, then p-token replaced the SPL Token program, then a new way to create accounts arrived. We checked all three on-chain and measured what p-token did to token transactions: a TransferChecked that cost about 6,200 compute units before the switch now costs about 110.
We first covered this batch in September, when Pettas published the plan. Our deep dive on the v4.0 feature gates explains each SIMD in detail. This article covers the live rollout: what has switched on, what it changed, and what comes next.
What a feature gate is
A feature gate is a switch built into the validator client. New rules ship in a release but stay off until the gate is activated at an epoch boundary. That lets an SVM chain change its rules without a coordinated stop. It is also why validators must upgrade first: a node that does not understand an active gate can no longer follow the chain.
That warning is in the announcement: “Any node still on 3.1.x or 2.2.x must upgrade now or it will fall off the network as gates activate.” When we checked on October 15, nodes on v4.0.3 held 99.99% of active stake. Nine nodes were still on older versions (five on 3.1.14 and four on 2.2.x), with about 21,000 XNT staked between them. See our v4.0.3 upgrade guide.
“Every gate below has already been running on X1 testnet with no issues, so builders can test against testnet today,” Pettas wrote.
FG 01: a 1 XNT floor for vote accounts
The first gate, vote_min_stake_1_xnt, activated at the start of epoch 408 (slot 85,582,112) on October 13 at 04:33 UTC. Vote accounts now need at least 1 XNT of active stake for their votes to count. The October 12 announcement put it in terms of fees: “fee-free votes now require at least 1 XNT staked to the vote account. Validators below this can still vote by paying fees or adding stake.”
The fee detail matters. On X1, vote transactions pay no fee at all. Without a floor, a vote account with no stake behind it could still use free vote transactions. The floor ties that free block space to at least some stake, and 1 XNT is low enough that no real operator notices it.
X1 Labs said the rollout “went cleanly: no validator above the floor lost votes, delinquent stake stayed near zero, and block production was normal through the full epoch.” Our own read agrees. Only two vote accounts on the network sit below 1 XNT, and both had already stopped voting before the gate, in epochs 402 and 403. Delinquent stake across the whole network was about 47,000 XNT out of 976.5 million, or 0.005%.
FG 02: p-token replaces the SPL Token program
The second gate, SIMD-0266, activated at the start of epoch 409 (slot 85,798,112) on October 14 at 02:38 UTC. At that boundary the SPL Token program was replaced in place by p-token, a rewrite of the same program built to use far less compute.
“The program address, instruction set and account layout stay the same,” the announcement said, “so existing mints, token accounts, wallets and apps keep working with no changes.” The address is still Tokenkeg…. On-chain it is now a program account of the upgradeable BPF loader, which is how the in-place swap is done.
To see the effect, we read token-program logs from mainnet blocks just before the switch and from transactions after it. The same instructions, on the same chain, one epoch apart:
| Token instruction | Before (CU) | After p-token (CU) | Reduction |
|---|---|---|---|
| TransferChecked | 6,174 to 6,239 | 105 to 118 | 98% |
| InitializeAccount3 | 3,158 | 229 | 93% |
| SyncNative | 3,045 | 201 | 93% |
| CloseAccount | 2,915 | 118 | 96% |
| GetAccountDataSize | 1,569 | 179 | 89% |
| InitializeImmutableOwner | 1,405 | 37 | 97% |
A typical XDEX swap shows the difference inside one transaction. Its SPL token leg used 112 compute units, while the Token-2022 transfer next to it, which p-token does not touch, used about 2,457.
The saving reaches your fee only if you ask for it. “X1 fees are based on the compute limit you request,” Pettas noted, “so set an explicit compute-unit limit on token transactions to see the savings.” A wallet or app that keeps requesting the default budget will pay the same as before. Apps should also lower the compute limits they hard-coded for the old program.
The other thing to watch is indexing. As we noted in September, p-token adds three instructions (batch, withdraw_excess_lamports and unwrap_lamports), so any explorer, bot or analytics tool parsing token instructions against an old definition needs updating.
FG 03: create an account where XNT already sits
The third gate, SIMD-0312, activated at the start of epoch 410 (slot 86,014,112) on October 15 at 00:40 UTC. It adds a system program instruction, CreateAccountAllowPrefund, that “can create an account at an address that already holds XNT.”
This fixes an old annoyance. The standard CreateAccount instruction fails if the target address already holds any lamports. Anyone can send a little XNT to an address, including a program address that has not been created yet, and that is enough to make a later CreateAccount fail. Programs work around it with three separate steps: transfer, allocate, assign. The new instruction does it in one and keeps the XNT that was already there.
Nothing that works today changes. “The existing CreateAccount instruction is unchanged, so nothing that works today behaves differently,” the announcement said. Like p-token, it has been live on testnet since early September.
Verified on-chain
Each gate is a feature account on X1 mainnet that records the slot it activated in. We read all three on October 15:
| Gate | Feature account | Activated | Epoch |
|---|---|---|---|
| FG 01: vote stake floor | 9wZEoM…FHFSh | Oct 13, 04:33 UTC | 408 |
| FG 02: p-token | AHK6QU…c1Up | Oct 14, 02:38 UTC | 409 |
| FG 03: create with prefund | CEcWg4…26DB | Oct 15, 00:40 UTC | 410 |
Epochs are running about 22 hours, slightly under the “~24h” in the announcement, so each gate lands a little earlier in the day than the last.
What comes next
Eight steps remain on the October 12 schedule, in this order:
| # | Gate | What it changes |
|---|---|---|
| 4 | alt_bn128 little-endian (SIMD-0284) | Little-endian byte order for the BN254 syscalls, matching EVM and zk tooling |
| 5 | alt_bn128 G2 syscalls (SIMD-0302) | BN254 G2 operations for pairing-based proof systems |
| 6 | BLS12-381 syscalls (SIMD-0388) | Curve operations, pairings and hash-to-curve, the basis for BLS signature aggregation |
| 7 | Stake program v5 (SIMD-0490) | Minimum stake delegation rises to 1 XNT |
| 8 | Delayed commission updates (SIMD-0249) | Commission changes take effect one full epoch later |
| 9 | Chained block ID validation (SIMD-0340) | Two gates in one epoch; each block is bound to its parent |
| 10 | SBPFv3 programs (SIMD-0178 / 0189 / 0377) | Deploying and running SBPFv3 programs |
| 11 | Syscall parameter address restrictions (SIMD-0459) | Tighter rules on where syscall and CPI parameters may point |
Two of these need action from someone:
- Stake program v5 raises the minimum stake delegation to 1 XNT. “Existing delegations are unaffected and keep earning rewards. New delegations and splits below 1 XNT will fail, so wallets and staking tools should check their minimums.” Our September count found 43% of X1 stake accounts below 1 XNT. They keep working, but no new ones that small can be created. More on staking routes on our X1 staking page.
- Syscall parameter address restrictions tighten which memory regions syscall and CPI parameters may point to. “Developers: if your program does unusual pointer handling in CPI, test it on testnet now.”
Delayed commission is the one delegators gain most from: a validator can no longer raise its commission just before rewards are paid. Validators running v4.0.3 have nothing to do for any of the remaining gates. See our X1 validators page for the live set.
Compared with the September plan, the list has changed slightly. The vote-account stake floor is new and went first, and the vote cost-model change (SIMD-0458) from the original twelve does not appear in the October schedule.
X1 Labs has published dates only up to FG 03. If each remaining step takes one epoch, the last one would land about eight epochs after FG 03, a little over a week from now. “We’ll post an update as each gate goes live,” Pettas wrote, and we will follow each one in the Pulse on our front page.