The goal of this project is to create a mobile application that merchants can use to accept cryptocurrency payments in a variety of cryptocurrencies. The focus is on ease-of-use, security, and privacy.
The technology stack includes:
- Standard web technologies (HTML, CSS, JavaScript).
- Backbone.js - A JavaScript library for developing complex web applications.
- cordova - To wrap the web application and create builds for Android, iOS, and other mobile platforms.
- nodejs - As a build tool.
- nodejs - For Linux and Mac install node via nvm. For Windows, use an installer from the nodejs website.
- grunt-cli -
npm install -g grunt-cli
- For Android development:
Before continuing, be sure to download and install the project requirements.
To get the project files and start working locally, you should first create a fork. Then "clone" your fork of the project:
git clone https://github.com/YOUR_USERNAME/crypto-terminal.git
Don't forget to replace YOUR_USERNAME
with your GitHub username.
cd crypto-terminal
npm install
grunt
Open your browser and navigate to localhost:3000. You should see the settings screen the first time you open the app.
Introduction to some of the less obvious folders:
build/
- Temporary files used during the build process by Grunt.css/
- CSS you should be modifying. Gets processed during the Grunt build.exports/
- Files that are processed by browserify, which processes node.js modules so that they can be run in a browser.grunt/
- Grunt task configuration files go here.html/
- Source HTML files go here (templates for example).scripts/
- Miscellaneous script files go here.tasks/
- Custom Grunt tasks live here.js/
- JavaScript you should be modifying. Gets processed during the Grunt build.www/
- Final output from the build process. Minified and uglified, this is served in the app once you run it.
This project is focused on working with cryptocurrencies as a payment method. As such, you will need to know some basics about how cryptocurrencies work and how to develop applications that use them.
It's a good idea to test your application without risking real money, which is why the bitcoin testnet exists.
- Bitcoin - How it works - A decent starting point if you are totally new to bitcoin and cryptocurrency.
- Testnet wallet applications:
- Mycelium Testnet Wallet - A mobile testnet wallet application for Android.
- Electrum - A desktop wallet application which can be run in testnet mode from the command line like this:
electrum --testnet
- "Faucets" can be used to obtain testnet bitcoin:
Valid testnet master public key that you can use while developing:
tpubDD8itYXaDtaTuuouxqdvxfYthFvs8xNbheGxwEcGXJyxrzuyMAxv4xbsw96kz4wKLjSyn3Dd8gbB7kF1bdJdphz1ZA9Wf1Vbgrm3tTZVqSs
- Testnet wallet applications:
- Electrum-LTC - A desktop wallet application which can be run in testnet mode from the command line like this:
electrum-ltc --testnet
- Electrum-LTC - A desktop wallet application which can be run in testnet mode from the command line like this:
- "Faucets" can be used to obtain testnet litecoin:
Valid testnet master public key that you can use while developing:
tpubD6NzVbkrYhZ4YLXXEvJuNSnv3duP7VvCVG2ybxbbfcdJrgfvyfqjLdS2mntHXAr5YVLQvGqSdwa5j62bJhPCGTxX6xXeJp4CtRw494UKG96
- Testnet wallet applications:
- monerujo - A mobile, light-weight wallet app for Monero. If you are running an older version of Android, you can install the app from an
.apk
that you can download from the project's GitHub repo.
- monerujo - A mobile, light-weight wallet app for Monero. If you are running an older version of Android, you can install the app from an
- "Faucets" can be used to obtain testnet monero:
Sample testnet settings that you can use during development:
Setting | Key | Value |
---|---|---|
Public Address | monero.publicAddress |
9xmkWjzAB8JguD7JvkJxPHgMwkf7VP5v3Z5eSNmRMdoeCEnoVu6eGUbZT3FQ3Q8XrGihNEbb4qGhqHHGK5kWy9chU3URbaF |
Private View Key | monero.privateViewKey |
136674e3e6868bb04d4ef2674f97c00166f5f7aa67185bdda97cde8ecfe4f609 |
!! TODO !!
Before continuing, be sure you already have the requirements for Android development.
Create your signing key:
npm run generate-android-signing-key
Run the APK build script:
npm run build-signed-apk
If successful, it should have created a new .apk
file at the following path:
./platforms/android/app/build/outputs/apk/release/app-release.apk