Research & Development of extensive projects on Algorand

Hello there Algonauts, Celestino here,

I am working on an open-source wallet on Algorand that enables offline transfers of ALGOs and any Layer-1 Assets.

See here: JASIRI-FS/JASIRI-Wallet: The JASIRI Wallet(Not Yet Official) (github.com)

It is meant to provide unfettered access and adoption to would-be adopters of the Algorand network and dapps in Sub-saharan Africa, looking at, majorly my own home country of Kenya. The wallet is called “JASIRI”, JASIRI means “Bold, Courageous” in Kiswahili. Ideally, this wallet is a fork of the official open-source Algorand Wallet, so it inherits all the best from Algorand’s Team Work which always has a great accent on security, decentralization, and transparency.

However, the app has a distinguishing feature in its ability to enable offline mode, meaning that users who do not have access to reliable internet can still be able to send ALGOs to their friends and family without any frictions. Ideally, they should also be able to do staking once in say a week when they can get Wi-Fi from a cybercafe or when they can buy data. The app should also ideally be like Exodus’, with in-built exchanges.

SUMMARY

  • As indicated earlier, the JASIRI Wallet will use USSD Technology
  • However, USSD Technology does not come with good UI/UX, as such, JASIRI uses the Hover’s USSD technology, see:Hover (usehover.com), Hover USSD comes with simplified scripts to integrate without compromising the UI/UX Design of your Android Application
  • To get a USSD code to test run the application, we get a USSD Code and a sandbox testing environment here: Africa’s Talking – Communication & Payments APIs for Africa (africastalking.com).
  • There is concern on sacrificing decentralization by enabling offline mode, for this concern, I was thinking about including compact certificates, but I am still not a master at how they work and how they would help the App work perfect[Active research]
  • However, since the JASIRI Wallet stills use Algod and the Algorand indexer to work, just as the normal Algorand Mobile Wallet would, I do not think there is any sacrifice being made to decentralization
  • What should be a concern is how do we create a standardized USSD Technology that is very secure. Think of it like how HTTP is made secure with SSL. This should be an active area of research as well.

WHERE I NEED SOME ASSISTANCE
Is it possible to partner with anyone to help me with quality, fully published, open-sourced research on how to make USSD access more secure in this application? (e.g how to avoid SIM Swapping, where do we put compact certificates? How about zk-Snarks?) I know and we all know how Algorand is known for its research-focused attitude and its wide array of partnerships with universities and great firms, so it was a no-brainer for me to come forward and ask for assistance on this. I would love to know if anyone is willing to help me with this, or even better connect me with anyone in the ecosystem willing to help. I do not want the wallet to mess up or be of a lower standard to what Algorand has done, it should be like a third-order integral from it.

Is it also possible if the Algorand Team can assist with an open-sourced design of their mobile wallet, like how they made the decisions, cause what I have noticed is that every step they make comes with very nuanced research and judgments.

I am also currently a single developer on the project, and I am not really that great at Kotlin which the Android implementation uses. But I applied for an Algorand Grant, so we should wait on that, but I would really love if anyone is willing to also partner up on helping to integrate the APIs and test to Algorand’s Level of Security and ensure it is as lightweight as theirs. I tried reaching out to the partners on the Algorand website but they are really hard and restrictive to make any leads with, so I got unnecessarily tired trying to reach out to them to assist with the project or even to talk with them, that’s why I am resorting to community support.

UPDATE 8:22P.M EAT 8/30/2021
I just thought I should add this link to some talk on the security of USSD: security - USSD secure or not? - Stack Overflow
There is a claim that it isn’t secure due to the weak nature of current over-the-air encryption schemes used in USSD implementations. They are easily breakable. However, since we are implementing USSD in an Android app, then the encryption can be done in the Android app to secure transactions. Ideally, even if the USSD feature is hacked, then transactions should fail, which is a safety mechanism.

UPDATE 8/30/2021, 9:21 P.M … FAQ

With JASIRI Wallet, it will make it easier to adopt users in African countries onto Algorand and Algorand Dapps because the wallet works in a way that is very familiar to how most fintech would work in Africa, so there is less resistance as opposed to the current wallets.

Best Regards,
Celestine Kariuki

1 Like

Hi Celestine,

can you please define little bit more what you are trying to accomplish here?

I am owner of company that created www.a-wallet.net … first open source pwa algo wallet

If this is true, you can simply use the AWallet in the offline mode. If you are offline it shows you your balance (non updated) but it should be real.

I can imagine use case when you encode the message to be sent to the network offline and pass it to other person in offline mode through qr code for example.

The problem in this is that you must send this message to the network in some specific time (in some number of blocks) and if you do not the message will not be accepted by the network.

The other problem is that if you make two transactions like this, which exceed half of the balance on the account, the first one that goes to the network will be accepted and other one will fail. This is very huge risk of not processing the payment for the receiver that I dont think anybody would take…

But on the other hand, I can imagine use case that you use your phone in the offline mode, and can make the qr transaction, while other person for example in the shop accept it (with online mode) using the qr code…

Is this what you are looking at? Are you developer? What languages are you good at?

Ludo

Hello @scholtz , thank you for your response,

However, the implementation I am looking for or rather working on uses Kotlin and does not need QR Codes to make transactions. We are talking about real-time transactions but at the comfort of say your home without having to scan QR Codes. No internet access. It is also a native Android app. No internet and no need to scan QR Codes, just send transactions fully offline. For most cases, people won’t really use the app if it does not have offline functionalities because data is expensive and the internet infrastructure in African countries is majorly concentrated in cities

@scholtz I’m not good at Kotlin, never used it, so just starting to use it now since it is what the official Algorand Wallet used. People in my area don’t frequent websites and web apps to get financial services, they only prefer cash or mobile transactions that can yield a physical form, and are simple to use and send across their peers. With USSD, you can send money or anything just directly with your phone number to someone else, and you can withdraw as well

If you do not understand that the users who accept transactions offline are in the risk that their transactions will not be accepted by the network, and you just say you implement USSD and you are ok with it, your project will fail… You must lists the risks, minimize tham and inform people that they have these type of risks…
Also I dont get it why you do not want qr codes… if you use paper to print out algorand transaction in qr , and you pass it to the person, and when he gets to the internet he scans the qr code and do the real acceptance the receiver gets the risk but can accept it offline

Also i dont get understand why you consider it expensive to have internet… The byte transfer when you push transaction to the network is much less then loading the google website.

@scholtz, it won’t fail, what I am trying to do has already been done, and is being done where I am from. I am not just wishfully thinking about what I am trying to do, I am trying to build something to help people access Algorand much easier and better. QR Codes are not enough and still won’t get the app adopted extensively as I want it to.

1 Like

@scholtz I don’t think you understand the motivation for the implementation, data, and the internet is expensive where I am, it’s obviously cheap where you are that’s why you are making the assumption you are making. Usually, nobody, where I come from, will care about using your app if it is not accessible offline.

1 Like