0xEddie’s Solana Replay Question: Which Program Version Ran?
Circular says its replay tool loads the program binary from the original Solana slot. That matters when an upgrade changes what a fresh simulation would show.
Solana developer 0xEddie asked whether Circular Replay loads the program binary that was active when a transaction ran, even if the program has since been upgraded. Circular said it does. That detail matters when developers try to explain an old transaction using software that has changed since it landed.
@Circular_fi Does the LiteSVM replay include the program binary from that slot too? I'm curious how it handles a program upgraded since the transaction.
— 0xEddie (@0xeddiekim) November 10, 2026
Why the program version matters
A Solana program can keep the same address through an upgrade. For programs deployed with loader-v3, Solana’s documentation says the upgrade writes new bytecode to the ProgramData account. The new version takes effect in the next slot. Looking up the program by address today can therefore give a developer different code from the version that handled an earlier transaction.
Suppose a swap was rejected on Tuesday and the program was upgraded on Wednesday. If a simulation passes on Thursday, it shows how the swap behaves under the later conditions. It leaves open whether the original rejection came from the older code or from the account state at the time.
What Circular Replay is meant to show
Circular Replay is built around the slot where a recent transaction ran. The company says it reconstructs the accounts before and after execution and can replay the transaction locally in LiteSVM, an in-process Solana testing environment that can load a compiled program binary. Circular says the replay reproduces the original logs and compute-unit count.
Solana’s documentation and LiteSVM’s source code establish how upgrades and program loading work. Circular’s claim about the historical binary and matching output has yet to be independently tested here. A straightforward check would compare the replay with the public logs and compute-unit count for an ordinary transaction processed before a known upgrade.