Tonomy ID is the cross-platform mobile wallet (Android and iOS) for public and private EOSIO blockchains

Overview

Tonomy-ID

Tonomy ID is the cross-platform mobile wallet (Android and iOS) for public and private EOSIO blockchains. This application allows you to sign transactions on the block chain, share your DID and Verifiable Credentials containing your identity with others in a consensual way and log into web2 and web3 applications. If you lose your phone several mechanisms exist to allow you to recover your account without trusting anyone with custody of your private keys.

Tonomy ID is a React Native application in typescript. Tests are written in jest.

Features:

  1. EOSIO blockchain tx signing
  2. EOSIO blockchain multi-sig signing
  3. Social recovery
  4. Hardware recovery
  5. Security question recovery
  6. Non-custodial third party recovery ("guardians in Wallet+ paper)
  7. Verifiable Credential sharing
  8. Peer-to-peer EOSIO account communication network
  9. SSO login to web2 and web3 applications
  10. Sovereign data cloud storage (client-side encrypted using a recoverable key)

Dependancies

  • Linux debian distribution (Ubuntu 20.0.4 LTS used)
  • Nodejs v16.4.1+ suggested installed with nvm
  • Java JDK 11+
  • Android studio v2021.2.1 follow all the instructions
    1. Install Android Studio
    2. Install the Android SDK
    3. Configure the ANDROID_SDK_ROOT environment variable
    • Install Watchman Open Android Studio and Preparing the Android device
    • Preparing the Android device
    • Using a virtual device

See ./scripts/install_prerequisits.sh for installation of dependancies on Ubuntu 20.0.4

Run

First start the emulator in VS code (use recommended extension Android iOS Emulator), Android Studio, XCode or via command line:

~/Android/Sdk/emulator/emulator -avd Pixel_4_API_30
#or
#TODO iOS command

Then start the compiler

npm start
npm run android
#or
npm run ios

Test

npm test
Comments
  • Create staging environment infrastucture

    Create staging environment infrastucture

    Definition of done:

    • [ ] Infrastucture for the Demo app, blockchain node and ID app exists for staging environment (does not run the app yet though, only sets up the server)
    • [ ] Full documentation describing every step of how to set up from scratch
    application infrastructure 
    opened by theblockstalk 7
  • Create a usability testing plan

    Create a usability testing plan

    Definition of done

    • [x] A plan exists that will allow for external (uneducated to the project) people can test the app
    • [x] how are we going to show the use case of the identity app (i.e. that we are signing a trx on an app - not the identity app)
    • [x] there should be an agreed way to collect the feedback that it can be presented to the PO and designer
    design 
    opened by theblockstalk 4
  • Time the key generation function in nodejs to check security

    Time the key generation function in nodejs to check security

    Definition of done

    • [x] the KeyManager generate key from password function is timed with different parameters on different browsers and in nodejs
    • [x] a calculation is made based on the password length and on the length of a generic password bank list, to determine the amount of time needed for a malicious and well resourced hacker to crack it password
    • [x] based on this, a suggestion for the minimum requirements for passwords is made e.g. lenght, character variety
    application 
    opened by theblockstalk 4
  • Expo app bundles locally on any push request to test all modules compile

    Expo app bundles locally on any push request to test all modules compile

    Definition of done

    • [ ] On any pull request, a local expo Android .apk file bundle is created (eas service is not used)

    Maximum spend of 6 hours on this.

    Follow up: iOS

    infrastructure 
    opened by theblockstalk 3
  • SSO designs updated from usability testing results

    SSO designs updated from usability testing results

    Definition Of done

    • [ ] analysing the results and making a proposal to the PO for changes
    • [ ] SSO design screens updated from usability testing results
    design 
    opened by theblockstalk 3
  • SSO login website on external site when login button pressed - logic SDK

    SSO login website on external site when login button pressed - logic SDK

    https://docs.google.com/presentation/d/1xz7jMqM72CSvQBPK03miac0xjLgzyVnSBfjOecxVvwA/edit#slide=id.g17dc3ae99c9_0_0

    Definition of done

    for execution in the external website:

    • [ ] New function exists which will create a new random key pair
    • [ ] It will then use the private key to sign a random number, the URL, and its public key, Creating a jwt
    • [ ] there will then redirect to the id website, With the jwt in the redirect URL
    application 
    opened by theblockstalk 3
  • Design prototype optimizations

    Design prototype optimizations

    Keep the prototype organized, consistent and beautiful https://www.figma.com/file/cvV48t0f7O2znT6QBxK0Zj/Tonomy-ID?node-id=772%3A5523&t=uPKXG0CbK0yJbZpy-0

    Definition of done

    • [ ] Maintain the design screens in Figma
    • [ ] Maintain the prototype linking
    • [ ] add to the Design System if needed
    • [ ] Keep the frame names consistent
    • [ ] Keep a changelog document that developers can review to see what has changed

    Review points at the end

    design recurring 
    opened by theblockstalk 2
  • Create SSO flow diagram

    Create SSO flow diagram

    https://www.notion.so/tonomy-foundation/2022-12-22-Tonomy-ID-retrospectiev-f0f0d8c0e9c24d63a479be79a5631497#46e022d562614b27918381f438c909b3

    Definition of done

    • [ ] Flow diagram exists that shows the different flows for the single sign-on feature
    design 
    opened by theblockstalk 2
  • Website - login to Tonomy ID UI

    Website - login to Tonomy ID UI

    Screen https://www.figma.com/file/cvV48t0f7O2znT6QBxK0Zj/Tonomy-ID?node-id=804%3A7302&t=tKg46QbvxxkiFIpU-4

    Definition of done

    • [ ] UI matches Figma design
    • [ ] reactive layout is used (position of elements will change depending on screen size)
    • [ ] UI uses containers/component abstractions as adequate
    • [ ] Theme is used or any non-standard component colors
    application 
    opened by theblockstalk 2
  • Menu - UI

    Menu - UI

    Screen design implemented https://www.figma.com/file/cvV48t0f7O2znT6QBxK0Zj/Tonomy-ID?node-id=772%3A8252

    Definition of done!

    • [ ] UI matches Figma design
    • [ ] reactive layout is used (position of elements will change depending on screen size)
    • [ ] UI uses containers/component abstractions as adequate
    • [ ] Theme is used or any non-standard component colors
    • [ ] settings, help and info and logout buttons are the only menu items
    • [ ] name "Jack" not shown

    Hint:

    • use React Native navigation component
    application 
    opened by theblockstalk 2
  • Create Apple developer account

    Create Apple developer account

    https://developer.apple.com/support/compare-memberships/ we need to create an Apple developer account to deploy the app with

    apply: https://developer.apple.com/enroll/type/edit

    Definition of done:

    • [x] Apple developer account is created for the Tonomy Foundation
    • [x] See if we can get a free account, as we are a non-profit https://developer.apple.com/support/membership-fee-waiver/
    • [x] Account is created with [email protected]
    infrastructure 
    opened by theblockstalk 2
  • Rapid onboard designs

    Rapid onboard designs

    In this task, we will identify places where we can streamline use onboarding by minimising the steps needed for the user until they are absolutely required. This will prior a designer to rethink the flows and requirements that applications wanting to sign in with Tonomy ID will take. The outcome of this task is to identify and document the new flows.

    Definition of done

    • [ ] user flow diagram is updated with flows in mind that minimise the amount of user steps needed for each activity the user takes

    Follow up:

    • Implement the designs in Figma
    design 
    opened by theblockstalk 0
  • Documentation for how to use Tonomy ID SSO

    Documentation for how to use Tonomy ID SSO

    Definition of done

    • [ ] Documentation exists that clearly explains to a developer the steps they need to take to allow users of their applications to sign in using Tonomy ID
    documentation 
    opened by theblockstalk 1
  • Back button behaviour logic research and proposal

    Back button behaviour logic research and proposal

    What happens when the user presses the button their phone on each screen? are they sent back to the previous screen or not, Or are they sent to a different screen. This task will find the answer to these questions. Developers can Implement the logic based on this information.

    Definition of done:

    • [ ] Document / flow diagram exists which shows what happens when the user presses the button on their phone in different screens/scenarios
    design 
    opened by theblockstalk 0
Owner
Building ecosystems of trust
null
Cosmostation wallet apps are non-custodial tendermint-based wallet that supports Cosmos Network.

Cosmostation wallet apps are non-custodial tendermint-based wallet that supports Cosmos Network.

Cosmostation 44 Dec 21, 2022
Sample crypto wallet for Wallet Link SDK.

DemoWallet This repo is sample app for Wallet Link SDK. WalletLink is an open protocol that lets users connect their mobile wallets to your DApp. With

null 0 Dec 17, 2021
A powerful cross-platform UI toolkit for building native-quality iOS, Android, and Progressive Web Apps with HTML, CSS, and JavaScript.

Ionic Ionic is an open source app development toolkit for building modern, fast, top-quality cross-platform native and Progressive Web Apps from a sin

Ionic 48.4k Jan 3, 2023
Open Super dApp - Your gateway to the new digital commons. Integrated mobile messenger, Ethereum wallet, and Web 3.0 browser built on open, decentralized, and encrypted protocols.

A fully open source, open standard, decentralized "super app" including a secure, encrypted Matrix compatible messenger based off of the Element Messenger, and an Ethereum crypto wallet and web3 browser based off of Alpha Wallet.

2Gather 6 Jul 25, 2022
A Kotlin binding to webview, a tiny cross-platform webview library, supports Java and Native.

webviewko provides a Kotlin/JVM and a Kotlin/Native(experimental) binding to webview, a tiny cross-platform webview library to build modern cross-platform GUIs using WebView2, WebKit and WebKitGTK.

Winterreisender 17 Dec 30, 2022
"Herbapedia" is a mobile application based on Android that is used as a means of educating the public about herbal plants

"Herbapedia" is a mobile application based on Android that is used as a means of educating the public about herbal plants. This application allows users to be able to view information about herbal plants, identify nearby plants and mark the location of herbal plants so that they can help others.

Herbalib 5 Jul 31, 2022
Nova Wallet Android - Next get mobile app for Polkadot & Kusama ecosystem

Nova Wallet Android is a next gen application for Polkadot & Kusama ecosystem, transparent & community-oriented, focused on convenient UX/UI, fast performance & security.

Novasama Technologies 17 Dec 27, 2022
Money Manager Ex is a free, open-source, cross-platform, easy-to-use personal finance software

Money Manager Ex is a free, open-source, cross-platform, easy-to-use personal finance software. It primarily helps organize one's finances and keeps track of where, when and how the money goes.

Money Manager EX 1.2k Dec 31, 2022
CoolReader 3 - cross platform open source e-book reader

CoolReader 3 - cross platform open source e-book reader (c) Vadim Lopatin, 1998-2018 Development is moved to GitHub https://github.com/buggins/coo

Vadim Lopatin 302 Jan 4, 2023
An easy, cross-platform method of keeping track of other people's timezones

TimezoneDB TimezoneDB is an easy, cross-platform method of keeping track of others' timezones. This project is inspired by PronounDB, and we'd like to

Synapse Technologies, LLC 13 Nov 16, 2022
A private messenger for Android.

Signal Android Signal is a messaging app for simple private communication with friends. Signal uses your phone's data connection (WiFi/3G/4G) to commu

Signal 23.2k Jan 8, 2023
A private messenger for Android.

Signal Android Signal is a messaging app for simple private communication with friends. Signal uses your phone's data connection (WiFi/3G/4G) to commu

Signal 23.2k Jan 7, 2023
an android app to send private secret SMS while terrorist Islamic republic of Iran banned internet access in Iran.

Mahsa An android application which is designed to deliver safe and encrypted messages using SMS while Islamic republic of Iran banned Iranian people a

null 3 Sep 22, 2022
Simple metrics exporter HTTP server for Prometheus meant to be used for private Discord servers.

Discord Prometheus Exporter Simple metrics exporter HTTP server for Prometheus meant to be used for private Discord servers. Thanks to the creator of

Subham 2 Nov 29, 2022
Trentino public transport with stops, lines, trips and delays. Android app built with Jetpack Compose and Material 3.

Tridenta An Android app for public transport in the italian region "Trentino". You can view information about stops, lines and most importantly trips,

Stypox 14 Jan 10, 2023
EU Digital COVID Certificate Wallet App - Android

This repository contains the source code of the EU Digital COVID Certificate Wallet App for Android.

null 57 Oct 6, 2022
Ergo Wallet for Android, built on top of Ergo Appkit.

Ergo Wallet Android Ergo Wallet for Android, built on top of Ergo Appkit. You need at least Android 7 to run Ergo Wallet. Features: generating wallets

Benjamin Schulte 80 Dec 14, 2022
Ivy Wallet is an Open Source money manager app for android that you can either build or download from Google Play.

Ivy Wallet is an Open Source money manager app for android that you can either build or download from Google Play.

null 727 Dec 26, 2022
The Odysee Android app with wallet functionality

Odysee Android Release To create an APK file which can be installed on real devices, you will need to create a digital signature and then edit app/bui

Odysee 116 Dec 29, 2022