Dear Algonauts,
My name is Celestino, I am on Algorand trying to build a couple of applications. I hail from Nairobi, Kenya in East Africa. One of the application’s requirements is that it is able to work offline, and send transactions offline or at least with the most minimum bandwidth of internet, or no internet at all. It leverages what we call USSD technology, it is an old telecommunications service that is really popular south of the Sahara, this is because it is very simple to use and still enables one to access normally online services but in an offline manner.
Since I am building an application for users south of the Sahara, it is hard to imagine not implementing USSD technology, especially for my dapp’s MVP. Of course as it scales, we can have a mobile app for it, but again an Android app that has offline mode.
So, that said, let me get straight to the matter. So, due to this app’s USSD requirement, I met with a couple of members in the Algorand Community and Foundation, whereby I shared with them the need for a USSD offline Algorand Wallet. With this USSD offline wallet, developers in Africa would easily and cheaply build dapps on Algorand that solve problems in their communities. Actually, one of the popular dapps on Algorand from Africa mostly uses USSD for their solution, they go by the name of FlexFinTx, you probably heard of them. However, their USSD component is not open-source and reproducible for Algorand developers, and Algorand developers would actually have to build their own.
Even so, if we built our own Algorand USSD offline wallet, it is a challenge to decentralization. In fact, someone asked me, “How would you run a blockchain node on a feature phone?” So, just yesterday an idea came to me of how it would happen.
zk-Snarks is the solution. So here it goes, we should have an open-source USSD wallet connected to an Algorand node via zk-Snarks. This would enable these light clients i.e feature phones, to sync with the Algorand Network without having to run full nodes. I wonder if this is a viable mechanism on Algorand, I would love your feedback.
It could be a Layer-1 solution or a Layer-2 solution, not so sure about this. However, I checked several blockchains out there, and one of them ingeniously syncs small devices like mobile phones using zk-Snarks. I would love if I could hear from Algorand Researchers if this is possible on Algorand, and on developers on how it could be achieved in the most cost-effective way.
Creating a USSD offline wallet would be really beneficial to the Algorand community and technology, by making Algorand accessible to day-to-day Africans, growing the community, and making Algorand get used to architect real-world solutions.
I had earlier shared my reasons and other research material on the Algorand Discord, and I also have google docs showcasing the impact of enabling USSD technology to work on Algorand(actually any blockchain). Basically, anyone would have offline and secure access to making transactions on Algorand and still access Defi, send money and do everything without internet, just pressing buttons on his/her 10$ feature phone. Thank you.
Sincerely,
Celestino Kariuki