Cryptocurrency Saving Application

buy cryptocurrency simple and secure


CHALLENGE



The task was to create a mobile application that allows users to buy cryptocurrency simple and secure.


SOLUTION



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 and Plaid. 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 and Kraken services.

Used stack



JavaScript
TypeScript
NodeJS
React
React Native
HTML
CSS
JWT/JWE
Mocha
Webpack
Serverless
Terraform

Sequelize
SQL
AWS Aurora
DynamoDB
AWS Lambda
AWS SNS
AWS SQS
AWS VPC
AWS API Gateway
AWS Cloudwatch
Git
CircleCI

IMPACT



The app is a good solution both for those who only entering the digital world of currency and those who already have long-term experience in buying Bitcoin and other cryptocurrencies. It allows the users to buy and exchange cryptocurrency simple and secure, also working as an accumulative and saving system.