1
0
mirror of https://github.com/bitcoin/bips.git synced 2026-08-31 18:47:36 +00:00

Merge pull request #2126 from ethicnology/bip85-nostr-application-86

BIP85: add Nostr application
This commit is contained in:
Jon Atack
2026-08-17 10:22:09 -07:00
committed by GitHub
2 changed files with 63 additions and 5 deletions

View File

@@ -16,7 +16,7 @@ extend-ignore-re = [
"prefix.*", "prefix.*",
"value: .*", "value: .*",
"pqNTRUsign", "pqNTRUsign",
"Strnad", "nsec1.*",
] ]
[default.extend-words] [default.extend-words]
@@ -29,6 +29,7 @@ Atack = "Atack"
Falke = "Falke" Falke = "Falke"
Meni = "Meni" Meni = "Meni"
Ono = "Ono" Ono = "Ono"
Strnad = "Strnad"
Toom = "Toom" Toom = "Toom"
[files] [files]

View File

@@ -8,7 +8,7 @@
Type: Informational Type: Informational
Assigned: 2020-03-20 Assigned: 2020-03-20
License: BSD-2-Clause OR OPUBL-1.0 License: BSD-2-Clause OR OPUBL-1.0
Version: 2.0.0 Version: 2.1.0
</pre> </pre>
==Abstract== ==Abstract==
@@ -423,6 +423,56 @@ OUTPUT
* DERIVED ENTROPY=5e41f8f5d5d9ac09a20b8a5797a3172b28c806aead00d27e36609e2dd116a59176a738804236586f668da8a51b90c708a4226d7f92259c69f64c51124b6f6cd2 * DERIVED ENTROPY=5e41f8f5d5d9ac09a20b8a5797a3172b28c806aead00d27e36609e2dd116a59176a738804236586f668da8a51b90c708a4226d7f92259c69f64c51124b6f6cd2
* DERIVED ROLLS=1,0,0,2,0,1,5,5,2,4 * DERIVED ROLLS=1,0,0,2,0,1,5,5,2,4
===Nostr===
Application number: 128002'
The derivation path format is: <code>m/83696968'/128002'/{identity}'/{account_index}'</code>
Each <code>identity</code> is an independent, unlinkable Nostr key namespace, and each
<code>account_index</code> is a distinct key within that identity.
Identity index <code>0'</code> and account index <code>0'</code> are reserved for future
key-management use, such as proof-of-linkage between an identity's keys, key rotation, and
revocation. Their semantics are out of scope for this BIP and may be specified by a future
NIP. Usable signing keys therefore start at <code>identity >= 1'</code> and
<code>account_index >= 1'</code>.
The standard application of BIP-85 produces 64 bytes of entropy. Take the first 32 bytes
(the 256 most significant bits)<ref name="curve-order" /> as the secp256k1 secret key,
as in the HD-Seed WIF application, and discard the trailing 32 bytes. Encode the secret
key in Bech32 with the <code>nsec</code> human-readable part as specified by NIP-19.
'''identity=1, account_index=1'''
INPUT:
* MASTER BIP32 ROOT KEY: xprv9s21ZrQH143K2LBWUUQRFXhucrQqBpKdRRxNVq2zBqsx8HVqFk2uYo8kmbaLLHRdqtQpUm98uKfu3vca1LqdGhUtyoFnCNkfmXRyPXLjbKb
* PATH: m/83696968'/128002'/1'/1'
OUTPUT
* DERIVED ENTROPY=ff6eb0fcdf1ef87a2a06b0d7884d495b486d0faa210e9f80f23fd649d6e114d27873d12f3b57c469f684e4dc9f4abf10beeacb59b385fde8e33f1947bc5c6c17
* DERIVED NSEC=nsec1lahtplxlrmu852sxkrtcsn2ftdyx6ra2yy8flq8j8ltyn4hpznfq23uvqz
'''identity=1, account_index=2'''
INPUT:
* MASTER BIP32 ROOT KEY: xprv9s21ZrQH143K2LBWUUQRFXhucrQqBpKdRRxNVq2zBqsx8HVqFk2uYo8kmbaLLHRdqtQpUm98uKfu3vca1LqdGhUtyoFnCNkfmXRyPXLjbKb
* PATH: m/83696968'/128002'/1'/2'
OUTPUT
* DERIVED ENTROPY=917628689652288f6983c8a01db516d0697d5198dcf9de9010597f5e322fba6e435a731d85fbcc5768c06ff95ff34bf577f63f415cb170473659753acf14722d
* DERIVED NSEC=nsec1j9mzs6yk2g5g76vrezspmdgk6p5h65vcmnuaayqst9l4uv30hfhqje0jyh
'''identity=2, account_index=1'''
INPUT:
* MASTER BIP32 ROOT KEY: xprv9s21ZrQH143K2LBWUUQRFXhucrQqBpKdRRxNVq2zBqsx8HVqFk2uYo8kmbaLLHRdqtQpUm98uKfu3vca1LqdGhUtyoFnCNkfmXRyPXLjbKb
* PATH: m/83696968'/128002'/2'/1'
OUTPUT
* DERIVED ENTROPY=fa2e784291b1fd347ba3624672e3090cb2cee34b8567180336e3aa290d02715b8f4b18f02f07cb2aa3023afd34735282cc6594370f47e6e1fa48d8d0dda93096
* DERIVED NSEC=nsec1lgh8ss53k87ng7arvfr89ccfpjevac6ts4n3sqekuw4zjrgzw9dsq3uelh
==Backwards Compatibility== ==Backwards Compatibility==
This specification is not backwards compatible with any other existing specification. This specification is not backwards compatible with any other existing specification.
@@ -431,16 +481,23 @@ This specification relies on BIP32 but is agnostic to how the BIP32 root key is
==References== ==References==
BIP32, BIP39 BIP32, BIP39,
[https://github.com/nostr-protocol/nips/blob/master/01.md NIP-01],
[https://github.com/nostr-protocol/nips/blob/master/06.md NIP-06],
[https://github.com/nostr-protocol/nips/blob/master/19.md NIP-19]
==Reference Implementations== ==Reference Implementations==
* 1.3.0 Python 3.x library implementation: [https://github.com/akarve/bipsea] * 1.3.0 Python 3.x library implementation: [https://github.com/akarve/bipsea]
* 1.1.0 Python 2.x library implementation: [https://github.com/ethankosakovsky/bip85]
* 1.0.0 JavaScript library implementation: [https://github.com/hoganri/bip85-js]
==Changelog== ==Changelog==
===2.1.0 (2026-08-02)===
====Added====
* Nostr application 128002'
===2.0.0 (2025-09-19)=== ===2.0.0 (2025-09-19)===
====Fixed==== ====Fixed====