Wallet Fingerprinting
Identifying which wallet software created a Bitcoin transaction by analyzing patterns like input ordering and script types used.
Key Takeaways
- Wallet fingerprinting identifies which software created a Bitcoin transaction by analyzing on-chain patterns: input/output ordering, change output position, script types, fee estimation, and coin selection algorithm.
- Even without address reuse, fingerprinting shrinks a user's anonymity set by linking transactions to a specific wallet type, enabling chain analysis firms to cluster activity across addresses.
- Wallet developers combat fingerprinting by randomizing output ordering, adopting uniform script types, and implementing proposals like BIP-326 for randomized anti-fee-sniping behavior.
What Is Wallet Fingerprinting?
Wallet fingerprinting is the practice of identifying which wallet software constructed a Bitcoin transaction by examining its observable on-chain characteristics. Every wallet makes implementation-level decisions when building transactions: how to order inputs and outputs, which script types to use, how to estimate fees, and how to select coins. These choices create distinctive patterns that function like a software signature embedded in every transaction.
The concept matters because Bitcoin privacy depends on transactions being indistinguishable from one another. When an observer can determine that a set of transactions was created by the same wallet software, they can narrow the pool of possible senders even if no addresses are reused. Chain analysis firms like Chainalysis and Elliptic use wallet fingerprinting as one of several heuristics to cluster transactions and trace funds across the blockchain.
Research by Ishaana Innam identified over 30 distinct traits across eight major wallets, achieving roughly 50% wallet identification accuracy from a single transaction. David Corral Urbano at the Universitat Autonoma de Barcelona studied 14 wallets and improved identification accuracy from 18% to 45% using machine learning classifiers on these traits.
How It Works
Wallet fingerprinting relies on observing the structural choices a wallet makes when constructing a transaction. Each wallet implementation encodes its design decisions into the transaction data itself, and these decisions differ across software. Researchers categorize fingerprints into four types: independent (always observable), probabilistic (statistical patterns), dependent (require prior heuristic deductions like change detection), and temporal (timing-based).
Input and Output Ordering
When a transaction has multiple inputs or outputs, the wallet must choose an order. BIP-69 proposed deterministic lexicographic sorting: inputs sorted by txid then output index, outputs sorted by amount then scriptPubKey. Wallets like Electrum and Trezor Suite implement BIP-69 by default, but because adoption is uneven, compliance with BIP-69 itself has become a fingerprint. If only a few wallets follow this ordering, their transactions stand out from the majority.
Privacy researchers now argue that random shuffling is better than any deterministic scheme. A deterministic rule is predictable and identifiable, while random ordering blends in with the noise of other wallets that also randomize.
Change Output Position
Most Bitcoin transactions produce a change output that returns surplus funds to the sender. Many wallets place the payment output first and change second, or vice versa, creating a predictable pattern. Some wallets always place change in a fixed position, while others randomize it. If an observer can identify the change output, they learn both the payment amount and the sender's change address.
Heuristics for detecting change include round-number analysis (the payment is usually a round amount while change is not) and address-type matching (change typically uses the same script type as the input addresses).
Script Types
Bitcoin supports multiple address formats: P2PKH (legacy), P2SH (wrapped SegWit), P2WPKH (native SegWit), and P2TR (Taproot). Wallets typically default to a single format. When a transaction mixes types (for example, a P2WPKH input with a P2SH change output), the change address is trivially identifiable because it uses a different format from the inputs.
Taproot (P2TR) adoption is significant for privacy because it makes multisig transactions, timelocked transactions, and simple payments all look identical on chain. As more wallets adopt P2TR as their default, the fingerprinting signal from script types diminishes.
Fee Estimation
Different wallets target different fee rates and use different rounding precision. Some wallets round to the nearest sat/vB, others use more granular fee rates with decimal precision. The fee estimation algorithm itself leaves traces: wallets that query different fee APIs or use different confirmation-target models produce statistically distinguishable fee distributions.
Coin Selection
The coin selection algorithm determines which UTXOs a wallet chooses to fund a transaction. Bitcoin Core (v27+) runs four algorithms in parallel: Branch and Bound (seeks exact matches to avoid change entirely), Knapsack (1,000 rounds of stochastic approximation), Single Random Draw, and CoinGrinder (minimizes input weight). It then selects the result with the lowest "waste metric."
Other wallets use simpler strategies like FIFO (oldest first), largest-first, or privacy-optimized selection. Each strategy produces a distinctive transaction shape: the number of inputs, whether change exists, and the relationship between input and output values all carry information about the wallet's algorithm.
// Simplified coin selection fingerprint comparison
// Bitcoin Core: tries 4 algorithms, picks lowest waste
algorithms: [BranchAndBound, Knapsack, SingleRandomDraw, CoinGrinder]
selection: min(waste_metric(result) for result in algorithms)
// Electrum: prefers confirmed UTXOs, then by value
sort: confirmed_first → largest_first → spend
// Privacy-focused: avoids merging UTXOs from different sources
strategy: single_utxo_if_possible → minimize_input_countnSequence and nLockTime Values
The nSequence field in each input signals transaction replacement behavior. Most wallets set it to 0xFFFFFFFD (signaling RBF opt-in) or 0xFFFFFFFE (no RBF). The choice itself differentiates wallet types.
The nLockTime field is an even stronger fingerprint. Bitcoin Core, Electrum, Sparrow, and Specter set nLockTime to the current block height as anti-fee-sniping protection (preventing miners from profitably re-mining old blocks). With 10% probability, Bitcoin Core applies a random look-back of 0 to 99 blocks so that delayed transactions blend in. Most other wallets leave nLockTime at 0, which is a strong differentiator: a transaction with nLockTime set near the current block height almost certainly came from one of these privacy-aware wallets.
BIP-326 proposes that Taproot wallets randomly alternate between nLockTime-based and nSequence-based (BIP-68) anti-fee-sniping with 50/50 probability. This makes off-chain settlement transactions (from protocols like Lightning or Spark) indistinguishable from regular on-chain spends.
Transaction Version
Most modern wallets use nVersion 2, which supports relative timelocks (BIP-68). Wallets still using nVersion 1 stand out immediately. While this is a coarse fingerprint, it narrows the field before finer-grained analysis begins.
Why It Matters
Wallet fingerprinting undermines Bitcoin privacy even when users follow best practices like avoiding address reuse and using fresh addresses for every transaction. If an observer knows that all transactions from a certain wallet type belong to a small user population, they can cluster those transactions and attempt to link them to real-world identities through other means.
For users of privacy-enhancing techniques like CoinJoin, wallet fingerprinting creates a paradox. CoinJoin transactions are identifiable on chain by their distinctive structure (equal-value outputs, specific participant counts). Post-mix spending behavior can re-link CoinJoin outputs if the wallet's fingerprint is distinctive enough to cluster post-mix transactions together. Research published in October 2025 on arXiv demonstrated methods for analyzing input-output mappings in CoinJoin transactions with arbitrary values, further reducing the privacy guarantees these protocols provide.
Layer-2 protocols like Lightning and Spark can mitigate fingerprinting concerns by moving transactions off chain entirely. When payments settle within a Layer 2 network, no on-chain transaction is created, and there is nothing to fingerprint. On-chain footprints only appear during channel opens/closes or protocol entries and exits, reducing the amount of fingerprintable data an observer can collect.
Use Cases
Wallet fingerprinting serves both defensive and offensive purposes in blockchain analysis:
- Chain analysis and law enforcement: firms like Chainalysis and Elliptic use wallet fingerprinting to cluster transactions, trace stolen funds, and support investigations. Identifying the wallet software narrows the suspect pool and provides leads for further analysis.
- Academic research: researchers study fingerprinting to measure Bitcoin's real-world privacy properties. The 2025 paper "Tumbling down the stairs" (ScienceDirect) used updated fingerprinting heuristics including dust output analysis to trace tumbler transactions.
- Wallet development: developers use fingerprinting research to improve their software. Understanding which traits leak information drives implementation changes like randomized ordering, uniform script types, and anti-fee-sniping protection.
- Privacy auditing: users and organizations audit their own transaction patterns to assess how much information they leak. Tools like OXT Research provide transaction graph visualization for this purpose.
Risks and Considerations
The Standardization Paradox
Attempts to standardize transaction construction can backfire. BIP-69 aimed to make all wallets produce identically ordered transactions, but partial adoption turned compliance into a fingerprint. Wallets that follow BIP-69 are now distinguishable from those that do not. Any standard that is not universally adopted creates a new fingerprint rather than eliminating one.
Network-Level Fingerprinting
On-chain fingerprinting compounds with network-level analysis. Observers monitoring the Bitcoin peer-to-peer network can correlate IP addresses with transaction broadcasts. In June 2026, Bitcoin Core patched a privacy bug where its private-broadcast retry logic could leak the originator's IP address. Even with Tor, packet-size and timing features can reveal wallet software. BIP-324 (encrypted P2P transport) helps mitigate some network-level fingerprinting but does not eliminate it.
Evolving Heuristics
Fingerprinting is an arms race. As wallets improve their privacy properties, analysis tools develop new heuristics. Machine learning classifiers trained on labeled transaction datasets can detect subtle patterns that rule-based systems miss. A wallet that randomizes one trait may still be identifiable through the combination of its other traits.
Privacy Budget
Each transaction a user makes reveals information. Even small leaks accumulate over time. A user who makes 100 transactions with the same wallet has given observers 100 data points for statistical analysis, even if no single transaction is individually identifiable. This cumulative effect means that occasional privacy measures (using CoinJoin once, then returning to normal spending) may provide less protection than expected.
Mitigation Strategies
Users concerned about wallet fingerprinting can take several steps to reduce their exposure:
- Use wallets that implement anti-fingerprinting measures: randomized output ordering, anti-fee-sniping (nLockTime), and consistent script types across inputs and outputs
- Adopt Taproot (P2TR) addresses, which make different spending conditions indistinguishable on chain
- Consider Layer 2 protocols for routine payments, minimizing the on-chain footprint available for analysis
- Avoid mixing wallet software: using multiple wallets can paradoxically make transactions more fingerprintable if each wallet has a distinct signature
- Review transaction graph privacy defenses for a broader understanding of Bitcoin privacy techniques
This glossary entry is for informational purposes only and does not constitute financial or investment advice. Always do your own research before using any protocol or technology.