Not Browser Based
Sparrow is a tab based desktop wallet, but it doesn’t use browser technology. Browsers are inherently less safe than dedicated desktop applications because their wide capabilities mean they have a large attack surface. Like a hardware wallet is deliberately a simple device to reduce the number of possible attacks, a browser sits on the other end of that spectrum.
...but Standards Based
Sparrow tries wherever possible to adhere to commonly accepted standards in order to have as wide an interoperability as possible. In particular, it has been built to support Partially Signed Bitcoin Transactions (PSBTs) from the ground up, influencing everything from the keystore design to the transaction editor.
All Wallet Types Welcome
Sparrow not only supports single sig and multisig with all legacy and Segwit script types, but gives you full control in the wallet creation process - and then lets you edit the wallet later if you choose! In addition to BIP39 mnemonic seeds and watch-only xpub keystores, all common hardware wallets are supported and can be easily imported using USB or their own file formats. Run Sparrow in testnet, or configure your wallet using an output descriptor. In addition, Sparrow supports importing and exporting Electrum wallets - even encrypted ones!
Many wallets use relatively weak password hashing in order to support a wide range of devices, such as PBKDF2 or similar. Sparrow is desktop focussed and uses a configuration of Argon2 (winner of the Password Hashing Competition in 2015) configured to take at least 500ms on modern hardware to derive the key from your password in order to unlock your wallet. Even if it only contains public keys, that data is still worth protecting properly.
Detailed Wallet History
With Sparrow, you can drill down into your transactions to easily understand the inputs, outputs and addresses involved. All of these can be labelled, and Sparrow automatically applies your label appropriately to all of them when sending. Instead of trying to fit an account model, Sparrow embraces Bitcoin’s UTXO model. Want to know which inputs and outputs were sent or received from an address? Want to understand when a particular UTXO was spent? Sparrow makes this easy.
Control and Understand your Sends
Starting with coin control and ending with a detailed byte level transaction viewer, Sparrow gives full transparency and control throughout the transaction creation and signing process. Uniquely, Sparrow provides an editable diagram showing your inputs and outputs as you create a transaction to make it easy to optimise UTXO usage and reduce fees. Current fee estimates are charted to select an appropriate block target. UTXO selection is done via Branch and Bound and Knapsack coin selectors, like Bitcoin Core. Once input and outputs are decided, you can edit all transaction metadata in the comprehensive transaction editor (which naturally supports PSBTs as well).
All Sign Here
Transaction signatures are collected in the PSBT directly in the transaction editor. Sparrow software wallets, normally encrypted, have their private keys unlocked only for the duration of the signing (in temporary local variable storage). USB and airgapped hardware wallet signing is supported, along with QR fountain codes implementing the UR standard that allows for any PSBT data length to be transmitted. At any stage, all of the fields of the transaction can be inspected, including the signing script along with the signatures and pubkeys. The PSBT and final transaction can be saved for external use as necessary (or simply copied from the hexadecimal view!).
Sparrow is a lightweight wallet, and instead of relying on SPV technology (which has privacy implications) it leverages the power of your Bitcoin node via an Electrum server. The server maintains a full index of all Bitcoin transactions to provide Sparrow with instant startup and immediate transaction history. ElectrumX, Electrs, Electrs-Esplora, EPS and BWT are all supported over SSL and built in Tor.
Your Own Blockchain Explorer
With all this power, the transaction viewer doubles as a private blockchain explorer. All inputs and spent outputs are linked so you can explore the transaction graph and understand the full transaction history, as far back as the coinbase transaction. In addition, any transaction can be loaded via it’s transaction ID or hexadecimal/base64 representation (in text or QR) for detailed inspection.