Internet Identity Open Source

Awesome! Any reason why this was written in Rust and not Motoko? Is the compiled WASM then deployed to the internet computer?

There is some code in the canister (crypto stuff and CBOR encoding) where Motoko is still a few libraries short, so we opted for Rust.

Yes, the compiled wasm is deployed to the Internet Computer. You can even check which module precisely is running there:

~/dfinity/internet-identity $ dfx canister --network ic --no-wallet info rdmx6-jaaaa-aaaaa-aaadq-cai
Controller: r7inp-6aaaa-aaaaa-aaabq-cai
Module hash: 0xf43dfe544a2612ec3c4a0ee291fb4d69ccd01df5f2836c804619fe6a52a43ea0

Are there any similar examples for clients that aren’t web-based?

For example, a CLI written in Rust that integrates with Internet Identity.

No, but it’s rather trivial to write a frontend tool based on the Identity’s did file. I planned to create a dfx subcommand to do that, but didn’t get around to doing it yet. Or maybe someone beats us to it? It’s all out there!

In Chrome on Windows 10, I get to this step and have no idea what it wants and see nothing in Dfinity help or Webauthn Google searches that help.


Now I see Windows 10 allows a security key device like Ubikey. I understand the necessity but it’s sort of a “you got to be kidding me” moment that I have to buy a Ubikey, set up 2FA and/or not lose Ubikey and the backups. I don’t have the newest phone, so it can’t get on either. Ugh. Despite my extreme optimism about Dfinity, it might be a log time before I get on. Let me know if it starts supporting a username, password, and authenticator.


I don’t think dfx is open source, is it?

Not yet, but you can easily do that as a stand alone tool using just agent-rs, i.e. it does not have to be part of dfx.

1 Like