diff --git a/src/psbt.js b/src/psbt.js
index d9ed3b1..57a159c 100644
--- a/src/psbt.js
+++ b/src/psbt.js
@@ -154,7 +154,6 @@ class Psbt {
       addNonWitnessTxCache(this.__CACHE, input, inputIndex);
     }
     c.__FEE = undefined;
-    c.__VSIZE = undefined;
     c.__FEE_RATE = undefined;
     c.__EXTRACTED_TX = undefined;
     return this;
@@ -174,7 +173,6 @@ class Psbt {
     const c = this.__CACHE;
     this.data.addOutput(outputData);
     c.__FEE = undefined;
-    c.__VSIZE = undefined;
     c.__FEE_RATE = undefined;
     c.__EXTRACTED_TX = undefined;
     return this;
@@ -201,14 +199,6 @@ class Psbt {
   getFee() {
     return getTxCacheValue('__FEE', 'fee', this.data.inputs, this.__CACHE);
   }
-  getVSize() {
-    return getTxCacheValue(
-      '__VSIZE',
-      'virtual size',
-      this.data.inputs,
-      this.__CACHE,
-    );
-  }
   finalizeAllInputs() {
     utils_1.checkForInput(this.data.inputs, 0); // making sure we have at least one
     range(this.data.inputs.length).forEach(idx => this.finalizeInput(idx));
@@ -736,7 +726,6 @@ function getTxCacheValue(key, name, inputs, c) {
     throw new Error(`PSBT must be finalized to calculate ${name}`);
   if (key === '__FEE_RATE' && c.__FEE_RATE) return c.__FEE_RATE;
   if (key === '__FEE' && c.__FEE) return c.__FEE;
-  if (key === '__VSIZE' && c.__VSIZE) return c.__VSIZE;
   let tx;
   let mustFinalize = true;
   if (c.__EXTRACTED_TX) {
@@ -748,7 +737,6 @@ function getTxCacheValue(key, name, inputs, c) {
   inputFinalizeGetAmts(inputs, tx, c, mustFinalize);
   if (key === '__FEE_RATE') return c.__FEE_RATE;
   else if (key === '__FEE') return c.__FEE;
-  else if (key === '__VSIZE') return c.__VSIZE;
 }
 function getFinalScripts(
   script,
@@ -1150,7 +1138,6 @@ function inputFinalizeGetAmts(inputs, tx, cache, mustFinalize) {
     throw new Error('Outputs are spending more than Inputs');
   }
   const bytes = tx.virtualSize();
-  cache.__VSIZE = bytes;
   cache.__FEE = fee;
   cache.__EXTRACTED_TX = tx;
   cache.__FEE_RATE = Math.floor(fee / bytes);
diff --git a/test/psbt.js b/test/psbt.js
index 4d4b3b5..54eb5e4 100644
--- a/test/psbt.js
+++ b/test/psbt.js
@@ -154,11 +154,6 @@ describe(`Psbt`, () => {
         const f1 = psbt6.getFee()
         const f2 = psbt6.getFee()
         assert.strictEqual(f1, f2)
-
-        const psbt7 =  Psbt.fromBase64(f.psbt)
-        const vs1 = psbt7.getVSize()
-        const vs2 = psbt7.getVSize()
-        assert.strictEqual(vs1, vs2)
       })
     })
   })
diff --git a/ts_src/psbt.ts b/ts_src/psbt.ts
index 333fa20..73f7cfc 100644
--- a/ts_src/psbt.ts
+++ b/ts_src/psbt.ts
@@ -195,7 +195,6 @@ export class Psbt {
       addNonWitnessTxCache(this.__CACHE, input, inputIndex);
     }
     c.__FEE = undefined;
-    c.__VSIZE = undefined;
     c.__FEE_RATE = undefined;
     c.__EXTRACTED_TX = undefined;
     return this;
@@ -217,7 +216,6 @@ export class Psbt {
     const c = this.__CACHE;
     this.data.addOutput(outputData);
     c.__FEE = undefined;
-    c.__VSIZE = undefined;
     c.__FEE_RATE = undefined;
     c.__EXTRACTED_TX = undefined;
     return this;
@@ -248,15 +246,6 @@ export class Psbt {
     return getTxCacheValue('__FEE', 'fee', this.data.inputs, this.__CACHE)!;
   }
 
-  getVSize(): number {
-    return getTxCacheValue(
-      '__VSIZE',
-      'virtual size',
-      this.data.inputs,
-      this.__CACHE,
-    )!;
-  }
-
   finalizeAllInputs(): this {
     checkForInput(this.data.inputs, 0); // making sure we have at least one
     range(this.data.inputs.length).forEach(idx => this.finalizeInput(idx));
@@ -620,7 +609,6 @@ interface PsbtCache {
   __TX: Transaction;
   __FEE_RATE?: number;
   __FEE?: number;
-  __VSIZE?: number;
   __EXTRACTED_TX?: Transaction;
 }
 
@@ -931,7 +919,7 @@ const checkWitnessScript = scriptCheckerFactory(
   'Witness script',
 );
 
-type TxCacheNumberKey = '__FEE_RATE' | '__FEE' | '__VSIZE';
+type TxCacheNumberKey = '__FEE_RATE' | '__FEE';
 function getTxCacheValue(
   key: TxCacheNumberKey,
   name: string,
@@ -942,7 +930,6 @@ function getTxCacheValue(
     throw new Error(`PSBT must be finalized to calculate ${name}`);
   if (key === '__FEE_RATE' && c.__FEE_RATE) return c.__FEE_RATE;
   if (key === '__FEE' && c.__FEE) return c.__FEE;
-  if (key === '__VSIZE' && c.__VSIZE) return c.__VSIZE;
   let tx: Transaction;
   let mustFinalize = true;
   if (c.__EXTRACTED_TX) {
@@ -954,7 +941,6 @@ function getTxCacheValue(
   inputFinalizeGetAmts(inputs, tx, c, mustFinalize);
   if (key === '__FEE_RATE') return c.__FEE_RATE!;
   else if (key === '__FEE') return c.__FEE!;
-  else if (key === '__VSIZE') return c.__VSIZE!;
 }
 
 function getFinalScripts(
@@ -1435,7 +1421,6 @@ function inputFinalizeGetAmts(
     throw new Error('Outputs are spending more than Inputs');
   }
   const bytes = tx.virtualSize();
-  cache.__VSIZE = bytes;
   cache.__FEE = fee;
   cache.__EXTRACTED_TX = tx;
   cache.__FEE_RATE = Math.floor(fee / bytes);
diff --git a/types/psbt.d.ts b/types/psbt.d.ts
index dddedd7..a0c669d 100644
--- a/types/psbt.d.ts
+++ b/types/psbt.d.ts
@@ -58,7 +58,6 @@ export declare class Psbt {
     extractTransaction(disableFeeCheck?: boolean): Transaction;
     getFeeRate(): number;
     getFee(): number;
-    getVSize(): number;
     finalizeAllInputs(): this;
     finalizeInput(inputIndex: number): this;
     validateSignaturesOfAllInputs(): boolean;