Zappr on Nostr: How one fingerprint becomes two keys in zappr: PRF(passkey, "NOSTR-SALT") > BIP32 > ...
How one fingerprint becomes two keys in zappr:
PRF(passkey, "NOSTR-SALT") > BIP32 > nsec
PRF(passkey, "WALLET-SALT") > BIP39 > Lightning wallet
No seed phrase stored anywhere. WebAuthn PRF runs entirely client-side we never touch the private key.
Published at
2026-07-13 21:58:04 UTCEvent JSON
{
"id": "592cce635a28f9e0fb88ead6ea7e31bd83262f5da9da575634ce0c15850c282e",
"pubkey": "043caea62cfe4dc0c043a47696f64fb1b68535f9c97c8e41ec01ce61c0a7acd6",
"created_at": 1783979884,
"kind": 1,
"tags": [
[
"imeta",
"url https://blossom.primal.net/56a3335a13ec9328ce92dce0dc41a5ad092d51ab8f2b74eadfae3677a133eb50.jpg",
"m image/jpeg",
"ox 56a3335a13ec9328ce92dce0dc41a5ad092d51ab8f2b74eadfae3677a133eb50",
"dim 930x912"
],
[
"client",
"Primal Android"
]
],
"content": "How one fingerprint becomes two keys in zappr:\nPRF(passkey, \"NOSTR-SALT\") \u003e BIP32 \u003e nsec\nPRF(passkey, \"WALLET-SALT\") \u003e BIP39 \u003e Lightning wallet\nNo seed phrase stored anywhere. WebAuthn PRF runs entirely client-side we never touch the private key. \n\n\n\nhttps://blossom.primal.net/56a3335a13ec9328ce92dce0dc41a5ad092d51ab8f2b74eadfae3677a133eb50.jpg",
"sig": "4752bbc5a053d5d8196ffc94115f335c5d76a3622106d67033870c71023354aff49f7f29d81421801e9361eece45fec08a7d8f16a8f46b65d8e78a14525c3d2c"
}