ICP Ledger Canister Suite Upgrades 2025-08-29

The Financial Integrations team has submitted the following proposals today, 2025-08-29 for upgrading the ICP Ledger canister suite. DFINITY plans to vote on these proposals on Monday.

ICP index (proposal 138270):

Proposal to upgrade the ICP index canister

Repository: https://github.com/dfinity/ic.git

Git hash: 69b755062f5ef0a7d6efc9a127172b46121420c8

New compressed Wasm hash: c5108432520195d660d2998379392dd246279afe897bb30111505e3e0590875e

Upgrade args hash: 0fee102bd16b053022b69f2c65fd5e2f41d150ce9c214ac8731cfaf496ebda4e

Target canister: qhbym-qaaaa-aaaaa-aaafq-cai

Previous ICP index proposal: https://dashboard.internetcomputer.org/proposal/137923

Forum discussion: NNS Updates Aggregation Thread


Motivation

  • Update ic-cdk to v0.18.6

Release Notes

git log --format='%C(auto) %h %s' fed75e2a5d21eae03b0ac017582640bc4264bae3..69b755062f5ef0a7d6efc9a127172b46121420c8 -- packages/icrc-ledger-types packages/ic-http-types rs/ledger_suite/icp/index rs/ledger_suite/icp/src rs/ledger_suite/common/ledger_canister_core/src rs/ledger_suite/common/ledger_core rs/rust_canisters/canister_log
f322cac905 fix(Ledgers): verify fee when generating ICRC-21 consent message (#6381)
2651e30c2c feat(ICP-Ledger): FI-1830: consent message for legacy transfer (#6357)
49d659c29d feat: Unify ic-cdk to v0.18.6 (#6264)

Upgrade args

git fetch
git checkout 69b755062f5ef0a7d6efc9a127172b46121420c8
didc encode '()' | xxd -r -p | sha256sum

Wasm Verification

Verify that the hash of the gzipped WASM matches the proposed hash.

git fetch
git checkout 69b755062f5ef0a7d6efc9a127172b46121420c8
"./ci/container/build-ic.sh" "--canisters"
sha256sum ./artifacts/canisters/ic-icp-index-canister.wasm.gz

ICP ledger (proposal 138271):

Proposal to upgrade the ICP ledger canister

Repository: https://github.com/dfinity/ic.git

Git hash: 69b755062f5ef0a7d6efc9a127172b46121420c8

New compressed Wasm hash: 51f4be010f23064137defacd627ffbec024c5133210c68ca3b80ab8f257101d6

Upgrade args hash: 0fee102bd16b053022b69f2c65fd5e2f41d150ce9c214ac8731cfaf496ebda4e

Target canister: ryjl3-tyaaa-aaaaa-aaaba-cai

Previous ICP ledger proposal: https://dashboard.internetcomputer.org/proposal/137924

Forum discussion: NNS Updates Aggregation Thread


Motivation

  • Trap in case the deprecated ICP ledger notify method is called
  • Verify fee when generating ICRC-21 consent message
  • Add ICRC-21 consent message for legacy ICP transfer
  • Update ic-cdk to v0.18.6

Release Notes

git log --format='%C(auto) %h %s' fed75e2a5d21eae03b0ac017582640bc4264bae3..69b755062f5ef0a7d6efc9a127172b46121420c8 -- packages/icrc-ledger-types rs/ledger_suite/icp/ledger/src rs/ledger_suite/icp/src rs/ledger_suite/common/ledger_canister_core/src rs/ledger_suite/common/ledger_core/src
be2471d4de feat(ICP_Ledger): FI-1727: Trap in case the deprecated ICP ledger notify method is called (#5734)
9b0f6b1db3 chore(ICP-Ledger): update ledger version comment (#6458)
f322cac905 fix(Ledgers): verify fee when generating ICRC-21 consent message (#6381)
2651e30c2c feat(ICP-Ledger): FI-1830: consent message for legacy transfer (#6357)
49d659c29d feat: Unify ic-cdk to v0.18.6 (#6264)
00a4c4c360 chore(ICP_Ledger): FI-1778: Clean up burn of anonymous account funds (#6337)

Upgrade args

git fetch
git checkout 69b755062f5ef0a7d6efc9a127172b46121420c8
didc encode '()' | xxd -r -p | sha256sum

Wasm Verification

Verify that the hash of the gzipped WASM matches the proposed hash.

git fetch
git checkout 69b755062f5ef0a7d6efc9a127172b46121420c8
"./ci/container/build-ic.sh" "--canisters"
sha256sum ./artifacts/canisters/ledger-canister_notify-method.wasm.gz

ICP archive1 (proposal 138272):

Proposal to upgrade the ICP archive1 canister

Repository: https://github.com/dfinity/ic.git

Git hash: 69b755062f5ef0a7d6efc9a127172b46121420c8

New compressed Wasm hash: 994fdc2b9ef5ef448b237e171321256c1cf3e5cf9de2f61a1663252a35202ac2

Upgrade args hash: 0fee102bd16b053022b69f2c65fd5e2f41d150ce9c214ac8731cfaf496ebda4e

Target canister: qjdve-lqaaa-aaaaa-aaaeq-cai

Previous ICP archive1 proposal: https://dashboard.internetcomputer.org/proposal/137925

Forum discussion: NNS Updates Aggregation Thread


Motivation

  • Update ic-cdk to v0.18.6

Release Notes

git log --format='%C(auto) %h %s' fed75e2a5d21eae03b0ac017582640bc4264bae3..69b755062f5ef0a7d6efc9a127172b46121420c8 -- packages/icrc-ledger-types rs/ledger_suite/icp/archive rs/ledger_suite/icp/src rs/ledger_suite/common/ledger_canister_core rs/ledger_suite/common/ledger_core
f322cac905 fix(Ledgers): verify fee when generating ICRC-21 consent message (#6381)
2651e30c2c feat(ICP-Ledger): FI-1830: consent message for legacy transfer (#6357)
49d659c29d feat: Unify ic-cdk to v0.18.6 (#6264)

Upgrade args

git fetch
git checkout 69b755062f5ef0a7d6efc9a127172b46121420c8
didc encode '()' | xxd -r -p | sha256sum

Wasm Verification

Verify that the hash of the gzipped WASM matches the proposed hash.

git fetch
git checkout 69b755062f5ef0a7d6efc9a127172b46121420c8
"./ci/container/build-ic.sh" "--canisters"
sha256sum ./artifacts/canisters/ledger-archive-node-canister.wasm.gz

ICP archive2 (proposal 138273):

Proposal to upgrade the ICP archive2 canister

Repository: https://github.com/dfinity/ic.git

Git hash: 69b755062f5ef0a7d6efc9a127172b46121420c8

New compressed Wasm hash: 994fdc2b9ef5ef448b237e171321256c1cf3e5cf9de2f61a1663252a35202ac2

Upgrade args hash: 0fee102bd16b053022b69f2c65fd5e2f41d150ce9c214ac8731cfaf496ebda4e

Target canister: qsgjb-riaaa-aaaaa-aaaga-cai

Previous ICP archive2 proposal: https://dashboard.internetcomputer.org/proposal/137926

Forum discussion: NNS Updates Aggregation Thread


Motivation

  • Update ic-cdk to v0.18.6

Release Notes

git log --format='%C(auto) %h %s' fed75e2a5d21eae03b0ac017582640bc4264bae3..69b755062f5ef0a7d6efc9a127172b46121420c8 -- packages/icrc-ledger-types rs/ledger_suite/icp/archive rs/ledger_suite/icp/src rs/ledger_suite/common/ledger_canister_core rs/ledger_suite/common/ledger_core
f322cac905 fix(Ledgers): verify fee when generating ICRC-21 consent message (#6381)
2651e30c2c feat(ICP-Ledger): FI-1830: consent message for legacy transfer (#6357)
49d659c29d feat: Unify ic-cdk to v0.18.6 (#6264)

Upgrade args

git fetch
git checkout 69b755062f5ef0a7d6efc9a127172b46121420c8
didc encode '()' | xxd -r -p | sha256sum

Wasm Verification

Verify that the hash of the gzipped WASM matches the proposed hash.

git fetch
git checkout 69b755062f5ef0a7d6efc9a127172b46121420c8
"./ci/container/build-ic.sh" "--canisters"
sha256sum ./artifacts/canisters/ledger-archive-node-canister.wasm.gz

ICP archive3 (proposal 138276):

Proposal to upgrade the ICP archive3 canister

Repository: https://github.com/dfinity/ic.git

Git hash: 69b755062f5ef0a7d6efc9a127172b46121420c8

New compressed Wasm hash: 994fdc2b9ef5ef448b237e171321256c1cf3e5cf9de2f61a1663252a35202ac2

Upgrade args hash: 0fee102bd16b053022b69f2c65fd5e2f41d150ce9c214ac8731cfaf496ebda4e

Target canister: q4eej-kyaaa-aaaaa-aaaha-cai

Previous ICP archive3 proposal: https://dashboard.internetcomputer.org/proposal/137927

Forum discussion: NNS Updates Aggregation Thread


Motivation

  • Update ic-cdk to v0.18.6

Release Notes

git log --format='%C(auto) %h %s' fed75e2a5d21eae03b0ac017582640bc4264bae3..69b755062f5ef0a7d6efc9a127172b46121420c8 -- packages/icrc-ledger-types rs/ledger_suite/icp/archive rs/ledger_suite/icp/src rs/ledger_suite/common/ledger_canister_core rs/ledger_suite/common/ledger_core
f322cac905 fix(Ledgers): verify fee when generating ICRC-21 consent message (#6381)
2651e30c2c feat(ICP-Ledger): FI-1830: consent message for legacy transfer (#6357)
49d659c29d feat: Unify ic-cdk to v0.18.6 (#6264)

Upgrade args

git fetch
git checkout 69b755062f5ef0a7d6efc9a127172b46121420c8
didc encode '()' | xxd -r -p | sha256sum

Wasm Verification

Verify that the hash of the gzipped WASM matches the proposed hash.

git fetch
git checkout 69b755062f5ef0a7d6efc9a127172b46121420c8
"./ci/container/build-ic.sh" "--canisters"
sha256sum ./artifacts/canisters/ledger-archive-node-canister.wasm.gz

ICP archive4 (proposal 138278):

Proposal to upgrade the ICP archive4 canister

Repository: https://github.com/dfinity/ic.git

Git hash: 69b755062f5ef0a7d6efc9a127172b46121420c8

New compressed Wasm hash: 994fdc2b9ef5ef448b237e171321256c1cf3e5cf9de2f61a1663252a35202ac2

Upgrade args hash: 0fee102bd16b053022b69f2c65fd5e2f41d150ce9c214ac8731cfaf496ebda4e

Target canister: q3fc5-haaaa-aaaaa-aaahq-cai

Previous ICP archive4 proposal: https://dashboard.internetcomputer.org/proposal/137928

Forum discussion: NNS Updates Aggregation Thread


Motivation

  • Update ic-cdk to v0.18.6

Release Notes

git log --format='%C(auto) %h %s' fed75e2a5d21eae03b0ac017582640bc4264bae3..69b755062f5ef0a7d6efc9a127172b46121420c8 -- packages/icrc-ledger-types rs/ledger_suite/icp/archive rs/ledger_suite/icp/src rs/ledger_suite/common/ledger_canister_core rs/ledger_suite/common/ledger_core
f322cac905 fix(Ledgers): verify fee when generating ICRC-21 consent message (#6381)
2651e30c2c feat(ICP-Ledger): FI-1830: consent message for legacy transfer (#6357)
49d659c29d feat: Unify ic-cdk to v0.18.6 (#6264)

Upgrade args

git fetch
git checkout 69b755062f5ef0a7d6efc9a127172b46121420c8
didc encode '()' | xxd -r -p | sha256sum

Wasm Verification

Verify that the hash of the gzipped WASM matches the proposed hash.

git fetch
git checkout 69b755062f5ef0a7d6efc9a127172b46121420c8
"./ci/container/build-ic.sh" "--canisters"
sha256sum ./artifacts/canisters/ledger-archive-node-canister.wasm.gz

Proposal Reviews - Seb | CodeGov (Trial)

This review is composed of 8 proposals (Protocol Canister Management) for the following canisters:

  • ICP Ledger
  • ICP Index
  • ICP Ledger Archive 1,2,3 & 4
  • Node-Rewards

TL;DR: Adopt for 8 proposals. Build are successful and the hashes match for both the builds and arguments.

Proposal 138270 - ICP Index Canister

Vote: Adopt
Build is successfull and the hashes match for both the build and the arguments.

Proposal 138272 - ICP Ledger Archive 1 Canister

Vote: Adopt
Build is successfull and the hashes match for both the build and the arguments.

Proposal 138273 - ICP Ledger Archive 2 Canister

Vote: Adopt
Build is successfull and the hashes match for both the build and the arguments.

Proposal 138276 - ICP Ledger Archive 3 Canister

Vote: Adopt
Build is successfull and the hashes match for both the build and the arguments.

Proposal 138278 - ICP Ledger Archive 4 Canister

Vote: Adopt
Build is successfull and the hashes match for both the build and the arguments.

Details (for Proposals 138270/138272/138273/138276/138278)

f322cac905 and 2651e30

Both commits improves the implementation of ICRC_21 validating that the fee displayed to users matches the fee being approved and adding support for the legacy transfer method.

:warning: Those commits are listed in the release notes for the ICP Index Canister and the ICP Archives Canister but they only seem to affect the code of the ICP Ledger Canister.

49d659c

According to the message this commit unifies ic-sdk to version 0.18.6. The code cchanges correspond in ICP Index Canister and ICP Archives Canisters.

Proposal 138271 - ICP Ledger Canister

Vote: Adopt
Build is successfull and the hashes match for both the build and the arguments.

Details

be2471d4de

This commit adds a trap in case the notify method of the ICP Ledger is called. This method is a deprecated method used for the minting of cycles which has been replaced by the Cycle Minting Canister.

9b0f6b1db3

This commit removes a comment that is no longer true from the ICP Ledger.

00a4c4c360

This commit removes code from the ICP Ledger since the Anonymous principal is now authorized to perform transactions.

Others commits have already been reviewed above.

Proposal 138288 - Node-rewards Canister

Vote: Adopt
Build is successfull and the hashes match for both the build and the arguments.

Details

eaee8f1c74

This commit introduces a new query endpoint get_node_providers_rewards.

49d659c29d

According to the message this commit unifies ic-sdk to version 0.18.6. The code cchanges correspond in Node Reward Canister.

91b252383a

This commit fixes an issue with how the canister handled small node providers (node counts < 4) failure rate and reward calculation.

e91e2af3ec

This commit changes the treatment of unassigned nodes so they get a 0% failure rate when they aren’t assigned.

7fb60c16d4

Release notes.

f398475d9c

This commit introduces the storage of historical data in Stable Memory.

4cdc4e66ec

This commit introduces a new query endpoint get_node_provider_rewards_calculation.

6fd65a9e53

This commit builds up on the previous ones by enabling the API for fetching reward data for a node during a certain period.

About CodeGov
CodeGov has a team of developers who review and vote independently on the following proposal topics: IC-OS Version Election, Protocol Canister Management, Subnet Management, Node Admin, and Participant Management. The CodeGov NNS known neuron is configured to follow our reviewers on these technical topics. We also have a group of Followees who vote independently on the Governance and the SNS & Neuron's Fund topics. We strive to be a credible and reliable Followee option that votes on every proposal and every proposal topic in the NNS. We also support decentralization of SNS projects such as WaterNeuron, KongSwap, and Alice with a known neuron and credible Followees.

Learn more about CodeGov and its mission at codegov.org.
3 Likes

Proposal 138270 | Tim - CodeGov

Vote: Adopt

Reason: This proposal upgrades the ICP index canister. Build is successful, hashes match, commits match descriptions and the reasoning behind the changes is sound. Commits are reviewed below.

[f322cac905]
Adds function icrc21_check_fee, which is then used in icrc21_canister_call_consent_message to check that the fee the user is signing matches the fee in the ledger.

[2651e30c2c]
Adds variant GenericTransfer to the Icrc21Function enum. This is then used in ConsentMessageBuilder and elsewhere to provide ICRC-21 functionality (enabling human-readable consent messages) for dapps that need to send ICP to a recipient where they only know the account ID.

[49d659c29d]
Updates dependencies on ic-cdk (canister development kit) to version 0.18.6 throughout the repo, along with other version updates including those listed in the commit notes. Implements ic-cdk-executor in order to allow interaction from earlier versions of ic-cdk, and ic_cdk::futures for managing asynchronous canister tasks, along with further changes as outlined in the description.

Proposal 138271

Vote: Adopt

Reason: This proposal upgrades the ICP ledger canister. Build is successful, hashes match, commits match descriptions and the reasoning behind the changes is sound. New commits are reviewed below.

[be2471d4de]
Removes the notify-method function logic (for notifying a canister that you have made a payment to it) and replaces it with trap_since_notify_is_no_longer_supported, which directs the caller to the forum post explaining the change.

[9b0f6b1db3]
Removes an inaccurate comment on ledger version upgrading.

[00a4c4c360]
Removes code that was added to the post_upgrade function in commit fed75e2a5d to burn any funds in the anonymous principal account as this has now been completed, plus associated test changes.

Proposals 138272, 138273, 138276 & 138278

Vote: Adopt

Reason: These proposals upgrade the ICP archive1, archive2, archive3 and archive4 canisters respectively. Build is successful, hashes match, commits match descriptions and the reasoning behind the changes is sound. The 4 proposals are identical and the commits within them have already been reviewed above.

About CodeGov
CodeGov has a team of developers who review and vote independently on the following proposal topics: IC-OS Version Election, Protocol Canister Management, Subnet Management, API Boundary API Boundary Node Management, Node Admin and Participant Management. The CodeGov NNS known neuron is configured to follow our reviewers on these technical topics. We also have a group of Followees who vote independently on the Governance and the SNS & Neurons' Fund topics. We strive to be a credible and reliable Followee option that votes on every proposal and every proposal topic in the NNS. We also support decentralisation of SNS projects such as WaterNeuron, KongSwap, and Alice with a known neuron and credible Followees.

Learn more about CodeGov and its mission at codegov.org.
1 Like

proposals - [138270 - 78] Cyberowl | CodeGov

Proposals:

138270
138271
138272
138273
138276
138278

Vote: [ADOPT, ADOPT, ADOPT, ADOPT, ADOPT, ADOPT]

Reason & Feedback:

I successfully built and verified the hash. All the commit descriptions match their code changes.

Checks:

Hash Match: [PASS, PASS, PASS, PASS, PASS, PASS]
Target Canister: [PASS, PASS, PASS, PASS, PASS, PASS]
Proposer Check: [PASS, PASS, PASS, PASS, PASS, PASS]

Commits Summary

proposal/138270

f322cac905
fee verification in ICRC-21 consent message generation to ensure argument fees match ledger fees

2651e30c2c
support for legacy ICP transfers in ICRC-21 consent messages by adding new enums like AccountOrId and GenericMemo, update the ConsentMessageBuilder to accommodate these types for from, receiver, and memo fields.

49d659c29d
unifies the ic-cdk dependency to version 0.18.6 across the repository, updating related crates such as candid to 0.10.17, ic-cdk-timers to 0.12.2, ic-canister-sig-creation to 1.3.0, and ic-vetkeys to 0.4.0, adjusts code for compatibility in 147 files overall.

proposal/138271

be2471d4de
adds trap mechanism for the deprecated ICP ledger notify method to enforce migration to the CMC notify flow, removes the associated test_notified_canister

9b0f6b1db3
Fix comment removing the assertion that upgrades from version N to N+1 should always be possible

00a4c4c360
cleans up the ICP ledger by removing one-off code in the post-upgrade hook that burned funds from the anonymous principal’s default subaccount

proposal/138272

Same as proposal/138270

proposal/138273

Same as proposal/138270

proposal/138276

Same as proposal/138270

proposal/138278

Same as proposal/138270

About CodeGov
CodeGov has a team of developers who review and vote independently on the following proposal topics: IC-OS Version Election, Protocol Canister Management, Subnet Management, Node Admin, and Participant Management. The CodeGov NNS known neuron is configured to follow our reviewers on these technical topics. We also have a group of Followees who vote independently on the Governance and the SNS & Neuron's Fund topics. We strive to be a credible and reliable Followee option that votes on every proposal and every proposal topic in the NNS. We also support decentralization of SNS projects such as WaterNeuron, KongSwap, and Alice with a known neuron and credible Followees.

Learn more about CodeGov and its mission at codegov.org.
2 Likes

Proposal #138270 for ICP index — ZoLee | CodeGov

Vote: Adopted

Reason: The build is reproducible and both the wasm hash as well as the arguments hash are a match.
The canister id qhbym-qaaaa-aaaaa-aaafq-cai is correct and the install mode is upgrade.

Proposal #138271 for ICP ledger

Vote: Adopted

Reason: The build is reproducible and both the wasm hash as well as the arguments hash are a match.
The canister id ryjl3-tyaaa-aaaaa-aaaba-cai is correct and the install mode is upgrade.

Proposal #138272 for Archive1, #138273 for Archive2, #138276 for Archive3 & #138278 for Archive4.

Vote: Adopted

Reason: The build is reproducible and both the wasm hash as well as the arguments hash are a match.
The canister id is correct and the install mode is upgrade.

About CodeGov
CodeGov has a team of developers who review and vote independently on the following proposal topics: IC-OS Version Election, Protocol Canister Management, Subnet Management, Node Admin, and Participant Management. The CodeGov NNS known neuron is configured to follow our reviewers on these technical topics. We also have a group of Followees who vote independently on the Governance and the SNS & Neuron's Fund topics. We strive to be a credible and reliable Followee option that votes on every proposal and every proposal topic in the NNS. We also support decentralization of SNS projects such as WaterNeuron, KongSwap, and Alice with a known neuron and credible Followees.

Learn more about CodeGov and its mission at codegov.org.
1 Like