<p>The advantage of using vsize is that it is a smooth transition from size; every non-witness transaction has vsize equal to size.</p>

<p>All code and infrastructure that used satoshi/byte before, will keep working when substituting size with vsize, and give consistent results. Switching to weight would be confusing - would we be talking about satoshi/weightbyte?</p>

CC BY-SA 3.0
2017-08-09T01:50:27.733Z
2017-08-09T01:50:27.733Z
Pieter Wuille
<p>The Segwit Wallet Development Guide has a small section on <a href="https://bitcoincore.org/en/segwit_wallet_dev/#transaction-fee-estimation" rel="noreferrer">fee estimation</a>:</p>

<blockquote>
  <p><strong>Transaction Fee Estimation</strong></p>
  
  <ul>
  <li>Instead of transaction size, a new metric is defined, called “virtual size” (<code>vsize</code>)</li>
  <li><code>vsize</code> of a transaction equals to 3 times of the size with original serialization, plus the size with new serialization, divide the result by 4 and round up to the next integer. For example, if a transaction is 200 bytes with new serialization, and becomes 99 bytes with <code>marker</code>, <code>flag</code>, and <code>witness</code> removed, the <code>vsize</code> is (99 * 3 + 200) / 4 = 125 with round up.</li>
  <li><code>vsize</code> of a non-segwit transaction is simply its size</li>
  <li><strong>Transaction fee should be estimated by comparing the <code>vsize</code> with other transactions, not the size.</strong></li>
  <li>Developers should be careful not to make an off-by-4-times mistake in fee estimation.</li>
  </ul>
</blockquote>

<p><code>vsize</code> therefore is a value that allows easy comparison to the previously used transaction size. What is the reason that it is being recommended as the basis of fee estimation? Wouldn't it make more sense to directly calculate fee estimates on the basis of weight?</p>

<segregated-witness><block-weight><fee-estimation>
Why does the Segwit developer guide recommend to estimate fees on basis of vsize instead of weight?
Murch
# Why does the Segwit developer guide recommend to estimate fees on basis of vsize instead of weight?

(Asked by: username_0 on 2017-08-09)

The Segwit Wallet Development Guide has a small section on [fee estimation](https://bitcoincore.org/en/segwit_wallet_dev/#transaction-fee-estimation):

> **Transaction Fee Estimation**
>
> * Instead of transaction size, a new metric is defined, called “virtual size” (`vsize`)
> * `vsize` of a transaction equals to 3 times of the size with original serialization, plus the size with new serialization, divide the result by 4 and round up to the next integer. For example, if a transaction is 200 bytes with new serialization, and becomes 99 bytes with `marker`, `flag`, and `witness` removed, the `vsize` is (99 \* 3 + 200) / 4 = 125 with round up.
> * `vsize` of a non-segwit transaction is simply its size
> * **Transaction fee should be estimated by comparing the `vsize` with other transactions, not the size.**
> * Developers should be careful not to make an off-by-4-times mistake in fee estimation.

`vsize` therefore is a value that allows easy comparison to the previously used transaction size. What is the reason that it is being recommended as the basis of fee estimation? Wouldn't it make more sense to directly calculate fee estimates on the basis of weight?

**Tags:** segregated-witness, block-weight, fee-estimation


---

## 1 answers

### Answer by username_1 on 2017-08-09. Score: 3 | Accepted answer

The advantage of using vsize is that it is a smooth transition from size; every non-witness transaction has vsize equal to size.

All code and infrastructure that used satoshi/byte before, will keep working when substituting size with vsize, and give consistent results. Switching to weight would be confusing - would we be talking about satoshi/weightbyte?


---

