SNS Updates 2025-08-29

The Governance Team submitted the following proposals. DFINITY plans to vote on these proposals the following Monday.

SNS Root

# Publish SNS Root WASM Built at Commit 7ab1889

__Proposer__: shahriar.javidi at dfinity.org

__Source code__: [6ab18899e82ac202fea4a549dcc6c5a5191e4992][new-commit]

[new-commit]: https://github.com/dfinity/ic/tree/6ab18899e82ac202fea4a549dcc6c5a5191e4992

## Features & Fixes

SNS Root now has a function called `register_extension` that is similar to `register_dapp_canister`,
but different in the following ways:

* The controllers of an SNS extension are the Root and the Governance canisters of the SNS (as
  opposed to just Root). This allows SNS Governance to call functions of the extension that can
  be called only by an extension\'s controller.
* Extensions are listed separately in the respone of `list_sns_canisters`.

Similar to `register_dapp_canister` and `register_dapp_canisters`, `register_extension` can be
called only by the SNS Governance.


## New Commits

```
$ git log --format=\"%C(auto) %h %s\" 2407385056dbcd1d5eb15b84a9c0cd5f511ff997..6ab18899e82ac202fea4a549dcc6c5a5191e4992 --  ./rs/sns/root
 43657c20bc feat(sns): use icrc-2 for the initialization of the SNS-Extensions (#6344)
 49d659c29d feat: Unify ic-cdk to v0.18.6 (#6264)
 8cde73b3aa chore(nervous-system): Update changelog for release 2025-08-15 (#6300)
```


## Wasm Verification

See the general instructions on [how to verify] proposals like this. A \"quick
start\" guide is provided here.

[how to verify]: https://github.com/dfinity/ic/tree/6ab18899e82ac202fea4a549dcc6c5a5191e4992/rs/nervous_system/docs/proposal_verification.md

See [\"Building the code\"][prereqs] for prerequisites.

[prereqs]: https://github.com/dfinity/ic/tree/6ab18899e82ac202fea4a549dcc6c5a5191e4992/README.adoc#building-the-code

```
# 1. Get a copy of the code.
git clone git@github.com:dfinity/ic.git
cd ic
# Or, if you already have a copy of the ic repo,
git fetch
git checkout 6ab18899e82ac202fea4a549dcc6c5a5191e4992

# 2. Build canisters.
./ci/container/build-ic.sh -c

# 3. Fingerprint the result.
sha256sum ./artifacts/canisters/sns-root-canister.wasm.gz
```

This should match `wasm` field of this proposal.

SNS Governance

# Publish SNS Governance WASM Built at Commit 6ab1889

__Proposer__: shahriar.javidi at dfinity.org

__Source code__: [6ab18899e82ac202fea4a549dcc6c5a5191e4992][new-commit]

[new-commit]: https://github.com/dfinity/ic/tree/6ab18899e82ac202fea4a549dcc6c5a5191e4992

## Features & Fixes

SNS Governance has initializes the extensions via an ICRC-2 flow; instead of directly
transferring tokens to the extension, it grants an allowance for the extension and then calls into
the extension which can claim the tokens by an `icrc2_transfer_from`. In this way, if the initialization
of the extension fails, tokens are not stuck there and the proposal can be retried.

## New Commits

```
$ git log --format="%C(auto) %h %s" 71b0383f8263cc68cc6c455844759c7428795a40..6ab18899e82ac202fea4a549dcc6c5a5191e4992 --  ./rs/sns/governance
 84a268e93a feat(sns): Add proposal to upgrade extensions (#6466)
 b9028f14c8 feat(sns): Ensure extension canisters do not already run any Wasm module when its being registered (#6369)
 43657c20bc feat(sns): use icrc-2 for the initialization of the SNS-Extensions (#6344)
 ada54f14ab fix(sns): Add disclaimer to the register extension (#6293)
 c053a4439e feat(sns): Validate that treasury manager extension is on fiduciary subnet (#6393)
 94d9454230 feat(sns): Use same validation function for proposal creation as execution (#6372)
 abbed6b27a feat(sns): Add extension_operations to list_topics (#6371)
 49d659c29d feat: Unify ic-cdk to v0.18.6 (#6264)
 8cde73b3aa chore(nervous-system): Update changelog for release 2025-08-15 (#6300)
 7013d28c81 chore(sns): Migrate to stable structures and memory manager (#6301)
 696287e95f feat(sns): Add custom topics for ExecuteExtensionOperation proposals based on which operation is running (#6281)
 e6b5a37c56 feat(sns): Add validation for register extension initial arguments (#6250)
 46eacff4cb feat(sns): Validate treasury limits before treasury manager deposit operation (#6245)
```


## Wasm Verification

See the general instructions on [how to verify] proposals like this. A "quick
start" guide is provided here.

[how to verify]: https://github.com/dfinity/ic/tree/6ab18899e82ac202fea4a549dcc6c5a5191e4992/rs/nervous_system/docs/proposal_verification.md

See ["Building the code"][prereqs] for prerequisites.

[prereqs]: https://github.com/dfinity/ic/tree/6ab18899e82ac202fea4a549dcc6c5a5191e4992/README.adoc#building-the-code

```
# 1. Get a copy of the code.
git clone git@github.com:dfinity/ic.git
cd ic
# Or, if you already have a copy of the ic repo,
git fetch
git checkout 6ab18899e82ac202fea4a549dcc6c5a5191e4992

# 2. Build canisters.
./ci/container/build-ic.sh -c

# 3. Fingerprint the result.
sha256sum ./artifacts/canisters/sns-governance-canister.wasm.gz
```

This should match `wasm` field of this proposal.

2 Likes