Upgrade Internet Identity Frontend Canister to 3cd91d621
#143906 · Adopted and executed · proposed Sep 11, 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)
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