status-im / status

0 stars 1 forks source link

Crypto Onramp in Status #10

Open j-zerah opened 3 years ago

j-zerah commented 3 years ago

1. Feature request - Introduce crypto onramps more prominently inside of Status to enable new Status users to easily obtain tokens required to use many of the features of the product.

2. Background - Crypto enables many of the features core to the Status user experience:

Currently, obtaining SNT and other tokens in your Status wallet is a challenge. It either needs to be deposited directly from a separate wallet (i.e. Metamask), gifted from friends via chat, earned in Status marketing initiatives such as sticker market design competitions, or via a specific DApp such as LocalCrypto or Ramp which are currently hidden in dap.ps and not available in all countries. This can cause friction in a first run experience in that the user typically needs to leave the app in order to get some tokens into their wallet.

Without immediate and seamless access to tokens inside of Status, the first run use cases of Status are purely limited to the messenger, rendering the wallet and dapp browser more or less useless. By introducing fiat > cryoto onramps into the Status UX, we can increase the immediate product offering, hopedully leading to great use and retention.

3. Sample User Stories

As a user who just installed Status and is going through onboarding, I want to obtain some SNT and ETH in my Status wallet so I can register an ENS name and set up my profile.

As a user who is interacting with the introductory chat bot to learn more about the features of Status, I want to be able to purchase tokens without leaving Status by simply tapping a link in the chat.

As a user who has been using Status for a while but has spent all the tokens in my wallet (i.e. run out of ETH for gas), I want to easily buy more so I can continue to enjoy all the features of Status at any time (not just during first run experience)

4. Considerations

Many other wallet apps have tightly integrated onramps in the user experience making it simple for thier users to obtain crypto upon installing and anytime after: Metamask - Transak Argent - Wyre, Apple Pay Rainbow - Apple Pay Opera - Ramp, Wyre

Onramp comparison https://docs.google.com/spreadsheets/d/1rfb2EIzA9iW9pssqkUfjczxA9rzzqIVfXHGvtxu1jls/edit#gid=0

Many of these projects do not have the same strict security and privacy requirements as Status. Integrating with third party API's is less of a concern and deeply integrated third party tools is possible for seamless UX. This can allow wallet apps to build partner onramp tools directly into the UX of their app.

Exclusivity is something that doesnt really adhere to Status principles. Pigeonholing users into 1 onramp via deeply integrated partner tool (i.e. moonpay or wyre) doesn't feel in line with Status. Perhaps we can surface options of onramps based on location/jurisdiction restrictions and allow users to choose for themselves. I.E. we could feature onramps by lowest fees

KYC requirements and exposure to eth address and any associated chat key (i.e. via ENS registration) can sacrifice user privacy and pseudonymity. Need to ensure users are aware of choices and tradeoffs and potentially surface options to protect privacy via multi-accounts

SNT as a requirement - any onramp we work with should offer SNT as it is critical to some app functionality.

Teller seems like a good option to introduce a p2p onramp that adheres to Status principles and also introduces SNT utility

5. Marketability This feature can have obvious impact on retention as it unlocks a number of features core to the app (as stated above). It also enables us to run dapp specific campaigns without the fear of hitting a dead end of having no tokens or easy way to purchase tokens (i.e. promoting Aave on mobile).

Building onramps into the UX can help us surface crypto at key moments when crypto s crucial.

Potential introduction of fees can create revenue streams in app and increase user CLV

simonasta commented 3 years ago

Suggestions for a first iteration

Compliance (no US users) To avoid legal headaches, we don't want to promote/surface or make it easy whatsoever for US users to buy crypto/SNT directly from Status. In order to do this, the first thing we should do is ask the user where they're located (a dropdown menu).

Based on their location:

This creates a bit of friction since we position ourselves as a privacy preserving org and some people won't be willing to share their location, but most users are likely to not care much and will proceed anyway (it's up to them).

UX & flow IMO a "buy crypto" button should be easily found and prominently displayed at the bottom of our wallet, right next to the "send transaction" button we have now. Assuming the user is starting form the wallet, a high-level flow could look like this:

  1. User taps on the "buy crypto" button
  2. User is asked where they're located ->next
  3. User is asked how they'd like to buy crypto (credit card, debit card, bank transfer, local options, offline options, p2p, etc.) ->next
  4. User is asked to enter the amount of fiat/crypto they'd like to purchase ->next
  5. We show the user a "ranking" of the available options they can use (based on the fees the onramp charges, if available) ->next
  6. We redirect the user to the onramp they chose within dap.ps where they complete the purchase
  7. User gets the crypto in their Status wallet


Suggestions for future iterations (TDB)

Token swaps within wallet If we decide that we don't want to (or can't) have deeper integrations with onramps, something we should strongly consider is to integrate DEXs and/or token swap aggregators and allow users to quickly swap tokens within the Status wallet, especially to get their SNTs if the onramps can't or won't support direct SNT purchases. In terms of UX, this option would also be shown and easily found in our wallet but the flow would be simpler & faster compared to onramps.