diff --git a/packages/extension-base/src/koni/background/handlers/Extension.ts b/packages/extension-base/src/koni/background/handlers/Extension.ts
index f4258a15fdf..86b09872f69 100644
--- a/packages/extension-base/src/koni/background/handlers/Extension.ts
+++ b/packages/extension-base/src/koni/background/handlers/Extension.ts
@@ -2483,6 +2483,9 @@ export default class KoniExtension {
               utxos
             };
             const { fee: _estimatedFee, inputs, outputs } = transferAll ? determineUtxosForSpendAll(determineUtxosArgs) : determineUtxosForSpend(determineUtxosArgs);
+
+            maxTransferable = inputs.reduce((previous, input) => previous.plus(input.value), new BigN(0));
+
             const recipients = outputs.filter((o) => o.address).map((o) => o.address || '');
             const { txVBytes: vSize } = getSizeInfo({
               inputLength: inputs.length,
diff --git a/packages/extension-base/src/services/balance-service/helpers/transfer/bitcoin.ts b/packages/extension-base/src/services/balance-service/helpers/transfer/bitcoin.ts
index 501868e1492..26f7c3bd850 100644
--- a/packages/extension-base/src/services/balance-service/helpers/transfer/bitcoin.ts
+++ b/packages/extension-base/src/services/balance-service/helpers/transfer/bitcoin.ts
@@ -51,9 +51,14 @@ export async function getBitcoinTransactionObject ({ bitcoinApi,
       ? determineUtxosForSpendAll(determineUtxosArgs)
       : determineUtxosForSpend(determineUtxosArgs);
 
+    console.log(inputs, outputs);
+    console.log(inputs, inputs.reduce((v, i) => v + i.value, 0));
+    console.log(outputs, (outputs as Array<{value: number}>).reduce((v, i) => v + i.value, 0));
+    console.log(fee, bitcoinFee);
+
     const pair = keyring.getPair(from);
     const tx = new Psbt({ network });
-    const transferAmount = new BigN(0);
+    let transferAmount = new BigN(0);
 
     for (const input of inputs) {
       if (pair.type === 'bitcoin-44' || pair.type === 'bittest-44') {
@@ -74,8 +79,6 @@ export async function getBitcoinTransactionObject ({ bitcoinApi,
           }
         });
       }
-
-      transferAmount.plus(input.value);
     }
 
     for (const output of outputs) {
@@ -84,8 +87,8 @@ export async function getBitcoinTransactionObject ({ bitcoinApi,
         value: output.value
       });
 
-      if (output.address) {
-        transferAmount.minus(output.value);
+      if (output.address === to) {
+        transferAmount = transferAmount.plus(output.value);
       }
     }
 
@@ -93,8 +96,6 @@ export async function getBitcoinTransactionObject ({ bitcoinApi,
     console.log(outputs, (outputs as Array<{value: number}>).reduce((v, i) => v + i.value, 0));
     console.log(fee, bitcoinFee);
 
-    transferAmount.minus(fee);
-
     console.log('Transfer Amount:', transferAmount.toString());
 
     return [tx, transferAmount.toString()];