{
  "$schema": "https://degreesofsatoshi.com/encyclopedia/schemas/article-v1.json",
  "schemaVersion": "1.0.0",
  "id": "bitcoin-virtual-size",
  "canonical": "https://degreesofsatoshi.com/encyclopedia/bitcoin-virtual-size/",
  "collection": "bitcoin",
  "title": "Bitcoin virtual size: bytes, weight and vbytes",
  "description": "Convert Bitcoin transaction weight to virtual size and understand why raw bytes and fee-paying vbytes are not interchangeable.",
  "aliases": [
    "vbytes",
    "vsize",
    "transaction weight"
  ],
  "dates": {
    "published": "2026-10-02",
    "modified": "2026-10-02",
    "verified": "2026-10-02T18:15:23.891Z",
    "dataAsOf": "2026-10-02"
  },
  "authorship": {
    "publisher": "Degrees of Satoshi editorial project",
    "process": "AI-assisted research and drafting with a separate automated source-verification pass; no external expert or named human review is implied."
  },
  "quickAnswer": {
    "text": "Bitcoin virtual size is transaction weight divided by four, rounded up. Under the SegWit weight definition, non-witness bytes count more heavily than witness bytes. A transaction’s raw serialized byte count can therefore differ from the virtual size used when quoting fees in sat/vB.",
    "claimId": "bitcoin-virtual-size-quick-answer",
    "sourceIds": [
      "bip141"
    ]
  },
  "keyFacts": [
    {
      "label": "Weight",
      "value": "Weight = base size × 3 + total size.",
      "sourceIds": [
        "bip141"
      ],
      "id": "weight",
      "claimId": "bitcoin-virtual-size-fact-weight"
    },
    {
      "label": "Virtual size",
      "value": "Virtual size = ceiling(weight ÷ 4).",
      "sourceIds": [
        "bip141"
      ],
      "id": "virtual-size",
      "claimId": "bitcoin-virtual-size-fact-virtual-size"
    },
    {
      "label": "Fee rate",
      "value": "A sat/vB quote applies to virtual size, not necessarily raw bytes.",
      "sourceIds": [
        "bip141",
        "core-walletcreatefundedpsbt"
      ],
      "id": "fee-rate",
      "claimId": "bitcoin-virtual-size-fact-fee-rate"
    }
  ],
  "prerequisites": [
    "segwit-explained"
  ],
  "sections": [
    {
      "id": "weight",
      "heading": "The two sizes in the formula",
      "sourceIds": [
        "bip141"
      ],
      "paragraphs": [
        "Base size excludes witness serialization; total size includes it. The formula counts base bytes four times in total and witness bytes once. This weighting lets different spending formats consume block capacity differently.",
        "The discount does not make signatures free. Witness data still contributes to weight, and the transaction still has non-witness fields."
      ]
    },
    {
      "id": "example",
      "heading": "Work through the rounding",
      "sourceIds": [
        "bip141"
      ],
      "paragraphs": [
        "For an illustrative transaction with 100 base bytes and 250 total bytes, weight is 100 × 3 + 250 = 550 weight units. Virtual size is ceiling(550 ÷ 4), or 138 vbytes. Dividing 250 raw bytes into the fee would answer a different question.",
        "At 10 sat/vB, a 138-vbyte transaction has a target fee of 1,380 satoshis. Final size and rounding should be checked after the transaction’s actual spending data is known."
      ]
    },
    {
      "id": "compare",
      "heading": "Compare wallets using the same units",
      "sourceIds": [
        "core-walletcreatefundedpsbt",
        "bip141"
      ],
      "paragraphs": [
        "A wallet may display bytes, weight units, vbytes, a total BTC fee or satoshis per virtual byte. Identify the unit before comparing estimates. Bitcoin Core’s RPC documents both sat/vB and older BTC/kvB options with different field names.",
        "The fee rate is not based simply on the amount of bitcoin being transferred. Input and output structure determine the transaction’s size."
      ]
    }
  ],
  "faq": [
    {
      "question": "Can I multiply a sat/vB quote by a raw-byte count?",
      "answer": "Only if that raw count happens to equal the transaction’s virtual size. Use the explicitly reported virtual size or compute it from weight.",
      "sourceIds": [
        "bip141"
      ]
    }
  ],
  "claims": [
    {
      "id": "bitcoin-virtual-size-quick-answer",
      "articleSlug": "bitcoin-virtual-size",
      "statement": "Bitcoin virtual size is transaction weight divided by four, rounded up. Under the SegWit weight definition, non-witness bytes count more heavily than witness bytes. A transaction’s raw serialized byte count can therefore differ from the virtual size used when quoting fees in sat/vB.",
      "sourceIds": [
        "source-896e868816ad19d1"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-896e868816ad19d1",
          "locator": "Block size; Transaction size"
        }
      ],
      "scope": {
        "collection": "bitcoin",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T18:15:23.891Z",
        "reviewer": "Independent automated verification agent verify_bitcoin_stablecoins_100",
        "notes": [
          "BIP-141 Additional definitions/Transaction size calculations specifies base × 3 + total and ceiling(weight/4). Worked values independently recomputed as 550 WU, 138 vB and 1,380 sat.",
          "Checked Core 29.0 RPC fee_rate versus feeRate units. The stated formula is the SegWit weight definition, not a claim that all implementation policy metrics ignore other limits."
        ]
      }
    },
    {
      "id": "bitcoin-virtual-size-fact-weight",
      "articleSlug": "bitcoin-virtual-size",
      "statement": "Weight: Weight = base size × 3 + total size.",
      "sourceIds": [
        "source-896e868816ad19d1"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-896e868816ad19d1",
          "locator": "Block size; Transaction size"
        }
      ],
      "scope": {
        "collection": "bitcoin",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T18:15:23.891Z",
        "reviewer": "Independent automated verification agent verify_bitcoin_stablecoins_100",
        "notes": [
          "BIP-141 Additional definitions/Transaction size calculations specifies base × 3 + total and ceiling(weight/4). Worked values independently recomputed as 550 WU, 138 vB and 1,380 sat.",
          "Checked Core 29.0 RPC fee_rate versus feeRate units. The stated formula is the SegWit weight definition, not a claim that all implementation policy metrics ignore other limits."
        ]
      }
    },
    {
      "id": "bitcoin-virtual-size-fact-virtual-size",
      "articleSlug": "bitcoin-virtual-size",
      "statement": "Virtual size: Virtual size = ceiling(weight ÷ 4).",
      "sourceIds": [
        "source-896e868816ad19d1"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-896e868816ad19d1",
          "locator": "Block size; Transaction size"
        }
      ],
      "scope": {
        "collection": "bitcoin",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T18:15:23.891Z",
        "reviewer": "Independent automated verification agent verify_bitcoin_stablecoins_100",
        "notes": [
          "BIP-141 Additional definitions/Transaction size calculations specifies base × 3 + total and ceiling(weight/4). Worked values independently recomputed as 550 WU, 138 vB and 1,380 sat.",
          "Checked Core 29.0 RPC fee_rate versus feeRate units. The stated formula is the SegWit weight definition, not a claim that all implementation policy metrics ignore other limits."
        ]
      }
    },
    {
      "id": "bitcoin-virtual-size-fact-fee-rate",
      "articleSlug": "bitcoin-virtual-size",
      "statement": "Fee rate: A sat/vB quote applies to virtual size, not necessarily raw bytes.",
      "sourceIds": [
        "source-896e868816ad19d1",
        "source-a8abe4366f2656ba"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-896e868816ad19d1",
          "locator": "Block size; Transaction size"
        },
        {
          "sourceId": "source-a8abe4366f2656ba",
          "locator": "Arguments and result fields"
        }
      ],
      "scope": {
        "collection": "bitcoin",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T18:15:23.891Z",
        "reviewer": "Independent automated verification agent verify_bitcoin_stablecoins_100",
        "notes": [
          "BIP-141 Additional definitions/Transaction size calculations specifies base × 3 + total and ceiling(weight/4). Worked values independently recomputed as 550 WU, 138 vB and 1,380 sat.",
          "Checked Core 29.0 RPC fee_rate versus feeRate units. The stated formula is the SegWit weight definition, not a claim that all implementation policy metrics ignore other limits."
        ]
      }
    }
  ],
  "sources": [
    {
      "id": "bip141",
      "label": "Segregated Witness consensus layer",
      "publisher": "Bitcoin BIPs contributors",
      "url": "https://raw.githubusercontent.com/bitcoin/bips/927b6de9915c9262615a6399de51b200f81e5aa4/bip-0141.mediawiki",
      "locator": "Block size; Transaction size",
      "note": "Transaction weight and virtual-size definitions in the SegWit specification.",
      "version": "BIP-141; immutable revision pinned in source URL",
      "checkedAt": "2026-10-02T17:22:20.465Z",
      "contentSha256": "d72409335872a32494f75e7547589abf4b3b23b6beebe6bc6999c7a84b135e2c",
      "recordId": "source-896e868816ad19d1"
    },
    {
      "id": "core-walletcreatefundedpsbt",
      "label": "walletcreatefundedpsbt RPC",
      "publisher": "Bitcoin Core",
      "url": "https://bitcoincore.org/en/doc/29.0.0/rpc/wallet/walletcreatefundedpsbt/",
      "locator": "Arguments and result fields",
      "note": "Input selection, fee units, change output, selected inputs and transaction funding.",
      "version": "Bitcoin Core 29.0.0 RPC",
      "checkedAt": "2026-10-02T17:03:40.827Z",
      "contentSha256": "d30514044f4ab73bb52b4f8d9bb2d5b8a64482c26fd1b63be11defcb0f2ac6d6",
      "recordId": "source-a8abe4366f2656ba"
    }
  ],
  "related": {
    "articles": [
      "bitcoin-fee-rate",
      "segwit-explained",
      "bitcoin-coin-selection"
    ],
    "dossiers": [],
    "wallets": []
  },
  "revisionHistory": [
    {
      "date": "2026-10-02",
      "kind": "published",
      "summary": "Initial Bitcoin encyclopedia entry at this permanent URL."
    },
    {
      "date": "2026-10-02",
      "kind": "publishing-format",
      "summary": "Added reusable claims, explicit source locators, and matching Markdown and JSON. This publishing change does not itself establish factual verification."
    }
  ],
  "citation": "Degrees of Satoshi editorial project. “Bitcoin virtual size: bytes, weight and vbytes.” Published 2026-10-02; updated 2026-10-02. https://degreesofsatoshi.com/encyclopedia/bitcoin-virtual-size/"
}
