Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lukechilds/create-xpub
Create a BIP32 extended public key
https://github.com/lukechilds/create-xpub
bip32 bitcoin cryptocurrency ledgerjs xpub
Last synced: 2 months ago
JSON representation
Create a BIP32 extended public key
- Host: GitHub
- URL: https://github.com/lukechilds/create-xpub
- Owner: lukechilds
- License: mit
- Created: 2019-01-05T23:59:36.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2019-11-19T10:33:35.000Z (about 5 years ago)
- Last Synced: 2024-11-01T23:50:25.371Z (2 months ago)
- Topics: bip32, bitcoin, cryptocurrency, ledgerjs, xpub
- Language: JavaScript
- Homepage:
- Size: 18.6 KB
- Stars: 21
- Watchers: 3
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# create-xpub
> Create a BIP32 extended public key
[![Build Status](https://travis-ci.com/lukechilds/create-xpub.svg?branch=master)](https://travis-ci.com/lukechilds/create-xpub)
[![Coverage Status](https://coveralls.io/repos/github/lukechilds/create-xpub/badge.svg?branch=master)](https://coveralls.io/github/lukechilds/create-xpub?branch=master)
[![npm](https://img.shields.io/npm/v/create-xpub.svg)](https://www.npmjs.com/package/create-xpub)
[![tippin.me](https://badgen.net/badge/%E2%9A%A1%EF%B8%8Ftippin.me/@lukechilds/F0918E)](https://tippin.me/@lukechilds)Creates a Base58 encoded extended public key (xpub) for use in a [BIP32 hierarchical deterministic wallet](https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki).
## Install
```shell
npm install create-xpub
```## Usage
You should familiarise yourself with [BIP32](https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki) to understand what these arguments represent.
```js
const createXpub = require('create-xpub');const xpub = createXpub({
depth: 3,
childNumber: 2147483648,
chainCode: '84cf7d9029cdd9fcadbb3717fd92ec0db7d7d9787c57c13c08fc887c389b566b',
publicKey: '048bcdcf59f046b13f1eb35b608d1211265fde8cc44fc7a5a7f7107c5cf238095328a0e0d7be17c7d3e48490e8c6433af6d2c3dacc687f3fecaa98a3d05f17de97'
});
// => 'xpub6CgMcBZk66ayM9ESh7QtBmRKJbsa6rBeBH2k4aQZQJGossryP5r2N2nQS4hBMG1wb8igPoH53bxtzTBaeMqJkbu8bxsih1gGkoAn23Nr8VP'
```Pass in version bytes for a different network:
```js
const createXpub = require('create-xpub');const tpub = createXpub({
networkVersion: createXpub.testnet,
depth: 3,
childNumber: 2147483648,
chainCode: '84cf7d9029cdd9fcadbb3717fd92ec0db7d7d9787c57c13c08fc887c389b566b',
publicKey: '048bcdcf59f046b13f1eb35b608d1211265fde8cc44fc7a5a7f7107c5cf238095328a0e0d7be17c7d3e48490e8c6433af6d2c3dacc687f3fecaa98a3d05f17de97'
});
// => 'tpubDD3z8RPRoNYRcwRJ9JPyPgkgdiyE6Eghiud3R8ThkD2hdAXgTJh7WUTEg6mxskyBP3Fb1NnwahnwgdgC3DgYe3MRfZd2NYLWLkmBn7UWZXk'
```### Tip
If you're working with ledgerjs you can pass the output of [`getWalletPublicKey()`](http://ledgerhq.github.io/ledgerjs/docs/#btcgetwalletpublickey) almost directly in.
## API
### createXpub(options)
Returns a Base58 encoded extended public key.
#### options
Type: `Object`
An object containing the following properties of the derivation path.
Consult [BIP32](https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki) for an in-depth explanation on these properties.
##### networkVersion
Type: `number`
Default: `0x0488B21E` (mainnet)Network version bytes.
##### depth
Type: `number`
Default: `undefined`The depth of the derived key.
##### childNumber
Type: `number`
Default: `undefined`The child number.
##### chainCode
Type: `string`
Default: `undefined`The chain code.
##### publicKey
Type: `string`
Default: `undefined`The public key in compressed or uncompressed form.
### createXpub.mainnet
Mainnet (xpub) version bytes: `0x0488B21E`
### createXpub.testnet
Testnet (tpub) version bytes: `0x043587CF`
## License
MIT © Luke Childs