aragon / nest

A grants program to support the development of the ecosystem
https://aragon.org/project/grants
Creative Commons Zero v1.0 Universal
140 stars 78 forks source link

Aragon Nest Proposal: React Native SDK for making mobile apps for Ethereum dapps #95

Closed pcowgill closed 5 years ago

pcowgill commented 5 years ago

Aragon Nest Proposal: React Native SDK for making mobile apps for Ethereum dapps

Abstract

Today, using a dapp from a phone is painful. Almost no dapps have standalone mobile apps, and I’m not easily able to use a dapp without ETH or with the ETH I have in another wallet. The Ethereum community loses mainstream people from the onboarding funnel because of this. Some dapps can be used inside a single app like Coinbase Wallet or Status that serves as a dapp browser, but this feels like a terribly broken UX for anyone who has been using a mobile phone for a while, and it also feels like broken UX for people who are used to using web-based dapps with MetaMask.

This can be solved with a JavaScript SDK for writing mobile apps for Ethereum dapps in React Native, which helps developers build new mobile dapps more quickly without reinventing the wheel for basic features. The SDK enhances the Ethereum ecosystem by enabling developers to build mobile dapps more easily, which removes a key barrier to mainstream adoption of Ethereum dapps. It also enhances the Aragon ecosystem by providing an early use case for APM, by enabling easier creation of mobile apps leveraging AragonOS, and by potentially using an Aragon organization to manage the open source project.

Deliverables

  1. Account and private key generation and connecting with your preferred wallet: Using the SDK, you can generate a new Ethereum account and private key for a user. The intended UX is that this account should NOT have ETH, ERC20, or ERC721 tokens sent to it. This app is NOT a wallet. Instead, this address should be authorized to perform actions on behalf of a smart-contract-based wallet a user already has with some ETH or tokens. Through compatibility with WalletConnect, any app can be authorized to take actions in a way that has only been possible in wallet apps to date. The wallet might be an Aragon personal DAO, the Gnosis Safe personal edition, the Balance wallet, any wallet that may be built to be compatible with Alex Van de Sande’s universal logins (ERC 1077 and 1078), Status, etc.

  2. Injecting Web3 + JavaScript middleware for reading from and writing to smart contracts: The SDK provides tooling for Web3 to be injected in each mobile app it is used in. It also provides JavaScript middleware for reading from and writing to smart contracts through an expressive API.

  3. An npm and/or APM package with a CLI that can automatically generate the scaffolding for a mobile dapp project. This app scaffold comes ready to submit for beta testing on iOS with Testflight and on Android with the Google Play Beta track.

  4. For popular ERC standards like ERC-721 for NFTs, it can instantly generate a standalone mobile dapp for a particular NFT, like CryptoKitties or Decentraland land. Classes of smart contracts it supports will include NFTs, TCRs, DAOs, and two-sided marketplaces. If funded, SDK support for Aragon apps would be prioritized (and this most likely will be prioritized anyway!). There’s an ERC-standard-specific JavaScript API wrapping the core JavaScript middleware so that the function-names in the SDK are tailored to that type of dapp. As long as the tooling has been built to interact with that class of dapp at least once before, the SDK can “automagically” support any new dapp of that type. This means there’s a network effect for the SDK, so once there are a few apps using it, it will be much faster to make new apps with it.

Grant size

Funding: $100k in ETH, split into chunks paid out over achieved deliverables.

Success reward: $50k in ANT, given out when all deliverables are ready.

Application requirements

Development timeline

The development timeline will be the following one:

Note: A “type” of dapp below is used to mean a dapp implementing a well-defined ERC standard, like ERC-721.

3 months (Jan 2019)

6 months (Apr 2019)

12 months (Oct 2019)

mariapao commented 5 years ago

Hi @pcowgill thank you very much for submitting your proposal.

We reviewed the application and discussed it. We came to the conclusion that building a completely Aragon native mobile app is not a priority for the project right now and if we do it in the future it would be only for Aragon. Therefore, we have decided not to approve this proposal at the moment. These priorities might change as the project evolves so If in the future you are working on something that is a fit for the program, do not hesitate to apply again. We appreciate your participation very much!

pcowgill commented 5 years ago

@mariapao Thanks so much for your consideration! I'm a big fan of Aragon, and I wish you all the best.

I think making it simple to create native mobile dapps is critical for mainstream adoption. If any other developers who find this GitHub issue share this belief, please reach out to me! I'd be happy to get you involved in hacking on this project.

https://github.com/tasitlabs/tasitsdk

pcowgill commented 5 years ago

I'm considering resubmitting a variant of this Nest proposal that's focused on creating a native mobile app specifically for Aragon. The funding ask would be lower as well.

Details here: https://forum.aragon.org/t/funding-proposal-aragon-native-mobile-app/811