Coder Social home page Coder Social logo

ethid-mobile's Introduction

d

ΞID Mobile

ΞID Mobile is an Open Source Decentralized Identity wallet.

MIT License. Freedom.

Built as a playground to experiment with decentralized identity and emerging standards like 3ID and the latest developments by 3Box. The application will focus on features like verifiable credentials, decentralized profiles, social interactions (search, following, communities), managing spaces and other less explored ideas like peer-to-peer verifiable credentials.

d

👷🚧 Getting Started - Under Construction 🚧🏗️

Rapid prototype warning. The primary prototyping focus was to create the navigation, routes and include the 3 major dependencies: IdentityWallet, WalletConnect and Ethers. That's complete. Now the fun begins 🎉 However, it's still a little rough around the edges and requires a digital soul cleansing.

Major Dependencies

  • React Native: 0.61.3
  • IdentityWallet: 0.2.1
  • Ethers: 4.0.39 (upgrading to v5 soon - testing external effect)
  • WalletConnect: 1.0.0-beta.38

As is customary with Ethereum focused React Native applications we also node-if-ied React Native.

rn-nodeify --install --hack

Have questions about the current setup and approach? Tweet me at @kamescg

Depending on how 3Box handles IPFS integration into React Native the application may include non-normative approaches to shimming React Native to include additional decentralized capabilities. Until a decision has been reached, the application will utilize JSON-RPC to make request to the blockchain and IPFS storage.

Setup

git clone [email protected]:KamesCG/ethid-mobile.git ; cd ethid-mobile ; yarn

Android

yarn run:android

IOS

The IOS version is behind in development. IOS coming soon (wait) or creat pull request today! The choice is yours.

The Current Roadmap

The current prototype was to outline the navigation components, setup the routes/routing and include the 3 major dependencies: identity-wallet, @walletconnect/react-native, and ethers.

In Progress

  • IdentityWallet (Decentralized Identity) MVP
  • WalletConnect (Cross-Device JSON-RPC)
  • Ethers (Crypto My Dude!)

Next

What are we going to build next? I have a few ideas... However, I think the feature candidates should include input from people interested in the project. If any?

  • Simple Identity/Profile Setup
  • Peer-to-Peer Verifiable Credentials
  • Feature Complete Identity Wallet JSON RPC System Manager
  • Feature Complete WalletConnect JSON RPC System Manager
  • Both 3ID and uPort ethr-did support (IPFS/Blockchain)

d

Ultimately the objective is to modularize the core "decentralized" features. Allowing patterns that emerge around verifiable credentials, decentralized profiles, automated IPFS pinning, delegate key management, etc... to be abstracted and easily migrated to new appliations.

If decentralized identity is too succee a blossoming ecosystem with 100's of applications is likely required. Thus, from a Product Engineering perspective it makes sense to create an MIT Licensed feature/component catalog for Web3 developers and decentralized application development teams to utilize and contribute too.

What types of patterns are likely to emerge you ask?

  • Decentralized Profile Best Practices
  • Verifiable Credential Type Indexing/Search
  • Functional Web3 Intefaces (React Hooks, Effects and Reducers)

What

An Experiment to understand decentralized identity in the mobile environment. The experiment seeks to understand what is the optimal method(s) to onboard new users into a decentralized environment. The verifiable credential part of decentralized is new, and explored territory. A lot can be learned from a feature driven, MIT license project. The project is MIT licensed to promote contributions and forks.

  • Optimal Decentralized Identity Onboarding
  • Peer-to-Peer Verifiable Credentials
  • Multi-IPFS Hub Support and Linking
  • 3ID Standard Experimentation
  • Burner/Delegate Key System
  • Multi-Device Communication (WalletConnect)

Why

A number of reasons. A big reason being 3Box has released the identity-wallet module and, in general starting to mature the core decentralized identity features: authentication, storage and communication. It's a great time to be a Web3 Developer.

The primary reason is I just want a really great decentralized identity wallet. A completely open and free to use codebase that will let me extend, experiment and invite new contributors.

Project Overview

Interesting in an Open Source decentralized identity wallet? Want to contribute or just use the code? Follow the current build process and project overview.

  • Timline
  • Application Structure

Timeline

Pre-Sprint Planning

  • Typescript or Flow?

Sprint 1

  • Finish emotion primitive integration
    • match theme-ui sx prop for better cross-application compability
  • IdentityWallet System v0.0.1
    • Define All Types/Actions
    • Define All Effects
    • Finalize Effects
  • WalletConnect System v0.0.1
    • Define All Types/Actions
    • Define All Effects
    • Finalize Effects
  • Ethers System v0.0.1
    • Define All Types/Actions
    • Define All Effects
    • Finalize Effects
  • Primitive Key Management System (Alpha Testing)
  • WalletConnect Listener Singleton

Sprint 2

  • Decentralized Profile
  • Decentralized Profile Search
  • Finalize IdentityWalletRPC Screen
    • Authenticate
    • SignClaim
  • Finalize WalletRPC Screen
    • Send Transaction
    • Sign Transaction
    • Sign Message
    • Sign Typed Message
  • Finalize Wallet Screen

Sprint 3

  • Storage Navigation
    • StorageList Screen
    • StorageItem Screen
  • Messaging Navigation
    • ThreadList Screen
    • ThreadItem Screen
    • GhostThreadList Screen

Application Structure

Screens

  • Authentication
    • Login
    • Create Account
    • Import Account
  • Account
    • Persona(Identity)
    • Manage
    • Requests
  • Storage
    • Storage List
    • Stroage Item
  • Communications
    • Thread List
    • Ghost Thread List
  • Connections
    • Peer
      • Highlighted
      • Timeline
      • Archived
    • Community
      • Highlighted
      • Timeline
      • Archived
    • Application
      • Highlighted
      • Timeline
      • Archived
  • Verifications
    • Social
      • Twitter
      • Github
    • Peer-to-Peer
      • Friends
    • Application
  • Overview
    • Guide
    • Settings

Navigation

  • Authentication
  • Main
    • Profile
      • Verifications
    • Storage
      • Public
      • Private
    • Messaging
  • QRScanner
  • Wallet
  • WalletTransactions

ethid-mobile's People

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.