Coffee Wallet uses Open Source code from the following libraries
- bitcoinjs-lib for signing BTC, LTC and DOGE transactions; MIT License
- ethers.js for signing and sending ETH and ETH-tokens transactions; MIT License
- web3.js for signing and sending ETH and ETH-tokens transactions; LGPL License
- qrcode.js to generate QR codes; MIT License
- jazzicon to generate Jazzy Identicons; ISC License
- rangeSlider ui element; MIT License
- New Age as landing page template base; MIT License
- Cryptocurrency Icons; Creative Commons Zero (CC0) license
- jsPDF to generate PDF in PWA and electron versions; MIT License
User interface is built using cordova platform. Following plugins are used:
- phonegap-plugin-barcodescanner to scan payment requests/addresses
- cordova-plugin-inappbrowser to open external links
- cordova-plugin-nativestorage to store data
- cordova-plugin-statusbar to customize status bar
- cordova-plugin-splashscreen
- cordova-clipboard for 'copy to clipboard' feature
- cordova-plugin-customurlscheme to open 'send via message' links
- cordova-plugin-x-socialsharing for 'send via message' feature
- cordova-plugin-device for conditional, per platform behaviour
- cordova-plugin-pdf-generator to generate printable paper wallets
- cordova-plugin-touch-id to authenticate user before important operations
- cordova-plugin-android-fingerprint-auth to authenticate user before important operations
To broadcast signed transaction and save it in blockchains, Coffee uses APIs of third party providers:
- BlockCypher for bitcoin, litecoins and dogecoin transactions.
- Infura for accessing Ethereum network (ETH and ERC20 tokens)
- Binance for accessing Binance Smart Chain (BNB and BEP20 tokens)
- bitcoin.com for accessing BCH network.
To provide other functionalities Coffee Wallet uses APIs of:
- CoinMarketCap for fetching price data.
- CoinGecko for fetching price data.
- coinpaprika for fetching price data.
- Changelly to provide Quick Exchange functionality.
- ChangeNow to provide Quick Exchange functionality.