diff --git a/polkadot/Cargo.lock b/polkadot/Cargo.lock
index 848c22927bc61371abf9b6b5d3357bcf8e10ee11..84a2b2d48edb4d3e2edb058a86ab12ba8b5d16a6 100644
--- a/polkadot/Cargo.lock
+++ b/polkadot/Cargo.lock
@@ -450,7 +450,7 @@ dependencies = [
 [[package]]
 name = "beefy-gadget"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "beefy-primitives",
  "fnv",
@@ -474,6 +474,7 @@ dependencies = [
  "sp-consensus",
  "sp-core",
  "sp-keystore",
+ "sp-mmr-primitives",
  "sp-runtime",
  "substrate-prometheus-endpoint",
  "thiserror",
@@ -483,7 +484,7 @@ dependencies = [
 [[package]]
 name = "beefy-gadget-rpc"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "beefy-gadget",
  "beefy-primitives",
@@ -506,12 +507,12 @@ dependencies = [
 [[package]]
 name = "beefy-merkle-tree"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 
 [[package]]
 name = "beefy-primitives"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "parity-scale-codec",
  "scale-info",
@@ -2115,7 +2116,7 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
 [[package]]
 name = "fork-tree"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "parity-scale-codec",
 ]
@@ -2133,7 +2134,7 @@ dependencies = [
 [[package]]
 name = "frame-benchmarking"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -2155,7 +2156,7 @@ dependencies = [
 [[package]]
 name = "frame-benchmarking-cli"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "Inflector",
  "chrono",
@@ -2200,7 +2201,7 @@ dependencies = [
 [[package]]
 name = "frame-election-provider-solution-type"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "proc-macro-crate 1.1.3",
  "proc-macro2",
@@ -2211,7 +2212,7 @@ dependencies = [
 [[package]]
 name = "frame-election-provider-support"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "frame-election-provider-solution-type",
  "frame-support",
@@ -2227,7 +2228,7 @@ dependencies = [
 [[package]]
 name = "frame-executive"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -2255,7 +2256,7 @@ dependencies = [
 [[package]]
 name = "frame-support"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "bitflags",
  "frame-metadata",
@@ -2284,7 +2285,7 @@ dependencies = [
 [[package]]
 name = "frame-support-procedural"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "Inflector",
  "frame-support-procedural-tools",
@@ -2296,7 +2297,7 @@ dependencies = [
 [[package]]
 name = "frame-support-procedural-tools"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "frame-support-procedural-tools-derive",
  "proc-macro-crate 1.1.3",
@@ -2308,7 +2309,7 @@ dependencies = [
 [[package]]
 name = "frame-support-procedural-tools-derive"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -2318,7 +2319,7 @@ dependencies = [
 [[package]]
 name = "frame-support-test"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "frame-support",
  "frame-support-test-pallet",
@@ -2341,7 +2342,7 @@ dependencies = [
 [[package]]
 name = "frame-support-test-pallet"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -2352,7 +2353,7 @@ dependencies = [
 [[package]]
 name = "frame-system"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "frame-support",
  "log",
@@ -2369,7 +2370,7 @@ dependencies = [
 [[package]]
 name = "frame-system-benchmarking"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -2384,7 +2385,7 @@ dependencies = [
 [[package]]
 name = "frame-system-rpc-runtime-api"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "parity-scale-codec",
  "sp-api",
@@ -2393,7 +2394,7 @@ dependencies = [
 [[package]]
 name = "frame-try-runtime"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "frame-support",
  "sp-api",
@@ -2589,7 +2590,7 @@ dependencies = [
 [[package]]
 name = "generate-bags"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "chrono",
  "frame-election-provider-support",
@@ -3482,7 +3483,6 @@ dependencies = [
  "pallet-im-online",
  "pallet-indices",
  "pallet-membership",
- "pallet-mmr-primitives",
  "pallet-multisig",
  "pallet-nicks",
  "pallet-offences",
@@ -3524,6 +3524,7 @@ dependencies = [
  "sp-inherents",
  "sp-io",
  "sp-keyring",
+ "sp-mmr-primitives",
  "sp-npos-elections",
  "sp-offchain",
  "sp-runtime",
@@ -4991,7 +4992,7 @@ checksum = "20448fd678ec04e6ea15bbe0476874af65e98a01515d667aa49f1434dc44ebf4"
 [[package]]
 name = "pallet-assets"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5005,7 +5006,7 @@ dependencies = [
 [[package]]
 name = "pallet-authority-discovery"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -5021,7 +5022,7 @@ dependencies = [
 [[package]]
 name = "pallet-authorship"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -5036,7 +5037,7 @@ dependencies = [
 [[package]]
 name = "pallet-babe"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5060,7 +5061,7 @@ dependencies = [
 [[package]]
 name = "pallet-bags-list"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "frame-benchmarking",
  "frame-election-provider-support",
@@ -5080,7 +5081,7 @@ dependencies = [
 [[package]]
 name = "pallet-bags-list-remote-tests"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "frame-election-provider-support",
  "frame-support",
@@ -5100,7 +5101,7 @@ dependencies = [
 [[package]]
 name = "pallet-balances"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5115,7 +5116,7 @@ dependencies = [
 [[package]]
 name = "pallet-beefy"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "beefy-primitives",
  "frame-support",
@@ -5131,7 +5132,7 @@ dependencies = [
 [[package]]
 name = "pallet-beefy-mmr"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "beefy-merkle-tree",
  "beefy-primitives",
@@ -5142,7 +5143,6 @@ dependencies = [
  "log",
  "pallet-beefy",
  "pallet-mmr",
- "pallet-mmr-primitives",
  "pallet-session",
  "parity-scale-codec",
  "scale-info",
@@ -5156,7 +5156,7 @@ dependencies = [
 [[package]]
 name = "pallet-bounties"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5238,7 +5238,7 @@ dependencies = [
 [[package]]
 name = "pallet-child-bounties"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5257,7 +5257,7 @@ dependencies = [
 [[package]]
 name = "pallet-collective"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5274,7 +5274,7 @@ dependencies = [
 [[package]]
 name = "pallet-democracy"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5290,7 +5290,7 @@ dependencies = [
 [[package]]
 name = "pallet-election-provider-multi-phase"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "frame-benchmarking",
  "frame-election-provider-support",
@@ -5313,7 +5313,7 @@ dependencies = [
 [[package]]
 name = "pallet-elections-phragmen"
 version = "5.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5331,7 +5331,7 @@ dependencies = [
 [[package]]
 name = "pallet-gilt"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5346,7 +5346,7 @@ dependencies = [
 [[package]]
 name = "pallet-grandpa"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5369,7 +5369,7 @@ dependencies = [
 [[package]]
 name = "pallet-identity"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "enumflags2",
  "frame-benchmarking",
@@ -5385,7 +5385,7 @@ dependencies = [
 [[package]]
 name = "pallet-im-online"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5405,7 +5405,7 @@ dependencies = [
 [[package]]
 name = "pallet-indices"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5422,7 +5422,7 @@ dependencies = [
 [[package]]
 name = "pallet-membership"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5439,33 +5439,17 @@ dependencies = [
 [[package]]
 name = "pallet-mmr"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "ckb-merkle-mountain-range",
  "frame-benchmarking",
  "frame-support",
  "frame-system",
- "pallet-mmr-primitives",
  "parity-scale-codec",
  "scale-info",
  "sp-core",
  "sp-io",
- "sp-runtime",
- "sp-std",
-]
-
-[[package]]
-name = "pallet-mmr-primitives"
-version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
-dependencies = [
- "frame-support",
- "frame-system",
- "log",
- "parity-scale-codec",
- "serde",
- "sp-api",
- "sp-core",
+ "sp-mmr-primitives",
  "sp-runtime",
  "sp-std",
 ]
@@ -5473,24 +5457,24 @@ dependencies = [
 [[package]]
 name = "pallet-mmr-rpc"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "jsonrpc-core",
  "jsonrpc-core-client",
  "jsonrpc-derive",
- "pallet-mmr-primitives",
  "parity-scale-codec",
  "serde",
  "sp-api",
  "sp-blockchain",
  "sp-core",
+ "sp-mmr-primitives",
  "sp-runtime",
 ]
 
 [[package]]
 name = "pallet-multisig"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5505,7 +5489,7 @@ dependencies = [
 [[package]]
 name = "pallet-nicks"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -5519,7 +5503,7 @@ dependencies = [
 [[package]]
 name = "pallet-offences"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -5536,7 +5520,7 @@ dependencies = [
 [[package]]
 name = "pallet-offences-benchmarking"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "frame-benchmarking",
  "frame-election-provider-support",
@@ -5559,7 +5543,7 @@ dependencies = [
 [[package]]
 name = "pallet-preimage"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5575,7 +5559,7 @@ dependencies = [
 [[package]]
 name = "pallet-proxy"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5590,7 +5574,7 @@ dependencies = [
 [[package]]
 name = "pallet-recovery"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -5604,7 +5588,7 @@ dependencies = [
 [[package]]
 name = "pallet-scheduler"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5620,7 +5604,7 @@ dependencies = [
 [[package]]
 name = "pallet-session"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -5641,7 +5625,7 @@ dependencies = [
 [[package]]
 name = "pallet-session-benchmarking"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5657,7 +5641,7 @@ dependencies = [
 [[package]]
 name = "pallet-society"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -5671,7 +5655,7 @@ dependencies = [
 [[package]]
 name = "pallet-staking"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "frame-benchmarking",
  "frame-election-provider-support",
@@ -5694,7 +5678,7 @@ dependencies = [
 [[package]]
 name = "pallet-staking-reward-curve"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "proc-macro-crate 1.1.3",
  "proc-macro2",
@@ -5705,7 +5689,7 @@ dependencies = [
 [[package]]
 name = "pallet-staking-reward-fn"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "log",
  "sp-arithmetic",
@@ -5714,7 +5698,7 @@ dependencies = [
 [[package]]
 name = "pallet-sudo"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -5728,7 +5712,7 @@ dependencies = [
 [[package]]
 name = "pallet-timestamp"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5746,7 +5730,7 @@ dependencies = [
 [[package]]
 name = "pallet-tips"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5765,7 +5749,7 @@ dependencies = [
 [[package]]
 name = "pallet-transaction-payment"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -5782,7 +5766,7 @@ dependencies = [
 [[package]]
 name = "pallet-transaction-payment-rpc"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "jsonrpc-core",
  "jsonrpc-core-client",
@@ -5799,7 +5783,7 @@ dependencies = [
 [[package]]
 name = "pallet-transaction-payment-rpc-runtime-api"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "pallet-transaction-payment",
  "parity-scale-codec",
@@ -5810,7 +5794,7 @@ dependencies = [
 [[package]]
 name = "pallet-treasury"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5827,7 +5811,7 @@ dependencies = [
 [[package]]
 name = "pallet-utility"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5843,7 +5827,7 @@ dependencies = [
 [[package]]
 name = "pallet-vesting"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -6408,7 +6392,6 @@ dependencies = [
  "frame-system",
  "frame-system-rpc-runtime-api",
  "kusama-runtime",
- "pallet-mmr-primitives",
  "pallet-transaction-payment",
  "pallet-transaction-payment-rpc-runtime-api",
  "polkadot-core-primitives",
@@ -6431,6 +6414,7 @@ dependencies = [
  "sp-finality-grandpa",
  "sp-inherents",
  "sp-keyring",
+ "sp-mmr-primitives",
  "sp-offchain",
  "sp-runtime",
  "sp-session",
@@ -7257,7 +7241,6 @@ dependencies = [
  "pallet-im-online",
  "pallet-indices",
  "pallet-membership",
- "pallet-mmr-primitives",
  "pallet-multisig",
  "pallet-nicks",
  "pallet-offences",
@@ -7297,6 +7280,7 @@ dependencies = [
  "sp-inherents",
  "sp-io",
  "sp-keyring",
+ "sp-mmr-primitives",
  "sp-npos-elections",
  "sp-offchain",
  "sp-runtime",
@@ -7460,7 +7444,6 @@ dependencies = [
  "lru 0.7.5",
  "pallet-babe",
  "pallet-im-online",
- "pallet-mmr-primitives",
  "pallet-staking",
  "pallet-transaction-payment-rpc-runtime-api",
  "parity-db",
@@ -7659,7 +7642,6 @@ dependencies = [
  "pallet-balances",
  "pallet-grandpa",
  "pallet-indices",
- "pallet-mmr-primitives",
  "pallet-nicks",
  "pallet-offences",
  "pallet-session",
@@ -7690,6 +7672,7 @@ dependencies = [
  "sp-inherents",
  "sp-io",
  "sp-keyring",
+ "sp-mmr-primitives",
  "sp-offchain",
  "sp-runtime",
  "sp-session",
@@ -8322,7 +8305,7 @@ dependencies = [
 [[package]]
 name = "remote-externalities"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "env_logger 0.9.0",
  "jsonrpsee",
@@ -8456,7 +8439,6 @@ dependencies = [
  "pallet-indices",
  "pallet-membership",
  "pallet-mmr",
- "pallet-mmr-primitives",
  "pallet-multisig",
  "pallet-offences",
  "pallet-proxy",
@@ -8485,6 +8467,7 @@ dependencies = [
  "sp-core",
  "sp-inherents",
  "sp-io",
+ "sp-mmr-primitives",
  "sp-offchain",
  "sp-runtime",
  "sp-session",
@@ -8671,7 +8654,7 @@ dependencies = [
 [[package]]
 name = "sc-allocator"
 version = "4.1.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "log",
  "sp-core",
@@ -8682,7 +8665,7 @@ dependencies = [
 [[package]]
 name = "sc-authority-discovery"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "async-trait",
  "futures 0.3.21",
@@ -8709,7 +8692,7 @@ dependencies = [
 [[package]]
 name = "sc-basic-authorship"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "futures 0.3.21",
  "futures-timer",
@@ -8732,7 +8715,7 @@ dependencies = [
 [[package]]
 name = "sc-block-builder"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "parity-scale-codec",
  "sc-client-api",
@@ -8748,7 +8731,7 @@ dependencies = [
 [[package]]
 name = "sc-chain-spec"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "impl-trait-for-tuples",
  "memmap2 0.5.0",
@@ -8765,7 +8748,7 @@ dependencies = [
 [[package]]
 name = "sc-chain-spec-derive"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "proc-macro-crate 1.1.3",
  "proc-macro2",
@@ -8776,7 +8759,7 @@ dependencies = [
 [[package]]
 name = "sc-cli"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "chrono",
  "clap",
@@ -8814,7 +8797,7 @@ dependencies = [
 [[package]]
 name = "sc-client-api"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "fnv",
  "futures 0.3.21",
@@ -8842,7 +8825,7 @@ dependencies = [
 [[package]]
 name = "sc-client-db"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "hash-db",
  "kvdb",
@@ -8867,7 +8850,7 @@ dependencies = [
 [[package]]
 name = "sc-consensus"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "async-trait",
  "futures 0.3.21",
@@ -8891,7 +8874,7 @@ dependencies = [
 [[package]]
 name = "sc-consensus-babe"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "async-trait",
  "fork-tree",
@@ -8934,7 +8917,7 @@ dependencies = [
 [[package]]
 name = "sc-consensus-babe-rpc"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "futures 0.3.21",
  "jsonrpc-core",
@@ -8958,7 +8941,7 @@ dependencies = [
 [[package]]
 name = "sc-consensus-epochs"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "fork-tree",
  "parity-scale-codec",
@@ -8971,7 +8954,7 @@ dependencies = [
 [[package]]
 name = "sc-consensus-slots"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "async-trait",
  "futures 0.3.21",
@@ -8996,7 +8979,7 @@ dependencies = [
 [[package]]
 name = "sc-consensus-uncles"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "sc-client-api",
  "sp-authorship",
@@ -9007,7 +8990,7 @@ dependencies = [
 [[package]]
 name = "sc-executor"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "lazy_static",
  "lru 0.7.5",
@@ -9034,7 +9017,7 @@ dependencies = [
 [[package]]
 name = "sc-executor-common"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "environmental",
  "parity-scale-codec",
@@ -9051,7 +9034,7 @@ dependencies = [
 [[package]]
 name = "sc-executor-wasmi"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "log",
  "parity-scale-codec",
@@ -9067,7 +9050,7 @@ dependencies = [
 [[package]]
 name = "sc-executor-wasmtime"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "cfg-if 1.0.0",
  "libc",
@@ -9085,7 +9068,7 @@ dependencies = [
 [[package]]
 name = "sc-finality-grandpa"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "ahash",
  "async-trait",
@@ -9125,7 +9108,7 @@ dependencies = [
 [[package]]
 name = "sc-finality-grandpa-rpc"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "finality-grandpa",
  "futures 0.3.21",
@@ -9149,7 +9132,7 @@ dependencies = [
 [[package]]
 name = "sc-informant"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "ansi_term",
  "futures 0.3.21",
@@ -9166,7 +9149,7 @@ dependencies = [
 [[package]]
 name = "sc-keystore"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "async-trait",
  "hex",
@@ -9181,7 +9164,7 @@ dependencies = [
 [[package]]
 name = "sc-network"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "async-trait",
  "asynchronous-codec 0.5.0",
@@ -9230,7 +9213,7 @@ dependencies = [
 [[package]]
 name = "sc-network-gossip"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "ahash",
  "futures 0.3.21",
@@ -9247,7 +9230,7 @@ dependencies = [
 [[package]]
 name = "sc-offchain"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "bytes 1.1.0",
  "fnv",
@@ -9275,7 +9258,7 @@ dependencies = [
 [[package]]
 name = "sc-peerset"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "futures 0.3.21",
  "libp2p",
@@ -9288,7 +9271,7 @@ dependencies = [
 [[package]]
 name = "sc-proposer-metrics"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "log",
  "substrate-prometheus-endpoint",
@@ -9297,7 +9280,7 @@ dependencies = [
 [[package]]
 name = "sc-rpc"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "futures 0.3.21",
  "hash-db",
@@ -9328,7 +9311,7 @@ dependencies = [
 [[package]]
 name = "sc-rpc-api"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "futures 0.3.21",
  "jsonrpc-core",
@@ -9354,7 +9337,7 @@ dependencies = [
 [[package]]
 name = "sc-rpc-server"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "futures 0.3.21",
  "jsonrpc-core",
@@ -9371,7 +9354,7 @@ dependencies = [
 [[package]]
 name = "sc-service"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "async-trait",
  "directories",
@@ -9399,6 +9382,7 @@ dependencies = [
  "sc-offchain",
  "sc-rpc",
  "sc-rpc-server",
+ "sc-sysinfo",
  "sc-telemetry",
  "sc-tracing",
  "sc-transaction-pool",
@@ -9435,7 +9419,7 @@ dependencies = [
 [[package]]
 name = "sc-state-db"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "log",
  "parity-scale-codec",
@@ -9449,7 +9433,7 @@ dependencies = [
 [[package]]
 name = "sc-sync-state-rpc"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "jsonrpc-core",
  "jsonrpc-core-client",
@@ -9467,10 +9451,27 @@ dependencies = [
  "thiserror",
 ]
 
+[[package]]
+name = "sc-sysinfo"
+version = "6.0.0-dev"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
+dependencies = [
+ "futures 0.3.21",
+ "libc",
+ "log",
+ "rand 0.7.3",
+ "rand_pcg",
+ "regex",
+ "sc-telemetry",
+ "serde",
+ "serde_json",
+ "sp-core",
+]
+
 [[package]]
 name = "sc-telemetry"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "chrono",
  "futures 0.3.21",
@@ -9488,7 +9489,7 @@ dependencies = [
 [[package]]
 name = "sc-tracing"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "ansi_term",
  "atty",
@@ -9519,7 +9520,7 @@ dependencies = [
 [[package]]
 name = "sc-tracing-proc-macro"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "proc-macro-crate 1.1.3",
  "proc-macro2",
@@ -9530,7 +9531,7 @@ dependencies = [
 [[package]]
 name = "sc-transaction-pool"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "futures 0.3.21",
  "futures-timer",
@@ -9557,7 +9558,7 @@ dependencies = [
 [[package]]
 name = "sc-transaction-pool-api"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "futures 0.3.21",
  "log",
@@ -9570,7 +9571,7 @@ dependencies = [
 [[package]]
 name = "sc-utils"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "futures 0.3.21",
  "futures-timer",
@@ -10083,7 +10084,7 @@ dependencies = [
 [[package]]
 name = "sp-api"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "hash-db",
  "log",
@@ -10100,7 +10101,7 @@ dependencies = [
 [[package]]
 name = "sp-api-proc-macro"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "blake2 0.10.2",
  "proc-macro-crate 1.1.3",
@@ -10112,7 +10113,7 @@ dependencies = [
 [[package]]
 name = "sp-application-crypto"
 version = "6.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "parity-scale-codec",
  "scale-info",
@@ -10125,7 +10126,7 @@ dependencies = [
 [[package]]
 name = "sp-arithmetic"
 version = "5.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "integer-sqrt",
  "num-traits",
@@ -10140,7 +10141,7 @@ dependencies = [
 [[package]]
 name = "sp-authority-discovery"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "parity-scale-codec",
  "scale-info",
@@ -10153,7 +10154,7 @@ dependencies = [
 [[package]]
 name = "sp-authorship"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "async-trait",
  "parity-scale-codec",
@@ -10165,7 +10166,7 @@ dependencies = [
 [[package]]
 name = "sp-block-builder"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "parity-scale-codec",
  "sp-api",
@@ -10177,7 +10178,7 @@ dependencies = [
 [[package]]
 name = "sp-blockchain"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "futures 0.3.21",
  "log",
@@ -10195,7 +10196,7 @@ dependencies = [
 [[package]]
 name = "sp-consensus"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "async-trait",
  "futures 0.3.21",
@@ -10214,7 +10215,7 @@ dependencies = [
 [[package]]
 name = "sp-consensus-babe"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "async-trait",
  "merlin",
@@ -10237,7 +10238,7 @@ dependencies = [
 [[package]]
 name = "sp-consensus-slots"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "parity-scale-codec",
  "scale-info",
@@ -10251,7 +10252,7 @@ dependencies = [
 [[package]]
 name = "sp-consensus-vrf"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "parity-scale-codec",
  "schnorrkel",
@@ -10263,7 +10264,7 @@ dependencies = [
 [[package]]
 name = "sp-core"
 version = "6.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "base58",
  "bitflags",
@@ -10309,7 +10310,7 @@ dependencies = [
 [[package]]
 name = "sp-core-hashing"
 version = "4.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "blake2 0.10.2",
  "byteorder",
@@ -10323,7 +10324,7 @@ dependencies = [
 [[package]]
 name = "sp-core-hashing-proc-macro"
 version = "5.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -10334,7 +10335,7 @@ dependencies = [
 [[package]]
 name = "sp-database"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "kvdb",
  "parking_lot 0.12.0",
@@ -10343,7 +10344,7 @@ dependencies = [
 [[package]]
 name = "sp-debug-derive"
 version = "4.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -10353,7 +10354,7 @@ dependencies = [
 [[package]]
 name = "sp-externalities"
 version = "0.12.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "environmental",
  "parity-scale-codec",
@@ -10364,7 +10365,7 @@ dependencies = [
 [[package]]
 name = "sp-finality-grandpa"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "finality-grandpa",
  "log",
@@ -10382,7 +10383,7 @@ dependencies = [
 [[package]]
 name = "sp-inherents"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "async-trait",
  "impl-trait-for-tuples",
@@ -10396,7 +10397,7 @@ dependencies = [
 [[package]]
 name = "sp-io"
 version = "6.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "futures 0.3.21",
  "hash-db",
@@ -10421,7 +10422,7 @@ dependencies = [
 [[package]]
 name = "sp-keyring"
 version = "6.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "lazy_static",
  "sp-core",
@@ -10432,7 +10433,7 @@ dependencies = [
 [[package]]
 name = "sp-keystore"
 version = "0.12.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "async-trait",
  "futures 0.3.21",
@@ -10449,16 +10450,31 @@ dependencies = [
 [[package]]
 name = "sp-maybe-compressed-blob"
 version = "4.1.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "thiserror",
  "zstd",
 ]
 
+[[package]]
+name = "sp-mmr-primitives"
+version = "4.0.0-dev"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
+dependencies = [
+ "log",
+ "parity-scale-codec",
+ "serde",
+ "sp-api",
+ "sp-core",
+ "sp-debug-derive",
+ "sp-runtime",
+ "sp-std",
+]
+
 [[package]]
 name = "sp-npos-elections"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "parity-scale-codec",
  "scale-info",
@@ -10472,7 +10488,7 @@ dependencies = [
 [[package]]
 name = "sp-offchain"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "sp-api",
  "sp-core",
@@ -10482,7 +10498,7 @@ dependencies = [
 [[package]]
 name = "sp-panic-handler"
 version = "4.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "backtrace",
  "lazy_static",
@@ -10492,7 +10508,7 @@ dependencies = [
 [[package]]
 name = "sp-rpc"
 version = "6.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "rustc-hash",
  "serde",
@@ -10502,7 +10518,7 @@ dependencies = [
 [[package]]
 name = "sp-runtime"
 version = "6.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "either",
  "hash256-std-hasher",
@@ -10524,7 +10540,7 @@ dependencies = [
 [[package]]
 name = "sp-runtime-interface"
 version = "6.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "impl-trait-for-tuples",
  "parity-scale-codec",
@@ -10541,7 +10557,7 @@ dependencies = [
 [[package]]
 name = "sp-runtime-interface-proc-macro"
 version = "5.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "Inflector",
  "proc-macro-crate 1.1.3",
@@ -10553,7 +10569,7 @@ dependencies = [
 [[package]]
 name = "sp-serializer"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "serde",
  "serde_json",
@@ -10562,7 +10578,7 @@ dependencies = [
 [[package]]
 name = "sp-session"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "parity-scale-codec",
  "scale-info",
@@ -10576,7 +10592,7 @@ dependencies = [
 [[package]]
 name = "sp-staking"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "parity-scale-codec",
  "scale-info",
@@ -10587,7 +10603,7 @@ dependencies = [
 [[package]]
 name = "sp-state-machine"
 version = "0.12.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "hash-db",
  "log",
@@ -10609,12 +10625,12 @@ dependencies = [
 [[package]]
 name = "sp-std"
 version = "4.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 
 [[package]]
 name = "sp-storage"
 version = "6.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "impl-serde",
  "parity-scale-codec",
@@ -10627,7 +10643,7 @@ dependencies = [
 [[package]]
 name = "sp-tasks"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "log",
  "sp-core",
@@ -10640,7 +10656,7 @@ dependencies = [
 [[package]]
 name = "sp-timestamp"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "async-trait",
  "futures-timer",
@@ -10656,7 +10672,7 @@ dependencies = [
 [[package]]
 name = "sp-tracing"
 version = "5.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "parity-scale-codec",
  "sp-std",
@@ -10668,7 +10684,7 @@ dependencies = [
 [[package]]
 name = "sp-transaction-pool"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "sp-api",
  "sp-runtime",
@@ -10677,7 +10693,7 @@ dependencies = [
 [[package]]
 name = "sp-transaction-storage-proof"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "async-trait",
  "log",
@@ -10693,7 +10709,7 @@ dependencies = [
 [[package]]
 name = "sp-trie"
 version = "6.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "hash-db",
  "memory-db",
@@ -10709,7 +10725,7 @@ dependencies = [
 [[package]]
 name = "sp-version"
 version = "5.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "impl-serde",
  "parity-scale-codec",
@@ -10726,7 +10742,7 @@ dependencies = [
 [[package]]
 name = "sp-version-proc-macro"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "parity-scale-codec",
  "proc-macro2",
@@ -10737,7 +10753,7 @@ dependencies = [
 [[package]]
 name = "sp-wasm-interface"
 version = "6.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "impl-trait-for-tuples",
  "log",
@@ -10938,7 +10954,7 @@ dependencies = [
 [[package]]
 name = "substrate-build-script-utils"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "platforms",
 ]
@@ -10946,7 +10962,7 @@ dependencies = [
 [[package]]
 name = "substrate-frame-rpc-system"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "frame-system-rpc-runtime-api",
  "futures 0.3.21",
@@ -10968,7 +10984,7 @@ dependencies = [
 [[package]]
 name = "substrate-prometheus-endpoint"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "futures-util",
  "hyper",
@@ -10981,7 +10997,7 @@ dependencies = [
 [[package]]
 name = "substrate-state-trie-migration-rpc"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "jsonrpc-core",
  "jsonrpc-core-client",
@@ -11004,7 +11020,7 @@ dependencies = [
 [[package]]
 name = "substrate-test-client"
 version = "2.0.1"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "async-trait",
  "futures 0.3.21",
@@ -11030,7 +11046,7 @@ dependencies = [
 [[package]]
 name = "substrate-test-utils"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "futures 0.3.21",
  "substrate-test-utils-derive",
@@ -11040,7 +11056,7 @@ dependencies = [
 [[package]]
 name = "substrate-test-utils-derive"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "proc-macro-crate 1.1.3",
  "proc-macro2",
@@ -11051,7 +11067,7 @@ dependencies = [
 [[package]]
 name = "substrate-wasm-builder"
 version = "5.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "ansi_term",
  "build-helper",
@@ -11754,7 +11770,7 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642"
 [[package]]
 name = "try-runtime-cli"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#174735ea1bb5fc4513519c45181d8df63d86f613"
+source = "git+https://github.com/paritytech/substrate?branch=master#2b4818aeb3488658ae85a5e64e9b656945553a72"
 dependencies = [
  "clap",
  "jsonrpsee",
@@ -12434,7 +12450,6 @@ dependencies = [
  "pallet-im-online",
  "pallet-indices",
  "pallet-membership",
- "pallet-mmr-primitives",
  "pallet-multisig",
  "pallet-nicks",
  "pallet-offences",
@@ -12476,6 +12491,7 @@ dependencies = [
  "sp-inherents",
  "sp-io",
  "sp-keyring",
+ "sp-mmr-primitives",
  "sp-npos-elections",
  "sp-offchain",
  "sp-runtime",
diff --git a/polkadot/bridges/bin/millau/runtime/Cargo.toml b/polkadot/bridges/bin/millau/runtime/Cargo.toml
index 162404b77e7de4bb8c9bc22125ecb628cc0c8d4c..979417c4cc8239c1fc58708d1152ee7e2b84f4c4 100644
--- a/polkadot/bridges/bin/millau/runtime/Cargo.toml
+++ b/polkadot/bridges/bin/millau/runtime/Cargo.toml
@@ -44,7 +44,6 @@ pallet-beefy = { git = "https://github.com/paritytech/substrate", branch = "mast
 pallet-beefy-mmr = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 pallet-grandpa = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 pallet-mmr = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
-pallet-mmr-primitives = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 pallet-randomness-collective-flip = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 pallet-session = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 pallet-sudo = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
@@ -57,6 +56,7 @@ sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch =
 sp-core = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 sp-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
+sp-mmr-primitives = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 sp-session = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
@@ -114,6 +114,7 @@ std = [
 	"sp-core/std",
 	"sp-finality-grandpa/std",
 	"sp-inherents/std",
+	"sp-mmr-primitives/std",
 	"sp-offchain/std",
 	"sp-runtime/std",
 	"sp-session/std",
diff --git a/polkadot/bridges/bin/millau/runtime/src/lib.rs b/polkadot/bridges/bin/millau/runtime/src/lib.rs
index d65b6c041d36761a737ef0194d74b2d46106c55d..fab223611d97592a3f7efb2c0c36eb72c25d0763 100644
--- a/polkadot/bridges/bin/millau/runtime/src/lib.rs
+++ b/polkadot/bridges/bin/millau/runtime/src/lib.rs
@@ -39,7 +39,7 @@ use bridge_runtime_common::messages::{
 use pallet_grandpa::{
 	fg_primitives, AuthorityId as GrandpaId, AuthorityList as GrandpaAuthorityList,
 };
-use pallet_mmr_primitives::{
+use sp_mmr_primitives::{
 	DataOrHash, EncodableOpaqueLeaf, Error as MmrError, LeafDataProvider, Proof as MmrProof,
 };
 use pallet_transaction_payment::{FeeDetails, Multiplier, RuntimeDispatchInfo};
@@ -680,7 +680,7 @@ impl_runtime_apis! {
 		}
 	}
 
-	impl pallet_mmr_primitives::MmrApi<Block, MmrHash> for Runtime {
+	impl sp_mmr_primitives::MmrApi<Block, MmrHash> for Runtime {
 		fn generate_proof(leaf_index: u64)
 			-> Result<(EncodableOpaqueLeaf, MmrProof<MmrHash>), MmrError>
 		{
diff --git a/polkadot/bridges/bin/rialto/node/Cargo.toml b/polkadot/bridges/bin/rialto/node/Cargo.toml
index e44ceb45faa97226f2a65f197367d1a1832a8921..512aa3ba710a14947fe34bd3048eccd4638592ac 100644
--- a/polkadot/bridges/bin/rialto/node/Cargo.toml
+++ b/polkadot/bridges/bin/rialto/node/Cargo.toml
@@ -35,7 +35,6 @@ frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch =
 frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "master" }
 frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "master" }
 node-inspect = { git = "https://github.com/paritytech/substrate", branch = "master" }
-pallet-mmr-primitives = { git = "https://github.com/paritytech/substrate", branch = "master" }
 pallet-mmr-rpc = { git = "https://github.com/paritytech/substrate", branch = "master" }
 pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "master" }
 pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "master" }
@@ -51,6 +50,7 @@ sc-executor = { git = "https://github.com/paritytech/substrate", branch = "maste
 sc-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "master" }
 sc-finality-grandpa-rpc = { git = "https://github.com/paritytech/substrate", branch = "master" }
 sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "master" }
+sp-mmr-primitives = { git = "https://github.com/paritytech/substrate", branch = "master"}
 sc-network = { git = "https://github.com/paritytech/substrate", branch = "master" }
 sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "master" }
 sc-service = { git = "https://github.com/paritytech/substrate", branch = "master" }
diff --git a/polkadot/bridges/bin/rialto/runtime/Cargo.toml b/polkadot/bridges/bin/rialto/runtime/Cargo.toml
index 59b9a8e9b575537c04461961af4f8584f81b18aa..a64376efb2234df21fd96cae077c943f22d0c9f3 100644
--- a/polkadot/bridges/bin/rialto/runtime/Cargo.toml
+++ b/polkadot/bridges/bin/rialto/runtime/Cargo.toml
@@ -44,7 +44,6 @@ pallet-beefy = { git = "https://github.com/paritytech/substrate", branch = "mast
 pallet-beefy-mmr = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 pallet-grandpa = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 pallet-mmr = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
-pallet-mmr-primitives = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 pallet-session = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 pallet-sudo = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 pallet-timestamp = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
@@ -58,6 +57,7 @@ sp-core = { git = "https://github.com/paritytech/substrate", branch = "master",
 sp-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 sp-io = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
+sp-mmr-primitives = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 sp-session = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
@@ -108,7 +108,6 @@ std = [
 	"pallet-bridge-messages/std",
 	"pallet-grandpa/std",
 	"pallet-mmr/std",
-	"pallet-mmr-primitives/std",
 	"pallet-shift-session-manager/std",
 	"pallet-sudo/std",
 	"pallet-timestamp/std",
@@ -127,6 +126,7 @@ std = [
 	"sp-finality-grandpa/std",
 	"sp-inherents/std",
 	"sp-io/std",
+	"sp-mmr-primitives/std",
 	"sp-offchain/std",
 	"sp-runtime/std",
 	"sp-session/std",
diff --git a/polkadot/bridges/bin/rialto/runtime/src/lib.rs b/polkadot/bridges/bin/rialto/runtime/src/lib.rs
index c8526fcf7cb7a2d248f380c6776172b4e403d058..81cf3e7cde8422923f99302c8deef97353f8564d 100644
--- a/polkadot/bridges/bin/rialto/runtime/src/lib.rs
+++ b/polkadot/bridges/bin/rialto/runtime/src/lib.rs
@@ -40,7 +40,7 @@ use bridge_runtime_common::messages::{
 use pallet_grandpa::{
 	fg_primitives, AuthorityId as GrandpaId, AuthorityList as GrandpaAuthorityList,
 };
-use pallet_mmr_primitives::{
+use sp_mmr_primitives::{
 	DataOrHash, EncodableOpaqueLeaf, Error as MmrError, LeafDataProvider, Proof as MmrProof,
 };
 use pallet_transaction_payment::{FeeDetails, Multiplier, RuntimeDispatchInfo};
@@ -626,7 +626,7 @@ impl_runtime_apis! {
 		}
 	}
 
-	impl pallet_mmr_primitives::MmrApi<Block, Hash> for Runtime {
+	impl sp_mmr_primitives::MmrApi<Block, Hash> for Runtime {
 		fn generate_proof(leaf_index: u64)
 			-> Result<(EncodableOpaqueLeaf, MmrProof<Hash>), MmrError>
 		{
diff --git a/polkadot/node/client/Cargo.toml b/polkadot/node/client/Cargo.toml
index 6d3d68b96ea120c54c0bb1db9bb7e705db5f8cf1..34815dad03432dcba30345452c35174f747f92ff 100644
--- a/polkadot/node/client/Cargo.toml
+++ b/polkadot/node/client/Cargo.toml
@@ -28,14 +28,13 @@ sp-consensus-babe = { git = "https://github.com/paritytech/substrate", branch =
 sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "master" }
 sp-offchain = { package = "sp-offchain", git = "https://github.com/paritytech/substrate", branch = "master" }
 sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "master" }
+sp-mmr-primitives = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 
 sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "master" }
 sc-executor = { git = "https://github.com/paritytech/substrate", branch = "master" }
 sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "master" }
 sc-service = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 
-pallet-mmr-primitives = { git = "https://github.com/paritytech/substrate", branch = "master" }
-
 beefy-primitives = { git = "https://github.com/paritytech/substrate", branch = "master" }
 
 # Polkadot Runtimes
diff --git a/polkadot/node/client/src/lib.rs b/polkadot/node/client/src/lib.rs
index 4be3acbd6a13f2e6f0cc4b2ddd7ccba2de54836a..024060413a7c6dd8ad8b6435287f457fba23387b 100644
--- a/polkadot/node/client/src/lib.rs
+++ b/polkadot/node/client/src/lib.rs
@@ -128,7 +128,7 @@ pub trait RuntimeApiCollection:
 	+ ParachainHost<Block>
 	+ sp_block_builder::BlockBuilder<Block>
 	+ frame_system_rpc_runtime_api::AccountNonceApi<Block, AccountId, Nonce>
-	+ pallet_mmr_primitives::MmrApi<Block, <Block as BlockT>::Hash>
+	+ sp_mmr_primitives::MmrApi<Block, <Block as BlockT>::Hash>
 	+ pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi<Block, Balance>
 	+ sp_api::Metadata<Block>
 	+ sp_offchain::OffchainWorkerApi<Block>
@@ -149,7 +149,7 @@ where
 		+ ParachainHost<Block>
 		+ sp_block_builder::BlockBuilder<Block>
 		+ frame_system_rpc_runtime_api::AccountNonceApi<Block, AccountId, Nonce>
-		+ pallet_mmr_primitives::MmrApi<Block, <Block as BlockT>::Hash>
+		+ sp_mmr_primitives::MmrApi<Block, <Block as BlockT>::Hash>
 		+ pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi<Block, Balance>
 		+ sp_api::Metadata<Block>
 		+ sp_offchain::OffchainWorkerApi<Block>
diff --git a/polkadot/node/service/Cargo.toml b/polkadot/node/service/Cargo.toml
index c4a3421355ea0e574d42677078875996265ee7c8..4ecf55c30be4f73b8ea67fb7f287611a3c9be410 100644
--- a/polkadot/node/service/Cargo.toml
+++ b/polkadot/node/service/Cargo.toml
@@ -54,7 +54,6 @@ pallet-babe = { git = "https://github.com/paritytech/substrate", branch = "maste
 pallet-im-online = { git = "https://github.com/paritytech/substrate", branch = "master" }
 pallet-staking = { git = "https://github.com/paritytech/substrate", branch = "master" }
 pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "master" }
-pallet-mmr-primitives = { git = "https://github.com/paritytech/substrate", branch = "master" }
 
 # Substrate Other
 frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "master" }
diff --git a/polkadot/node/service/src/lib.rs b/polkadot/node/service/src/lib.rs
index c0986869a8fc0e6b1bb8f074a9510da45fe79528..8059ff5230abf214a51dc1bf0efa458dd96099c8 100644
--- a/polkadot/node/service/src/lib.rs
+++ b/polkadot/node/service/src/lib.rs
@@ -1116,6 +1116,7 @@ where
 		let beefy_params = beefy_gadget::BeefyParams {
 			client: client.clone(),
 			backend: backend.clone(),
+			runtime: client.clone(),
 			key_store: keystore_opt.clone(),
 			network: network.clone(),
 			signed_commitment_sender: beefy_links.0,
@@ -1125,7 +1126,7 @@ where
 			protocol_name: beefy_protocol_name,
 		};
 
-		let gadget = beefy_gadget::start_beefy_gadget::<_, _, _, _>(beefy_params);
+		let gadget = beefy_gadget::start_beefy_gadget::<_, _, _, _, _>(beefy_params);
 
 		// Wococo's purpose is to be a testbed for BEEFY, so if it fails we'll
 		// bring the node down with it to make sure it is noticed.
diff --git a/polkadot/runtime/kusama/Cargo.toml b/polkadot/runtime/kusama/Cargo.toml
index 65a4478dfea7a4b637041188b7c400d041880182..676c239ba05a56ae98901aac30670d8e8bf62eaf 100644
--- a/polkadot/runtime/kusama/Cargo.toml
+++ b/polkadot/runtime/kusama/Cargo.toml
@@ -26,6 +26,7 @@ offchain-primitives = { package = "sp-offchain", git = "https://github.com/parit
 sp-std = { package = "sp-std", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 sp-arithmetic = { package = "sp-arithmetic", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 sp-io = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
+sp-mmr-primitives = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 sp-staking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 sp-core = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
@@ -55,7 +56,6 @@ pallet-identity = { git = "https://github.com/paritytech/substrate", branch = "m
 pallet-im-online = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 pallet-indices = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 pallet-membership = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
-pallet-mmr-primitives = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 pallet-multisig = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 pallet-nicks = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 pallet-offences = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
@@ -161,6 +161,7 @@ std = [
 	"pallet-vesting/std",
 	"pallet-babe/std",
 	"pallet-xcm/std",
+	"sp-mmr-primitives/std",
 	"sp-runtime/std",
 	"sp-staking/std",
 	"frame-system/std",
@@ -177,7 +178,6 @@ std = [
 	"sp-npos-elections/std",
 	"beefy-primitives/std",
 	"kusama-runtime-constants/std",
-	"pallet-mmr-primitives/std",
 	"xcm/std",
 	"xcm-executor/std",
 	"xcm-builder/std",
diff --git a/polkadot/runtime/kusama/src/lib.rs b/polkadot/runtime/kusama/src/lib.rs
index b99992adfb3069bb1fcb90fcc0abb38ac77eaf8c..6abf552cd112da178424bfaed0d97d0227dd30dc 100644
--- a/polkadot/runtime/kusama/src/lib.rs
+++ b/polkadot/runtime/kusama/src/lib.rs
@@ -62,10 +62,10 @@ use frame_support::{
 use frame_system::EnsureRoot;
 use pallet_grandpa::{fg_primitives, AuthorityId as GrandpaId};
 use pallet_im_online::sr25519::AuthorityId as ImOnlineId;
-use pallet_mmr_primitives as mmr;
 use pallet_session::historical as session_historical;
 use pallet_transaction_payment::{FeeDetails, RuntimeDispatchInfo};
 use sp_core::OpaqueMetadata;
+use sp_mmr_primitives as mmr;
 use sp_runtime::{
 	create_runtime_str, generic, impl_opaque_keys,
 	traits::{
@@ -1795,6 +1795,12 @@ sp_api::impl_runtime_apis! {
 			// dummy implementation due to lack of MMR pallet.
 			Err(mmr::Error::Verify)
 		}
+
+		fn mmr_root() -> Result<Hash, mmr::Error> {
+			// dummy implementation due to lack of MMR pallet.
+			Err(mmr::Error::Verify)
+		}
+
 	}
 
 	impl fg_primitives::GrandpaApi<Block> for Runtime {
diff --git a/polkadot/runtime/polkadot/Cargo.toml b/polkadot/runtime/polkadot/Cargo.toml
index 60393e386668b8e131a53b982d89251f7095b609..2296929adb916d5d2f1f3f5f1a637b3afe40b81b 100644
--- a/polkadot/runtime/polkadot/Cargo.toml
+++ b/polkadot/runtime/polkadot/Cargo.toml
@@ -26,6 +26,7 @@ tx-pool-api = { package = "sp-transaction-pool", git = "https://github.com/parit
 sp-api = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 sp-std = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 sp-io = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
+sp-mmr-primitives = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 sp-staking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 sp-core = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
@@ -52,7 +53,6 @@ pallet-identity = { git = "https://github.com/paritytech/substrate", branch = "m
 pallet-im-online = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 pallet-indices = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 pallet-membership = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
-pallet-mmr-primitives = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 pallet-multisig = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 pallet-nicks = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 pallet-offences = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
@@ -119,6 +119,7 @@ std = [
 	"block-builder-api/std",
 	"offchain-primitives/std",
 	"sp-std/std",
+	"sp-mmr-primitives/std",
 	"frame-support/std",
 	"frame-executive/std",
 	"pallet-authority-discovery/std",
@@ -167,7 +168,6 @@ std = [
 	"frame-try-runtime/std",
 	"sp-npos-elections/std",
 	"beefy-primitives/std",
-	"pallet-mmr-primitives/std",
 	"frame-election-provider-support/std",
 	"pallet-xcm/std",
 	"xcm/std",
diff --git a/polkadot/runtime/polkadot/src/lib.rs b/polkadot/runtime/polkadot/src/lib.rs
index ea72ba6db1bd32009b363e227f4256a82eea6e3c..be2ff54f67eff720ff4e37b13477b9b70e1ccead 100644
--- a/polkadot/runtime/polkadot/src/lib.rs
+++ b/polkadot/runtime/polkadot/src/lib.rs
@@ -53,7 +53,6 @@ use frame_support::{
 use frame_system::EnsureRoot;
 use pallet_grandpa::{fg_primitives, AuthorityId as GrandpaId};
 use pallet_im_online::sr25519::AuthorityId as ImOnlineId;
-use pallet_mmr_primitives as mmr;
 use pallet_session::historical as session_historical;
 use pallet_transaction_payment::{FeeDetails, RuntimeDispatchInfo};
 use parity_scale_codec::{Decode, Encode, MaxEncodedLen};
@@ -65,6 +64,7 @@ use primitives::v2::{
 	ValidationCodeHash, ValidatorId, ValidatorIndex,
 };
 use sp_core::OpaqueMetadata;
+use sp_mmr_primitives as mmr;
 use sp_runtime::{
 	create_runtime_str,
 	curve::PiecewiseLinear,
@@ -1943,6 +1943,11 @@ sp_api::impl_runtime_apis! {
 			// dummy implementation due to lack of MMR pallet.
 			Err(mmr::Error::Verify)
 		}
+
+		fn mmr_root() -> Result<Hash, mmr::Error> {
+			// dummy implementation due to lack of MMR pallet.
+			Err(mmr::Error::Verify)
+		}
 	}
 
 	impl fg_primitives::GrandpaApi<Block> for Runtime {
diff --git a/polkadot/runtime/rococo/Cargo.toml b/polkadot/runtime/rococo/Cargo.toml
index 08c1a7bfa607ddcb8acd6a7ebb4d7ae17b641ccc..53387190de5cba8b095243c3945cc5d2a5c73bcb 100644
--- a/polkadot/runtime/rococo/Cargo.toml
+++ b/polkadot/runtime/rococo/Cargo.toml
@@ -17,6 +17,7 @@ frame-support = { git = "https://github.com/paritytech/substrate", branch = "mas
 sp-api = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 sp-io = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 sp-std = { package = "sp-std", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
+sp-mmr-primitives = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 sp-session = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 sp-staking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
@@ -44,7 +45,6 @@ pallet-im-online = { git = "https://github.com/paritytech/substrate", branch = "
 pallet-indices = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 pallet-membership = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 pallet-mmr = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
-pallet-mmr-primitives = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 pallet-multisig = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
@@ -118,7 +118,6 @@ std = [
 	"pallet-sudo/std",
 	"pallet-membership/std",
 	"pallet-mmr/std",
-	"pallet-mmr-primitives/std",
 	"pallet-indices/std",
 	"pallet-im-online/std",
 	"pallet-session/std",
@@ -137,6 +136,7 @@ std = [
 	"sp-api/std",
 	"sp-core/std",
 	"sp-io/std",
+	"sp-mmr-primitives/std",
 	"sp-runtime/std",
 	"sp-session/std",
 	"sp-staking/std",
diff --git a/polkadot/runtime/rococo/src/lib.rs b/polkadot/runtime/rococo/src/lib.rs
index 85858edcb69b5e4d571ade17ce5cae08b6db136c..31a12372153300736a928e2bf8fc0605859c95af 100644
--- a/polkadot/runtime/rococo/src/lib.rs
+++ b/polkadot/runtime/rococo/src/lib.rs
@@ -33,7 +33,6 @@ use frame_support::{
 use frame_system::EnsureRoot;
 use pallet_grandpa::{fg_primitives, AuthorityId as GrandpaId};
 use pallet_im_online::sr25519::AuthorityId as ImOnlineId;
-use pallet_mmr_primitives as mmr;
 use pallet_session::historical as session_historical;
 use pallet_transaction_payment::{CurrencyAdapter, FeeDetails, RuntimeDispatchInfo};
 use parity_scale_codec::{Decode, Encode, MaxEncodedLen};
@@ -51,6 +50,7 @@ use runtime_common::{
 use runtime_parachains::{self, runtime_api_impl::v2 as runtime_api_impl};
 use scale_info::TypeInfo;
 use sp_core::{OpaqueMetadata, RuntimeDebug, H256};
+use sp_mmr_primitives as mmr;
 use sp_runtime::{
 	create_runtime_str, generic, impl_opaque_keys,
 	traits::{
@@ -1371,7 +1371,7 @@ sp_api::impl_runtime_apis! {
 		}
 	}
 
-	impl pallet_mmr_primitives::MmrApi<Block, Hash> for Runtime {
+	impl mmr::MmrApi<Block, Hash> for Runtime {
 		fn generate_proof(leaf_index: u64)
 			-> Result<(mmr::EncodableOpaqueLeaf, mmr::Proof<Hash>), mmr::Error>
 		{
@@ -1383,7 +1383,7 @@ sp_api::impl_runtime_apis! {
 			-> Result<(), mmr::Error>
 		{
 			pub type Leaf = <
-				<Runtime as pallet_mmr::Config>::LeafData as mmr::LeafDataProvider
+				<Runtime as pallet_mmr::Config>::LeafData as pallet_mmr::LeafDataProvider
 			>::LeafData;
 
 			let leaf: Leaf = leaf
@@ -1402,6 +1402,10 @@ sp_api::impl_runtime_apis! {
 			let node = mmr::DataOrHash::Data(leaf.into_opaque_leaf());
 			pallet_mmr::verify_leaf_proof::<MmrHashing, _>(root, node, proof)
 		}
+
+		fn mmr_root() -> Result<Hash, mmr::Error> {
+			Ok(Mmr::mmr_root())
+		}
 	}
 
 	impl bp_rococo::RococoFinalityApi<Block> for Runtime {
diff --git a/polkadot/runtime/test-runtime/Cargo.toml b/polkadot/runtime/test-runtime/Cargo.toml
index 9906cbe11a79060d5c1b3fe40f6256691b4d7317..692a49ce00f7a67641045e4326b89642916497b9 100644
--- a/polkadot/runtime/test-runtime/Cargo.toml
+++ b/polkadot/runtime/test-runtime/Cargo.toml
@@ -26,6 +26,7 @@ sp-io = { git = "https://github.com/paritytech/substrate", branch = "master", de
 sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 sp-staking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 sp-core = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
+sp-mmr-primitives = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 sp-session = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 sp-version = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 frame-election-provider-support = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
@@ -41,7 +42,6 @@ pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/parityt
 frame-executive = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 pallet-grandpa = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 pallet-indices = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
-pallet-mmr-primitives = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 pallet-nicks = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 pallet-offences = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 pallet-session = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
diff --git a/polkadot/runtime/test-runtime/src/lib.rs b/polkadot/runtime/test-runtime/src/lib.rs
index 045844c9d4ae57d54c19ec6124ffe944c2b7564a..eca41d36940127a20d7ce2c3ba75ed6941406f50 100644
--- a/polkadot/runtime/test-runtime/src/lib.rs
+++ b/polkadot/runtime/test-runtime/src/lib.rs
@@ -40,7 +40,6 @@ use frame_support::{
 	traits::{Everything, KeyOwnerProofSystem},
 };
 use pallet_grandpa::{fg_primitives, AuthorityId as GrandpaId};
-use pallet_mmr_primitives as mmr;
 use pallet_session::historical as session_historical;
 use pallet_transaction_payment::{FeeDetails, RuntimeDispatchInfo};
 use polkadot_runtime_parachains::reward_points::RewardValidatorsWithEraPoints;
@@ -57,6 +56,7 @@ use runtime_common::{
 	SlowAdjustingFeeUpdate,
 };
 use sp_core::OpaqueMetadata;
+use sp_mmr_primitives as mmr;
 use sp_runtime::{
 	create_runtime_str,
 	curve::PiecewiseLinear,
@@ -930,6 +930,12 @@ sp_api::impl_runtime_apis! {
 			// dummy implementation due to lack of MMR pallet.
 			Err(mmr::Error::Verify)
 		}
+
+		fn mmr_root() -> Result<Hash, mmr::Error> {
+			// dummy implementation due to lack of MMR pallet.
+			Err(mmr::Error::Verify)
+		}
+
 	}
 
 	impl fg_primitives::GrandpaApi<Block> for Runtime {
diff --git a/polkadot/runtime/westend/Cargo.toml b/polkadot/runtime/westend/Cargo.toml
index 60308c08c5b802150bec0765dcd7af0f6812a0f4..24ddd4e509f4c054832a0b6664514fb90f4bcefa 100644
--- a/polkadot/runtime/westend/Cargo.toml
+++ b/polkadot/runtime/westend/Cargo.toml
@@ -23,6 +23,7 @@ offchain-primitives = { package = "sp-offchain", git = "https://github.com/parit
 sp-api = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 sp-std = { package = "sp-std", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 sp-io = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
+sp-mmr-primitives = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 sp-staking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 sp-core = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
@@ -52,7 +53,6 @@ pallet-identity = { git = "https://github.com/paritytech/substrate", branch = "m
 pallet-im-online = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 pallet-indices = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 pallet-membership = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
-pallet-mmr-primitives = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 pallet-multisig = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 pallet-nicks = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
 pallet-offences = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
@@ -135,7 +135,6 @@ std = [
 	"pallet-im-online/std",
 	"pallet-indices/std",
 	"pallet-membership/std",
-	"pallet-mmr-primitives/std",
 	"beefy-primitives/std",
 	"pallet-multisig/std",
 	"pallet-nicks/std",
@@ -156,6 +155,7 @@ std = [
 	"pallet-babe/std",
 	"pallet-bags-list/std",
 	"frame-executive/std",
+	"sp-mmr-primitives/std",
 	"sp-runtime/std",
 	"sp-staking/std",
 	"frame-system/std",
diff --git a/polkadot/runtime/westend/src/lib.rs b/polkadot/runtime/westend/src/lib.rs
index 970145623de03383756bb8315ffdb8e733f6b743..c9820911fd263ca917439d4321e7caa261c22832 100644
--- a/polkadot/runtime/westend/src/lib.rs
+++ b/polkadot/runtime/westend/src/lib.rs
@@ -32,7 +32,6 @@ use frame_support::{
 use frame_system::EnsureRoot;
 use pallet_grandpa::{fg_primitives, AuthorityId as GrandpaId};
 use pallet_im_online::sr25519::AuthorityId as ImOnlineId;
-use pallet_mmr_primitives as mmr;
 use pallet_session::historical as session_historical;
 use pallet_transaction_payment::{CurrencyAdapter, FeeDetails, RuntimeDispatchInfo};
 use parity_scale_codec::{Decode, Encode, MaxEncodedLen};
@@ -58,6 +57,7 @@ use runtime_parachains::{
 };
 use scale_info::TypeInfo;
 use sp_core::{OpaqueMetadata, RuntimeDebug};
+use sp_mmr_primitives as mmr;
 use sp_runtime::{
 	create_runtime_str,
 	curve::PiecewiseLinear,
@@ -1326,7 +1326,7 @@ sp_api::impl_runtime_apis! {
 		}
 	}
 
-	impl pallet_mmr_primitives::MmrApi<Block, Hash> for Runtime {
+	impl mmr::MmrApi<Block, Hash> for Runtime {
 		fn generate_proof(_leaf_index: u64)
 			-> Result<(mmr::EncodableOpaqueLeaf, mmr::Proof<Hash>), mmr::Error>
 		{
@@ -1349,6 +1349,11 @@ sp_api::impl_runtime_apis! {
 			// dummy implementation due to lack of MMR pallet.
 			Err(mmr::Error::Verify)
 		}
+
+		fn mmr_root() -> Result<Hash, mmr::Error> {
+			// dummy implementation due to lack of MMR pallet.
+			Err(mmr::Error::Verify)
+		}
 	}
 
 	impl fg_primitives::GrandpaApi<Block> for Runtime {