I’ve been thinking about the Internet Identity (II) system on the Internet Computer and how it generates unique addresses for each application. Don’t get me wrong, I totally see the value in keeping user activities separate and private across different apps. It’s a fantastic feature for privacy and security.
But here’s the thing: not everyone prioritizes privacy over convenience. I know plenty of users who would rather have the simplicity of using a single wallet address across all their applications. Constantly transferring funds between different addresses can be a real pain, and it adds unnecessary friction to the user experience.
So, here’s what I’m proposing: why don’t we give users the choice? Let them decide whether they want to stick with unique addresses for each app or switch to a single global wallet address tied to their Internet Identity. It’s all about flexibility and catering to different user preferences.
Now, I’m not saying we should get rid of the privacy feature altogether. We can keep it as the default setting to protect users who might not be aware of the privacy implications. But for those who value convenience more, let’s make it super easy for them to opt for a single wallet address. We can add a simple toggle in the Internet Identity management interface, along with clear explanations of the trade-offs.
At the end of the day, the success of the Internet Computer depends on accommodating a wide range of users with different priorities. By giving users this choice, we can make the platform more user-friendly and reduce friction without compromising on the core principles of privacy and security.
So, DFINITY Foundation and fellow community members, what do you think? Let’s open up a discussion on how we can implement this feature and make the Internet Computer even better for everyone!
Looking forward to hearing your thoughts and ideas.
You need a browser extension wallet where users will have a unique address. Other Dapps can integrate with this wallet for login and transactions, similar to MetaMask. Both users and Dapps will need to trust this wallet.
I love the idea of having a functioning wallet in the ICP ecosystem. Clearly what we have now as browser extensions are NOT sufficient. I couldn’t imagine ever getting mass adoption with the current release of things like plug or bitfinty. Buggy, missing decent features, not supporting NFT’s and token for example.
What if the community came together and crowdsourced some of the most desire wallet features and hired someone to build it?
Maybe this could be a basic starting point?
MetaMask also has a mobile app. I’m just using it as an example.
Your requirement can be achieved without changing the fundamental logic of Internet Identity (II). If you want to alter the basic logic of II and give users more options, it’s impractical. Users may not even know what they chose when issues arise, leading to confusion.
Ideally, when connecting to a dApp with II, users should have the option to either generate a new unique address or select from existing ones. This flexibility enables the use of specific addresses for certain dApps and different addresses for others, avoiding the limitation of a single global address.
A lot of work is being done here to make sure that all wallets on the IC follow the same standards for integration. These standards will longterm enable other wallet developers to develop for IC. And existing wallet developers to make interaction with dapps more reliable (e.g. indicate to a dapp which token standards it supports).
For example the followed items aren’t possible until standards have been created to make it possible for wallet developers to implement these features:
Display all tokens sent to this wallet without manually adding.
Quite complex, you’d need some form of index that somehow keeps track of all tokens of all accounts. Considering the number of tokens could be very large, you’d need a multi canister aggregation system and some form of events. Some of these topics like events are being standardized at this moment.
Some attempts have been made to quickly hack this feature together like e.g. DAB that basically queries a long list of tokens but that doesn’t scale obviously.
Another quick improvement I’ve been thinking about is creating a wallet standard that allows a dapp to show a button to add a token to your wallet on your behalf. Avoiding the need to show a canister address and explanation to the end user as marketplace.
Swap integration with quotes from multiple dex
This requires all dex to follow a single swap standard, so each dex doesn’t require a whole custom integration in the wallet, preventing adoption of other new/upcoming/future dex. If I remember correctly, I saw some work being done on standardizing things around dex.
Regarding the OP, II is an identity provider not a wallet at the moment. It’s use case is as account authentication in a dapp, not holding funds across dapps.
Even if II were to have a global account address across dapps, it would still miss all the other features needed like token management, allowing dapps to request the user to approve transferring tokens etc.
These are the same reasons why the NNS is not a wallet, the only reason it supports tokens is for governance. Not sure what future plans are for the NNS, either add wallet support besides II or become some sort of wallet itself.
Instead II will most likely be used by wallets as alternative to a pass phrase as seen in most existing wallets and new upcoming wallets like Oisy and Slide*.
* I’m the dev behind Slide and it’s still very much work in progress, so integrations with other dapps are non existant and it’s “use at your own risk”.
Thanks for the feedback. These are just ideas and once they community provides feedback like you did, they can be changed or prioritized to a more realistic order.