In parallel, the ledger suite pre-release ledger-suite-icrc-2026-02-02 updates the index to correctly surface ICRC-107 blocks.
Why This Is Important
ICRC-107 introduces explicit, standardized, fee collector blocks into ICRC ledgers. Once ledgers adopt ICRC-107, these new block types will begin appearing on-chain. Older versions of ICRC Rosetta (prior to v1.2.9) do not understand these blocks.
As a result:
Rosetta may fail to parse new blocks
Operation mapping may become invalid
The Rosetta node may stop syncing
In short: older ICRC Rosetta versions may simply stop functioning once ICRC-107 blocks appear.
Upgrading to ICRC Rosetta ≥ v1.2.9 ensures continued compatibility.
Who Should Upgrade
Exchanges using ICRC Rosetta
Custody providers running ICRC Rosetta
Block explorers consuming Rosetta output
Any infrastructure operator relying on ICRC Rosetta for ICRC ledger ingestion
This update applies only to ICRC Rosetta. ICP Rosetta is not affected.
We strongly recommend upgrading ahead of ledger adoption of ICRC-107 to avoid operational disruption.
If you have questions about the rollout timeline or Rosetta behavior under ICRC-107, please reply in this thread.
I’m looking at adding some ICRC 105 blocks to my Motoko ledgers to keep track of installation and upgrade parameters. How do you think Rosetta will handle these? Will it just ignore them or is it going to make it barf?
I’d just want it to ignore the blocks in icrc-105. I think I need to go back and re do this in light of recent icrc3 discussions, but the goal is to have automated code that puts canister upgrades, and the args, into the blockchain…it also tracks controller changes I believe. ICRC-105 – Enhancing Canister Installation & Configuration Transparency
Basically, ignore blocks with unknown btypes or ops.
Ignoring block types that Rosetta does not know about is not really an option: Rosetta should fail in this case to about the backend that uses it going to some inconsistent state from where it’s more complex to recover.
It may be an option to explicitly ignore some block types about it knows that they can be safely ignored.