What is sat/vB?
Introduction
If you've ever sent Bitcoin, you've probably seen terms like "fee", "transaction fee", or maybe even "sat/vB". But what exactly does sat/vB mean? And how does it affect the real cost of your transactions?
sat/vB (satoshis per byte) is the standard unit used to calculate Bitcoin transaction fees. Understanding this concept is fundamental to optimizing your costs and making more efficient transactions.
This guide will explain what sat/vB is, how to calculate it, the impact on transaction costs, and how to optimize to pay less fees. Our goal is to explain fees in a practical way, using examples with simple calculations to facilitate understanding.
By the end, you'll be able to calculate fees manually, understand why some transactions are more expensive, and how to reduce your costs.
What is sat/vB?
Definition
sat/vB means "satoshis per byte" - it's the amount of satoshis you pay for each byte that your transaction occupies.
Breakdown:
- sat: Satoshi (smallest Bitcoin unit, 0.00000001 BTC)
- vB: Virtual Byte (transaction's virtual byte)
- sat/vB: How many satoshis per byte
Simple example:
- Fee of 10 sat/vB
- Transaction of 250 bytes
- Total fee: 10 × 250 = 2,500 satoshis = 0.000025 BTC
Why Use sat/vB?
Reasons:
- Standardization: Universal unit to compare fees
- Precision: Allows exact calculations
- Flexibility: Works for any transaction size
- Efficiency: Allows cost optimization
Analogy:
- Like "dollars per kilometer" for transportation
- More bytes = more you pay
- Higher fee per byte = more expensive
How Does Calculation Work?
Basic Formula
Simple formula:
Total Fee (in satoshis) = Fee per Byte (sat/vB) × Transaction Size (bytes)
Or in Bitcoin:
Total Fee (in BTC) = (Fee per Byte (sat/vB) × Transaction Size) / 100,000,000
Example 1: Basic Calculation
Scenario:
- Fee: 5 sat/vB
- Transaction: 200 bytes
Calculation:
- Total fee = 5 × 200 = 1,000 satoshis
- In BTC: 1,000 / 100,000,000 = 0.00001 BTC
In dollars (assuming BTC = $60,000):
- 0.00001 × $60,000 = $0.60
Example 2: Higher Fee
Scenario:
- Fee: 50 sat/vB
- Transaction: 250 bytes
Calculation:
- Total fee = 50 × 250 = 12,500 satoshis
- In BTC: 12,500 / 100,000,000 = 0.000125 BTC
In dollars (assuming BTC = $60,000):
- 0.000125 × $60,000 = $7.50
Comparison: 10x higher fee per byte = 10x higher cost.
Example 3: Larger Transaction
Scenario:
- Fee: 10 sat/vB
- Transaction: 500 bytes (larger, more inputs/outputs)
Calculation:
- Total fee = 10 × 500 = 5,000 satoshis
- In BTC: 5,000 / 100,000,000 = 0.00005 BTC
In dollars (assuming BTC = $60,000):
- 0.00005 × $60,000 = $3.00
Observation: Same fee per byte, but larger transaction = higher cost.
Example 4: Fee Comparison
Situation: Send $1,000 worth of Bitcoin
Option A - Low fee (5 sat/vB):
- Transaction: 250 bytes
- Fee: 5 × 250 = 1,250 satoshis = 0.0000125 BTC = $0.75
Option B - Medium fee (15 sat/vB):
- Transaction: 250 bytes
- Fee: 15 × 250 = 3,750 satoshis = 0.0000375 BTC = $2.25
Option C - High fee (50 sat/vB):
- Transaction: 250 bytes
- Fee: 50 × 250 = 12,500 satoshis = 0.000125 BTC = $7.50
Difference: Option C costs 10x more than Option A!
What Determines Transaction Size?
Factors Affecting Size
1. Number of Inputs:
- Each input adds ~148 bytes
- More inputs = larger transaction
- Example: Using 3 inputs = ~444 bytes just in inputs
2. Number of Outputs:
- Each output adds ~34 bytes
- More outputs = larger transaction
- Example: Send to 2 addresses = 2 outputs
3. Address Type:
- Legacy (P2PKH): ~34 bytes per output
- SegWit (P2WPKH): ~31 bytes per output (smaller)
- Native SegWit (P2WSH): Even smaller
4. Signatures:
- Each signature adds bytes
- Multiple inputs = multiple signatures
5. Additional Data:
- OP_RETURN (messages)
- Other optional data
Example: Simple vs Complex Transaction
Simple Transaction (1 input, 2 outputs):
- 1 input: ~148 bytes
- 2 outputs: ~68 bytes (34 × 2)
- Overhead: ~10 bytes
- Total: ~226 bytes
Complex Transaction (5 inputs, 3 outputs):
- 5 inputs: ~740 bytes (148 × 5)
- 3 outputs: ~102 bytes (34 × 3)
- Overhead: ~10 bytes
- Total: ~852 bytes
Cost comparison (at 10 sat/vB):
- Simple: 10 × 226 = 2,260 sat = $1.36
- Complex: 10 × 852 = 8,520 sat = $5.11
Difference: Complex transaction costs ~3.8x more!
Fee Impact
Impact on Total Cost
Complete formula:
Total Cost = Sent Value + Transaction Fee
Practical example:
Situation: Send 0.1 BTC ($6,000)
With low fee (5 sat/vB, 250 bytes):
- Fee: 0.0000125 BTC = $0.75
- Total cost: $6,000 + $0.75 = $6,000.75
- Fee = 0.0125% of value
With high fee (50 sat/vB, 250 bytes):
- Fee: 0.000125 BTC = $7.50
- Total cost: $6,000 + $7.50 = $6,007.50
- Fee = 0.125% of value
Impact: High fee costs 10x more, but still small percentage for larger values.
Impact on Small Values
Situation: Send 0.001 BTC ($60)
With low fee (5 sat/vB, 250 bytes):
- Fee: $0.75
- Total cost: $60 + $0.75 = $60.75
- Fee = 1.25% of value
With high fee (50 sat/vB, 250 bytes):
- Fee: $7.50
- Total cost: $60 + $7.50 = $67.50
- Fee = 12.5% of value
Impact: For small values, fees can be significant percentage!
Impact on Multiple Transactions
Scenario: Make 10 transactions of $1,000 each
With low fee (5 sat/vB, 250 bytes):
- Fee per transaction: $0.75
- Total in fees: 10 × $0.75 = $7.50
With high fee (50 sat/vB, 250 bytes):
- Fee per transaction: $7.50
- Total in fees: 10 × $7.50 = $75.00
Difference: $67.50 more in fees!
Observation: For users making many transactions, optimizing fees is even more important.
Fee Optimization
1. Choose Right Time
Strategy: Send when network is less congested
How it works:
- Congested network = high fees (50-100+ sat/vB)
- Empty network = low fees (1-5 sat/vB)
- Low activity hours = lower fees
Potential savings:
- Congested (100 sat/vB): $7.50
- Empty (2 sat/vB): $0.15
- Savings: $7.35 per transaction!
2. Use SegWit
Strategy: Use SegWit addresses (bech32)
How it works:
- SegWit addresses are smaller
- Transaction occupies fewer bytes
- Same fee per byte = lower total cost
Example:
- Legacy: 250 bytes
- SegWit: 200 bytes
- Fee: 10 sat/vB
- Legacy: 10 × 250 = 2,500 sat = $1.50
- SegWit: 10 × 200 = 2,000 sat = $1.20
- Savings: $0.30 (20% cheaper)
3. Consolidate Inputs
Strategy: Group multiple small inputs into one
How it works:
- Many small inputs = large transaction
- Consolidating inputs reduces size
- Fewer inputs = fewer bytes
Example:
- 10 small inputs: ~1,480 bytes
- Consolidate into 1 input: ~148 bytes
- Difference: 1,332 bytes less
Savings (at 10 sat/vB):
- Before: 10 × 1,480 = 14,800 sat = $8.88
- After: 10 × 148 = 1,480 sat = $0.89
- Savings: $7.99 (90% cheaper!)
4. Use Lightning Network
Strategy: Small transactions via Lightning
How it works:
- Lightning is Bitcoin Layer 2
- Fees almost zero
- Instant
- Ideal for small values
Example:
- On-chain: $0.75 - $7.50
- Lightning: $0.01 - $0.10
- Savings: 99%+ in fees!
When to use: Small and frequent payments.
5. Batch Transactions
Strategy: Consolidate multiple transactions into one
How it works:
- Instead of 5 separate transactions
- Make 1 transaction with 5 outputs
- Saves bytes from overhead
Example:
- 5 separate transactions: 5 × 250 = 1,250 bytes total
- 1 transaction with 5 outputs: ~300 bytes
- Difference: 950 bytes less
Savings (at 10 sat/vB):
- Before: 10 × 1,250 = 12,500 sat = $7.50
- After: 10 × 300 = 3,000 sat = $1.80
- Savings: $5.70 (76% cheaper)
6. Adjust Fee Manually
Strategy: Don't use automatic "high" fee
How it works:
- Many wallets suggest "high" fee for speed
- You can choose fee manually
- "Low" fee may be sufficient (may take longer)
Example:
- Automatic "high" fee: 50 sat/vB = $7.50
- Manual "low" fee: 2 sat/vB = $0.30
- Savings: $7.20
Trade-off: Low fee = slower confirmation (may take hours or days).
Practical Optimization Strategies
For Urgent Transactions
If you need fast confirmation:
- Use high fee (50-100 sat/vB)
- Accept higher cost
- Confirmation in ~10 minutes
Example:
- Value: $10,000
- High fee: $7.50 (0.075% of value)
- Speed: ~10 minutes
- Worth it for large values
For Normal Transactions
If you can wait a few hours:
- Use medium fee (5-15 sat/vB)
- Reasonable cost
- Confirmation in 1-3 hours
Example:
- Value: $1,000
- Medium fee: $1.50 (0.15% of value)
- Speed: 1-3 hours
- Good cost-benefit ratio
For Non-Urgent Transactions
If you can wait days:
- Use low fee (1-3 sat/vB)
- Minimum cost
- Confirmation may take days
Example:
- Value: $500
- Low fee: $0.30 (0.06% of value)
- Speed: 1-3 days
- Ideal for non-urgent
For Multiple Transactions
Combined strategy:
- Consolidate inputs first (when fee is low)
- Then make optimized transactions
- Always use SegWit
- Batch when possible
Total savings: Can reduce costs by 50-90%!
Complete Practical Examples
Example 1: Optimized Simple Send
Situation: Send 0.01 BTC ($600) to 1 person
Optimized configuration:
- SegWit address: ✓
- Low fee (2 sat/vB): ✓
- Size: 200 bytes
- Total fee: 2 × 200 = 400 sat = 0.000004 BTC = $0.24
Result: Fee of only $0.24 (0.04% of value)
Example 2: Urgent Send
Situation: Send $10,000 urgently
Configuration:
- High fee (80 sat/vB)
- Size: 250 bytes
- Total fee: 80 × 250 = 20,000 sat = 0.0002 BTC = $12.00
Result: Fee of $12.00 (0.12% of value), but fast confirmation
Example 3: Multiple Sends
Situation: Send $1,000 to 5 people
Option A - Separate transactions:
- 5 transactions × 250 bytes = 1,250 bytes total
- Fee (10 sat/vB): 10 × 1,250 = 12,500 sat = $7.50
Option B - Batch into 1 transaction:
- 1 transaction with 5 outputs = 350 bytes
- Fee (10 sat/vB): 10 × 350 = 3,500 sat = $2.10
Result: Savings of $5.40 (72% cheaper)
Frequently Asked Questions
What is a good sat/vB fee?
Depends on urgency:
- Not urgent: 1-3 sat/vB
- Normal: 5-15 sat/vB
- Urgent: 30-100+ sat/vB
Check current network state before.
Why is my transaction taking so long?
Probably used fee too low. Transaction may be stuck in mempool awaiting confirmation. Solution: wait or do replace-by-fee (RBF) with higher fee.
Can I reduce transaction size after created?
No. Size is determined by inputs/outputs. But you can increase fee with RBF (Replace-By-Fee) if your wallet supports it.
Is fee in sat/vB fixed?
No. Fee per byte varies with network congestion. Can vary from 1 sat/vB (empty) to 100+ sat/vB (very congested).
What's best time to send with low fee?
Generally:
- Weekends
- Early morning (local time)
- When there's less network activity
Check mempool before sending.
Conclusion
sat/vB (satoshis per byte) is the fundamental unit to understand and calculate Bitcoin transaction fees. Understanding this concept allows optimizing costs and making more efficient transactions.
The main points you need to understand are:
- sat/vB is fee per byte - What you pay for each byte of transaction
- Calculation is simple - Total fee = sat/vB × size in bytes
- Size matters - Larger transactions cost more
- Fee varies - Depends on network congestion
- Optimization is possible - Many strategies to reduce costs
- Real impact - For small values or many transactions, optimizing makes difference
Understanding sat/vB gives you control over your transaction costs. You can choose when to pay more (urgency) or less (patience), and use optimization strategies to significantly reduce costs.
Remember: fees are part of the cost of using Bitcoin. But with knowledge and strategy, you can minimize this cost. Use optimization strategies, choose right times, and always consider if you really need fast confirmation or can wait.
For most users, understanding sat/vB and applying basic optimizations (use SegWit, choose right time, adjust fee manually) already significantly reduces costs. For advanced users, consolidating inputs and batching transactions can generate even greater savings.