Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


A Cross-Platform, Multi-Communication, Serverless (Decentralized) App.


This version is a complete rewrite from scratch and currently intended for the Polygon Hackathon on Devpost There's much improvement from the previous implementation. The previous version can be found here.


Protonet is a communication app, based on modern techniques, intended to be a secure way of interaction, whether Text Messaging or Voice Calling or Video Sharing or Purchasing Crypto Currencies or Using Crypto Currencies for shopping, should be reliable and secure. It is based upon blockchain compatible wallet. It allows a blockchain user to communicate with another blockchain user, independent of what blockchain they belong. It also allows auto creation of blockchain wallet account.


Security is the primary concern of this app and hence it takes it seriously. A user password is required to access the app. The app doesn't save the user password anywhere. The user can then either copy/paste private key from clipboard or auto create a new account. The private key is encrypted with user's password and then stored in the database. This makes sure that the original private key is never stored on the user's device and if for any reason(s), the app's database base is compromised, then the attacker will need your password to view private key(s).

Security Notes

The app is in very early stage(alpha) and not recommended for production. If the user looses his password then there's no way he can access the account(s) in this app. The app clears the clipboard after private key is pasted for better security. There are some OS like Windows 10 where clipboard history can be maintained and enabled. If that's the case (or similar) with your OS, then make sure it is disabled, otherwise your private key is vulnerable to attackers, especially in copy/paste private key process.

Research Resources

MIT Licensed

You are free to use any code from this app. You are allowed to make pull request, etc. as well. The intent of this app was to help open source community and receive help from open source community and anyone interested and also to give a glimpse of how powerful modern technologies. For third party libraries, please refer to their respective licenses. Please also refer to License file.

Technologies Glimpse

Gioui a modern cross-platform UI Framework in Go language.
Libp2p a modern cross-platform Networking Framework / Libraries in Go language.
There are other libraries used as well. Please refer to source code for that, especially go.mod files.


The app uses many third party open source libraries without which this project wouldn't be possible. For Gui, it mainly uses Gioui
For networking, it mainly uses Libp2p

Supported Platforms

Windows, Mac, Linux, Android, iOS, Modern Browsers
The app is mainly tried on Linux,Android and Modern Browsers, for other platforms you may need to figure out a way.



From commandline/terminal, cd into the root directory of this project, then make sure all the dependencies are installed. Run go get ./..., followed by go run .

Android Build

Make sure AndroidStudio and AndroidSdk is installed
Run the following command inside the root directory of the project from terminal/commandline
gogio -x -buildmode archive -appid protonet.wallet -o ./android/app/libs/protonet.aar -version 1 -target android .
The above command will generate protonet.aar file inside android/app/libs directory. Now open the android folder using Android Studio IDE The IDE will help you out with the rest of the debug/run/build process.


  • Error in ... #include<jni.h> No such file or directory Resolution CGO_CFLAGS="-I${JAVA_HOME}/include -I${JAVA_HOME}/include/linux" go get ./... Solution

Deployment Refer link below and gogio -x -work -appid live.protonet -target android .

Deployment To Playstore

 gogio -buildmode archive -x -work -appid live.protonet -minsdk 22 -version 3 -target android

then delete protonet.apk, followed by

/pathToZipAlign/zipalign -f 4 /tmpPathFromAbove/app.ap_ protonet.apk
/pathToApkSigner/apksigner sign --ks yourkey.jks

Web Assembly

go run -target js . go get goexec 'http.ListenAndServe(":8080", http.FileServer(http.Dir("")))'

Useful References

JNI References


Pick Image From Android

Encrypt and Decrypt Text Message


We are creating a pure peer-to-peer communication app based on blockchain wallets. Benefits over other communication apps

  1. Data is not stored on the centralized server.
  2. Doesn't depends on mobile number.
  3. Allows communication between blockchain users, independent of the blockchain they belong to.
  4. Easy to use even for non blockchain users.
  5. No need for username or mobile number or email. Just your password.


To keep things in sync and consistent event after the re-installation of the app we need a way


No description, website, or topics provided.







No packages published