Bitcoin Fee Savings Calculator: SegWit, Batching, and L2
Calculate how much you save on Bitcoin transaction fees using SegWit, Taproot, batching, Lightning, and Spark. Savings tables at multiple fee rates.
How Bitcoin Transaction Fees Work
Bitcoin transaction fees are determined by two factors: the size of your transaction in virtual bytes (vBytes) and the current fee rate in satoshis per vByte (sat/vB). The formula is straightforward: fee = transaction_size_vB × fee_rate_sat/vB. A smaller transaction costs less at any fee rate, which makes address type selection, transaction batching, and layer 2 solutions the three primary levers for reducing costs.
Fee rates fluctuate based on mempool congestion. During calm periods, transactions confirm at 1 to 5 sat/vB (under $0.50). During congestion events like the Runes protocol launch in April 2024, the median fee rate exceeded 1,800 sat/vB and a single standard transaction cost over $100. This guide breaks down exactly how much each optimization technique saves across different fee environments.
Fee Savings by Address Type
The single easiest way to reduce Bitcoin transaction fees is to use a modern address type. The witness discount introduced by SegWit charges witness data (signatures and public keys) at one quarter the rate of non-witness data. Since signatures make up the bulk of a transaction's size, this discount reduces fees substantially.
The following table shows the size and cost of a typical 1-input, 2-output transaction (one payment plus change) for each address type.
| Address Type | Prefix | Size (vB) | Fee at 5 sat/vB | Fee at 20 sat/vB | Fee at 50 sat/vB | Fee at 100 sat/vB | Savings vs Legacy |
|---|---|---|---|---|---|---|---|
| Legacy (P2PKH) | 1... | 226 | 1,130 sats | 4,520 sats | 11,300 sats | 22,600 sats | Baseline |
| Wrapped SegWit (P2SH-P2WPKH) | 3... | 167 | 835 sats | 3,340 sats | 8,350 sats | 16,700 sats | ~26% |
| Native SegWit (P2WPKH) | bc1q... | 141 | 705 sats | 2,820 sats | 7,050 sats | 14,100 sats | ~38% |
| Taproot (P2TR) | bc1p... | 154 | 770 sats | 3,080 sats | 7,700 sats | 15,400 sats | ~32% |
Native SegWit (P2WPKH) delivers the lowest fees for simple single-signature transactions because its outputs are only 31 bytes, compared to 43 bytes for Taproot. However, Taproot inputs cost only 57.5 vB versus 68 vB for P2WPKH, so Taproot becomes more efficient for transactions with multiple inputs, such as UTXO consolidations. For a deeper look at how each address type is constructed, see our transaction size reference.
Why the Witness Discount Exists
The witness discount is not arbitrary. Non-witness data (transaction version, inputs, outputs, locktime) costs 4 weight units per byte, while witness data (signatures, public keys) costs only 1 weight unit per byte. Virtual bytes are calculated as vBytes = weight_units / 4.
This design reflects the fact that witness data does not affect the UTXO set that every full node must store in memory. Signatures are validated once during transaction verification and then only needed for historical auditing. The discount incentivizes spending UTXOs (which shrinks the set) over creating new ones (which grows it), aligning individual cost incentives with network health.
Example: A P2WPKH input has 41 bytes of non-witness data and 108 bytes of witness data. Weight = (41 × 4) + (108 × 1) = 272 WU = 68 vB. Without the discount, the same input would cost 149 bytes: a 54% reduction from the discount alone.
Transaction Batching Savings
Transaction batching combines multiple payments into a single transaction. Instead of paying the transaction overhead (10.5 vB) and input cost (68 vB for P2WPKH) separately for each payment, batching amortizes those fixed costs across all recipients. Each additional output adds only 31 vB (P2WPKH) instead of 141 vB for a separate transaction.
| Recipients | Individual Txs (vB) | Batched Tx (vB) | vB Savings | Savings at 20 sat/vB | Savings at 100 sat/vB |
|---|---|---|---|---|---|
| 2 | 282 | 172 | 39% | 2,200 sats | 11,000 sats |
| 5 | 705 | 265 | 62% | 8,800 sats | 44,000 sats |
| 10 | 1,410 | 420 | 70% | 19,800 sats | 99,000 sats |
| 25 | 3,525 | 884 | 75% | 52,820 sats | 264,100 sats |
| 50 | 7,050 | 1,659 | 76% | 107,820 sats | 539,100 sats |
These calculations assume P2WPKH (Native SegWit) transactions with a single input. For a merchant or exchange processing 50 daily withdrawals, batching saves roughly 5,391 vB per batch. At 100 sat/vB, that translates to 539,100 sats (~$54 at $100,000 BTC) per batch, or over $19,000 per year. See our batch calculator for interactive estimates and our fee optimization strategies guide for implementation details.
On-Chain vs Lightning vs Spark
For users who transact frequently, moving off-chain offers savings that dwarf even the best on-chain optimizations. The Lightning Network processes payments through pre-funded payment channels with fees measured in parts per million. Spark, a Bitcoin Layer 2, eliminates per-transfer fees entirely for internal payments.
| Payment Method | $10 Payment | $100 Payment | $1,000 Payment | Setup Cost | Ongoing Costs |
|---|---|---|---|---|---|
| On-chain (P2WPKH, 20 sat/vB) | 2,820 sats (~$2.82) | 2,820 sats (~$2.82) | 2,820 sats (~$2.82) | None | Per-transaction mining fee |
| On-chain (P2WPKH, 100 sat/vB) | 14,100 sats (~$14.10) | 14,100 sats (~$14.10) | 14,100 sats (~$14.10) | None | Per-transaction mining fee |
| Lightning Network | <1 sat | ~5 to 50 sats | ~50 to 500 sats | Channel open (~$2 to $15) | Rebalancing, liquidity management |
| Spark (internal) | 0 sats | 0 sats | 0 sats | L1 deposit tx fee | None |
Lightning fees depend on route length and node fee policies. The median routing fee rate sits around 6.3 ppm (0.00063%), but multi-hop routes through premium nodes can charge 500 to 1,000 ppm or more. Lightning also carries hidden costs: channel opens and closes each require on-chain transactions, and routing nodes spend on rebalancing and inbound liquidity acquisition. For a detailed comparison of Lightning economics, see our Lightning vs on-chain tool.
Spark takes a different approach: internal transfers between Spark users (both BTC and USDB) cost zero fees, with no channels, no liquidity management, and no rebalancing. Cross-network transfers between Spark and Lightning carry a small percentage fee (0.15% to 0.25%), and withdrawals to Bitcoin L1 follow the formula 250 × sat/vB + 750 sats. For high-volume merchants processing hundreds of daily payments, the total cost of ownership on Spark is a fraction of equivalent Lightning infrastructure.
Cumulative Impact for High-Volume Users
Fee optimization compounds. A merchant processing 100 daily payments can stack multiple techniques for dramatic savings. The following example assumes a moderate fee environment of 20 sat/vB.
Baseline (100 individual Legacy P2PKH transactions per day):
- 100 × 226 vB × 20 sat/vB = 452,000 sats/day (~$452)
- Annual cost: ~$164,980
Optimization 1: Switch to Native SegWit (P2WPKH):
- 100 × 141 vB × 20 = 282,000 sats/day (~$282)
- Annual savings: ~$62,050 (38% reduction)
Optimization 2: Add batching (4 batches of 25 recipients):
- 4 × 884 vB × 20 = 70,720 sats/day (~$70.72)
- Annual savings vs unbatched SegWit: ~$77,068
- Total savings vs Legacy baseline: ~$139,118 (84% reduction)
Optimization 3: Move to Spark for internal payments:
- Internal Spark transfers: $0
- Annual savings vs on-chain: up to $164,980 (100% reduction)
These savings scale linearly with fee rates. During congestion at 100 sat/vB, the Legacy baseline jumps to $824,900 per year. At that rate, even switching address types alone saves over $310,000 annually.
Choosing the Right Optimization Strategy
The right approach depends on your payment patterns and volume:
For individual users making a few transactions per month: switch to a wallet that supports Native SegWit (bc1q) or Taproot (bc1p) addresses. This is a one-time change that cuts fees by 32% to 38% with zero effort. Check the SegWit adoption tracker to see which wallets support modern address types.
For businesses processing multiple daily payments: implement batch processing to combine withdrawals into periodic batches. Most exchanges and payment processors batch every 10 to 60 minutes. Combined with Native SegWit, this achieves 70% to 80% fee reduction.
For high-frequency payment applications (point of sale, tipping, micropayments, recurring billing): on-chain transactions are economically impractical regardless of optimization. Layer 2 solutions are the only viable path. Lightning works well for payments where both parties are online. Spark is designed for always-on payment flows where zero per-transaction cost and no channel management are priorities.
Multisig Transactions: Where Savings Are Largest
Multisig transactions benefit the most from address type upgrades because they include multiple signatures, which means more witness data receiving the discount.
A 2-of-3 multisig input costs 296 vB with Legacy P2SH but only 104 vB with Native SegWit P2WSH: a 65% reduction. With MuSig2 key aggregation on Taproot, the same 2-of-3 setup compresses to a single Schnorr signature, reducing the input to 57.5 vB: an 81% savings over Legacy. For institutional custody setups processing large volumes through multisig wallets, upgrading to Taproot with MuSig2 can reduce annual fee expenditure by hundreds of thousands of dollars.
Fee Rate Context: When Optimization Matters Most
Bitcoin fee rates have ranged from under 1 sat/vB during quiet periods to over 1,800 sat/vB during the Runes protocol launch on April 20, 2024, when Block 840,000 collected 37.7 BTC ($2.4 million) in fees alone. Major congestion events occur several times per year, driven by bull market demand, new token protocols (BRC-20, Runes, Ordinals), or hashrate drops.
In mid-2026, typical fee rates range from 2 to 17 sat/vB. But historical spikes demonstrate why fee optimization should be implemented during calm periods, before costs surge. A merchant paying 226 vB per transaction at 1,800 sat/vB would spend 406,800 sats ($406) per transaction. The same merchant using batched Native SegWit transactions would pay roughly 88 vB per recipient: a difference of $277 per payment at peak rates. For real-time fee rate data and confirmation time estimates, use our fee estimator.
Frequently Asked Questions
How much does SegWit save on Bitcoin transaction fees?
Native SegWit (P2WPKH, bc1q addresses) saves approximately 38% compared to Legacy P2PKH addresses for a standard 1-input, 2-output transaction. The savings come from the witness discount, which charges signature data at one quarter the rate of other transaction data. Wrapped SegWit (P2SH-P2WPKH, 3-prefix addresses) saves about 26%. Taproot (P2TR, bc1p addresses) saves about 32% for simple transactions but can save more for complex scripts and multisig setups.
Is Taproot cheaper than Native SegWit for single-sig transactions?
For the most common transaction type (1 input, 2 outputs), Native SegWit is slightly cheaper at 141 vB versus Taproot's 154 vB. The difference is that P2TR outputs are 43 bytes versus P2WPKH's 31 bytes. However, Taproot inputs are smaller (57.5 vB versus 68 vB), so Taproot becomes cheaper when a transaction has multiple inputs, such as when consolidating UTXOs or spending from several addresses.
How much can transaction batching save?
Batching 5 payments into a single transaction saves approximately 62% of the total fee compared to sending 5 individual transactions. At 10 recipients, savings reach 70%. At 50 recipients, savings approach 76%. The savings come from sharing the fixed transaction overhead (10.5 vB) and input cost (68 vB for P2WPKH) across all recipients instead of paying it separately for each payment.
What is the cheapest way to send Bitcoin?
The cheapest method depends on the use case. For on-chain transactions, use Native SegWit addresses with batching during low-fee periods (weekends and off-peak hours tend to have 30% to 47% lower fees). For individual payments, Lightning Network routing fees are typically under 1 sat for small amounts. For zero-fee transfers, Spark offers free internal BTC and USDB transfers with no channels to open or manage.
How do Spark fees compare to Lightning Network fees?
Spark internal transfers (Spark-to-Spark) are free for both BTC and USDB, with no base fee, no proportional fee, and no gas costs. Lightning fees consist of a base fee (typically 0 to 1,000 millisatoshis) plus a proportional fee rate (commonly 1 to 1,000 ppm). Lightning also carries setup costs: opening a channel requires an on-chain transaction ($2 to $15), and routing nodes incur ongoing rebalancing expenses. Spark eliminates these infrastructure costs entirely.
Do Bitcoin fees depend on the amount being sent?
No. On-chain Bitcoin fees depend on transaction size in vBytes, not the value being transferred. Sending 0.001 BTC costs the same mining fee as sending 100 BTC if both transactions have the same number of inputs and outputs. This makes on-chain Bitcoin expensive for small payments (a $5 payment might cost $3 in fees) but very efficient for large transfers (a $1 million transfer costs the same $3). Lightning and Spark fees, by contrast, can include amount-proportional components.
What percentage of Bitcoin transactions use SegWit?
As of 2026, approximately 85% to 90% of Bitcoin transactions use some form of SegWit (wrapped or native). Native SegWit (bc1q) accounts for roughly 60% to 70% of all transactions, while Taproot (bc1p) has grown to approximately 15% to 20% for organic usage. Legacy P2PKH transactions make up the remaining 5% to 10%, primarily from older wallets and services that have not upgraded. Track current adoption on our SegWit adoption tracker.
This tool is for informational purposes only and does not constitute financial advice. Transaction sizes are based on typical single-signature transactions with compressed public keys and standard DER-encoded signatures. Actual sizes may vary by 1 to 2 vBytes depending on signature length. Fee rates fluctuate continuously. Always check current mempool conditions before broadcasting transactions.
Build with Spark
Integrate bitcoin, Lightning, and stablecoins into your app with a few lines of code.
Read the docs →
