ICPWatch
Get alerts
Application canisters

Upgrade Internet Identity Frontend Canister to 3cd91d621

#143906 · Adopted and executed · proposed Sep 11, 2026

Yes 99.8%92.3% of voting power has votedNo 0.2%
tally read NNS governance canister, list_proposals
Action
Install Code
Proposer neuron
56
Created
Decided
Sep 14, 2026

Summary

Frontend Canister Upgrade

This release introduces major changes in Internet Identity's authentication scheme, enabling users to keep track of devices they've used to authenticate with apps and sign those out remotely. An @icp-sdk/auth library update and documentation around this will follow shortly. Internet Identity remains backwards compatible with older library versions, this release will continue to work with existing apps that are still on older library versions.

What's Changed

_Since proposal-frontend-143848_

  • feat(be,fe): answer a silent re-auth without rendering anything (#4248)
  • feat(fe): a Devices page for the browsers an identity is signed in from (#4249)
  • feat(fe): hand apps a session to re-issue their own delegations from (#4273)
  • feat(fe): keep an app's session across a page load (#4272)
  • feat(fe): hold a browser key and rotate it on every sign-in (#4271)
  • feat(fe): describe the browser a session was created from (#4270)
  • refactor(fe): one queue for authorization-bearing requests (#4269)

Full release notes

Wasm Verification

To build the wasm modules yourself and verify their hashes, run the following commands from the root of the Internet Identity repository:

git pull  # to ensure you have the latest changes.
git checkout 3cd91d621bb060308d04ff41155f378f1bc857cb
./scripts/verify-hash --iife-hash 1d4a8e7f0dd449349c9d17ce7fa7a1a2d2b7970c2a033771b7e85563456bf959

Frontend Argument Verification

Run the following command to verify the frontend upgrade argument hash:

didc encode -d ./src/internet_identity_frontend/internet_identity_frontend.did -t '(InternetIdentityFrontendInit)' '(record {
  backend_canister_id = principal "rdmx6-jaaaa-aaaaa-aaadq-cai";
  backend_origin = "https://backend.id.ai";
  related_origins = opt vec {
    "https://id.ai";
    "https://identity.ic0.app";
    "https://identity.internetcomputer.org";
    "https://identity.icp0.io";
    "https://identity.icp.net";
  };
  analytics_config = opt opt variant {
    Plausible = record {
      domain = opt "identity.internetcomputer.org";
    }
  };
  dev_csp = null;
  featured_dashboard_apps = opt vec {
    "https://caffeine.ai";
    "https://oisy.com";
    "https://oc.app";
    "https://multidex.ai";
    "https://opencloud.org";
  };
})' | xxd -r -p | sha256sum

The output should match the argument hash.

Official view: dashboard.internetcomputer.org/proposal/143906