diff --git a/lib/utilities/bip47_utils.dart b/lib/utilities/bip47_utils.dart
index 2f1622cb7..6433f4e1d 100644
--- a/lib/utilities/bip47_utils.dart
+++ b/lib/utilities/bip47_utils.dart
@@ -1,24 +1,34 @@
 import 'dart:typed_data';
 
 import 'package:bip47/src/util.dart';
+import 'package:stackwallet/models/isar/models/blockchain_data/output.dart';
 import 'package:stackwallet/models/isar/models/blockchain_data/transaction.dart';
 
 abstract class Bip47Utils {
   /// looks at tx outputs and returns a blinded payment code if found
   static Uint8List? getBlindedPaymentCodeBytesFrom(Transaction transaction) {
+    for (int i = 0; i < transaction.outputs.length; i++) {
+      final bytes = getBlindedPaymentCodeBytesFromOutput(
+          transaction.outputs.elementAt(i));
+      if (bytes != null) {
+        return bytes;
+      }
+    }
+
+    return null;
+  }
+
+  static Uint8List? getBlindedPaymentCodeBytesFromOutput(Output output) {
     Uint8List? blindedCodeBytes;
 
-    for (int i = 0; i < transaction.outputs.length; i++) {
-      List<String>? scriptChunks =
-          transaction.outputs.elementAt(i).scriptPubKeyAsm?.split(" ");
-      if (scriptChunks?.length == 2 && scriptChunks?[0] == "OP_RETURN") {
-        final blindedPaymentCode = scriptChunks![1];
-        final bytes = blindedPaymentCode.fromHex;
+    List<String>? scriptChunks = output.scriptPubKeyAsm?.split(" ");
+    if (scriptChunks?.length == 2 && scriptChunks?[0] == "OP_RETURN") {
+      final blindedPaymentCode = scriptChunks![1];
+      final bytes = blindedPaymentCode.fromHex;
 
-        // https://en.bitcoin.it/wiki/BIP_0047#Sending
-        if (bytes.length == 80 && bytes.first == 1) {
-          blindedCodeBytes = bytes;
-        }
+      // https://en.bitcoin.it/wiki/BIP_0047#Sending
+      if (bytes.length == 80 && bytes.first == 1) {
+        blindedCodeBytes = bytes;
       }
     }