AirGap Coin Library
The airgap-coin-lib
is a protocol-agnostic library that allows easy handling of the most important tasks relating cryptocurrencies and blockchains.
It implements operations such as preparing, signing and broadcasting transactions for a range of protocols.
The library consists of a shared interface for all implements protocols. This is especially useful in the context of AirGap. The following operations are specified:
- prepareTransaction - This is done on the wallet (online) side. Either a public key or extended public key is used and will fetch the required information from the network
- signTransaction - This is done on the vault (offline) side. The output of "prepareTransaction" is the input for this method (hence the output of "prepareTransaction" is transferred via URL scheme (same-device) or QR code (2-device-setup)).
- broadcastTransaction - This is done on the wallet (online) side. The output of "signTransaction" is the input for this method (hence the output of "signTransaction" is transferred via URL scheme (same-device) or QR code (2-device-setup)).
Getting started
Requirements
npm >= 5
NodeJS >= 8
Everything else gets installed automatically using npm install
.
Clone and Run
$ git clone https://github.com/airgap-it/airgap-coin-lib.git
$ cd airgap-coin-lib
$ npm install
$ npm test
Supported Protocols
The modular design used in this library allows you to simply add new protocols with special logic. Adding a new Bitcoin-like protocol basically means:
- select the correct network parameters (see
lib/networks.ts
) - set the Insight API URL to communicate with the blockchain
Adding a new Ethereum-like protocol means:
- set the correct chain id
- set the JSON RPC URL
Currently supported are:
- Bitcoin
- Ethereum
- Generic ERC20 Tokens
- Aeternity
- Tezos (Beta)