diff --git a/lib/views/wallet/coin_details/withdraw_form/withdraw_form.dart b/lib/views/wallet/coin_details/withdraw_form/withdraw_form.dart
index d893ca6ca..4ca75f449 100644
--- a/lib/views/wallet/coin_details/withdraw_form/withdraw_form.dart
+++ b/lib/views/wallet/coin_details/withdraw_form/withdraw_form.dart
@@ -11,6 +11,8 @@ import 'package:web_dex/analytics/events/transaction_events.dart';
 import 'package:web_dex/bloc/analytics/analytics_bloc.dart';
 import 'package:web_dex/bloc/auth_bloc/auth_bloc.dart';
 import 'package:web_dex/bloc/coins_bloc/asset_coin_extension.dart';
+import 'package:web_dex/bloc/transaction_history/transaction_history_bloc.dart';
+import 'package:web_dex/bloc/transaction_history/transaction_history_event.dart';
 import 'package:web_dex/bloc/withdraw_form/withdraw_form_bloc.dart';
 import 'package:web_dex/generated/codegen_loader.g.dart';
 import 'package:web_dex/mm2/mm2_api/rpc/base.dart';
@@ -92,6 +94,80 @@ class _WithdrawFormState extends State<WithdrawForm> {
                   hdType: walletType,
                 ),
               );
+              // Add the new transaction to the history list immediately
+              try {
+                final txHistoryBloc =
+                    context.read<TransactionHistoryBloc>();
+                final txHistoryState = txHistoryBloc.state;
+                
+                // Build Transaction from WithdrawalResult
+                final result = state.result!;
+                final newTx = Transaction(
+                  id: result.txHash,
+                  internalId: result.txHash,
+                  assetId: state.asset.id,
+                  balanceChanges: result.balanceChanges,
+                  // Show as unconfirmed initially
+                  timestamp: DateTime.fromMillisecondsSinceEpoch(0),
+                  confirmations: 0,
+                  blockHeight: 0,
+                  from: state.selectedSourceAddress != null
+                      ? [state.selectedSourceAddress!.address]
+                      : <String>[],
+                  to: [result.toAddress],
+                  txHash: result.txHash,
+                  fee: result.fee,
+                  memo: state.memo,
+                );
+
+                // Merge with existing transactions, avoiding duplicates
+                final Map<String, Transaction> byId = {
+                  for (final t in txHistoryState.transactions)
+                    t.internalId: t,
+                };
+
+                // Update or add the new transaction
+                final existing = byId[newTx.internalId];
+                if (existing == null) {
+                  byId[newTx.internalId] = newTx;
+                } else {
+                  // Update existing with newer data (if available)
+                  byId[newTx.internalId] = existing.copyWith(
+                    confirmations: newTx.confirmations,
+                    blockHeight: newTx.blockHeight,
+                    fee: newTx.fee ?? existing.fee,
+                    memo: newTx.memo ?? existing.memo,
+                  );
+                }
+
+                // Sort transactions and update the list
+                final updatedTransactions = byId.values.toList()
+                  ..sort((left, right) {
+                    final unconfirmedTimestamp =
+                        DateTime.fromMillisecondsSinceEpoch(0);
+                    if (right.timestamp == unconfirmedTimestamp) {
+                      return 1;
+                    } else if (left.timestamp == unconfirmedTimestamp) {
+                      return -1;
+                    }
+                    return right.timestamp.compareTo(left.timestamp);
+                  });
+
+                final coin = state.asset.toCoin();
+                if (coin.isErcType) {
+                  updatedTransactions.removeWhere(
+                    (tx) => tx.balanceChanges.totalAmount.toDouble() == 0.0,
+                  );
+                }
+
+                txHistoryBloc.add(
+                  TransactionHistoryUpdated(transactions: updatedTransactions),
+                );
+              } catch (e) {
+                // TransactionHistoryBloc might not be available in the context
+                // This is safe to ignore - the watchTransactions stream should
+                // pick up the new transaction automatically
+              }
             },
           ),
           BlocListener<WithdrawFormBloc, WithdrawFormState>(
