Dfinity Internet Computer and Identities
In my first blog post about the Internet Computer I wrote about deploying SkyDocs to the Internet Computer. First on my local development machine, and later to the Internet Computer mainnet.
You need to pay for Cycles, and with it comes the concept of wallets and identities. I had a lot of trouble with the multiple identity options the Intenet Computer offers and the incompatibility to transfer them.
Decentralized Identity on the Web
My first experience with the Internet Computer and decentralized identity was through the Identity Portal at https://identity.ic0.app/ This portal requires you to login/sign-up using a hardware key. I have a YubiKey at home so I used that. It generates an identity and you can attach multiple YubiKeys to your identity, so if you ever lose your hardware key, you can login with another. This is a decentralized identity, there's no e-mail verification, password forget option etc.
When installing the developer SDK, it generates a new local identity for you. You can also use this identity to deploy to the Internet Computer mainnet. There's a key file on your local machine you can backup.
But I already have an Identity created through the web. My Cycles to run the Canisters are also tied to my Web identity. So how can I use my web identity with the developer tooling?
As far as I know, You can't. There's no option to export keys from the web and import them to the DFX command line tooling.
Another alternative is the Plug Wallet, this Chrome Extension can be found at https://plugwallet.ooo/ It is a sort of MetaMask for the Internet Computer, it can hold ICP, Dank XTC and other tokens.
This wallet does not have the ability to import your Web identity or Developer identity. It can only import/restore wallets that are created with Plug.
There is an option to Export to DFX identity. So you can use your Plug Identity with the developer tooling. The export went fine, but importing the file gave me an error: Invalid Ed25519 private key in PEM file at identity.pem
So this method should work, but did not work on my local machine. I contacted support and we found out this was a bug.
Downgrading to DFX version 0.8.0 fixed this and I was able to import my Plug Wallet Identity.
There's limited portability with your Internet Computer Identity. I hope this gets improved, or maybe there will be ways to grant ownership to a Canister to multiple identities, so they can all interact with a Canister as if they were the owner.