Sparrow-GRS

Sparrow-GRS is a modern desktop Groestlcoin wallet application supporting most hardware wallets and built on common standards such as PSBT, with an emphasis on transparency and usability.

Sparrow-GRS does not hide information from you - on the contrary it attempts to provide as much detail as possible about your transactions and UTXOs, but in a way that is manageable and usable.
However, Sparrow-GRS is also unique in that it contains a fully featured transaction editor that also functions as a blockchain explorer. This feature not only allows editing of all of a transaction’s fields, also easy inspection of the transaction bytes before broadcasting.

Changelog 1.7.9
• Add Taproot support on Groestlcoin Core using the new Cormorant library utilizing descriptor wallets (requires Groestlcoin Core v24 or later)
• Show a Lifehash for the wallet's master fingerprint in the Settings tab and Passphrase dialog
• Implement BIP329 for importing and exporting wallet labels (Wallet Import and Export dialogs)
• Add full support for Tapsigner as a hardware wallet (initialize, import, backup, change pin, message and transaction signing)
• Add support for sending to, sweeping and re-initialized a Satscard (Send tab Pay to dropdown and Tools > Sweep Private Key)
• Add support for entering empty passphrases on Trezor One
• Add support for private key sweeping using Groestlcoin Core with Cormorant (requires Groestlcoin Core v24 or later)
• Add https protocol to support Groestlcoin Core connections over TLS
• Add note on disabling derivation path validation to keystore help tooltip
• Avoid copying wallet history unnecessarily on wallet load
• Export 8 decimal places when exporting a CSV in GRS units
• Add config property autoSwitchProxy to disable automatic proxy switching on failure
• Improve Tor connection failure messages with help text
• Indicate in the SSL handshake warning that a certificate renewal may be the cause
• Prefer loading data for transaction tabs from existing wallet transactions
• Allow expired certificates for electrum-grs servers so long as they have been previously used or explicitly approved
• Write and parse both multipath and single descriptors in wallet output descriptor export
• Add transaction fee column to transactions CSV for outgoing (spending) transactions
• Improve display of JSON-RPC error exceptions
• Add block height to Terminal connected label
• Update menu categories for Linux desktop installation
• Improve legacy Groestlcoin Core wallet error messages
• Set initial focus to done button on Terminal server test dialog
• Avoid triggering all history changed event on unconfident script hash status calculations
• Update dependencies for guava, simple-json-rpc, junit and dependants
• Upgrade Gradle to 7.6 for Java 19 support
• Bug fix: Fix Sparrow-GRS export wallet file extension to be always .mv.db
• Bug fix: Fix cancelling Create Wallet in Terminal
• Bug fix: Allow message sign/verify from nested segwit wallets
• Bug fix: Fix edge case when loading wallets with matching tx inputs and outputs
• Bug fix: Fix persistence of renaming and deleting newly created wallet accounts
• Bug fix: Ensure focus remains on table after editing a label cell
• Bug fix: Add merge function for wallet transaction entry edge case
• Bug fix: Fix address context menu action Copy Output Script Bytes to return entire ScriptPubKey
• Bug fix: Disable server toggle when no server is configured (URL host is empty)
• Implement Bitcoin Secure Multisig Setup (BSMS) for keystore export and wallet import/export
• Configure a block explorer URL in General Preferences to enable opening a transaction in the browser
• Warn and request user confirmation before enabling use of a BIP39 passphrase
• Add output descriptor QR scanning from the Wallet Import dialog
• Improve UX of BIP39 wallet discovery on Groestlcoin Core
• Display UTF8 strings encoded into scripts in transaction viewer (displays OP_RETURN text)
• Recompile secp256k1 on MacOS 10.13.6 to support legacy hardware
• Show HWI signature verification errors
• Read and throw HWI error stream if stdout empty
• Use default ports for Groestlcoin Core if absent
• Avoid using zst compression on .deb packages
• Add minfeerate parameter to BIP78 payjoin URLs
• Support converting xprvs in output descriptors to xpubs
• Upgrade jlink plugin to support Java 19
• Add StartupWMClass to linux .desktop file to avoid temporary icon
• Switch groestlcoind client from named to array parameters to support grs-rpc-proxy with Cormorant
• Bug fix: Only use configured proxy when connecting to onion addresses with Cormorant
• Bug fix: Fix UX when changing the port for an aliased server
• Bug fix: Fix Taproot signature hashing for single|anyonecanpay sighash flags
• Bug fix: Add lock menu item to all wallets with a password on Terminal, not just hot wallets
• Bug fix: Fix keystore encryption issue when changing the password on a wallet with freshly added accounts
• Generate or load Border Wallets grids to enter memorizable seeds
• Update Tor to v0.4.7.13 using the kmp-tor library
• Darker dark theme and other styling improvements
• Signed Windows installer binary
• Autosuggest all possible words for the last word when entering a BIP39 seed
• Display a warning if the chosen mixFeeTarget fee rate is much lower than that of normal priority
• Change the wallet gap limit and subscribe to new addresses if an address beyond the gap limit range is requested
• Support saving a Tapsigner backup as binary file
• Show PSBT QRs more compactly (without non-witness-utxo entries) for all multisig segwit signing wallets
• Add context menu to amount cells to copy values
• Read name from ur:crypto-hdkey and set keystore label if present
• Bug fix: Fix issue configuring a block explorer with a port and path
• Bug fix: Handle empty (0 block only) chains in Cormorant
• Bug fix: Fix accidentally making keystore fields editable on loading of single account non-watchonly wallets
• Add Border Wallets number grid support
• Always show Tapsigner in airgapped import options
• Improve error message when Groestlcoin Core wallet support is disabled
• Bug fix: Preserve the order of cell selection in a Border Wallets grid
• Show a warning if a Border Wallets entropy grid PDF is not saved
• Bug fix: Fixes an issue creating a seed after loading or regenerating a Border Wallets entropy grid with a cell selection already present
• Improve the mempool fee rates chart to reflect finer granularity and offer an expanded display on click
• Add a 24h toggle to expanded mempool fee rates chart
• Add additional inputs to an RBF transaction if needed as required fee is increased
• Display the order of word selection on a Border Wallets grid
• Avoid simultaneous multiple selection on a Border Wallets grid
• Clarify recovery phrase purpose on Border Wallets PDF
• Support spendable property on UTXOs in BIP329 wallet label imports and exports
• Improve the error message when broadcasting an RBF transaction with insufficient fee, and indicate the minimum required fee if available
• Improve error message on broadcasting a transaction with a fee rate below the purge rate for the connected node mempool
• Add Ctrl/Cmd+B keyboard shortcut for quickly switching the groestlcoin unit from GRS to gros and back
• When scanning, invert cropped frame and scan for inverted QRs
• Support scanning text QR containing seed words
• Update to hummingbird v1.6.7 to support pair (<0;1>) path components and unique part progress indicator
• Support compact SeedQRs with high error correction
• Trim leading and trailing whitespace from Pay to address field in the Send tab
• Look for supported cards across all connected card terminals
• Support airgapped keystore import of a Tapsigner with a custom derivation path
• Add a separate button to backup Tapsigner without changing the PIN
• Ensure canonical ordering of key expressions in multisig descriptor QRs
• Improve performance on large wallets with high address reuse
• Optimize fetching mempool entries for fee rate histogram when connected to Groestlcoin Core
• Continue with transaction parsing if pushdata opcode is found with invalid data length
• Add context menu options to Date column in UTXOs table to freeze UTXO and view transaction
• Remove path from non-batched Electrum-GRS server request ids
• Highlight CSV download buttons
• Update kmp-tor to v1.4.3
• Bug fix: Set all witness UTXOs on PSBT inputs before attempting to sign a sweep private key Taproot transaction
• Bug fix: Fix reading of compact size int as unsigned short when parsing PSBTs
• Bug fix: Fix unit format switching on Send tab
• Bug fix: Fix UI button update when stopping mixing on Terminal
• Add BIP322 message signing for singlesig addresses including P2TR
• Add zbar QR reader for all QR scans (wide, cropped and inverted)
• Add useZbar config variable to disable zbar scanning (enabled by default)
• Add Rename Wallet command to File menu
• Set initial fee for proposed RBF transaction to satisfy minimum relay requirements
• When constructing RBF and CPFP transactions, add any additional UTXOs by output group only if effective fee is sufficient
• Make the Send to Many dialog non-modal, where reselecting the menu command brings an existing dialog to the foreground
• Show a warning in the General Preferences if currencies could not be retrieved from the exchange rate source
• Optimize memory store used for calculating the fee rate histogram in Cormorant
• For memory efficiency, only keep older mempool histogram entries at ten minute intervals
• Add additional UTXOs to CPFP transaction if the output value is below the dust threshold
• Set the transaction label to a comma separated list of the payment labels when a multiple payment transaction is broadcasted
• Show a warning dialog on Submit Bug Report to redirect users to the support channel where appropriate
• Add the Taproot script type to connected wallet import options
• Add a tooltip to the Save Final Transaction button to suggest connecting to a server in order to broadcast
• Make alert dialogs resizable
• Bug fix: Fix overselection of inputs during RBF
• Bug fix: Preserve payment labels when using RBF on multiple payment transactions
• Bug fix: Retain UTXO frozen status on wallet refresh
• Bug fix: Preserve wallet order on application restart after tabs are moved left or right
• Bug fix: On updating UTXO history in Terminal, set the scrollbar to the top if the table view is scrolled below new UTXO table row count
• Add wallet accounts summary dialog (View menu)
• Support import and export of keystore labels in descriptor (ur:crypto-output) QR codes
• Propagate transaction label changes to inputs, outputs and addresses where their existing labels were set in the same manner
• Suggest clearing any existing keystores when the script type is changed in the Settings tab
• Avoid adding inputs when constructing a consolidation transaction replacement, allowing output to decrease
• Add mempoolFullRbf config variable to enable RBF functionality on mempool transactions without checking sequence flags (default false)
• Refactor transaction and UTXO table column sorting, add default sorting on new history if table was previously empty
• Add tooltip to account tab where label is truncated
• Bug fix: In Terminal, check if theme is present to avoid exception on UTXO history update
• Bug fix: Support CompactSeedQR scanning using zbar
• Bug fix: Fix single character multisig threshold parsing issue
• Bug fix: Handle Groestlcoin Core bug where listwalletdir returns empty results even when wallets are loaded
• Bug fix: Use ControlPort auto instead of UNIX socket for internal Tor control to avoid a bug where UNIX socket path is too long

Features
• Full support for single sig and multisig wallets on common script types
• Connect to public Electrum-GRS servers
• Standards based including full PSBT support
• Support for KeepKey
• Support for Ledger Nano S
• Support for Ledger Nano X
• Support for Trezor Model T
• Support for Trezor One
• Full coin and fee control with with comprehensive coin selection
• Labeling of all transactions, inputs and outputs
• Lightweight and multi platform
• Payjoin support
• Built in Tor
• Testnet, regtest and signet support

This application is licensed under Apache. There is no warranty and no party shall be made liable to you for damages. If you lose coins due to this app, no compensation will be given. Use this app solely at your own risk.

Source code: https://github.com/Groestlcoin/sparrow/