coinkey
v3.0.0
Published
JavaScript component for private keys, public keys, and addresess for crypto currencies such as Bitcoin, Litecoin, and Dogecoin
Readme
coinkey
JavaScript component for private keys, public keys, and addresses for crypto currencies such as Bitcoin, Litecoin, and Dogecoin. Works in both Node.js and the browser.
Package Info
- github: https://github.com/cryptocoinjs/coinkey
- tests: https://github.com/cryptocoinjs/coinkey/tree/master/test
- issues: https://github.com/cryptocoinjs/coinkey/issues
- license: MIT
- versioning: SemVer
Installation
npm i --save coinkeyUsage
Common Use Cases
Generate a Bunch of Bitcoin Keys/Addresses
var CoinKey = require('coinkey')
var bitcoinKeys = []
for (var i = 0; i < 10; ++i) {
// bitcoin supported by default
bitcoinKeys.push(CoinKey.createRandom())
}Generate a Bunch of Namecoin Keys/Addresses
var CoinKey = require('coinkey')
// npm install --save coininfo
var ci = require('coininfo')
var namecoins = []
for (var i = 0; i < 10; ++i) {
namecoins.push(CoinKey.createRandom(ci('NMC')))
}Parse a Wallet Import Key and Determine Crypto Currency
var CoinKey = require('coinkey')
var ci = require('coininfo')
var ck = CoinKey.fromWif('QVD3x1RPiWPvyxbTsfxVwaYLyeBZrQvjhZ2aZJUsbuRgsEAGpNQ2')
console.log(ck.privateKey.toString('hex')) // => c4bbcb1fbec99d65bf59d85c8cb62ee2db963f0fe106f483d9afa73bd4e39a8a
console.log(ck.publicAddress) // => DGG6AicS4Qg8Y3UFtcuwJqbuRZ3Q7WtYXv
console.log(ck.compressed) // => true
console.log(ck.versions.public === ci('DOGE').versions.public) // => trueChange to Testnet Later
var CoinKey = require('coinkey')
var ci = require('coininfo')
var ck = new CoinKey(new Buffer('1184cd2cdd640ca42cfc3a091c51d549b2f016d454b2774019c2b2d2e08529fd', 'hex'))
console.log(ck.publicAddress) // => 16UjcYNBG9GTK4uq2f7yYEbuifqCzoLMGS
//change to Testnet
ck.versions = ci('BTC-TEST')
console.log(ck.publicAddress) // => mkzgubTA5Ahi6BPSkE6MN9pEafRutznkMeAPI
CoinKey(privateKey, [versions])
Constructor function.
- privateKey: The private key bytes. Must be 32 bytes in length. Should be an
Array,Uint8Array, or aBuffer. - versions: An object that specifies the public and private key versions for addresses and wifs. Defaults to Bitcoin
mainnet.
Keys are default set to compressed is true.
var CoinKey = require('coinkey')
//npm install --save [email protected]
var secureRandom = require('secure-random')
var bytes = secureRandom.randomBuffer(32)
var key1 = new CoinKey(bytes)
console.log(key1.compressed) // => trueProperties
compressed
Inherited from ECKey. eckey.compressed
privateKey
Inherited from ECKey. eckey.privateKey
privateExportKey
Inherited from ECKey. eckey.privateExportKey
privateWif
Get the private WIF (Wallet Import Format).
var CoinKey = require('coinkey')
var privateKeyHex = "1184cd2cdd640ca42cfc3a091c51d549b2f016d454b2774019c2b2d2e08529fd"
//Bitcoin WIF
var key = new CoinKey(new Buffer(privateKeyHex, 'hex'))
key.compressed = false
console.log(key.privateWif) // => 5Hx15HFGyep2CfPxsJKe2fXJsCVn5DEiyoeGGF6JZjGbTRnqfiD
//Litecoin WIF
var key = new CoinKey(new Buffer(privateKeyHex, 'hex'), {private: 0xB0, public: 0x30})
key.compressed = false
console.log(key.privateWif) // => 6uFjYQnot5Gtg3HpP87bp4JUpg4FH1gkkV3RyS7LHBbD9Hpt1napublicKey
Inherited from ECKey. eckey.publicKey
publicAddress
Get the public address.
var CoinKey = require('coinkey')
var privateKeyHex = "1184cd2cdd640ca42cfc3a091c51d549b2f016d454b2774019c2b2d2e08529fd"
// Bitcoin Address
var key = new CoinKey(new Buffer(privatKeyHex, 'hex'))
console.log(key.publicAddress) // => 16UjcYNBG9GTK4uq2f7yYEbuifqCzoLMGS
// Litecoin Address
var key = new CoinKey(new Buffer(privateKeyHex, 'hex'), {private: 0xB0, public: 0x30})
console.log(key.publicAddress) // => 'LZyGd5dCPVkVUjA5QbpuUfMNgcmNDLjswH'publicHash
Alias: pubKeyHash
Inherited from ECKey. eckey.publicHash
publicPoint
Inherited from ECKey. eckey.publicPoint
toString()
Returns the string representation.
var CoinKey = require('coinkey')
var privateKeyHex = "1184cd2cdd640ca42cfc3a091c51d549b2f016d454b2774019c2b2d2e08529fd"
//Litecoin Address
var key = new CoinKey(new Buffer(privateKeyHex, 'hex'), {private: 0xB0, public: 0x30})
console.log(key.toString())
// => T3e2me1BvRs95K7E8eQ8eha9oRPL1g2U6vmjE5px6RjzbUTvKZsf: LZyGd5dCPVkVUjA5QbpuUfMNgcmNDLjswHMethods
fromWif(wif, [versions])
Class method to create a CoinKey from a wif.
var ck = CoinKey.fromWif('KwomKti1X3tYJUUMb1TGSM2mrZk1wb1aHisUNHCQXTZq5auC2qc3');
console.log(ck.compressed) // => true
console.log(ck.privateKey.toString('hex')) // => 1184cd2cdd640ca42cfc3a091c51d549b2f016d454b2774019c2b2d2e08529fd
console.log(ck.publicAddress) // => 1FkKMsKNJqWSDvTvETqcCeHcUQQ64kSC6sBrowser Support
Clone the repo:
git clone https://github.com/cryptocoinjs/coinkeyInstall Browserify
npm install -g browserifyNav to repo:
cd coinkeyInstall dependencies:
npm installRun browserify:
browserify --standalone coinkey lib/coinkey.js > lib/coinkey.bundle.jsYou can now drop coinkey.bundle.js in a <script> tag.

