Alex Gleason
95a1e966bc
Use HKDF with "NostrWallet" salt and per-purpose info tags
...
Replace the previous "agora-hdwallet:bip86:v1" HKDF info string with a
two-step HKDF design suitable for proposal as a NIP:
PRK = HKDF-Extract(salt = "NostrWallet", IKM = nsec)
seed_<purp> = HKDF-Expand(PRK, info = "NostrWallet/<Purp>", L = 64)
Registered purposes:
"NostrWallet/Bip32" — generic BIP-32 master (BIP-44/49/84/86)
"NostrWallet/SilentPayments" — BIP-352 master
The salt is a protocol-level constant (no app-specific string), so any
"NostrWallet"-compliant client recovers the same wallets from the same
nsec. Per-purpose info tags give the BIP-86 and BIP-352 wallets
cryptographically independent BIP-32 masters — neither's keys reveal
the other's.
This deliberately diverges from NIP-SP §2.2, which specifies the nsec
itself as the BIP-32 seed for silent payments. The HKDF step preserves
domain separation from every other use of nsec (Schnorr, NIP-04,
NIP-44) at the cost of incompatible sp1q… addresses with §2.2-only
clients. NIP-SP is a draft; this is the design we believe should land.
2026-05-21 18:10:58 -05:00
..
2026-05-21 18:10:58 -05:00
2026-04-08 16:41:23 -05:00
2026-05-17 22:53:20 -05:00
2026-05-20 12:32:57 -07:00
2026-05-20 12:32:57 -07:00
2026-05-16 07:58:48 -07:00
2026-05-19 16:14:45 -05:00
2026-05-15 19:37:23 -07:00
2026-05-15 19:37:23 -07:00
2026-03-14 15:55:29 -05:00
2026-05-03 09:00:43 -05:00
2026-04-02 03:48:10 -05:00
2026-05-11 14:49:11 +07:00
2026-04-17 11:31:57 -05:00
2026-05-17 22:53:20 -05:00
2026-05-17 22:53:20 -05:00
2026-05-21 13:17:56 -05:00
2026-04-18 04:39:14 -05:00
2026-05-02 23:40:05 -07:00
2026-03-03 10:25:57 -06:00
2026-05-19 16:14:45 -05:00
2026-02-18 17:23:06 -06:00
2026-05-11 13:13:33 -07:00
2026-04-17 16:22:33 +05:45
2026-04-05 11:57:31 -05:00
2026-04-18 04:50:34 -05:00
2026-05-20 12:32:57 -07:00
2026-03-01 22:15:47 -06:00
2026-03-19 11:34:26 -05:00
2026-05-17 23:12:13 -07:00
2026-04-17 17:22:59 +05:45
2026-04-17 17:22:59 +05:45
2026-05-16 22:37:13 -07:00
2026-05-17 18:42:46 -05:00
2026-03-30 15:49:25 -05:00
2026-05-17 23:39:23 -05:00
2026-05-19 00:19:38 -07:00
2026-04-06 13:41:32 -05:00
2026-03-28 05:31:49 -05:00
2026-05-19 00:19:38 -07:00
2026-04-08 22:54:46 -05:00
2026-05-09 17:06:10 -07:00
2026-05-21 13:17:56 -05:00
2026-05-09 16:19:14 -07:00
2026-04-17 16:22:33 +05:45
2026-04-06 20:58:17 -05:00
2026-05-20 12:32:57 -07:00
2026-02-21 16:28:23 -06:00
2026-04-30 13:19:22 +07:00
2026-04-05 11:57:31 -05:00
2026-05-13 15:33:06 -05:00
2026-04-04 01:56:40 -05:00
2026-05-15 23:18:45 -05:00
2026-04-16 14:20:26 -05:00
2026-03-26 19:17:58 -05:00
2026-05-17 21:15:05 -05:00
2026-03-14 02:39:52 -05:00
2026-02-28 23:35:17 -06:00
2026-05-18 19:03:41 -05:00
2026-05-18 19:03:41 -05:00
2026-04-30 01:30:07 -05:00
2026-05-02 23:40:06 -07:00
2026-04-14 14:08:32 -05:00
2026-04-30 11:22:07 -05:00
2026-05-20 16:41:32 -05:00
2026-05-20 15:33:37 -05:00
2026-05-18 12:52:54 -05:00
2026-04-17 11:01:04 -05:00
2026-03-03 11:28:19 -06:00
2026-04-18 16:42:48 -05:00
2026-05-20 12:32:57 -07:00
2026-05-17 21:15:05 -05:00
2026-04-29 22:04:39 +07:00
2026-03-26 21:32:18 -05:00
2026-04-25 20:46:52 -05:00
2026-04-02 03:48:10 -05:00
2026-04-17 16:22:33 +05:45
2026-02-28 19:37:38 -06:00
2026-04-05 11:57:31 -05:00
2026-04-13 18:03:09 -05:00
2026-04-05 11:57:31 -05:00
2026-04-17 15:25:06 -05:00
2026-02-19 17:51:51 -06:00
2026-02-19 15:37:53 -06:00
2026-04-06 13:41:32 -05:00
2026-04-29 22:04:39 +07:00
2026-05-02 23:40:05 -07:00
2026-05-17 22:53:20 -05:00
2026-05-17 22:53:20 -05:00
2026-03-22 14:26:18 -05:00
2026-04-16 13:47:16 -05:00
2026-03-25 12:55:09 -05:00
2026-03-01 22:15:47 -06:00
2026-05-09 16:53:17 -07:00
2026-05-05 17:24:42 -05:00
2026-05-05 12:15:31 -05:00
2026-05-05 12:15:31 -05:00
2026-05-05 12:38:26 -05:00
2026-05-20 12:32:57 -07:00
2026-04-27 15:58:07 -05:00
2026-04-10 15:48:38 -05:00
2026-04-30 01:44:15 -05:00
2026-04-05 11:57:31 -05:00
2026-05-20 12:32:57 -07:00
2026-04-05 11:57:31 -05:00
2026-04-06 19:04:17 -05:00
2026-04-08 16:41:23 -05:00
2026-04-06 13:41:32 -05:00
2026-03-06 01:28:09 -06:00
2026-02-23 19:42:43 -06:00
2026-02-23 20:03:26 -06:00
2026-04-05 15:12:19 -05:00
2026-04-09 08:02:26 -05:00
2026-05-11 11:12:13 -07:00
2026-03-23 00:32:13 -05:00
2026-03-26 21:32:18 -05:00
2026-04-10 14:22:42 -05:00
2026-05-21 14:50:48 -05:00
2026-04-25 20:46:52 -05:00
2026-04-16 14:20:26 -05:00
2026-03-28 00:00:21 -05:00
2026-03-07 13:29:08 -06:00
2026-05-20 12:32:57 -07:00
2026-05-15 19:37:23 -07:00
2026-05-17 01:00:49 -07:00
2026-04-28 03:12:24 -05:00
2026-04-18 16:28:41 +05:45
2026-04-17 11:01:04 -05:00
2026-03-16 16:36:54 -04:00
2026-03-05 23:27:47 -06:00
2026-03-26 16:11:29 -05:00
2026-03-24 17:13:33 +03:00
2026-03-24 17:13:33 +03:00
2026-05-04 20:52:12 -03:00
2026-02-16 17:05:32 -06:00
2026-05-20 12:32:57 -07:00
2026-03-24 12:20:40 -03:00
2026-05-04 20:52:12 -03:00
2026-04-24 10:11:32 -05:00
2026-03-17 23:56:57 +07:00
2026-02-27 19:27:56 -06:00
2026-05-18 16:36:32 -05:00