diff --git a/lib/wallets/wallet/impl/xelis_wallet.dart b/lib/wallets/wallet/impl/xelis_wallet.dart
index d9511c379..f250bb7f7 100644
--- a/lib/wallets/wallet/impl/xelis_wallet.dart
+++ b/lib/wallets/wallet/impl/xelis_wallet.dart
@@ -317,7 +317,7 @@ class XelisWallet extends LibXelisWallet {
   @override
   Future<List<String>> updateTransactions({
     bool isRescan = false,
-    List<String>? rawTransactions,
+    List<xelis_sdk.TransactionEntry>? objTransactions,
     int? topoheight,
   }) async {
     checkInitialized();
@@ -354,16 +354,17 @@ class XelisWallet extends LibXelisWallet {
       await libXelisWallet!.rescan(topoheight: BigInt.from(pruningHeight));
     }
 
-    final txListJson = rawTransactions ?? await libXelisWallet!.allHistory();
+    final txList = objTransactions ??
+      (await libXelisWallet!.allHistory())
+        .map((jsonStr) => xelis_sdk.TransactionEntry.fromJson(
+            json.decode(jsonStr),
+          ) as xelis_sdk.TransactionEntry)
+        .toList();
 
     final List<TransactionV2> txns = [];
 
-    for (final jsonString in txListJson) {
+    for (final transactionEntry in txList) {
       try {
-        final transactionEntry = xelis_sdk.TransactionEntry.fromJson(
-          (json.decode(jsonString) as Map).cast(),
-        );
-
         // Check for duplicates
         final storedTx =
             await mainDB.isar.transactionV2s
@@ -555,7 +556,7 @@ class XelisWallet extends LibXelisWallet {
         txns.add(txn);
       } catch (e, s) {
         Logging.instance.w(
-          "Error in $runtimeType handling transaction: $jsonString",
+          "Error in $runtimeType handling transaction: $transactionEntry",
           error: e,
           stackTrace: s,
         );
@@ -858,10 +859,10 @@ class XelisWallet extends LibXelisWallet {
   @override
   Future<void> handleNewTransaction(xelis_sdk.TransactionEntry tx) async {
     try {
-      final txListJson = [jsonEncode(tx.toString())];
+      final txList = [tx];
       final newTxIds = await updateTransactions(
         isRescan: false,
-        rawTransactions: txListJson,
+        objTransactions: txList,
       );
 
       await updateBalance();