diff --git a/.gitignore b/.gitignore
index 8830a3e22..4430b926c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -101,3 +101,4 @@ app/src/litewalletDebug/google-services.json
 /app/release/google-services.json
 /app/debug/google-services.json
 /.idea/dictionaries/grunt.xml
+androidTestResultsUserPreferences.xml
diff --git a/.idea/androidTestResultsUserPreferences.xml b/.idea/androidTestResultsUserPreferences.xml
deleted file mode 100644
index 33c7e7b32..000000000
--- a/.idea/androidTestResultsUserPreferences.xml
+++ /dev/null
@@ -1,66 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="AndroidTestResultsUserPreferences">
-    <option name="androidTestResultsTableState">
-      <map>
-        <entry key="-232569459">
-          <value>
-            <AndroidTestResultsTableState>
-              <option name="preferredColumnWidths">
-                <map>
-                  <entry key="0A311JECB00172" value="120" />
-                  <entry key="Duration" value="90" />
-                  <entry key="Google&#10; Pixel 4a (5G)" value="120" />
-                  <entry key="Tests" value="360" />
-                  <entry key="Xiaomi" value="120" />
-                  <entry key="Xiaomi&#10; M2004J19C" value="120" />
-                </map>
-              </option>
-            </AndroidTestResultsTableState>
-          </value>
-        </entry>
-        <entry key="28629151">
-          <value>
-            <AndroidTestResultsTableState>
-              <option name="preferredColumnWidths">
-                <map>
-                  <entry key="API_34" value="120" />
-                  <entry key="Duration" value="90" />
-                  <entry key="Google Pixel 4" value="120" />
-                  <entry key="Google Pixel 4a (5G)" value="120" />
-                  <entry key="Tests" value="360" />
-                </map>
-              </option>
-            </AndroidTestResultsTableState>
-          </value>
-        </entry>
-        <entry key="242254542">
-          <value>
-            <AndroidTestResultsTableState>
-              <option name="preferredColumnWidths">
-                <map>
-                  <entry key="Duration" value="90" />
-                  <entry key="Pixel_3_API_29" value="120" />
-                  <entry key="Tests" value="360" />
-                </map>
-              </option>
-            </AndroidTestResultsTableState>
-          </value>
-        </entry>
-        <entry key="358444956">
-          <value>
-            <AndroidTestResultsTableState>
-              <option name="preferredColumnWidths">
-                <map>
-                  <entry key="Duration" value="90" />
-                  <entry key="Pixel_3_API_29" value="120" />
-                  <entry key="Tests" value="360" />
-                </map>
-              </option>
-            </AndroidTestResultsTableState>
-          </value>
-        </entry>
-      </map>
-    </option>
-  </component>
-</project>
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index 3152eea20..c21e02a8b 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -63,8 +63,8 @@ android {
         applicationId = 'com.loafwallet'
         minSdkVersion 31
         targetSdkVersion 34
-        versionCode 20241007
-        versionName "v2.11.1"
+        versionCode 20241023
+        versionName "v2.12.0"
         multiDexEnabled true
         archivesBaseName = "${versionName}(${versionCode})"
 
diff --git a/app/src/main/java/com/breadwallet/presenter/fragments/FragmentBalanceSeedReminder.kt b/app/src/main/java/com/breadwallet/presenter/fragments/FragmentBalanceSeedReminder.kt
index fc523031e..5634e0e39 100644
--- a/app/src/main/java/com/breadwallet/presenter/fragments/FragmentBalanceSeedReminder.kt
+++ b/app/src/main/java/com/breadwallet/presenter/fragments/FragmentBalanceSeedReminder.kt
@@ -10,7 +10,11 @@ import android.widget.*
 import androidx.fragment.app.Fragment
 import com.breadwallet.R
 import com.breadwallet.tools.animation.BRAnimator
+import com.breadwallet.tools.manager.AnalyticsManager
+import com.breadwallet.tools.manager.TxManager
 import com.breadwallet.tools.security.BRKeyStore
+import com.breadwallet.tools.util.BRConstants
+import timber.log.Timber
 import java.util.*
 
 class FragmentBalanceSeedReminder : Fragment() {
@@ -66,14 +70,21 @@ class FragmentBalanceSeedReminder : Fragment() {
         setListeners()
         fetchSeedPhrase()
     }
-
+    private fun registerAnalyticsError(errorString: String) {
+        Timber.d("Fragment Balance Seed: RegisterError : %s", errorString)
+        val params = Bundle()
+        params.putString("lwa_error_message", errorString);
+        AnalyticsManager.logCustomEventWithParams(BRConstants._20200112_ERR, params)
+    }
     fun fetchSeedPhrase() {
-        try {
-            seedPhraseTextView.text = String(BRKeyStore.getPhrase(context, 0))
-        } catch (_: UserNotAuthenticatedException) {
+        seedPhraseTextView.text = "NO_PHRASE"
+        if (this.activity == null) {
+            registerAnalyticsError("null_in_fragment_balance_fetch_seed")
+        }
+        else {
+            seedPhraseTextView.text =  String(BRKeyStore.getPhrase(this.activity, 0)) ?: "NO_PHRASE"
         }
     }
-
     private fun animateClose() {
         BRAnimator.animateBackgroundDim(backgroundLayout, true)
         BRAnimator.animateSignalSlide(signalLayout, true) { close() }
diff --git a/app/src/main/java/com/breadwallet/presenter/fragments/FragmentFingerprint.java b/app/src/main/java/com/breadwallet/presenter/fragments/FragmentFingerprint.java
index f731ee1d4..975bf5f64 100644
--- a/app/src/main/java/com/breadwallet/presenter/fragments/FragmentFingerprint.java
+++ b/app/src/main/java/com/breadwallet/presenter/fragments/FragmentFingerprint.java
@@ -174,7 +174,7 @@ public void setCompletion(BRAuthCompletion completion) {
     public void onError() {
         String authError = "auth_prompt_failed";
         Bundle params = new Bundle();
-        params.putString("error_message",authError);
+        params.putString("lwa_error_message",authError);
         AnalyticsManager.logCustomEventWithParams(BRConstants._20200112_ERR, params);
     }
 
diff --git a/app/src/main/java/com/breadwallet/presenter/history/HistoryFragment.kt b/app/src/main/java/com/breadwallet/presenter/history/HistoryFragment.kt
index 8aa05d0b5..f65b1dbc7 100644
--- a/app/src/main/java/com/breadwallet/presenter/history/HistoryFragment.kt
+++ b/app/src/main/java/com/breadwallet/presenter/history/HistoryFragment.kt
@@ -7,15 +7,18 @@ import android.view.ViewGroup
 import com.breadwallet.databinding.FragmentHistoryBinding
 import com.breadwallet.presenter.activities.BreadActivity
 import com.breadwallet.presenter.base.BaseFragment
+import com.breadwallet.tools.manager.AnalyticsManager
 import com.breadwallet.tools.manager.BRSharedPrefs
 import com.breadwallet.tools.manager.BRSharedPrefs.OnIsoChangedListener
 import com.breadwallet.tools.manager.TxManager
 import com.breadwallet.tools.sqlite.TransactionDataSource.OnTxAddedListener
 import com.breadwallet.tools.threads.BRExecutor
+import com.breadwallet.tools.util.BRConstants
 import com.breadwallet.wallet.BRPeerManager
 import com.breadwallet.wallet.BRPeerManager.OnTxStatusUpdate
 import com.breadwallet.wallet.BRWalletManager
 import com.breadwallet.wallet.BRWalletManager.OnBalanceChanged
+import timber.log.Timber
 
 /** Litewallet
  * Created by Mohamed Barry on 6/1/20
@@ -56,11 +59,22 @@ class HistoryFragment :
         BRPeerManager.getInstance().removeListener(this)
         BRSharedPrefs.removeListener(this)
     }
-
+    private fun registerAnalyticsError(errorString: String) {
+        val params = Bundle()
+        params.putString("lwa_error_message", errorString);
+        AnalyticsManager.logCustomEventWithParams(BRConstants._20200112_ERR, params)
+        Timber.d("History Fragment: RegisterError : %s", errorString)
+    }
     override fun onResume() {
         super.onResume()
         addObservers()
-        TxManager.getInstance().onResume(requireActivity() as BreadActivity)
+
+        if (this.activity == null) {
+            registerAnalyticsError("null_in_history_fragment_on_resume")
+        }
+        else {
+            TxManager.getInstance().onResume(this.activity)
+        }
     }
 
     override fun onPause() {
@@ -74,7 +88,12 @@ class HistoryFragment :
 
     override fun onStatusUpdate() {
         BRExecutor.getInstance().forBackgroundTasks().execute {
-            TxManager.getInstance().updateTxList(requireActivity() as BreadActivity)
+            if (this.activity == null) {
+                registerAnalyticsError("null_in_history_fragment_on_status_update")
+            }
+            else {
+                TxManager.getInstance().updateTxList(this.activity)
+            }
         }
     }
 
@@ -84,14 +103,23 @@ class HistoryFragment :
 
     override fun onTxAdded() {
         BRExecutor.getInstance().forBackgroundTasks().execute {
-            TxManager.getInstance().updateTxList(requireActivity() as BreadActivity)
+            if (this.activity == null) {
+                registerAnalyticsError("null_in_history_fragment_on_tx_added")
+            }
+            else {
+                TxManager.getInstance().updateTxList(this.activity)
+            }
         }
     }
-
     private fun updateUI() {
         BRExecutor.getInstance().forLightWeightBackgroundTasks().execute {
-            Thread.currentThread().name = Thread.currentThread().name + "HistoryFragment:updateUI"
-            TxManager.getInstance().updateTxList(requireActivity() as BreadActivity)
+            if (this.activity == null) {
+                registerAnalyticsError("null_in_history_fragment_update_ui")
+            }
+            else {
+                Thread.currentThread().name = Thread.currentThread().name + "HistoryFragment:updateUI"
+                TxManager.getInstance().updateTxList(this.activity)
+            }
         }
     }
 
diff --git a/app/src/main/java/com/breadwallet/tools/animation/BRAnimator.java b/app/src/main/java/com/breadwallet/tools/animation/BRAnimator.java
index 5c9a3cffe..f5b55df58 100644
--- a/app/src/main/java/com/breadwallet/tools/animation/BRAnimator.java
+++ b/app/src/main/java/com/breadwallet/tools/animation/BRAnimator.java
@@ -11,6 +11,7 @@
 import android.app.Activity;
 import android.app.FragmentManager;
 import android.app.FragmentTransaction;
+
 import android.content.Intent;
 import android.content.pm.PackageManager;
 import android.os.Bundle;
@@ -18,7 +19,6 @@
 import android.view.ViewGroup;
 import android.view.animation.DecelerateInterpolator;
 import android.view.animation.OvershootInterpolator;
-import android.widget.Toast;
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
@@ -29,7 +29,6 @@
 import com.breadwallet.R;
 import com.breadwallet.presenter.activities.BreadActivity;
 import com.breadwallet.presenter.activities.LoginActivity;
-import com.breadwallet.presenter.activities.camera.CameraActivity;
 import com.breadwallet.presenter.activities.camera.ScanQRActivity;
 import com.breadwallet.presenter.customviews.BRDialogView;
 import com.breadwallet.presenter.entities.TxItem;
@@ -43,6 +42,7 @@
 import com.breadwallet.presenter.fragments.FragmentSend;
 import com.breadwallet.presenter.fragments.FragmentSignal;
 import com.breadwallet.presenter.fragments.FragmentTransactionDetails;
+
 import com.breadwallet.presenter.interfaces.BROnSignalCompletion;
 import com.breadwallet.tools.threads.BRExecutor;
 import com.breadwallet.tools.util.BRConstants;
@@ -325,6 +325,7 @@ public void run() {
     }
 
     public static void killAllFragments(Activity app) {
+        //DEV: Needs refactor
         if (app != null && !app.isDestroyed())
             app.getFragmentManager().popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
     }
diff --git a/app/src/main/java/com/breadwallet/tools/manager/BREventManager.java b/app/src/main/java/com/breadwallet/tools/manager/BREventManager.java
deleted file mode 100644
index a337aa117..000000000
--- a/app/src/main/java/com/breadwallet/tools/manager/BREventManager.java
+++ /dev/null
@@ -1,116 +0,0 @@
-package com.breadwallet.tools.manager;
-
-import android.content.Context;
-import android.content.pm.PackageInfo;
-import android.content.pm.PackageManager;
-
-import com.breadwallet.BreadApp;
-import com.breadwallet.tools.util.BRConstants;
-import com.breadwallet.tools.util.Utils;
-import com.platform.APIClient;
-
-import org.json.JSONArray;
-import org.json.JSONException;
-import org.json.JSONObject;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-
-import okhttp3.MediaType;
-import okhttp3.Request;
-import okhttp3.RequestBody;
-import okhttp3.Response;
-import timber.log.Timber;
-
-import static com.platform.APIClient.BASE_URL;
-
-public class BREventManager implements BreadApp.OnAppBackgrounded {
-    private static BREventManager instance;
-    private String sessionId;
-    private List<Event> events = new ArrayList<>();
-
-    private BREventManager() {
-        sessionId = UUID.randomUUID().toString();
-        BreadApp.addOnBackgroundedListener(this);
-    }
-
-    public static BREventManager getInstance() {
-        if (instance == null) instance = new BREventManager();
-        return instance;
-    }
-
-    public void pushEvent(String eventName, Map<String, String> attributes) {
-        Timber.d("timber: pushEvent: %s", eventName);
-        Event event = new Event(sessionId, System.currentTimeMillis() * 1000, eventName, attributes);
-        events.add(event);
-    }
-
-    public void pushEvent(String eventName) {
-        Timber.d("timber: pushEvent: %s", eventName);
-        Event event = new Event(sessionId, System.currentTimeMillis() * 1000, eventName, null);
-        events.add(event);
-    }
-
-    @Override
-    public void onBackgrounded() {
-        Timber.d("timber: onBackgrounded: ");
-    }
-
-    //returns the list of JSONArray which consist of Event arrays
-    private static List<JSONArray> getEventsFromDisk(Context context) {
-        List<JSONArray> result = new ArrayList<>();
-        File dir = new File(context.getFilesDir().getAbsolutePath() + "/events/");
-        if (dir.listFiles() == null) return result;
-        for (File f : dir.listFiles()) {
-            if (f.isFile()) {
-                String name = f.getName();
-                Timber.d("timber: getEventsFromDisk: name:%s", name);
-                try {
-                    JSONArray arr = new JSONArray(readFile(name));
-                    result.add(arr);
-                } catch (JSONException e) {
-                    Timber.e(e);
-                }
-            } else {
-                Timber.i("timber: getEventsFromDisk: Unexpected directory where file is expected: %s", f.getName());
-            }
-        }
-        return result;
-    }
-
-    private static String readFile(String fileName) {
-        try {
-            File f = new File(fileName);
-            //check whether file exists
-            FileInputStream is = new FileInputStream(f);
-            int size = is.available();
-            byte[] buffer = new byte[size];
-            is.read(buffer);
-            is.close();
-            return new String(buffer);
-        } catch (IOException e) {
-            Timber.e(e, "timber:Error in Reading");
-            return null;
-        }
-    }
-
-    public class Event {
-        public String sessionId;
-        public long time;
-        public String eventName;
-        public Map<String, String> attributes;
-
-        public Event(String sessionId, long time, String eventName, Map<String, String> attributes) {
-            this.sessionId = sessionId;
-            this.time = time;
-            this.eventName = eventName;
-            this.attributes = attributes;
-        }
-    }
-}
diff --git a/app/src/main/java/com/breadwallet/tools/manager/BRSharedPrefs.java b/app/src/main/java/com/breadwallet/tools/manager/BRSharedPrefs.java
index 6832c9320..3472a10cd 100644
--- a/app/src/main/java/com/breadwallet/tools/manager/BRSharedPrefs.java
+++ b/app/src/main/java/com/breadwallet/tools/manager/BRSharedPrefs.java
@@ -288,7 +288,7 @@ public static void putGeoPermissionsRequested(Context activity, boolean requeste
 
     public static int getStartHeight(Context context) {
         SharedPreferences settingsToGet = context.getSharedPreferences(BRConstants.PREFS_NAME, 0);
-        return settingsToGet.getInt(BRConstants.START_HEIGHT, 0);
+        return  settingsToGet.getInt(BRConstants.START_HEIGHT, 0);
     }
 
     public static void putStartHeight(Context context, int startHeight) {
diff --git a/app/src/main/java/com/breadwallet/tools/manager/InternetManager.java b/app/src/main/java/com/breadwallet/tools/manager/InternetManager.java
index 6598d7356..9955a4622 100644
--- a/app/src/main/java/com/breadwallet/tools/manager/InternetManager.java
+++ b/app/src/main/java/com/breadwallet/tools/manager/InternetManager.java
@@ -34,7 +34,6 @@ public static void addConnectionListener(ConnectionReceiverListener listener) {
         if (!connectionReceiverListeners.contains(listener))
             connectionReceiverListeners.add(listener);
     }
-
     @Override
     public void onReceive(final Context context, final Intent intent) {
         boolean connected = false;
@@ -48,7 +47,6 @@ public void onReceive(final Context context, final Intent intent) {
                 connected = false;
             }
 
-            BREventManager.getInstance().pushEvent(connected ? "reachability.isReachble" : "reachability.isNotReachable");
             for (ConnectionReceiverListener listener : connectionReceiverListeners) {
                 listener.onConnectionChanged(connected);
             }
diff --git a/app/src/main/java/com/breadwallet/tools/manager/TxManager.java b/app/src/main/java/com/breadwallet/tools/manager/TxManager.java
index ebf2fcfd8..37e5db4a8 100644
--- a/app/src/main/java/com/breadwallet/tools/manager/TxManager.java
+++ b/app/src/main/java/com/breadwallet/tools/manager/TxManager.java
@@ -4,6 +4,7 @@
 import android.animation.AnimatorListenerAdapter;
 import android.app.Activity;
 import android.content.Context;
+import android.os.Bundle;
 import android.os.Looper;
 import android.util.AttributeSet;
 import android.view.View;
@@ -20,6 +21,7 @@
 import com.breadwallet.tools.animation.BRAnimator;
 import com.breadwallet.tools.listeners.RecyclerItemClickListener;
 import com.breadwallet.tools.threads.BRExecutor;
+import com.breadwallet.tools.util.BRConstants;
 import com.breadwallet.wallet.BRPeerManager;
 import com.breadwallet.wallet.BRWalletManager;
 
@@ -64,7 +66,6 @@ public void onAnimationEnd(Animator animation) {
                         });
 
                     } else { //clicked on the prompt
-                        BREventManager.getInstance().pushEvent("prompt." + PromptManager.getInstance().getPromptName(currentPrompt) + ".trigger");
                         if (currentPrompt != PromptManager.PromptItem.SYNCING) {
                             PromptManager.PromptInfo info = PromptManager.getInstance().promptInfo(app, currentPrompt);
                             if (info != null)
@@ -114,7 +115,6 @@ public void run() {
     void showPrompt(Activity app, PromptManager.PromptItem item) {
         crashIfNotMain();
         if (item == null) throw new RuntimeException("can't be null");
-        BREventManager.getInstance().pushEvent("prompt." + PromptManager.getInstance().getPromptName(item) + ".displayed");
         if (currentPrompt != PromptManager.PromptItem.SYNCING) {
             currentPrompt = item;
         }
@@ -132,9 +132,6 @@ void hidePrompt(final Activity app, final PromptManager.PromptItem item) {
         if (item == PromptManager.PromptItem.SYNCING) {
             showNextPrompt(app);
             updateCard(app);
-        } else {
-            if (item != null)
-                BREventManager.getInstance().pushEvent("prompt." + PromptManager.getInstance().getPromptName(item) + ".dismissed");
         }
     }
 
diff --git a/app/src/main/java/com/breadwallet/tools/security/BitcoinUrlHandler.java b/app/src/main/java/com/breadwallet/tools/security/BitcoinUrlHandler.java
index 597daee07..b4ce90008 100644
--- a/app/src/main/java/com/breadwallet/tools/security/BitcoinUrlHandler.java
+++ b/app/src/main/java/com/breadwallet/tools/security/BitcoinUrlHandler.java
@@ -10,7 +10,6 @@
 import com.breadwallet.presenter.entities.RequestObject;
 import com.breadwallet.tools.animation.BRAnimator;
 import com.breadwallet.tools.animation.BRDialog;
-import com.breadwallet.tools.manager.BREventManager;
 import com.breadwallet.tools.threads.PaymentProtocolTask;
 import com.breadwallet.tools.util.Utils;
 import com.breadwallet.wallet.BRWalletManager;
@@ -35,18 +34,6 @@ public static synchronized boolean processRequest(FragmentActivity app, String u
             return false;
         }
 
-        Map<String, String> attr = new HashMap<>();
-        URI uri = null;
-        try {
-            uri = new URI(url);
-        } catch (URISyntaxException e) {
-            Timber.e(e);
-        }
-        attr.put("scheme", uri == null ? "null" : uri.getScheme());
-        attr.put("host", uri == null ? "null" : uri.getHost());
-        attr.put("path", uri == null ? "null" : uri.getPath());
-        BREventManager.getInstance().pushEvent("send.handleURL", attr);
-
         RequestObject requestObject = getRequestFromString(url);
         if (BRWalletManager.getInstance().confirmSweep(app, url)) {
             return true;
diff --git a/app/src/main/java/com/breadwallet/tools/util/BRConstants.java b/app/src/main/java/com/breadwallet/tools/util/BRConstants.java
index a931d1da6..091f20942 100644
--- a/app/src/main/java/com/breadwallet/tools/util/BRConstants.java
+++ b/app/src/main/java/com/breadwallet/tools/util/BRConstants.java
@@ -125,7 +125,7 @@ private BRConstants() {
     public static final String _20200111_WNI = "wallet_not_initialized";
     public static final String _20200111_PNI = "phrase_not_initialized";
     public static final String _20200111_UTST = "unable_to_sign_transaction";
-    public static final String _20200112_ERR = "error";
+    public static final String _20200112_ERR = "lwa_error";
     public static final String _20200112_DSR = "did_start_resync";
     public static final String _20200125_DSRR = "did_show_review_request";
     public static final String _20201118_DTGS = "did_tap_get_support";
diff --git a/app/src/main/java/com/breadwallet/tools/util/Utils.java b/app/src/main/java/com/breadwallet/tools/util/Utils.java
index ab5e75ca4..b149ccbec 100644
--- a/app/src/main/java/com/breadwallet/tools/util/Utils.java
+++ b/app/src/main/java/com/breadwallet/tools/util/Utils.java
@@ -294,7 +294,7 @@ else if (name == PartnerNames.PUSHERSTAGING) {
             e.printStackTrace();
         }
         Bundle   params = new Bundle();
-        params.putString("error_message: %s Key not found", name.toString());
+        params.putString("lwa_error_message: %s Key not found", name.toString());
         AnalyticsManager.logCustomEventWithParams(BRConstants._20200112_ERR,params);
         return "";
     }