{"id":21659006,"url":"https://github.com/cryptocoinjs/hdkey","last_synced_at":"2025-05-16T09:06:01.005Z","repository":{"id":17522748,"uuid":"20310782","full_name":"cryptocoinjs/hdkey","owner":"cryptocoinjs","description":"JavaScript component for Bitcoin hierarchical deterministic keys (BIP32)","archived":false,"fork":false,"pushed_at":"2024-02-22T22:04:08.000Z","size":104,"stargazers_count":204,"open_issues_count":6,"forks_count":72,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-04-12T04:49:38.906Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cryptocoinjs.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2014-05-29T22:51:43.000Z","updated_at":"2025-04-03T10:09:56.000Z","dependencies_parsed_at":"2024-06-18T12:37:12.009Z","dependency_job_id":null,"html_url":"https://github.com/cryptocoinjs/hdkey","commit_stats":null,"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cryptocoinjs%2Fhdkey","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cryptocoinjs%2Fhdkey/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cryptocoinjs%2Fhdkey/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cryptocoinjs%2Fhdkey/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cryptocoinjs","download_url":"https://codeload.github.com/cryptocoinjs/hdkey/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253688101,"owners_count":21947773,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-25T09:30:17.317Z","updated_at":"2025-05-16T09:05:55.990Z","avatar_url":"https://github.com/cryptocoinjs.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"hdkey\n=====\n\n[![NPM Package](https://img.shields.io/npm/v/hdkey.svg?style=flat-square)](https://www.npmjs.org/package/hdkey)\n[![build status](https://secure.travis-ci.org/cryptocoinjs/hdkey.svg)](http://travis-ci.org/cryptocoinjs/hdkey)\n[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](http://standardjs.com/)\n\nA JavaScript component for [BIP32](https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki)(hierarchical deterministic keys).\n\n\nInstallation\n------------\n\n```bash\nnpm i --save hdkey\n```\n\n\nUsage\n-----\n\n**example:**\n\n```js\nvar HDKey = require('hdkey')\nvar seed = 'a0c42a9c3ac6abf2ba6a9946ae83af18f51bf1c9fa7dacc4c92513cc4dd015834341c775dcd4c0fac73547c5662d81a9e9361a0aac604a73a321bd9103bce8af'\nvar hdkey = HDKey.fromMasterSeed(Buffer.from(seed, 'hex'))\nconsole.log(hdkey.privateExtendedKey)\n// =\u003e 'xprv9s21ZrQH143K2SKJK9EYRW3Vsg8tWVHRS54hAJasj1eGsQXeWDHLeuu5hpLHRbeKedDJM4Wj9wHHMmuhPF8dQ3bzyup6R7qmMQ1i1FtzNEW'\nconsole.log(hdkey.publicExtendedKey)\n// =\u003e 'xpub661MyMwAqRbcEvPmRAmYndzERhyNux1GoHzHxgzVHMBFkCro3kbbCiDZZ5XabZDyXPj5mH3hktvkjhhUdCQxie5e1g4t2GuAWNbPmsSfDp2'\n```\n\n\n### `HDKey.fromMasterSeed(seedBuffer[, versions])`\n\nCreates an `hdkey` object from a master seed buffer. Accepts an optional `versions` object.\n\n```js\nvar seed = 'a0c42a9c3ac6abf2ba6a9946ae83af18f51bf1c9fa7dacc4c92513cc4dd015834341c775dcd4c0fac73547c5662d81a9e9361a0aac604a73a321bd9103bce8af'\nvar hdkey = HDKey.fromMasterSeed(Buffer.from(seed, 'hex'))\n```\n\n### `HDKey.fromExtendedKey(extendedKey[, versions, skipVerification])`\n\nCreates an `hdkey` object from a `xprv` or `xpub` extended key string. Accepts an optional `versions` object \u0026 an optional `skipVerification` boolean. If `skipVerification` is set to true, then the provided public key's x (and y if uncompressed) coordinate will not will be verified to be on the curve.\n\n```js\nvar key = 'xprvA2nrNbFZABcdryreWet9Ea4LvTJcGsqrMzxHx98MMrotbir7yrKCEXw7nadnHM8Dq38EGfSh6dqA9QWTyefMLEcBYJUuekgW4BYPJcr9E7j'\nvar hdkey = HDKey.fromExtendedKey(key)\n```\n\n**or**\n\n```js\nvar key = 'xpub6FnCn6nSzZAw5Tw7cgR9bi15UV96gLZhjDstkXXxvCLsUXBGXPdSnLFbdpq8p9HmGsApME5hQTZ3emM2rnY5agb9rXpVGyy3bdW6EEgAtqt'\nvar hdkey = HDKey.fromExtendedKey(key)\n```\n\n### `HDKey.fromJSON(obj)`\n\nCreates an `hdkey` object from an object created via `hdkey.toJSON()`.\n\n---\n\n### `hdkey.derive(path)`\n\nDerives the `hdkey` at `path` from the current `hdkey`.\n\n```js\nvar seed = 'fffcf9f6f3f0edeae7e4e1dedbd8d5d2cfccc9c6c3c0bdbab7b4b1aeaba8a5a29f9c999693908d8a8784817e7b7875726f6c696663605d5a5754514e4b484542'\nvar hdkey = HDKey.fromMasterSeed(Buffer.from(seed, 'hex'))\nvar childkey = hdkey.derive(\"m/0/2147483647'/1\")\n\nconsole.log(childkey.privateExtendedKey)\n// -\u003e \"xprv9zFnWC6h2cLgpmSA46vutJzBcfJ8yaJGg8cX1e5StJh45BBciYTRXSd25UEPVuesF9yog62tGAQtHjXajPPdbRCHuWS6T8XA2ECKADdw4Ef\"\nconsole.log(childkey.publicExtendedKey)\n// -\u003e \"xpub6DF8uhdarytz3FWdA8TvFSvvAh8dP3283MY7p2V4SeE2wyWmG5mg5EwVvmdMVCQcoNJxGoWaU9DCWh89LojfZ537wTfunKau47EL2dhHKon\"\n```\n\nNewer, \"hardened\" derivation paths look like this:\n\n```js\n// as defined by BIP-44\nvar childkey = hdkey.derive(\"m/44'/0'/0'/0/0\");\n```\n\n### `hdkey.sign(hash)`\n\nSigns the buffer `hash` with the private key using `secp256k1` and returns the signature as a buffer.\n\n### `hdkey.verify(hash, signature)`\n\nVerifies that the `signature` is valid for `hash` and the `hdkey`'s public key using `secp256k1`. Returns `true` for valid, `false` for invalid. Throws if the `hash` or `signature` is the wrong length.\n\n### `hdkey.wipePrivateData()`\n\nWipes all record of the private key from the `hdkey` instance. After calling this method, the instance will behave as if it was created via `HDKey.fromExtendedKey(xpub)`.\n\n### `hdkey.toJSON()`\n\nSerializes the `hdkey` to an object that can be `JSON.stringify()`ed.\n\n```js\nvar seed = 'fffcf9f6f3f0edeae7e4e1dedbd8d5d2cfccc9c6c3c0bdbab7b4b1aeaba8a5a29f9c999693908d8a8784817e7b7875726f6c696663605d5a5754514e4b484542'\nvar hdkey = HDKey.fromMasterSeed(Buffer.from(seed, 'hex'))\n\nconsole.log(hdkey.toJSON())\n// -\u003e {\n//      xpriv: 'xprv9s21ZrQH143K31xYSDQpPDxsXRTUcvj2iNHm5NUtrGiGG5e2DtALGdso3pGz6ssrdK4PFmM8NSpSBHNqPqm55Qn3LqFtT2emdEXVYsCzC2U',\n//      xpub: 'xpub661MyMwAqRbcFW31YEwpkMuc5THy2PSt5bDMsktWQcFF8syAmRUapSCGu8ED9W6oDMSgv6Zz8idoc4a6mr8BDzTJY47LJhkJ8UB7WEGuduB'\n//    }\n```\n\n### `hdkey.privateKey`\n\nGetter/Setter of the `hdkey`'s private key, stored as a buffer.\n\n### `hdkey.publicKey`\n\nGetter/Setter of the `hdkey`'s public key, stored as a buffer.\n\n### `hdkey.privateExtendedKey`\n\nGetter/Setter of the `hdkey`'s `xprv`, stored as a string.\n\n### `hdkey.publicExtendedKey`\n\nGetter/Setter of the `hdkey`'s `xpub`, stored as a string.\n\nReferences\n----------\n- https://github.com/bitcoinjs/bitcoinjs-lib/blob/master/src/hdnode.js\n- http://bip32.org/\n- http://blog.richardkiss.com/?p=313\n- https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki\n- http://bitcoinmagazine.com/8396/deterministic-wallets-advantages-flaw/\n\n\nLicense\n-------\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcryptocoinjs%2Fhdkey","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcryptocoinjs%2Fhdkey","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcryptocoinjs%2Fhdkey/lists"}