Community Project proposal: Integrate Internet Identity into dfx

Let’s try something new…

Here is a proposal of a possibly useful feature that I am not asking DFINITY to do, but rather hope the community will do, i.e. possibly you.

High level idea

The dfx command line tool should be able to

  • serve as a “device” for your Internet Identity (useful for recover)
  • be able to make calls “in your name” (good for development, but also for automating your interaction with, say, the NNS or DSCVR etc, while still acting as “you”).

Help wanted, advise offered

I have a proof of concept for the first point above in https://github.com/dfinity/sdk/pull/1665, but I very likely won’t finish that myself. But it would still be nice to have that feature, so I’m willing to advise and mentor anyone who wants to give it a shot, including a fairly complete specification of how this feature could look like.

This is a great opportunity to learn more about the technical details of the Internet Computer’s external authentication protocol, the Internet Identity, certified variables, etc. Consider it an effort to increase technical expertise in the overall community.

Anyone interested? Please spread the word maybe!

Possible UX

Maybe something like this would work nicely:

dfx ii register  --anchor  …          Adds your dfx key as a device to your Internet Identity 
dfx ii add-device --link … --alias …  Adds another device to your Internet Identity
dfx ii sign-in --frontend …           Makes you your II pseudonym for the given app available as a
                                      dfx identity, or refreshes the login

FAQ

  • Why now?

    Because the dfx code is open source!

  • Will this be merged once done?

    I can’t promise or tell, of course. I have no say in this, and this is not an “official” thing. If not, it can easily be turned into a stand-alone CI tool, though.

  • Will I get money for it?

    Not from me. Maybe you can apply for a grant for this work.

  • What should I know already?

    Good knowledge of rust. I am not a rust expert and will not be of great help if you are stuck with that.

9 Likes