Release Announcement: Canister Chosen Alternative Origins

Hi Everyone

This is an announcement for an upcoming proposal (hopefully later today) to upgrade Internet Identity to a new release.

This new release will contain one notable new feature, which is the ability for dapp developers to move the front-end origin to a new domain, while keeping the principals of the users stable. The corresponding specification changes were merged last week in this PR: Add specification for canister chosen alternative domains by frederikrothenberger · Pull Request #724 · dfinity/internet-identity · GitHub

For users, authenticating for a dapp using this feature will look like this (subject to change):

Note: Once released, this feature will be in an experimental phase until marked stable. While you are free to start using it right from the start, there might still be some protocol changes in the coming weeks. The current plan is to stabilize this feature by end of July.

Please let us know, what you think. :slight_smile:


The proposal has been submitted: Internet Computer Network Status


The proposal has now been passed and the feature is available on :slight_smile:


We are using Icfront to redirect requests now, anything needs to change to use it?

the short of it is - if you add a json-encoded array of strings at /.well-known/ii-alternative-origins for the domains you’re redirecting from, you can instead host the serviceworker at the custom domain, and then pass a derivationOrigin during authClient.login, specifying the canister id url that you have been redirecting to.

Full tutorial to come, plus there will be official support in the next releases of agent-js and dfx


Awesome news! One thing we really needed.

Really amazing to see this. On the right direction…:grin:

Does anyone try this on origin with asset type canister? Since /.well-known/ii-alternative-origins is in hidden directory, dfx deploy doesn’t add it to the deploy list.

Any suggestions?

I think this is supported in dfx 0.11.0 0.11.1 via .ic-assets.json: sdk/ at master · dfinity/sdk · GitHub

These examples might help:

1 Like

Paul pointed you to the best resources available, however, please note the feature is available since 0.11.1 (not 0.11.0).

Let me know if you’ll need more help :slight_smile:


Thanks a lot! It works. You saved my day. :grinning:

1 Like

It’s so confuse for me, can anyone give more details of how to use it?

1 Like