ICPWatch
Get alerts
Application canisters

Upgrade Internet Identity Frontend Canister to 21ab317d3

#143576 · Adopted and executed · proposed Aug 14, 2026

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

Summary

Frontend Canister Upgrade

What's Changed

_Since proposal-frontend-143404_

  • fix(fe,be): three papercuts found triaging intermittent OpenID sign-ins (#4213)
  • fix(be,fe): base the Settings MCP config on the certified identity_info (#4215)
  • fix(fe): legacy passkey shown as unusable with no way to fix it (#4212)
  • chore(fe): show the VC consent message as plain text (#4202)
  • fix(fe): redirect ICRC-25 authorize from legacy domains to id.ai (#4210)
  • fix(fe): abort a stale passkey ceremony instead of blocking the next one (#4211)

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 21ab317d3bf27467336c902702bfd41b0f4ea06e
./scripts/verify-hash --iife-hash ef4f04868f0c32227989cb7ac529bcb16e6bd7fb9874fb21779c020a6282b343

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";
  };
  fetch_root_key = null;
  analytics_config = opt opt variant {
    Plausible = record {
      domain = opt "identity.internetcomputer.org";
      track_localhost = null;
      hash_mode = null;
      api_host = null;
    }
  };
  dummy_auth = null;
  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/143576