crypto-wallets
Version:
Simple cryptocurrency wallet generator for javascript
110 lines (92 loc) • 3.88 kB
Markdown
Javascript/Node library for generating cryptocurrency addresses and private keys.
- Bitcoin (BTC)
- Bitcoin Cash (BCH)
- Dogecoin (DOGE)
- Ethereum (ETH)
- IOTA (IOTA)
- Litecoin (LTC)
- Monero (XMR)
- Namecoin (NMC)
- Peercoin (PPC)
- Tezos (XTZ)
## Usage
Install crypto-wallets with `npm install --save crypto-wallets`
#### Example: Generate Bitcoin Wallet
```
var cw = require('crypto-wallets');
var bitcoinWallet = cw.generateWallet('BTC');
console.log("Address: " + bitcoinWallet.address);
console.log("Private Key: " + bitcoinWallet.privateKey);
```
```
var cw = require('crypto-wallets');
var ethWallet = cw.generateWallet('ETH');
console.log("Address: " + ethWallet.address);
console.log("Private Key: " + ethWallet.privateKey);
```
Note: Generating Monero (XMR) and IOTA (IOTA) wallets are both asynchronous and return a promise, unlike the other currencies.
```
var cw = require('crypto-wallets');
cw.generateWallet('XMR').then(function(moneroWallet){
console.log("Address: " + moneroWallet.address);
console.log("Private Key: " + moneroWallet.privateKey);
});
```
crypto-wallets can also be used in the command line.
Generates and prints wallets in given currency. If [number] is not given, it defaults to 1.
If the optional --save flag is provided, the generated wallets will be saved to the specified file in CSV format.
```
>crypto-wallets generate btc
[ { currency: 'BTC',
privateKey: 'L3Qa2u7nkHaNYZdsQYi2gVmBEtpppk4JrvQqaSYx51HWG51uwaTa',
address: '1HMt2J3dQE428krHQEmFRFNDv2DyGAaMfb' } ]
```
```
>crypto-wallets generate doge 3
[ { currency: 'DOGE',
privateKey: 'QWgiPqSPNXTtTt32hffy8C1uvHT4BJcbo78TSJcEmvf6AyhE85L3',
address: 'DJnvD1NxRjgmXKGbCR98QEneFYcGGmnquc' },
{ currency: 'DOGE',
privateKey: 'QPfrc7ahUuXqqd8oeETGh4ZzCrS1wNhognEx4N5my6MK3e6qQh1o',
address: 'DN6uQWUNDfzjsXdaTtMhxwRK4hZ4RJJ357' },
{ currency: 'DOGE',
privateKey: 'QTgfpCVt8CW1bgw9PdfmsSNY1FKodM65bLYYkQeaoqm1CkNgD3MK',
address: 'DC7xVTob9XE6Soy6TjeWySinS3hG4cjR3F' } ]
```
```
>crypto-wallets generate xmr 100 --save xmrWallets.csv
Successfully saved to file: xmrWallets.csv
```
Checks if the given private key controls the given address.
```
>crypto-wallets verify doge QWgiPqSPNXTtTt32hffy8C1uvHT4BJcbo78TSJcEmvf6AyhE85L3 DJnvD1NxRjgmXKGbCR98QEneFYcGGmnquc
Success: The private key matches the address
```
```
>crypto-wallets verify btc foo bar
Failure: The private key does not match the address
```
This library uses other third party libraries to generate the cryptocurrency addresses. So this library is secure if you trust the other libraries.
The libraries used are:
- Bitcoin: [coinkey](https://www.npmjs.com/package/coinkey)
- Bitcoin Cash: [bitcore-lib-cash](https://www.npmjs.com/package/bitcore-lib-cash)
- Dogecoin: [coinkey](https://www.npmjs.com/package/coinkey)
- Ethereum: [ethereumjs-wallet](https://www.npmjs.com/package/ethereumjs-wallet)
- IOTA: [iota.lib.js](https://www.npmjs.com/package/iota.lib.js), seed is generated with [custom code](cryptowallets.js#L287) using Node's crypto library
- Litecoin: [coinkey](https://www.npmjs.com/package/coinkey)
- Namecoin: [coinkey](https://www.npmjs.com/package/coinkey)
- Peercoin: [coinkey](https://www.npmjs.com/package/coinkey)
- Tezos: [tezos-sign](https://www.npmjs.com/package/tezos-sign)
- Monero: [mymonero](https://github.com/mymonero/mymonero-core-js)