The task was to create a mobile application that allows users to buy cryptocurrency simple and secure.
The app offers three ways to invest:
- One-time investments: simply invest once any sums whenever you want
- Recurring deposit: set up the amount of money you want to invest into cryptocurrency every week or month and it will be withdrawn automatically
- Round ups: the app tracks user’s transactions and rounds up his daily purchases to the nearest $1, $2 or $5 and accumulates the difference to a certain amount of money and then automatically invest it into cryptocurrency
The following limits are set in the app:
- Monthly per user investment limit: $2000
- Weekly user’s recurring deposit limit: $500
- Overall app transactions daily limit: $50000
- Round ups per user transactions count daily limit: 2
- Round ups per user transactions amount: $5
All limits are configurable in the settings and can be changed by admin user.
The application contains logic for accumulating round ups transactions. This type of transactions is very small (average amount of such a transaction is $0.30-3.50), so in order to optimize fees, backend is accumulating round ups transactions while the threshold will reach the necessary value (can be set up in options). Only after that the transaction will be processed.
All data about transactions are stored in DynamoDB. It provides users with qualified support: they can get all the information about investment transfers, its current status, amount and source.
We implemented a promo code feature. Each user can invite friends and get $10 investment in cryptocurrency after a friend buy his first cryptocurrency. Another option is to get a promo code and make an additional investment after it activation.
The app monetization is based on subscription model and transactions fee.
The application session is implemented with encrypted version of JSON Web Tokens: JWE. The whole JWT token is encrypted with symmetric key. This allows to hide token’s payload, which usually consists of user’s ID and email.
The app integrates with such banking services as SynapseFi
. It allows to connect multiple bank accounts and track their transactions. The integration with CoinMarketCap
platform provides users with current exchange rate of cryptocurrency. All cryptocurrency exchanges are processed through Bittrex