You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Internet Identity now has a separate frontend canister. Update the skill
to reflect the backend/frontend split: canister IDs table, identity
provider URLs, pitfall guidance, and code example.
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: skills/internet-identity/SKILL.md
+7-5Lines changed: 7 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -22,11 +22,12 @@ Internet Identity (II) is the Internet Computer's native authentication system.
22
22
23
23
| Canister | ID | URL | Purpose |
24
24
|----------|------------|-----|---------|
25
-
| Internet Identity |`rdmx6-jaaaa-aaaaa-aaadq-cai`|`https://id.ai`| Stores and manages user keys, serves the II web app over HTTPS |
25
+
| Internet Identity (backend) |`rdmx6-jaaaa-aaaaa-aaadq-cai`|`https://backend.id.ai`| Manages user keys and authentication logic |
26
+
| Internet Identity (frontend) |`uqzsh-gqaaa-aaaaq-qaada-cai`|`https://id.ai`| Serves the II web app; identity provider URL points here |
26
27
27
28
## Mistakes That Break Your Build
28
29
29
-
1.**Using the wrong II URL for the environment.**Local development must point to `http://rdmx6-jaaaa-aaaaa-aaadq-cai.localhost:8000`. Mainnet must use `https://id.ai`. Internet Identity has a well-known canister ID (`rdmx6-jaaaa-aaaaa-aaadq-cai`) that is the same on mainnet and local replicas -- hardcode it rather than doing a dynamic lookup.
30
+
1.**Using the wrong II URL for the environment.**The identity provider URL must point to the **frontend** canister (`uqzsh-gqaaa-aaaaq-qaada-cai`), not the backend. Local development must use `http://uqzsh-gqaaa-aaaaq-qaada-cai.localhost:8000`. Mainnet must use `https://id.ai` (which resolves to the frontend canister). Both canister IDs are well-known and identical on mainnet and local replicas -- hardcode them rather than doing a dynamic lookup.
30
31
31
32
2.**Setting delegation expiry too long.** Maximum delegation expiry is 30 days (2_592_000_000_000_000 nanoseconds). Longer values are silently clamped, which causes confusing session behavior. Use 8 hours for normal apps, 30 days maximum for "remember me" flows.
32
33
@@ -70,13 +71,14 @@ let authClient;
70
71
const canisterEnv = safeGetCanisterEnv();
71
72
72
73
// Determine II URL based on environment.
73
-
// Internet Identity has a well-known canister ID (rdmx6-jaaaa-aaaaa-aaadq-cai) that is
74
-
// the same on mainnet and local replicas (icp-cli pulls the mainnet II wasm).
74
+
// The identity provider URL points to the frontend canister (uqzsh-gqaaa-aaaaq-qaada-cai),
75
+
// not the backend (rdmx6-jaaaa-aaaaa-aaadq-cai). Both are well-known IDs, identical on
0 commit comments