HD Bitcoin Wallet
-- A hierarchical wallet derived from your Nostr identity. Fresh address per receive, - full transaction history, no address reuse. -
-- Requires login with an nsec (your Nostr private key). -
-- A hierarchical wallet derived from your Nostr identity. Fresh address per receive, - full transaction history, no address reuse. -
-- Requires login with an nsec (your Nostr private key). -
-- {availability.loginType === 'extension' - ? 'Your browser extension keeps your secret key isolated, so we can\'t derive child keys for an HD wallet.' - : availability.loginType === 'bunker' - ? 'Your remote signer (NIP-46 bunker) keeps your secret key on the bunker side, so we can\'t derive child keys for an HD wallet.' - : "Your login type doesn't expose the secret key needed to derive an HD wallet."} -
-- The single-address wallet at /wallet{' '} - works for every login type. -
-Failed to scan wallet
- -
- {isReceive ? 'Received' : 'Sent'}
- {isSilent && (
-
-
{formatTxDate(tx.timestamp)}
-- {isReceive ? '+' : '-'} - {btcPrice ? satsToUSD(tx.amount, btcPrice) : `${formatBTC(tx.amount)} BTC`} -
-{formatBTC(tx.amount)} BTC
-- Log in to see your Bitcoin Taproot address derived from your Nostr identity. + A hierarchical wallet derived from your Nostr identity. Fresh address per receive, + full transaction history, no address reuse. +
++ Requires login with an nsec (your Nostr private key).
Failed to load balance
- -+ {availability.loginType === 'extension' + ? 'Your browser extension keeps your secret key isolated, so we can\'t derive child keys for your wallet.' + : availability.loginType === 'bunker' + ? 'Your remote signer (NIP-46 bunker) keeps your secret key on the bunker side, so we can\'t derive child keys for your wallet.' + : "Your login type doesn't expose the secret key needed to derive your wallet."} +
++ Log out and sign in again with your nsec to use the wallet. +
+Failed to scan wallet
+ ++ Fresh address each time. Bump to a new index after sharing + for privacy. +
+ ++ Static receive identifier. Share once and reuse forever — + senders derive a unique on-chain address per payment. +
+ ++ Scanning disabled — no BIP-352 indexer configured. Set{' '} + bip352IndexerUrl in your app config to + detect incoming silent payments. +
+ ) : sp.enabled ? ( ++ Silent payment balance:{' '} + + {btcPrice + ? satsToUSD(sp.balance, btcPrice) + : `${formatBTC(sp.balance)} BTC`} + +
+ )} + +{isReceive ? 'Received' : 'Sent'}
+
+ {isReceive ? 'Received' : 'Sent'}
+ {isSilent && (
+
+
{formatTxDate(tx.timestamp)}
- {formatBTC(tx.amount)} BTC + {btcPrice ? satsToUSD(tx.amount, btcPrice) : `${formatBTC(tx.amount)} BTC`}
+{formatBTC(tx.amount)} BTC