diff --git a/app/scripts/lib/manifestFlags.ts b/app/scripts/lib/manifestFlags.ts
index 574099d0cb94..8e6848be7ade 100644
--- a/app/scripts/lib/manifestFlags.ts
+++ b/app/scripts/lib/manifestFlags.ts
@@ -60,6 +60,18 @@ export type ManifestFlags = {
      */
     forceEnable?: boolean;
   };
+  /**
+   * Feature flags to control business logic behavior
+   */
+  remoteFeatureFlags?: {
+    /**
+     * A test remote featureflag for threshold
+     */
+    testFlagForThreshold: {
+      name: string;
+      value: string;
+    };
+  };
 };
 
 // eslint-disable-next-line @typescript-eslint/consistent-type-definitions -- you can't extend a type, we want this to be an interface
diff --git a/development/build/manifest.js b/development/build/manifest.js
index bc5325b372eb..17f6168df7dc 100644
--- a/development/build/manifest.js
+++ b/development/build/manifest.js
@@ -11,6 +11,7 @@ const baradDurManifest = isManifestV3
   ? require('../../app/manifest/v3/_barad_dur.json')
   : require('../../app/manifest/v2/_barad_dur.json');
 const { loadBuildTypesConfig } = require('../lib/build-type');
+const manifestFlags = require('../../manifest-flags.json');
 
 const { TASKS, ENVIRONMENT } = require('./constants');
 const { createTask, composeSeries } = require('./task');
@@ -47,8 +48,10 @@ function createManifestTasks({
           browserVersionMap[platform],
           await getBuildModifications(buildType, platform),
           customArrayMerge,
+          {
+            _flags: manifestFlags,
+          },
         );
-
         modifyNameAndDescForNonProd(result);
 
         const dir = path.join('.', 'dist', platform);
diff --git a/development/webpack/utils/plugins/ManifestPlugin/helpers.ts b/development/webpack/utils/plugins/ManifestPlugin/helpers.ts
index 82efa9acf253..1db54118996e 100644
--- a/development/webpack/utils/plugins/ManifestPlugin/helpers.ts
+++ b/development/webpack/utils/plugins/ManifestPlugin/helpers.ts
@@ -1,3 +1,5 @@
+import manifestFlags from '../../../../../manifest-flags.json';
+
 /**
  * Returns a function that will transform a manifest JSON object based on the
  * given build args.
@@ -24,6 +26,17 @@ export function transformManifest(args: { lockdown: boolean; test: boolean }) {
     }
   }
 
+  /**
+   * This function sets predefined flags in the manifest's _flags property.
+   *
+   * @param browserManifest - The Chrome extension manifest object to modify
+   */
+  function addManifestFlags(browserManifest: chrome.runtime.Manifest) {
+    browserManifest._flags = manifestFlags;
+  }
+
+  transforms.push(addManifestFlags);
+
   if (!args.lockdown) {
     // remove lockdown scripts from content_scripts
     transforms.push(removeLockdown);
diff --git a/lavamoat/browserify/beta/policy.json b/lavamoat/browserify/beta/policy.json
index 4694450b7d23..200c8dbedbf9 100644
--- a/lavamoat/browserify/beta/policy.json
+++ b/lavamoat/browserify/beta/policy.json
@@ -5650,4 +5650,4 @@
       }
     }
   }
-}
\ No newline at end of file
+}
diff --git a/lavamoat/browserify/flask/policy.json b/lavamoat/browserify/flask/policy.json
index 4694450b7d23..200c8dbedbf9 100644
--- a/lavamoat/browserify/flask/policy.json
+++ b/lavamoat/browserify/flask/policy.json
@@ -5650,4 +5650,4 @@
       }
     }
   }
-}
\ No newline at end of file
+}
diff --git a/lavamoat/browserify/main/policy.json b/lavamoat/browserify/main/policy.json
index 4694450b7d23..200c8dbedbf9 100644
--- a/lavamoat/browserify/main/policy.json
+++ b/lavamoat/browserify/main/policy.json
@@ -5650,4 +5650,4 @@
       }
     }
   }
-}
\ No newline at end of file
+}
diff --git a/lavamoat/browserify/mmi/policy.json b/lavamoat/browserify/mmi/policy.json
index 193672363c4f..526ff2e3b45f 100644
--- a/lavamoat/browserify/mmi/policy.json
+++ b/lavamoat/browserify/mmi/policy.json
@@ -5742,4 +5742,4 @@
       }
     }
   }
-}
\ No newline at end of file
+}
diff --git a/lavamoat/build-system/policy.json b/lavamoat/build-system/policy.json
index 545922814d1f..7fc9728c7c90 100644
--- a/lavamoat/build-system/policy.json
+++ b/lavamoat/build-system/policy.json
@@ -5,7 +5,7 @@
         "define": true
       },
       "packages": {
-        "terser>@jridgewell/source-map>@jridgewell/gen-mapping": true,
+        "@babel/core>@ampproject/remapping>@jridgewell/gen-mapping": true,
         "terser-webpack-plugin>@jridgewell/trace-mapping": true
       }
     },
@@ -60,7 +60,7 @@
         "@babel/preset-react": true,
         "@babel/preset-typescript": true,
         "@babel/core>@babel/template": true,
-        "depcheck>@babel/traverse": true,
+        "@babel/core>@babel/traverse": true,
         "@babel/core>@babel/types": true,
         "@babel/core>convert-source-map": true,
         "nock>debug": true,
@@ -147,7 +147,7 @@
         "@babel/preset-env>@babel/plugin-transform-classes>@babel/helper-replace-supers>@babel/helper-optimise-call-expression": true,
         "@babel/preset-env>@babel/plugin-transform-classes>@babel/helper-replace-supers": true,
         "@babel/preset-env>@babel/plugin-transform-for-of>@babel/helper-skip-transparent-expression-wrappers": true,
-        "depcheck>@babel/traverse": true,
+        "@babel/core>@babel/traverse": true,
         "@babel/preset-env>@babel/plugin-transform-private-methods>@babel/helper-create-class-features-plugin>semver": true
       }
     },
@@ -175,7 +175,7 @@
         "@babel/core>@babel/helper-compilation-targets": true,
         "@babel/preset-env>@babel/helper-plugin-utils": true,
         "@babel/preset-env>babel-plugin-polyfill-corejs2>@babel/helper-define-polyfill-provider>lodash.debounce": true,
-        "depcheck>resolve": true
+        "browserify>resolve": true
       }
     },
     "@babel/preset-env>@babel/plugin-transform-classes>@babel/helper-replace-supers>@babel/helper-member-expression-to-functions": {
@@ -200,9 +200,8 @@
       "packages": {
         "@babel/core": true,
         "@babel/core>@babel/helper-module-transforms>@babel/helper-module-imports": true,
-        "@babel/core>@babel/helper-module-transforms>@babel/helper-simple-access": true,
         "@babel/code-frame>@babel/helper-validator-identifier": true,
-        "depcheck>@babel/traverse": true
+        "@babel/core>@babel/traverse": true
       }
     },
     "@babel/preset-env>@babel/plugin-transform-classes>@babel/helper-replace-supers>@babel/helper-optimise-call-expression": {
@@ -215,7 +214,7 @@
         "@babel/core": true,
         "@babel/preset-env>@babel/plugin-transform-classes>@babel/helper-annotate-as-pure": true,
         "@babel/preset-env>@babel/plugin-transform-async-to-generator>@babel/helper-remap-async-to-generator>@babel/helper-wrap-function": true,
-        "depcheck>@babel/traverse": true
+        "@babel/core>@babel/traverse": true
       }
     },
     "@babel/preset-env>@babel/plugin-transform-classes>@babel/helper-replace-supers": {
@@ -223,10 +222,10 @@
         "@babel/core": true,
         "@babel/preset-env>@babel/plugin-transform-classes>@babel/helper-replace-supers>@babel/helper-member-expression-to-functions": true,
         "@babel/preset-env>@babel/plugin-transform-classes>@babel/helper-replace-supers>@babel/helper-optimise-call-expression": true,
-        "depcheck>@babel/traverse": true
+        "@babel/core>@babel/traverse": true
       }
     },
-    "@babel/core>@babel/helper-module-transforms>@babel/helper-simple-access": {
+    "@babel/preset-env>@babel/plugin-transform-modules-commonjs>@babel/helper-simple-access": {
       "packages": {
         "@babel/core>@babel/types": true
       }
@@ -239,7 +238,7 @@
     "@babel/preset-env>@babel/plugin-transform-async-to-generator>@babel/helper-remap-async-to-generator>@babel/helper-wrap-function": {
       "packages": {
         "@babel/core>@babel/template": true,
-        "depcheck>@babel/traverse": true,
+        "@babel/core>@babel/traverse": true,
         "@babel/core>@babel/types": true
       }
     },
@@ -252,7 +251,7 @@
     "@babel/preset-env>@babel/plugin-bugfix-firefox-class-in-computed-class-key": {
       "packages": {
         "@babel/preset-env>@babel/helper-plugin-utils": true,
-        "depcheck>@babel/traverse": true
+        "@babel/core>@babel/traverse": true
       }
     },
     "@babel/preset-env>@babel/plugin-bugfix-safari-class-field-initializer-scope": {
@@ -278,7 +277,7 @@
       "packages": {
         "@babel/core": true,
         "@babel/preset-env>@babel/helper-plugin-utils": true,
-        "depcheck>@babel/traverse": true
+        "@babel/core>@babel/traverse": true
       }
     },
     "@babel/preset-env>@babel/plugin-syntax-import-assertions": {
@@ -317,7 +316,7 @@
         "@babel/core": true,
         "@babel/preset-env>@babel/helper-plugin-utils": true,
         "@babel/preset-env>@babel/plugin-transform-async-to-generator>@babel/helper-remap-async-to-generator": true,
-        "depcheck>@babel/traverse": true
+        "@babel/core>@babel/traverse": true
       }
     },
     "@babel/preset-env>@babel/plugin-transform-async-to-generator": {
@@ -359,8 +358,8 @@
         "@babel/core>@babel/helper-compilation-targets": true,
         "@babel/preset-env>@babel/helper-plugin-utils": true,
         "@babel/preset-env>@babel/plugin-transform-classes>@babel/helper-replace-supers": true,
-        "depcheck>@babel/traverse": true,
-        "@babel/preset-env>@babel/plugin-transform-classes>globals": true
+        "@babel/core>@babel/traverse": true,
+        "depcheck>@babel/traverse>globals": true
       }
     },
     "@babel/preset-env>@babel/plugin-transform-computed-properties": {
@@ -423,7 +422,7 @@
       "packages": {
         "@babel/core>@babel/helper-compilation-targets": true,
         "@babel/preset-env>@babel/helper-plugin-utils": true,
-        "depcheck>@babel/traverse": true
+        "@babel/core>@babel/traverse": true
       }
     },
     "@babel/preset-env>@babel/plugin-transform-json-strings": {
@@ -461,7 +460,7 @@
         "@babel/core": true,
         "@babel/core>@babel/helper-module-transforms": true,
         "@babel/preset-env>@babel/helper-plugin-utils": true,
-        "@babel/core>@babel/helper-module-transforms>@babel/helper-simple-access": true
+        "@babel/preset-env>@babel/plugin-transform-modules-commonjs>@babel/helper-simple-access": true
       }
     },
     "@babel/preset-env>@babel/plugin-transform-modules-systemjs": {
@@ -473,7 +472,7 @@
         "@babel/core>@babel/helper-module-transforms": true,
         "@babel/preset-env>@babel/helper-plugin-utils": true,
         "@babel/code-frame>@babel/helper-validator-identifier": true,
-        "depcheck>@babel/traverse": true
+        "@babel/core>@babel/traverse": true
       }
     },
     "@babel/preset-env>@babel/plugin-transform-modules-umd": {
@@ -780,7 +779,7 @@
         "@babel/core>@babel/types": true
       }
     },
-    "depcheck>@babel/traverse": {
+    "@babel/core>@babel/traverse": {
       "globals": {
         "console.log": true
       },
@@ -790,7 +789,25 @@
         "@babel/core>@babel/parser": true,
         "@babel/core>@babel/template": true,
         "@babel/core>@babel/types": true,
-        "babel/preset-env>b@babel/types": true,
+        "nock>debug": true,
+        "depcheck>@babel/traverse>globals": true
+      }
+    },
+    "depcheck>@babel/traverse": {
+      "packages": {
+        "babel/preset-env>b@babel/types": true
+      }
+    },
+    "lavamoat>lavamoat-tofu>@babel/traverse": {
+      "globals": {
+        "console.log": true
+      },
+      "packages": {
+        "@babel/code-frame": true,
+        "@babel/core>@babel/generator": true,
+        "lavamoat>lavamoat-tofu>@babel/traverse>@babel/parser": true,
+        "@babel/core>@babel/template": true,
+        "lavamoat>lavamoat-tofu>@babel/traverse>@babel/types": true,
         "nock>debug": true,
         "depcheck>@babel/traverse>globals": true
       }
@@ -805,6 +822,16 @@
         "@babel/code-frame>@babel/helper-validator-identifier": true
       }
     },
+    "lavamoat>lavamoat-tofu>@babel/traverse>@babel/types": {
+      "globals": {
+        "console.warn": true,
+        "process.env": true
+      },
+      "packages": {
+        "@babel/core>@babel/types>@babel/helper-string-parser": true,
+        "@babel/code-frame>@babel/helper-validator-identifier": true
+      }
+    },
     "sass-embedded>@bufbuild/protobuf": {
       "globals": {
         "TextDecoder": true,
@@ -881,7 +908,7 @@
         "eslint-plugin-prettier": true,
         "eslint-plugin-react": true,
         "eslint-plugin-react-hooks": true,
-        "eslint>globals": true,
+        "eslint>@eslint/eslintrc>globals": true,
         "eslint>ignore": true,
         "eslint>minimatch": true,
         "mocha>strip-json-comments": true
@@ -914,6 +941,16 @@
         "eslint>minimatch": true
       }
     },
+    "@babel/core>@ampproject/remapping>@jridgewell/gen-mapping": {
+      "globals": {
+        "define": true
+      },
+      "packages": {
+        "terser>@jridgewell/source-map>@jridgewell/gen-mapping>@jridgewell/set-array": true,
+        "terser-webpack-plugin>@jridgewell/trace-mapping>@jridgewell/sourcemap-codec": true,
+        "terser-webpack-plugin>@jridgewell/trace-mapping": true
+      }
+    },
     "terser>@jridgewell/source-map>@jridgewell/gen-mapping": {
       "globals": {
         "define": true
@@ -975,7 +1012,7 @@
         "node:path.relative": true
       },
       "packages": {
-        "depcheck>resolve": true
+        "lavamoat>@lavamoat/aa>resolve": true
       }
     },
     "@lavamoat/lavapack": {
@@ -1376,7 +1413,7 @@
         "string.prototype.matchall>call-bind": true,
         "string.prototype.matchall>define-properties": true,
         "string.prototype.matchall>es-abstract": true,
-        "string.prototype.matchall>get-intrinsic": true,
+        "eslint-plugin-react>array-includes>get-intrinsic": true,
         "eslint-plugin-react>array-includes>is-string": true
       }
     },
@@ -1452,7 +1489,7 @@
       },
       "packages": {
         "browserslist": true,
-        "autoprefixer>caniuse-lite": true,
+        "browserslist>caniuse-lite": true,
         "autoprefixer>normalize-range": true,
         "stylelint>autoprefixer>num2fraction": true,
         "stylelint>postcss>picocolors": true,
@@ -1462,7 +1499,7 @@
     },
     "@babel/preset-env>babel-plugin-polyfill-corejs2": {
       "packages": {
-        "@babel/preset-env>@babel/compat-data": true,
+        "@babel/preset-env>babel-plugin-polyfill-corejs2>@babel/compat-data": true,
         "@babel/core": true,
         "@babel/preset-env>babel-plugin-polyfill-corejs2>@babel/helper-define-polyfill-provider": true,
         "@babel/preset-env>babel-plugin-polyfill-corejs2>semver": true
@@ -1559,6 +1596,9 @@
       }
     },
     "chokidar>braces": {
+      "globals": {
+        "console.log": true
+      },
       "packages": {
         "chokidar>braces>fill-range": true
       }
@@ -1614,7 +1654,7 @@
         "process.platform": true
       },
       "packages": {
-        "depcheck>resolve": true
+        "browserify>resolve": true
       }
     },
     "browserify": {
@@ -1647,7 +1687,7 @@
         "labeled-stream-splicer": true,
         "browserify>module-deps": true,
         "browserify>read-only-stream": true,
-        "depcheck>resolve": true,
+        "browserify>resolve": true,
         "browserify>shasum-object": true,
         "browserify>syntax-error": true,
         "browserify>through2": true,
@@ -1671,7 +1711,7 @@
         "process.versions.node": true
       },
       "packages": {
-        "autoprefixer>caniuse-lite": true,
+        "browserslist>caniuse-lite": true,
         "browserslist>electron-to-chromium": true,
         "browserslist>node-releases": true
       }
@@ -1717,15 +1757,44 @@
         "process.cwd": true
       }
     },
-    "string.prototype.matchall>call-bind": {
+    "string.prototype.matchall>call-bind>call-bind-apply-helpers": {
+      "packages": {
+        "string.prototype.matchall>es-abstract>es-errors": true,
+        "browserify>has>function-bind": true
+      }
+    },
+    "string.prototype.matchall>regexp.prototype.flags>call-bind": {
       "packages": {
         "string.prototype.matchall>call-bind>es-define-property": true,
-        "string.prototype.matchall>call-bind>es-errors": true,
+        "string.prototype.matchall>es-abstract>es-errors": true,
         "browserify>has>function-bind": true,
-        "string.prototype.matchall>get-intrinsic": true,
+        "eslint-plugin-react>array-includes>get-intrinsic": true,
         "string.prototype.matchall>call-bind>set-function-length": true
       }
     },
+    "string.prototype.matchall>es-abstract>safe-regex-test>call-bind": {
+      "packages": {
+        "string.prototype.matchall>call-bind>es-define-property": true,
+        "string.prototype.matchall>es-abstract>es-errors": true,
+        "browserify>has>function-bind": true,
+        "eslint-plugin-react>array-includes>get-intrinsic": true,
+        "string.prototype.matchall>call-bind>set-function-length": true
+      }
+    },
+    "string.prototype.matchall>call-bind": {
+      "packages": {
+        "string.prototype.matchall>call-bind>call-bind-apply-helpers": true,
+        "string.prototype.matchall>call-bind>es-define-property": true,
+        "eslint-plugin-react>array-includes>get-intrinsic": true,
+        "string.prototype.matchall>call-bind>set-function-length": true
+      }
+    },
+    "gulp>vinyl-fs>object.assign>call-bound": {
+      "packages": {
+        "string.prototype.matchall>call-bind>call-bind-apply-helpers": true,
+        "eslint-plugin-react>array-includes>get-intrinsic": true
+      }
+    },
     "chalk": {
       "packages": {
         "chalk>ansi-styles": true,
@@ -1795,6 +1864,7 @@
         "chokidar>anymatch": true,
         "chokidar>braces": true,
         "chokidar>fsevents": true,
+        "tsx>fsevents": true,
         "eslint>glob-parent": true,
         "chokidar>is-binary-path": true,
         "del>is-glob": true,
@@ -2196,7 +2266,7 @@
         "process": true
       },
       "packages": {
-        "nock>debug>ms": true,
+        "mocha>ms": true,
         "mocha>supports-color": true
       }
     },
@@ -2245,7 +2315,7 @@
     "string.prototype.matchall>define-properties>define-data-property": {
       "packages": {
         "string.prototype.matchall>call-bind>es-define-property": true,
-        "string.prototype.matchall>call-bind>es-errors": true,
+        "string.prototype.matchall>es-abstract>es-errors": true,
         "string.prototype.matchall>es-abstract>gopd": true
       }
     },
@@ -2401,6 +2471,12 @@
         "stylelint>postcss-html>htmlparser2>domelementtype": true
       }
     },
+    "eslint-plugin-react>array-includes>get-intrinsic>get-proto>dunder-proto": {
+      "packages": {
+        "string.prototype.matchall>call-bind>call-bind-apply-helpers": true,
+        "string.prototype.matchall>es-abstract>gopd": true
+      }
+    },
     "browserify>duplexer2": {
       "packages": {
         "browserify>duplexer2>readable-stream": true
@@ -2476,11 +2552,11 @@
       "packages": {
         "string.prototype.matchall>call-bind": true,
         "string.prototype.matchall>call-bind>es-define-property": true,
-        "string.prototype.matchall>call-bind>es-errors": true,
+        "string.prototype.matchall>es-abstract>es-errors": true,
         "string.prototype.matchall>es-abstract>es-object-atoms": true,
         "string.prototype.matchall>es-abstract>es-set-tostringtag": true,
         "string.prototype.matchall>es-abstract>es-to-primitive": true,
-        "string.prototype.matchall>get-intrinsic": true,
+        "eslint-plugin-react>array-includes>get-intrinsic": true,
         "string.prototype.matchall>es-abstract>gopd": true,
         "string.prototype.matchall>es-abstract>has-property-descriptors": true,
         "string.prototype.matchall>es-abstract>has-proto": true,
@@ -2495,19 +2571,15 @@
         "string.prototype.matchall>es-abstract>string.prototype.trim": true
       }
     },
-    "string.prototype.matchall>call-bind>es-define-property": {
-      "packages": {
-        "string.prototype.matchall>get-intrinsic": true
-      }
-    },
     "string.prototype.matchall>es-abstract>es-object-atoms": {
       "packages": {
-        "string.prototype.matchall>call-bind>es-errors": true
+        "string.prototype.matchall>es-abstract>es-errors": true
       }
     },
     "string.prototype.matchall>es-abstract>es-set-tostringtag": {
       "packages": {
-        "string.prototype.matchall>get-intrinsic": true,
+        "string.prototype.matchall>es-abstract>es-errors": true,
+        "eslint-plugin-react>array-includes>get-intrinsic": true,
         "koa>is-generator-function>has-tostringtag": true,
         "depcheck>is-core-module>hasown": true
       }
@@ -2520,7 +2592,7 @@
     "string.prototype.matchall>es-abstract>es-to-primitive": {
       "packages": {
         "string.prototype.matchall>es-abstract>is-callable": true,
-        "@metamask/eth-token-tracker>deep-equal>is-date-object": true,
+        "string.prototype.matchall>es-abstract>es-to-primitive>is-date-object": true,
         "string.prototype.matchall>es-abstract>es-to-primitive>is-symbol": true
       }
     },
@@ -2638,7 +2710,8 @@
       },
       "packages": {
         "eslint-import-resolver-node>debug": true,
-        "depcheck>resolve": true
+        "depcheck>is-core-module": true,
+        "browserify>resolve": true
       }
     },
     "eslint-import-resolver-typescript": {
@@ -2653,8 +2726,8 @@
         "nock>debug": true,
         "nyc>glob": true,
         "del>is-glob": true,
-        "depcheck>resolve": true,
-        "eslint-plugin-import>tsconfig-paths": true
+        "browserify>resolve": true,
+        "eslint-import-resolver-typescript>tsconfig-paths": true
       }
     },
     "eslint-plugin-import>eslint-module-utils": {
@@ -2764,7 +2837,7 @@
         "eslint-plugin-node>eslint-utils": true,
         "eslint>ignore": true,
         "eslint>minimatch": true,
-        "depcheck>resolve": true,
+        "browserify>resolve": true,
         "eslint-plugin-node>semver": true
       }
     },
@@ -3364,6 +3437,13 @@
         "gulp-watch>chokidar>fsevents>node-pre-gyp": true
       }
     },
+    "tsx>fsevents": {
+      "globals": {
+        "console.assert": true,
+        "process.platform": true
+      },
+      "native": true
+    },
     "@lavamoat/allow-scripts>@npmcli/run-script>node-gyp>npmlog>gauge": {
       "builtin": {
         "util.format": true
@@ -3390,18 +3470,34 @@
         "assert.equal": true
       }
     },
-    "string.prototype.matchall>get-intrinsic": {
+    "eslint-plugin-react>array-includes>get-intrinsic": {
       "globals": {
         "AggregateError": true,
         "FinalizationRegistry": true,
         "WeakRef": true
       },
       "packages": {
-        "string.prototype.matchall>call-bind>es-errors": true,
+        "string.prototype.matchall>call-bind>call-bind-apply-helpers": true,
+        "string.prototype.matchall>call-bind>es-define-property": true,
+        "string.prototype.matchall>es-abstract>es-errors": true,
+        "string.prototype.matchall>es-abstract>es-object-atoms": true,
         "browserify>has>function-bind": true,
-        "string.prototype.matchall>es-abstract>has-proto": true,
+        "eslint-plugin-react>array-includes>get-intrinsic>get-proto": true,
+        "string.prototype.matchall>es-abstract>gopd": true,
         "string.prototype.matchall>has-symbols": true,
-        "depcheck>is-core-module>hasown": true
+        "depcheck>is-core-module>hasown": true,
+        "eslint-plugin-react>array-includes>get-intrinsic>math-intrinsics": true
+      }
+    },
+    "string.prototype.matchall>get-intrinsic": {
+      "packages": {
+        "string.prototype.matchall>has-symbols": true
+      }
+    },
+    "eslint-plugin-react>array-includes>get-intrinsic>get-proto": {
+      "packages": {
+        "eslint-plugin-react>array-includes>get-intrinsic>get-proto>dunder-proto": true,
+        "string.prototype.matchall>es-abstract>es-object-atoms": true
       }
     },
     "gulp-zip>get-stream": {
@@ -3560,11 +3656,6 @@
         "define": true
       }
     },
-    "string.prototype.matchall>es-abstract>gopd": {
-      "packages": {
-        "string.prototype.matchall>get-intrinsic": true
-      }
-    },
     "del>graceful-fs": {
       "builtin": {
         "assert.equal": true,
@@ -3910,7 +4001,7 @@
     },
     "string.prototype.matchall>internal-slot": {
       "packages": {
-        "string.prototype.matchall>call-bind>es-errors": true,
+        "string.prototype.matchall>es-abstract>es-errors": true,
         "depcheck>is-core-module>hasown": true,
         "string.prototype.matchall>side-channel": true
       }
@@ -3963,6 +4054,14 @@
         "depcheck>is-core-module>hasown": true
       }
     },
+    "browserify>resolve>is-core-module": {
+      "globals": {
+        "process.versions": true
+      },
+      "packages": {
+        "depcheck>is-core-module>hasown": true
+      }
+    },
     "gulp>glob-watcher>anymatch>micromatch>extglob>expand-brackets>define-property>is-descriptor>is-data-descriptor": {
       "packages": {
         "gulp>glob-watcher>anymatch>micromatch>extglob>expand-brackets>define-property>is-descriptor>is-data-descriptor>kind-of": true
@@ -3978,7 +4077,7 @@
         "gulp>gulp-cli>matchdep>micromatch>snapdragon>define-property>is-descriptor>is-data-descriptor>kind-of": true
       }
     },
-    "@metamask/eth-token-tracker>deep-equal>is-date-object": {
+    "string.prototype.matchall>es-abstract>es-to-primitive>is-date-object": {
       "packages": {
         "koa>is-generator-function>has-tostringtag": true
       }
@@ -4082,8 +4181,10 @@
     },
     "string.prototype.matchall>es-abstract>is-regex": {
       "packages": {
-        "string.prototype.matchall>call-bind": true,
-        "koa>is-generator-function>has-tostringtag": true
+        "gulp>vinyl-fs>object.assign>call-bound": true,
+        "string.prototype.matchall>es-abstract>gopd": true,
+        "koa>is-generator-function>has-tostringtag": true,
+        "depcheck>is-core-module>hasown": true
       }
     },
     "gulp>gulp-cli>replace-homedir>is-absolute>is-relative": {
@@ -4093,12 +4194,13 @@
     },
     "eslint-plugin-react>array-includes>is-string": {
       "packages": {
+        "gulp>vinyl-fs>object.assign>call-bound": true,
         "koa>is-generator-function>has-tostringtag": true
       }
     },
     "string.prototype.matchall>es-abstract>es-to-primitive>is-symbol": {
       "packages": {
-        "string.prototype.matchall>has-symbols": true
+        "string.prototype.matchall>es-abstract>es-to-primitive>is-symbol>has-symbols": true
       }
     },
     "gulp>gulp-cli>replace-homedir>is-absolute>is-relative>is-unc-path": {
@@ -4178,6 +4280,11 @@
         "console.warn": true
       }
     },
+    "eslint-import-resolver-typescript>tsconfig-paths>json5": {
+      "globals": {
+        "console.warn": true
+      }
+    },
     "eslint-plugin-import>tsconfig-paths>json5": {
       "globals": {
         "console.warn": true
@@ -4204,7 +4311,7 @@
         "console.error": true
       },
       "packages": {
-        "gulp>vinyl-fs>object.assign": true
+        "eslint-plugin-react>jsx-ast-utils>object.assign": true
       }
     },
     "gulp>glob-watcher>just-debounce": {
@@ -4348,8 +4455,8 @@
         "console.log": true
       },
       "packages": {
-        "@babel/core>@babel/parser": true,
-        "depcheck>@babel/traverse": true
+        "lavamoat>lavamoat-tofu>@babel/parser": true,
+        "lavamoat>lavamoat-tofu>@babel/traverse": true
       }
     },
     "lavamoat>lavamoat-core>merge-deep>clone-deep>lazy-cache": {
@@ -4651,7 +4758,7 @@
         "loose-envify": true,
         "browserify>parents": true,
         "browserify>module-deps>readable-stream": true,
-        "depcheck>resolve": true,
+        "browserify>resolve": true,
         "browserify>module-deps>stream-combiner2": true,
         "browserify>module-deps>through2": true,
         "watchify>xtend": true
@@ -4788,15 +4895,34 @@
         "WeakRef": true
       }
     },
+    "string.prototype.matchall>side-channel>object-inspect": {
+      "builtin": {
+        "util.inspect": true
+      },
+      "globals": {
+        "HTMLElement": true,
+        "WeakRef": true
+      }
+    },
     "gulp>gulp-cli>matchdep>micromatch>snapdragon>base>cache-base>collection-visit>object-visit": {
       "packages": {
         "gulp>gulp-cli>isobject": true
       }
     },
+    "eslint-plugin-react>jsx-ast-utils>object.assign": {
+      "packages": {
+        "string.prototype.matchall>call-bind": true,
+        "string.prototype.matchall>define-properties": true,
+        "string.prototype.matchall>has-symbols": true,
+        "@lavamoat/lavapack>json-stable-stringify>object-keys": true
+      }
+    },
     "gulp>vinyl-fs>object.assign": {
       "packages": {
         "string.prototype.matchall>call-bind": true,
+        "gulp>vinyl-fs>object.assign>call-bound": true,
         "string.prototype.matchall>define-properties": true,
+        "string.prototype.matchall>es-abstract>es-object-atoms": true,
         "string.prototype.matchall>has-symbols": true,
         "@lavamoat/lavapack>json-stable-stringify>object-keys": true
       }
@@ -7065,9 +7191,9 @@
     },
     "string.prototype.matchall>regexp.prototype.flags": {
       "packages": {
-        "string.prototype.matchall>call-bind": true,
+        "string.prototype.matchall>regexp.prototype.flags>call-bind": true,
         "string.prototype.matchall>define-properties": true,
-        "string.prototype.matchall>call-bind>es-errors": true,
+        "string.prototype.matchall>es-abstract>es-errors": true,
         "string.prototype.matchall>regexp.prototype.flags>set-function-name": true
       }
     },
@@ -7222,7 +7348,37 @@
         "gulp>vinyl-fs>value-or-function": true
       }
     },
-    "depcheck>resolve": {
+    "lavamoat>@lavamoat/aa>resolve": {
+      "builtin": {
+        "fs.readFileSync": true,
+        "fs.realpathSync": true,
+        "fs.statSync": true,
+        "os.homedir": true,
+        "path.dirname": true,
+        "path.join": true,
+        "path.parse": true,
+        "path.relative": true,
+        "path.resolve": true
+      },
+      "globals": {
+        "process.env.HOME": true,
+        "process.env.HOMEDRIVE": true,
+        "process.env.HOMEPATH": true,
+        "process.env.LNAME": true,
+        "process.env.LOGNAME": true,
+        "process.env.USER": true,
+        "process.env.USERNAME": true,
+        "process.env.USERPROFILE": true,
+        "process.getuid": true,
+        "process.platform": true,
+        "process.versions.pnp": true
+      },
+      "packages": {
+        "depcheck>is-core-module": true,
+        "depcheck>resolve>path-parse": true
+      }
+    },
+    "browserify>resolve": {
       "builtin": {
         "fs.readFile": true,
         "fs.readFileSync": true,
@@ -7252,7 +7408,7 @@
         "process.versions.pnp": true
       },
       "packages": {
-        "depcheck>is-core-module": true,
+        "browserify>resolve>is-core-module": true,
         "depcheck>resolve>path-parse": true
       }
     },
@@ -7510,8 +7666,8 @@
     },
     "string.prototype.matchall>es-abstract>safe-regex-test": {
       "packages": {
-        "string.prototype.matchall>call-bind": true,
-        "string.prototype.matchall>call-bind>es-errors": true,
+        "string.prototype.matchall>es-abstract>safe-regex-test>call-bind": true,
+        "string.prototype.matchall>es-abstract>es-errors": true,
         "string.prototype.matchall>es-abstract>is-regex": true
       }
     },
@@ -7651,8 +7807,8 @@
     "string.prototype.matchall>call-bind>set-function-length": {
       "packages": {
         "string.prototype.matchall>define-properties>define-data-property": true,
-        "string.prototype.matchall>call-bind>es-errors": true,
-        "string.prototype.matchall>get-intrinsic": true,
+        "string.prototype.matchall>es-abstract>es-errors": true,
+        "eslint-plugin-react>array-includes>get-intrinsic": true,
         "string.prototype.matchall>es-abstract>gopd": true,
         "string.prototype.matchall>es-abstract>has-property-descriptors": true
       }
@@ -7660,7 +7816,7 @@
     "string.prototype.matchall>regexp.prototype.flags>set-function-name": {
       "packages": {
         "string.prototype.matchall>define-properties>define-data-property": true,
-        "string.prototype.matchall>call-bind>es-errors": true,
+        "string.prototype.matchall>es-abstract>es-errors": true,
         "string.prototype.matchall>es-abstract>function.prototype.name>functions-have-names": true,
         "string.prototype.matchall>es-abstract>has-property-descriptors": true
       }
@@ -7692,11 +7848,36 @@
         "@metamask/rpc-errors>fast-safe-stringify": true
       }
     },
+    "string.prototype.matchall>side-channel>side-channel-list": {
+      "packages": {
+        "string.prototype.matchall>es-abstract>es-errors": true,
+        "string.prototype.matchall>side-channel>object-inspect": true
+      }
+    },
+    "string.prototype.matchall>side-channel>side-channel-map": {
+      "packages": {
+        "gulp>vinyl-fs>object.assign>call-bound": true,
+        "string.prototype.matchall>es-abstract>es-errors": true,
+        "eslint-plugin-react>array-includes>get-intrinsic": true,
+        "string.prototype.matchall>side-channel>object-inspect": true
+      }
+    },
+    "string.prototype.matchall>side-channel>side-channel-weakmap": {
+      "packages": {
+        "gulp>vinyl-fs>object.assign>call-bound": true,
+        "string.prototype.matchall>es-abstract>es-errors": true,
+        "eslint-plugin-react>array-includes>get-intrinsic": true,
+        "string.prototype.matchall>side-channel>object-inspect": true,
+        "string.prototype.matchall>side-channel>side-channel-map": true
+      }
+    },
     "string.prototype.matchall>side-channel": {
       "packages": {
-        "string.prototype.matchall>call-bind": true,
-        "string.prototype.matchall>get-intrinsic": true,
-        "string.prototype.matchall>es-abstract>object-inspect": true
+        "string.prototype.matchall>es-abstract>es-errors": true,
+        "string.prototype.matchall>side-channel>object-inspect": true,
+        "string.prototype.matchall>side-channel>side-channel-list": true,
+        "string.prototype.matchall>side-channel>side-channel-map": true,
+        "string.prototype.matchall>side-channel>side-channel-weakmap": true
       }
     },
     "nyc>signal-exit": {
@@ -8642,7 +8823,7 @@
         "ts-node>yn": true
       }
     },
-    "eslint-plugin-import>tsconfig-paths": {
+    "eslint-import-resolver-typescript>tsconfig-paths": {
       "builtin": {
         "fs.existsSync": true,
         "fs.lstatSync": true,
@@ -8664,11 +8845,26 @@
         "process.env": true
       },
       "packages": {
-        "eslint-plugin-import>tsconfig-paths>json5": true,
+        "eslint-import-resolver-typescript>tsconfig-paths>json5": true,
         "wait-on>minimist": true,
         "eslint-plugin-import>tsconfig-paths>strip-bom": true
       }
     },
+    "eslint-plugin-import>tsconfig-paths": {
+      "builtin": {
+        "fs.existsSync": true,
+        "fs.lstatSync": true,
+        "fs.readFileSync": true,
+        "fs.statSync": true,
+        "path.dirname": true,
+        "path.join": true,
+        "path.resolve": true
+      },
+      "packages": {
+        "eslint-plugin-import>tsconfig-paths>json5": true,
+        "eslint-plugin-import>tsconfig-paths>strip-bom": true
+      }
+    },
     "tsutils": {
       "packages": {
         "tslib": true,
diff --git a/manifest-flags.json b/manifest-flags.json
new file mode 100644
index 000000000000..f90de282f373
--- /dev/null
+++ b/manifest-flags.json
@@ -0,0 +1,8 @@
+{
+  "remoteFeatureFlags": {
+    "testFlagForThreshold": {
+      "name": "test-flag",
+      "value": "121212"
+    }
+  }
+}
diff --git a/test/e2e/constants.ts b/test/e2e/constants.ts
index 6af1056d7232..a867ac4e1fea 100644
--- a/test/e2e/constants.ts
+++ b/test/e2e/constants.ts
@@ -83,3 +83,25 @@ export enum ACCOUNT_TYPE {
   Bitcoin,
   Solana,
 }
+
+/* Meta metricsId generated by generateMetaMetricsId */
+export const MOCK_META_METRICS_ID =
+  '0x86bacb9b2bf9a7e8d2b147eadb95ac9aaa26842327cd24afc8bd4b3c1d136420';
+
+/* Mock remote feature flags response */
+export const MOCK_REMOTE_FEATURE_FLAGS_RESPONSE = {
+  feature1: true,
+  feature2: false,
+  feature3: {
+    name: 'groupC',
+    value: 'valueC',
+  },
+};
+
+/* Mock customized remote feature flags response */
+export const MOCK_CUSTOMIZED_REMOTE_FEATURE_FLAGS = {
+  feature1: {
+    name: 'groupA',
+    value: 'valueA',
+  },
+};
diff --git a/test/e2e/page-objects/pages/developer-options-page.ts b/test/e2e/page-objects/pages/developer-options-page.ts
index c15f6c767a82..8d37fc4091f3 100644
--- a/test/e2e/page-objects/pages/developer-options-page.ts
+++ b/test/e2e/page-objects/pages/developer-options-page.ts
@@ -1,4 +1,6 @@
+import { strict as assert } from 'assert';
 import { Driver } from '../../webdriver/driver';
+import { MOCK_CUSTOMIZED_REMOTE_FEATURE_FLAGS } from '../../constants';
 
 class DevelopOptions {
   private readonly driver: Driver;
@@ -12,6 +14,9 @@ class DevelopOptions {
     css: 'h4',
   };
 
+  private readonly developerOptionsRemoteFeatureFlagsState: string =
+    '[data-testid="developer-options-remote-feature-flags"]';
+
   constructor(driver: Driver) {
     this.driver = driver;
   }
@@ -33,6 +38,18 @@ class DevelopOptions {
     console.log('Generate a page crash in Developer option page');
     await this.driver.clickElement(this.generatePageCrashButton);
   }
+
+  async validateRemoteFeatureFlagState(): Promise<void> {
+    console.log('Validate remote feature flags state in Developer option page');
+    const element = await this.driver.findElement(
+      this.developerOptionsRemoteFeatureFlagsState,
+    );
+    const remoteFeatureFlagsState = await element.getText();
+    assert.equal(
+      remoteFeatureFlagsState,
+      JSON.stringify(MOCK_CUSTOMIZED_REMOTE_FEATURE_FLAGS),
+    );
+  }
 }
 
 export default DevelopOptions;
diff --git a/test/e2e/tests/metrics/state-snapshots/errors-after-init-opt-in-background-state.json b/test/e2e/tests/metrics/state-snapshots/errors-after-init-opt-in-background-state.json
index 0480d536973d..460aa14595bf 100644
--- a/test/e2e/tests/metrics/state-snapshots/errors-after-init-opt-in-background-state.json
+++ b/test/e2e/tests/metrics/state-snapshots/errors-after-init-opt-in-background-state.json
@@ -258,7 +258,7 @@
   },
   "QueuedRequestController": { "queuedRequestCount": 0 },
   "RemoteFeatureFlagController": {
-    "remoteFeatureFlags": { "feature1": true, "feature2": false },
+    "remoteFeatureFlags": {},
     "cacheTimestamp": "number"
   },
   "SelectedNetworkController": { "domains": "object" },
diff --git a/test/e2e/tests/remote-feature-flag/remote-feature-flag.spec.ts b/test/e2e/tests/remote-feature-flag/remote-feature-flag.spec.ts
index d8d6878e37c4..48c8dd7f5b28 100644
--- a/test/e2e/tests/remote-feature-flag/remote-feature-flag.spec.ts
+++ b/test/e2e/tests/remote-feature-flag/remote-feature-flag.spec.ts
@@ -4,13 +4,25 @@ import { getCleanAppState, withFixtures } from '../../helpers';
 import FixtureBuilder from '../../fixture-builder';
 import { TestSuiteArguments } from '../confirmations/transactions/shared';
 import { loginWithBalanceValidation } from '../../page-objects/flows/login.flow';
-import { MOCK_REMOTE_FEATURE_FLAGS_RESPONSE } from './mock-data';
+import HeaderNavbar from '../../page-objects/pages/header-navbar';
+import SettingsPage from '../../page-objects/pages/settings/settings-page';
+import DevelopOptions from '../../page-objects/pages/developer-options-page';
+import {
+  MOCK_CUSTOMIZED_REMOTE_FEATURE_FLAGS,
+  MOCK_META_METRICS_ID,
+  MOCK_REMOTE_FEATURE_FLAGS_RESPONSE,
+} from '../../constants';
 
 describe('Remote feature flag', function (this: Suite) {
-  it('should be fetched when basic functionality toggle is on', async function () {
+  it('should be fetched with threshold value when basic functionality toggle is on', async function () {
     await withFixtures(
       {
-        fixtures: new FixtureBuilder().build(),
+        fixtures: new FixtureBuilder()
+          .withMetaMetricsController({
+            metaMetricsId: MOCK_META_METRICS_ID,
+            participateInMetaMetrics: true,
+          })
+          .build(),
         title: this.test?.fullTitle(),
       },
       async ({ driver }: TestSuiteArguments) => {
@@ -39,4 +51,33 @@ describe('Remote feature flag', function (this: Suite) {
       },
     );
   });
+
+  it('offers the option to pass into manifest file for developers', async function () {
+    await withFixtures(
+      {
+        fixtures: new FixtureBuilder()
+          .withMetaMetricsController({
+            metaMetricsId: MOCK_META_METRICS_ID,
+            participateInMetaMetrics: true,
+          })
+          .build(),
+        manifestFlags: {
+          remoteFeatureFlags: MOCK_CUSTOMIZED_REMOTE_FEATURE_FLAGS,
+        },
+        title: this.test?.fullTitle(),
+      },
+      async ({ driver }: TestSuiteArguments) => {
+        await loginWithBalanceValidation(driver);
+        const headerNavbar = new HeaderNavbar(driver);
+        await headerNavbar.openSettingsPage();
+        const settingsPage = new SettingsPage(driver);
+        await settingsPage.check_pageIsLoaded();
+        await settingsPage.goToDevelopOptionSettings();
+
+        const developOptionsPage = new DevelopOptions(driver);
+        await developOptionsPage.check_pageIsLoaded();
+        await developOptionsPage.validateRemoteFeatureFlagState();
+      },
+    );
+  });
 });
diff --git a/ui/pages/settings/developer-options-tab/__snapshots__/developer-options-tab.test.tsx.snap b/ui/pages/settings/developer-options-tab/__snapshots__/developer-options-tab.test.tsx.snap
index 6c1fae43d5e8..baba3f1ffc70 100644
--- a/ui/pages/settings/developer-options-tab/__snapshots__/developer-options-tab.test.tsx.snap
+++ b/ui/pages/settings/developer-options-tab/__snapshots__/developer-options-tab.test.tsx.snap
@@ -10,6 +10,45 @@ exports[`Develop options tab should match snapshot 1`] = `
     >
       States
     </p>
+    <p
+      class="mm-box mm-text settings-page__security-tab-sub-header mm-text--body-md mm-box--padding-top-6 mm-box--color-text-alternative"
+    >
+      Current States
+    </p>
+    <div
+      class="settings-page__content-padded"
+    >
+      <div
+        class="mm-box settings-page__content-row mm-box--display-flex mm-box--gap-4 mm-box--flex-direction-row mm-box--justify-content-space-between"
+      >
+        <div
+          class="settings-page__content-item"
+        >
+          <span>
+            Remote feature flags
+          </span>
+          <div
+            class="settings-page__content-description"
+          >
+            The remote feature flags here by 
+            <b>
+              getRemoteFeatureFlags()
+            </b>
+             is retrieved from one of the following sources:
+            <br />
+            1) manifest-flags.json file 2) RemoteFeatureFlagsController
+            <br />
+            Modify the manifest-flags.json file will change the state locally.
+          </div>
+        </div>
+        <div
+          class="settings-page__content-description"
+          data-testid="developer-options-remote-feature-flags"
+        >
+          {"feature1":"value1"}
+        </div>
+      </div>
+    </div>
     <p
       class="mm-box mm-text settings-page__security-tab-sub-header mm-text--body-md mm-box--padding-top-6 mm-box--color-text-alternative"
     >
diff --git a/ui/pages/settings/developer-options-tab/developer-options-tab.test.tsx b/ui/pages/settings/developer-options-tab/developer-options-tab.test.tsx
index ff76752aed46..5f97bc987323 100644
--- a/ui/pages/settings/developer-options-tab/developer-options-tab.test.tsx
+++ b/ui/pages/settings/developer-options-tab/developer-options-tab.test.tsx
@@ -6,8 +6,11 @@ import { renderWithProvider } from '../../../../test/jest/rendering';
 import mockState from '../../../../test/data/mock-state.json';
 import DeveloperOptionsTab from '.';
 
-const mockSetServiceWorkerKeepAlivePreference = jest.fn();
-
+const mockSetServiceWorkerKeepAlivePreference = jest.fn().mockReturnValue({
+  type: 'SET_SERVICE_WORKER_KEEP_ALIVE',
+  value: true,
+});
+const mockRemoteFeatureFlags = { feature1: 'value1' };
 // eslint-disable-next-line
 /* @ts-expect-error: Avoids error from window property not existing */
 window.metamaskFeatureFlags = {};
@@ -17,16 +20,24 @@ jest.mock('../../../store/actions.ts', () => ({
     mockSetServiceWorkerKeepAlivePreference,
 }));
 
+jest.mock('../../../selectors', () => ({
+  ...jest.requireActual('../../../selectors'),
+  getRemoteFeatureFlags: jest.fn(() => mockRemoteFeatureFlags),
+}));
+
 describe('Develop options tab', () => {
   const mockStore = configureMockStore([thunk])(mockState);
 
   it('should match snapshot', () => {
-    const { container } = renderWithProvider(
+    const { getByTestId, container } = renderWithProvider(
       <DeveloperOptionsTab />,
       mockStore,
     );
 
     expect(container).toMatchSnapshot();
+    expect(
+      getByTestId('developer-options-remote-feature-flags').textContent,
+    ).toEqual(JSON.stringify(mockRemoteFeatureFlags));
   });
 
   it('should toggle Service Worker Keep Alive', async () => {
diff --git a/ui/pages/settings/developer-options-tab/developer-options-tab.tsx b/ui/pages/settings/developer-options-tab/developer-options-tab.tsx
index a604082586fc..866e711d821c 100644
--- a/ui/pages/settings/developer-options-tab/developer-options-tab.tsx
+++ b/ui/pages/settings/developer-options-tab/developer-options-tab.tsx
@@ -37,6 +37,7 @@ import {
 import { getEnvironmentType } from '../../../../app/scripts/lib/util';
 import { ENVIRONMENT_TYPE_POPUP } from '../../../../shared/constants/app';
 import { getIsRedesignedConfirmationsDeveloperEnabled } from '../../confirmations/selectors/confirm';
+import { getRemoteFeatureFlags } from '../../../selectors';
 import ToggleRow from './developer-options-toggle-row-component';
 import SentryTest from './sentry-test';
 import { ProfileSyncDevSettings } from './profile-sync';
@@ -241,11 +242,54 @@ const DeveloperOptionsTab = () => {
     );
   };
 
+  const renderRemoteFeatureFlags = () => {
+    const remoteFeatureFlags = useSelector(getRemoteFeatureFlags);
+    return (
+      <Box
+        className="settings-page__content-row"
+        display={Display.Flex}
+        flexDirection={FlexDirection.Row}
+        justifyContent={JustifyContent.spaceBetween}
+        gap={4}
+      >
+        <div className="settings-page__content-item">
+          <span>Remote feature flags</span>
+          <div className="settings-page__content-description">
+            The remote feature flags here by <b>getRemoteFeatureFlags()</b> is
+            retrieved from one of the following sources:
+            <br />
+            1) manifest-flags.json file 2) RemoteFeatureFlagsController
+            <br />
+            Modify the manifest-flags.json file will change the state locally.
+          </div>
+        </div>
+        <div
+          className="settings-page__content-description"
+          data-testid="developer-options-remote-feature-flags"
+        >
+          {JSON.stringify(remoteFeatureFlags)}
+        </div>
+      </Box>
+    );
+  };
+
   return (
     <div className="settings-page__body">
       <Text className="settings-page__security-tab-sub-header__bold">
         States
       </Text>
+
+      <Text
+        className="settings-page__security-tab-sub-header"
+        color={TextColor.textAlternative}
+        paddingTop={6}
+        ref={settingsRefs[0] as React.RefObject<HTMLDivElement>}
+      >
+        Current States
+      </Text>
+      <div className="settings-page__content-padded">
+        {renderRemoteFeatureFlags()}
+      </div>
       <Text
         className="settings-page__security-tab-sub-header"
         color={TextColor.textAlternative}
@@ -254,7 +298,6 @@ const DeveloperOptionsTab = () => {
       >
         Reset States
       </Text>
-
       <div className="settings-page__content-padded">
         {renderAnnouncementReset()}
         {renderOnboardingReset()}
diff --git a/ui/pages/settings/info-tab/info-tab.component.js b/ui/pages/settings/info-tab/info-tab.component.js
index 6c6efac729bb..121f29e7c52c 100644
--- a/ui/pages/settings/info-tab/info-tab.component.js
+++ b/ui/pages/settings/info-tab/info-tab.component.js
@@ -28,10 +28,6 @@ import {
 } from '../../../../shared/lib/ui-utils';
 
 export default class InfoTab extends PureComponent {
-  static propTypes = {
-    remoteFeatureFlags: PropTypes.object.isRequired,
-  };
-
   state = {
     version: process.env.METAMASK_VERSION,
   };
@@ -57,12 +53,6 @@ export default class InfoTab extends PureComponent {
   componentDidMount() {
     const { t } = this.context;
     handleSettingsRefs(t, t('about'), this.settingsRefs);
-    if (this.props.remoteFeatureFlags.testBooleanFlag) {
-      // eslint-disable-next-line no-console
-      console.log(
-        `Fetch remote feature flag success, eg: testBooleanFlag has value ${this.props.remoteFeatureFlags.testBooleanFlag}`,
-      );
-    }
   }
 
   renderInfoLinks() {
diff --git a/ui/pages/settings/info-tab/info-tab.stories.js b/ui/pages/settings/info-tab/info-tab.stories.js
index 020f60d2516e..34f855172d1c 100644
--- a/ui/pages/settings/info-tab/info-tab.stories.js
+++ b/ui/pages/settings/info-tab/info-tab.stories.js
@@ -5,6 +5,6 @@ export default {
   title: 'Pages/Settings/InfoTab',
 };
 
-export const DefaultStory = () => <InfoTab remoteFeatureFlags={{}} />;
+export const DefaultStory = () => <InfoTab />;
 
 DefaultStory.storyName = 'Default';
diff --git a/ui/pages/settings/info-tab/info-tab.test.tsx b/ui/pages/settings/info-tab/info-tab.test.tsx
index 7625caf09efb..b25be3f8ed5e 100644
--- a/ui/pages/settings/info-tab/info-tab.test.tsx
+++ b/ui/pages/settings/info-tab/info-tab.test.tsx
@@ -7,9 +7,7 @@ describe('InfoTab', () => {
     let getByText: (text: string) => HTMLElement;
 
     beforeEach(() => {
-      const renderResult = renderWithProvider(
-        <InfoTab remoteFeatureFlags={{}} />,
-      );
+      const renderResult = renderWithProvider(<InfoTab />);
       getByText = renderResult.getByText;
     });
 
diff --git a/ui/pages/settings/security-tab/delete-metametrics-data-button/delete-metametrics-data-button.test.tsx b/ui/pages/settings/security-tab/delete-metametrics-data-button/delete-metametrics-data-button.test.tsx
index 27132fb82f5c..b6f75e6aff45 100644
--- a/ui/pages/settings/security-tab/delete-metametrics-data-button/delete-metametrics-data-button.test.tsx
+++ b/ui/pages/settings/security-tab/delete-metametrics-data-button/delete-metametrics-data-button.test.tsx
@@ -8,6 +8,7 @@ import {
   getMetaMetricsDataDeletionTimestamp,
   getMetaMetricsDataDeletionStatus,
   getMetaMetricsId,
+  getParticipateInMetaMetrics,
   getLatestMetricsEventTimestamp,
 } from '../../../../selectors';
 import { openDeleteMetaMetricsDataModal } from '../../../../ducks/app/app';
@@ -27,6 +28,9 @@ describe('DeleteMetaMetricsDataButton', () => {
   beforeEach(() => {
     useDispatchMock.mockReturnValue(mockDispatch);
     useSelectorMock.mockImplementation((selector) => {
+      if (selector === getParticipateInMetaMetrics) {
+        return true;
+      }
       if (selector === getMetaMetricsId) {
         return 'fake-metrics-id';
       }
@@ -81,6 +85,9 @@ describe('DeleteMetaMetricsDataButton', () => {
       if (selector === getMetaMetricsDataDeletionStatus) {
         return 'INITIALIZED';
       }
+      if (selector === getParticipateInMetaMetrics) {
+        return true;
+      }
       if (selector === getMetaMetricsId) {
         return 'fake-metrics-id';
       }
@@ -105,8 +112,8 @@ describe('DeleteMetaMetricsDataButton', () => {
   // if user does not opt in to participate in metrics or for profile sync, metametricsId will not be created.
   it('should disable the data deletion button when there is metametrics id not available', async () => {
     useSelectorMock.mockImplementation((selector) => {
-      if (selector === getMetaMetricsId) {
-        return null;
+      if (selector === getParticipateInMetaMetrics) {
+        return false;
       }
       return undefined;
     });
diff --git a/ui/pages/settings/security-tab/delete-metametrics-data-button/delete-metametrics-data-button.tsx b/ui/pages/settings/security-tab/delete-metametrics-data-button/delete-metametrics-data-button.tsx
index 34b61697ed95..2841b25f8003 100644
--- a/ui/pages/settings/security-tab/delete-metametrics-data-button/delete-metametrics-data-button.tsx
+++ b/ui/pages/settings/security-tab/delete-metametrics-data-button/delete-metametrics-data-button.tsx
@@ -22,6 +22,7 @@ import {
   getMetaMetricsDataDeletionTimestamp,
   getMetaMetricsDataDeletionStatus,
   getMetaMetricsId,
+  getParticipateInMetaMetrics,
   getShowDataDeletionErrorModal,
   getShowDeleteMetaMetricsDataModal,
   getLatestMetricsEventTimestamp,
@@ -71,8 +72,8 @@ const DeleteMetaMetricsDataButton: DeleteMetaMetricsDataButtonComponent =
       const latestMetricsEventTimestamp = useSelector(
         getLatestMetricsEventTimestamp,
       );
-
-      let dataDeletionButtonDisabled = Boolean(!metaMetricsId);
+      const isMetaMetricsEnabled = useSelector(getParticipateInMetaMetrics);
+      let dataDeletionButtonDisabled = !isMetaMetricsEnabled;
       if (!dataDeletionButtonDisabled && metaMetricsDataDeletionStatus) {
         dataDeletionButtonDisabled =
           [
diff --git a/ui/pages/settings/settings.component.js b/ui/pages/settings/settings.component.js
index 37257e2c8fcb..cd9307013a68 100644
--- a/ui/pages/settings/settings.component.js
+++ b/ui/pages/settings/settings.component.js
@@ -73,7 +73,6 @@ class SettingsPage extends PureComponent {
     isPopup: PropTypes.bool,
     mostRecentOverviewPage: PropTypes.string.isRequired,
     pathnameI18nKey: PropTypes.string,
-    remoteFeatureFlags: PropTypes.object.isRequired,
     settingsPageSnaps: PropTypes.array,
     snapSettingsTitle: PropTypes.string,
     toggleNetworkMenu: PropTypes.func.isRequired,
@@ -410,13 +409,7 @@ class SettingsPage extends PureComponent {
             />
           )}
         />
-        <Route
-          exact
-          path={ABOUT_US_ROUTE}
-          render={() => (
-            <InfoTab remoteFeatureFlags={this.props.remoteFeatureFlags} />
-          )}
-        />
+        <Route exact path={ABOUT_US_ROUTE} render={() => <InfoTab />} />
         <Route
           path={`${SNAP_SETTINGS_ROUTE}/:snapId`}
           component={SnapSettingsRenderer}
diff --git a/ui/pages/settings/settings.container.js b/ui/pages/settings/settings.container.js
index 54bba3a622f2..f8ecca2bb05b 100644
--- a/ui/pages/settings/settings.container.js
+++ b/ui/pages/settings/settings.container.js
@@ -3,7 +3,6 @@ import { connect } from 'react-redux';
 import { withRouter } from 'react-router-dom';
 import {
   getAddressBookEntryOrAccountName,
-  getRemoteFeatureFlags,
   getSettingsPageSnapsIds,
   getSnapsMetadata,
   getUseExternalServices,
@@ -66,8 +65,6 @@ const mapStateToProps = (state, ownProps) => {
   const {
     metamask: { currencyRates },
   } = state;
-  const remoteFeatureFlags = getRemoteFeatureFlags(state);
-
   const settingsPageSnapsIds = getSettingsPageSnapsIds(state);
   const snapsMetadata = getSnapsMetadata(state);
   const conversionDate = currencyRates[ticker]?.conversionDate;
@@ -133,7 +130,6 @@ const mapStateToProps = (state, ownProps) => {
     isPopup,
     mostRecentOverviewPage: getMostRecentOverviewPage(state),
     pathnameI18nKey,
-    remoteFeatureFlags,
     settingsPageSnaps,
     snapSettingsTitle,
     useExternalServices,
diff --git a/ui/pages/settings/settings.stories.js b/ui/pages/settings/settings.stories.js
index b6b695a89cb1..e56f679eda5b 100644
--- a/ui/pages/settings/settings.stories.js
+++ b/ui/pages/settings/settings.stories.js
@@ -61,7 +61,6 @@ const Settings = ({ history }) => {
         history={history}
         pathnameI18nKey={pathnameI18nKey}
         backRoute={SETTINGS_ROUTE}
-        remoteFeatureFlags={{}}
         settingsPageSnaps={[]}
       />
     </div>
diff --git a/ui/pages/settings/settings.test.js b/ui/pages/settings/settings.test.js
index 061175865fce..238b50f3ce5b 100644
--- a/ui/pages/settings/settings.test.js
+++ b/ui/pages/settings/settings.test.js
@@ -19,7 +19,6 @@ describe('SettingsPage', () => {
     isSnapViewPage: false,
     mostRecentOverviewPage: '/',
     pathnameI18nKey: '',
-    remoteFeatureFlags: {},
   };
 
   const mockStore = configureMockStore()(mockState);
diff --git a/ui/selectors/selectors.js b/ui/selectors/selectors.js
index 37a6fdb49f15..aeb2cb556e42 100644
--- a/ui/selectors/selectors.js
+++ b/ui/selectors/selectors.js
@@ -113,6 +113,7 @@ import { hasTransactionData } from '../../shared/modules/transaction.utils';
 import { toChecksumHexAddress } from '../../shared/modules/hexstring-utils';
 import { createDeepEqualSelector } from '../../shared/modules/selectors/util';
 import { isSnapIgnoredInProd } from '../helpers/utils/snaps';
+import { getManifestFlags } from '../../app/scripts/lib/manifestFlags';
 import {
   getAllUnapprovedTransactions,
   getCurrentNetworkTransactions,
@@ -2982,7 +2983,23 @@ export function getMetaMetricsDataDeletionStatus(state) {
   return state.metamask.metaMetricsDataDeletionStatus;
 }
 
+/**
+ * Gets the remote feature flags from either the manifest or state.
+ * First checks if remote feature flags exist in the manifest and returns those if present.
+ * Otherwise returns the remote feature flags from the MetaMask state that's retrieved from controller.
+ *
+ * @param {object} state - The MetaMask state object
+ * @returns {object} The remote feature flags object containing feature flag key-value pairs
+ */
 export function getRemoteFeatureFlags(state) {
+  const remoteFeatureFlagsValueFromManifest =
+    getManifestFlags().remoteFeatureFlags;
+  if (
+    remoteFeatureFlagsValueFromManifest &&
+    Object.keys(remoteFeatureFlagsValueFromManifest).length > 0
+  ) {
+    return remoteFeatureFlagsValueFromManifest;
+  }
   return state.metamask.remoteFeatureFlags;
 }
 
diff --git a/ui/selectors/selectors.test.js b/ui/selectors/selectors.test.js
index 143f0b9e3d74..e1c131d08ca0 100644
--- a/ui/selectors/selectors.test.js
+++ b/ui/selectors/selectors.test.js
@@ -15,6 +15,7 @@ import { DeleteRegulationStatus } from '../../shared/constants/metametrics';
 import { selectSwitchedNetworkNeverShowMessage } from '../components/app/toast-master/selectors';
 import * as networkSelectors from '../../shared/modules/selectors/networks';
 import * as selectors from './selectors';
+import * as manifestFlags from '../../app/scripts/lib/manifestFlags';
 
 jest.mock('../../shared/modules/selectors/networks', () => ({
   ...jest.requireActual('../../shared/modules/selectors/networks'),
@@ -2155,16 +2156,71 @@ describe('#getConnectedSitesList', () => {
   });
 
   describe('#getRemoteFeatureFlags', () => {
-    it('returns remoteFeatureFlags in state', () => {
+    let getManifestFlagsMock;
+
+    beforeEach(() => {
+      // Mock the getManifestFlags function before each test
+      getManifestFlagsMock = jest.spyOn(manifestFlags, 'getManifestFlags').mockReturnValue({});
+    });
+
+    afterEach(() => {
+      // Clean up mock after each test
+      getManifestFlagsMock.mockRestore();
+    });
+
+    it('returns manifest flags when they are provided in manifest-flags.json', () => {
+      getManifestFlagsMock.mockReturnValue({
+        remoteFeatureFlags: {
+          manifestFlag1: true,
+          manifestFlag2: false,
+        },
+      });
+
+      const state = {
+        metamask: {
+          remoteFeatureFlags: {
+            stateFlag: true,
+          },
+        },
+      };
+
+      expect(selectors.getRemoteFeatureFlags(state)).toStrictEqual({
+        manifestFlag1: true,
+        manifestFlag2: false,
+      });
+    });
+
+    it('returns state flags when manifest flags are empty', () => {
+      getManifestFlagsMock.mockReturnValue({
+        remoteFeatureFlags: {},
+      });
+
+      const state = {
+        metamask: {
+          remoteFeatureFlags: {
+            stateFlag: true,
+          },
+        },
+      };
+
+      expect(selectors.getRemoteFeatureFlags(state)).toStrictEqual({
+        stateFlag: true,
+      });
+    });
+
+    it('returns state flags when manifest flags are undefined', () => {
+      getManifestFlagsMock.mockReturnValue({});
+
       const state = {
         metamask: {
           remoteFeatureFlags: {
-            existingFlag: true,
+            stateFlag: true,
           },
         },
       };
+
       expect(selectors.getRemoteFeatureFlags(state)).toStrictEqual({
-        existingFlag: true,
+        stateFlag: true,
       });
     });
   });