๐ Hola dear community and council! I'm Daniel, long time ecosystem builder, senior "king" ambassador and founder of the Virto Network, the future hub of sustainable d-commerce and services for Polkadot.
Earlier this year with your support my team and I built libwallet
, an ultra-light and portable framework for creating fast, secure wallets of all kinds(web apps, extensions, mobile, desktop, hardware, hosted, etc.). It has been an on-going effort of continuous redesign and iteration to get to a point where we are now comfortable with its current architecture to start building real-world and user facing products that accommodate the many interesting use cases of our interconnected ecosystem.
It's our mission to reeally bring blockchain to the masses, for more than two years we've been creating solid foundations* and have being learning first hand from regular citizens what might take for people to use blockchain technology without realizing it and how not to compromise decentralization in the process.
*_Previous work: Web3 grant for orml-payments, Kusama funded Sube, Kreivo common good parachain for Kusama, Bloque insta-stores, decentralized on&off ramps._
Although a lot of progress has been made all over the place to ease the entry barrier to the Web3, we are still miles away from reaching mass adoption, it's inspiring to see the many efforts the community put in educating new users in the ways of blockchains and decentralization but there's still a long, possibly never ending journey ahead.
It's great to see how the blockchain industry has one of the highest levels of innovation and technology advancement ever seen, the field moves at incredible speeds that are hard even for seasoned technologists to catch up, trying to reeducate the world in "the new better ways" is a common approach in Web3 however it might not be the best option, we could be neglecting the big majority of the population that won't try to follow the latest and greatest, instead we need to be inclusive and find ways to translate the new revolutionary ideas to a common language that results familiar to the people.
We want help newcomers to easily navigate the world of Web3, wallets are the first interaction point of a user but we are starting simple and a bit different, with a set of constraints that I'll call now the mom rule, any term or action that would require me to explain my mom what it is should be avoided, terms like(at least initially) blockchain, private key, hash, staking, NFTs, browser extension, or even wallet don't pass the mom rule so they are not making it in the first cut since they need explanation.
No metaverse-enabled-NFT-capable killer wallet this time, instead let us introduce you what we hope will become your reliable partner in the quest of exploring the sometimes scary Web3.
Fido is more than a wallet, it's a development platform. On top of libwallet
and a plugin runtime we've prototyped before we are building an ecosystem of wallets for different use cases that can be extended with a variety of services(skills and tricks) developed by the community in their language of preference(JS and WASM). Our target audience being non crypto-native users(including developers) means our product has to feel familiar(e.g. easy login, familiar technologies) yet decentralized.
The Fido project breaks down mainly in two pieces,
Fido bot: Your companion as hosted wallet that can be interacted with via chat using Matrix, the decentralized communications protocol(bridges to other chats can come later) or other protocols like a traditional HTTP API that gives developers access the different skills your Fido has learned. There will be multiple ways to install Fido so it can stay alert 24/7 and give you a hand whenever you need, depending on the platform it will use the most appropriate libwallet vault backend to keep secrets secure, an interesting one being a vault based on Matrix's SSSS that we have prototyped, it allows backing up your wallet securely in your Matrix account to reduce the risk of losing access.
Fido Shell: A decentralized super-app for the Web(not an extension), desktop, mobile and terminal. It's the graphical interface and Matrix client used to manage your Fido(s), where you can teach it new skills or tricks(mini appplets) and aggregate the many compatible applications created by the community.
NOTE: Initiall functionality will be very basic, we will only provide an "accounts skill" with a simple applet for minimal token transfers support and a very simple chat.
โ ๏ธ To set expectations right, this first delivery of the Fido bot and the Fido shell should be consider experimental software not suitable to for managing large amounts of money that could be lost due to bugs in any of the components of our system. After launch we hope to gather enough feedback from the early adopters in the community before we recommend Fido for production use.
๐ค Hard-core crypto fans might initially find the wallet boring as we are focused more on the real-world use cases of Virto that need to pass the mom rule, like buying a t-shirt, ordering food, calling a taxi, etc.
We will divide the work in 3 stages that will last a total of 4-5 months, after previous experiences developing small pieces of software at a time that are hard to visualize as part of a bigger whole, this time we aim for a longer runway as it has proven difficult to attract/keep talent when working conditions are short term driven and uncertain.
Estimated duration: 1 month
| Task | role | hours |
|----------------------------------------------|-------|-------|
| Project planning and break-down in GH issues | lead | 1w |
| Shell concept design | desig | 1w |
| Brand, logo, web design and components | desig | 2w |
| Basic fido.sh with chat for updates | f-dev | 2w |
Estimated duration: 2 months
This is the main stage of development for creating the core building blocks with great emphasis in embedded(no_std) support.
| Task | role | hours |
|----------------------------------------------|-------|-------|
| Libwallet embedded vault (hardware keys) | e-dev | 2w |
| Libwallet Matrix vault with embedded support | b-dev | 2w |
| Libwallet `pass` vault for hosted Fido | b-dev | 1w |
| *Libwallet BLE proxy for Fido->mini-Fido | e-dev | 3w |
| APIs design and "Skills SDK" prototype | lead | 2w |
| Web components for shell and tricks/applets | f-dev | 4w |
| Fido Skills JS+WASM runtime | b-dev | 3w |
* Bonus with low priority
Estimated duration: 1 month
| Task | role | hours |
|----------------------------------------------|-------|-------|
| Bot and Skills management Skill/API | b-dev | 1w |
| Blockchain&Accounts skill with Sube library | b-dev | 2w |
| Shell implementation and bot integration | f-dev | 3w |
| Accounts applet implementation | f-dev | 2w |
| *Bot management applet | f-dev | 1w |
| *Developer applet for debugging | f-dev | 1w |
| Shell and Bot packages(image,docker,bin,...) | f-dev | 1w |
| Testing and QA | lead | 1w |
| Infrastructure set-up and server deployments | lead | 1w |
* Bonus with low priority
Estimated total hours = 31w * 30h/w = 930h
Total USD cost with avg. hourly rate = 930h * USD$75/h = USD$69_750
Total DOT cost = USD$69_750 / 7.394 USD/DOT(EMA30) = 9_433 DOT
libwallet
, a portable framework for creating secure wallets.libwallet
, designed to be user-friendly and decentralized.