Please describe your proposed solution
- Not just a wallet, but a solution for developers to create a fully decentralized application!
- Gives the ability not to have to rely on browsers that only allow Google extensions
- Open source aspect allows ability for other developers to implement functionality that can be shared with the community
First, wallet extensions run on their own infrastructure to aggregate information about users’ UTXOs from the blockchain, without giving that same power to the user. Moreover, no wallet providers provide information about their backend infrastructure. If the wallet provider’s server or DNS goes down, or some other global event takes place, the wallet will go down and the user will not have access to it.
Second, not a lot of wallets are open source, and the user has to trust the integrity of the wallet provider.
Third, it is difficult to build a true dApp without having it run in a web browser to gain access to wallet extensions for signing and managing transactions. This is especially the case if a developer wants to use technologies like Electron or Apache Cordova to make desktop or mobile applications for a smoother native user experience. Even though there are existing mobile wallets to connect to your cloud-hosted application, those wallets do not support stand-alone native mobile and desktop applications.
Our primary reason to open source this wallet solution is to make wallets more transparent and decentralized, in order to protect users from unexpected outages. Our decision to target React is based on its dominant market share, being the most used web application framework in the world.
The Merkaba wallet seeks to offer a decentralized solution for a range of users on Cardano: 1) new people being onboarded to Cardano via the Mandala dApp, who want a simple and stable wallet solution; 2) anyone already on Cardano who would like a decentralized wallet with the ability to use locally run nodes/indexers; and 3) developers in the Cardano community who may find possible value in this wallet approach and want to integrate it in their own projects.
The value of the wallet will be demonstrated in a number of ways. Its impact will be felt in the long term via community engagement. In terms of users, this relates to how many transactions are done, opt-out/opt-in metrics, etc. In terms of developers, we will be interested to see how it is utilized in future dApp projects; this will be measured by monitoring fork metrics on GitHub. Finally, we will be inviting those developers who use this component and are running their own node to share it with others, thereby supporting the overall Cardano infrastructure. Going forward, we will be providing a decentralized index of participating infrastructure providers.
- This wallet is integrated with the Mandala project. Members of Mandala will benefit by having this wallet as the project grows on Cardano, to access their NFTs and transact in a decentralized way. The Mandala dApp will feature an Electron wallet built using this React component; this “Merkaba” treasure chest will be appreciated by Mandala members as more dimensions of the game come online.
- This wallet can uniquely be utilized in any web-based dApp that supports React components like NEXT.js or Vue.js. Developers will benefit from this open-source solution. Its value for Cardano is in supporting development of true dApps.
- It is also unique in how it allows you to specify your own blockchain infrastructure (e.g., Kupo/Ogmios, Koios, Carp).
This wallet build is associated with the Mandala project, as part of its ongoing initiative on Cardano to support dApp development, develop gameplay on the chain, and raise awareness about decentralization while onboarding new people. For more info on Mandala, see the write-up by the Cardano Foundation: <https://developers.cardano.org/blog/2023-06-15-june>.