diff --git a/substrate/.gitlab-ci.yml b/substrate/.gitlab-ci.yml
index 2ffa8a4b977bac99dc03f2fabd665370c5aa7b4b..727ee20496489f711ae19af30cdf6c2f1c0cd99f 100644
--- a/substrate/.gitlab-ci.yml
+++ b/substrate/.gitlab-ci.yml
@@ -40,7 +40,7 @@ variables:                         &default-vars
   ARCH:                            "x86_64"
   CI_IMAGE:                        "paritytech/ci-linux:production"
   # FIXME set to release
-  CARGO_UNLEASH_INSTALL_PARAMS:    "--version 1.0.0-alpha.11"
+  CARGO_UNLEASH_INSTALL_PARAMS:    "--version 1.0.0-alpha.12"
   CARGO_UNLEASH_PKG_DEF:           "--skip node node-* pallet-template pallet-example pallet-example-* subkey chain-spec-builder"
 
 default:
@@ -326,13 +326,14 @@ test-linux-stable:                 &test-linux
 unleash-check:
   stage:                           test
   <<:                              *docker-env
-  rules:
-    - if: $CI_PIPELINE_SOURCE == "pipeline"
-      when: never
-    - if: $CI_COMMIT_REF_NAME == "master"
-    - if: $CI_COMMIT_REF_NAME =~ /^v[0-9]+\.[0-9]+.*$/              # i.e. v1.0, v2.1rc1
+  <<:                              *test-refs-no-trigger
   script:
     - cargo install cargo-unleash ${CARGO_UNLEASH_INSTALL_PARAMS}
+    - cargo unleash de-dev-deps
+    # Reuse build artifacts when running checks (cuts down check time by 3x)
+    # TODO: Implement this optimization in cargo-unleash rather than here
+    - mkdir -p target/unleash
+    - export CARGO_TARGET_DIR=target/unleash
     - cargo unleash check ${CARGO_UNLEASH_PKG_DEF}
 
 test-frame-examples-compile-to-wasm:
diff --git a/substrate/.maintain/gitlab/check_polkadot_companion_build.sh b/substrate/.maintain/gitlab/check_polkadot_companion_build.sh
index 89780f082e45bbfeb35387ae4e7eccf1840a3771..531155b73dfc8bb382f69ccd2e61e7617f7a8bed 100755
--- a/substrate/.maintain/gitlab/check_polkadot_companion_build.sh
+++ b/substrate/.maintain/gitlab/check_polkadot_companion_build.sh
@@ -88,5 +88,12 @@ fi
 # Patch all Substrate crates in Polkadot
 diener patch --crates-to-patch ../ --substrate --path Cargo.toml
 
+# We need to update specifically our patched Substrate crates so that other
+# crates that depend on them (e.g. Polkadot, BEEFY) use this unified version
+# NOTE: There's no way to only update patched crates, so we use a heuristic
+# of updating a crucial Substrate crate (`sp-core`) to minimize the impact of
+# updating unrelated dependencies
+cargo update -p sp-core
+
 # Test Polkadot pr or master branch with this Substrate commit.
 time cargo test --all --release --verbose
diff --git a/substrate/Cargo.lock b/substrate/Cargo.lock
index c40c48a9b44463c5b392ca0738733b707f684bf6..38a401f11ac25177b0d4838ae323e3d23edf9ba6 100644
--- a/substrate/Cargo.lock
+++ b/substrate/Cargo.lock
@@ -1760,7 +1760,7 @@ dependencies = [
 
 [[package]]
 name = "frame-benchmarking"
-version = "3.1.0"
+version = "4.0.0-dev"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -1780,7 +1780,7 @@ dependencies = [
 
 [[package]]
 name = "frame-benchmarking-cli"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "Inflector",
  "chrono",
@@ -1803,7 +1803,7 @@ dependencies = [
 
 [[package]]
 name = "frame-election-provider-support"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -1816,7 +1816,7 @@ dependencies = [
 
 [[package]]
 name = "frame-executive"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -1836,7 +1836,7 @@ dependencies = [
 
 [[package]]
 name = "frame-metadata"
-version = "13.0.0"
+version = "14.0.0-dev"
 dependencies = [
  "parity-scale-codec",
  "serde",
@@ -1846,7 +1846,7 @@ dependencies = [
 
 [[package]]
 name = "frame-support"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "bitflags",
  "frame-metadata",
@@ -1874,7 +1874,7 @@ dependencies = [
 
 [[package]]
 name = "frame-support-procedural"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "Inflector",
  "frame-support-procedural-tools",
@@ -1885,7 +1885,7 @@ dependencies = [
 
 [[package]]
 name = "frame-support-procedural-tools"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "frame-support-procedural-tools-derive",
  "proc-macro-crate 1.0.0",
@@ -1924,7 +1924,7 @@ dependencies = [
 
 [[package]]
 name = "frame-system"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "criterion",
  "frame-support",
@@ -1943,7 +1943,7 @@ dependencies = [
 
 [[package]]
 name = "frame-system-benchmarking"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -1958,7 +1958,7 @@ dependencies = [
 
 [[package]]
 name = "frame-system-rpc-runtime-api"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "parity-scale-codec",
  "sp-api",
@@ -1966,7 +1966,7 @@ dependencies = [
 
 [[package]]
 name = "frame-try-runtime"
-version = "0.9.0"
+version = "0.10.0-dev"
 dependencies = [
  "frame-support",
  "parity-scale-codec",
@@ -4091,7 +4091,7 @@ dependencies = [
 
 [[package]]
 name = "node-bench"
-version = "0.8.0"
+version = "0.9.0-dev"
 dependencies = [
  "derive_more",
  "fs_extra",
@@ -4129,7 +4129,7 @@ dependencies = [
 
 [[package]]
 name = "node-browser-testing"
-version = "2.0.0"
+version = "3.0.0-dev"
 dependencies = [
  "futures 0.3.15",
  "futures-timer 3.0.2",
@@ -4147,7 +4147,7 @@ dependencies = [
 
 [[package]]
 name = "node-cli"
-version = "2.0.0"
+version = "3.0.0-dev"
 dependencies = [
  "assert_cmd",
  "async-std",
@@ -4216,6 +4216,7 @@ dependencies = [
  "sp-keystore",
  "sp-runtime",
  "sp-timestamp",
+ "sp-transaction-pool",
  "sp-trie",
  "structopt",
  "substrate-browser-utils",
@@ -4229,7 +4230,7 @@ dependencies = [
 
 [[package]]
 name = "node-executor"
-version = "2.0.0"
+version = "3.0.0-dev"
 dependencies = [
  "criterion",
  "frame-benchmarking",
@@ -4266,7 +4267,7 @@ dependencies = [
 
 [[package]]
 name = "node-inspect"
-version = "0.8.0"
+version = "0.9.0-dev"
 dependencies = [
  "derive_more",
  "log",
@@ -4295,7 +4296,7 @@ dependencies = [
 
 [[package]]
 name = "node-rpc"
-version = "2.0.0"
+version = "3.0.0-dev"
 dependencies = [
  "jsonrpc-core",
  "node-primitives",
@@ -4339,7 +4340,7 @@ dependencies = [
 
 [[package]]
 name = "node-runtime"
-version = "2.0.1"
+version = "3.0.0-dev"
 dependencies = [
  "frame-benchmarking",
  "frame-election-provider-support",
@@ -4491,7 +4492,7 @@ dependencies = [
 
 [[package]]
 name = "node-testing"
-version = "2.0.0"
+version = "3.0.0-dev"
 dependencies = [
  "criterion",
  "frame-support",
@@ -4697,7 +4698,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-assets"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -4712,7 +4713,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-atomic-swap"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -4726,7 +4727,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-aura"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -4745,7 +4746,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-authority-discovery"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -4762,7 +4763,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-authorship"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -4778,7 +4779,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-babe"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "frame-benchmarking",
  "frame-election-provider-support",
@@ -4806,7 +4807,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-balances"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -4822,7 +4823,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-bounties"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -4839,7 +4840,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-collective"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -4856,7 +4857,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-contracts"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "assert_matches",
  "bitflags",
@@ -4889,7 +4890,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-contracts-primitives"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "bitflags",
  "parity-scale-codec",
@@ -4901,7 +4902,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-contracts-proc-macro"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -4910,7 +4911,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-contracts-rpc"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "jsonrpc-core",
  "jsonrpc-core-client",
@@ -4929,7 +4930,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-contracts-rpc-runtime-api"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "pallet-contracts-primitives",
  "parity-scale-codec",
@@ -4940,7 +4941,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-democracy"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -4960,7 +4961,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-election-provider-multi-phase"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "frame-benchmarking",
  "frame-election-provider-support",
@@ -4986,7 +4987,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-elections"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -5001,7 +5002,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-elections-phragmen"
-version = "4.0.0"
+version = "5.0.0-dev"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5020,7 +5021,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-example"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5036,7 +5037,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-example-offchain-worker"
-version = "2.0.1"
+version = "3.0.0-dev"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -5052,7 +5053,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-example-parallel"
-version = "2.0.1"
+version = "3.0.0-dev"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -5067,7 +5068,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-gilt"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5083,7 +5084,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-grandpa"
-version = "3.1.0"
+version = "4.0.0-dev"
 dependencies = [
  "finality-grandpa",
  "frame-benchmarking",
@@ -5112,7 +5113,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-identity"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "enumflags2",
  "frame-benchmarking",
@@ -5128,7 +5129,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-im-online"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5147,7 +5148,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-indices"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5163,7 +5164,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-lottery"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5180,7 +5181,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-membership"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5195,7 +5196,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-mmr"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "ckb-merkle-mountain-range",
  "env_logger 0.8.3",
@@ -5213,7 +5214,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-mmr-primitives"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -5247,7 +5248,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-multisig"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5262,7 +5263,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-nicks"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -5276,7 +5277,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-node-authorization"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -5290,7 +5291,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-offences"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -5307,7 +5308,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-offences-benchmarking"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "frame-benchmarking",
  "frame-election-provider-support",
@@ -5333,7 +5334,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-proxy"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5349,7 +5350,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-randomness-collective-flip"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -5363,7 +5364,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-recovery"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "enumflags2",
  "frame-support",
@@ -5378,7 +5379,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-scheduler"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5394,7 +5395,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-scored-pool"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -5408,7 +5409,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-session"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -5429,7 +5430,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-session-benchmarking"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "frame-benchmarking",
  "frame-election-provider-support",
@@ -5452,7 +5453,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-society"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "frame-support",
  "frame-support-test",
@@ -5468,7 +5469,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-staking"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "frame-benchmarking",
  "frame-election-provider-support",
@@ -5500,7 +5501,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-staking-reward-curve"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "proc-macro-crate 1.0.0",
  "proc-macro2",
@@ -5511,7 +5512,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-staking-reward-fn"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "log",
  "sp-arithmetic",
@@ -5519,7 +5520,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-sudo"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -5546,7 +5547,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-timestamp"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5564,7 +5565,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-tips"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5582,7 +5583,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-transaction-payment"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -5600,7 +5601,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-transaction-payment-rpc"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "jsonrpc-core",
  "jsonrpc-core-client",
@@ -5616,7 +5617,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-transaction-payment-rpc-runtime-api"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "pallet-transaction-payment",
  "parity-scale-codec",
@@ -5626,7 +5627,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-transaction-storage"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5646,7 +5647,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-treasury"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5664,7 +5665,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-uniques"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5679,7 +5680,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-utility"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5694,7 +5695,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-vesting"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "enumflags2",
  "frame-benchmarking",
@@ -6754,7 +6755,7 @@ dependencies = [
 
 [[package]]
 name = "remote-externalities"
-version = "0.9.0"
+version = "0.10.0-dev"
 dependencies = [
  "env_logger 0.8.3",
  "frame-support",
@@ -6983,7 +6984,7 @@ dependencies = [
 
 [[package]]
 name = "sc-allocator"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "log",
  "sp-core",
@@ -6993,7 +6994,7 @@ dependencies = [
 
 [[package]]
 name = "sc-authority-discovery"
-version = "0.9.0"
+version = "0.10.0-dev"
 dependencies = [
  "async-trait",
  "derive_more",
@@ -7025,7 +7026,7 @@ dependencies = [
 
 [[package]]
 name = "sc-basic-authorship"
-version = "0.9.0"
+version = "0.10.0-dev"
 dependencies = [
  "futures 0.3.15",
  "futures-timer 3.0.2",
@@ -7050,7 +7051,7 @@ dependencies = [
 
 [[package]]
 name = "sc-block-builder"
-version = "0.9.0"
+version = "0.10.0-dev"
 dependencies = [
  "parity-scale-codec",
  "sc-client-api",
@@ -7067,7 +7068,7 @@ dependencies = [
 
 [[package]]
 name = "sc-chain-spec"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "impl-trait-for-tuples",
  "parity-scale-codec",
@@ -7086,7 +7087,7 @@ dependencies = [
 
 [[package]]
 name = "sc-chain-spec-derive"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "proc-macro-crate 1.0.0",
  "proc-macro2",
@@ -7096,7 +7097,7 @@ dependencies = [
 
 [[package]]
 name = "sc-cli"
-version = "0.9.0"
+version = "0.10.0-dev"
 dependencies = [
  "chrono",
  "fdlimit",
@@ -7134,7 +7135,7 @@ dependencies = [
 
 [[package]]
 name = "sc-client-api"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "derive_more",
  "fnv",
@@ -7171,7 +7172,7 @@ dependencies = [
 
 [[package]]
 name = "sc-client-db"
-version = "0.9.0"
+version = "0.10.0-dev"
 dependencies = [
  "blake2-rfc",
  "hash-db",
@@ -7205,7 +7206,7 @@ dependencies = [
 
 [[package]]
 name = "sc-consensus"
-version = "0.9.0"
+version = "0.10.0-dev"
 dependencies = [
  "async-trait",
  "parking_lot 0.11.1",
@@ -7217,7 +7218,7 @@ dependencies = [
 
 [[package]]
 name = "sc-consensus-aura"
-version = "0.9.0"
+version = "0.10.0-dev"
 dependencies = [
  "async-trait",
  "derive_more",
@@ -7259,7 +7260,7 @@ dependencies = [
 
 [[package]]
 name = "sc-consensus-babe"
-version = "0.9.0"
+version = "0.10.0-dev"
 dependencies = [
  "async-trait",
  "derive_more",
@@ -7315,7 +7316,7 @@ dependencies = [
 
 [[package]]
 name = "sc-consensus-babe-rpc"
-version = "0.9.0"
+version = "0.10.0-dev"
 dependencies = [
  "derive_more",
  "futures 0.3.15",
@@ -7344,7 +7345,7 @@ dependencies = [
 
 [[package]]
 name = "sc-consensus-epochs"
-version = "0.9.0"
+version = "0.10.0-dev"
 dependencies = [
  "fork-tree",
  "parity-scale-codec",
@@ -7356,7 +7357,7 @@ dependencies = [
 
 [[package]]
 name = "sc-consensus-manual-seal"
-version = "0.9.0"
+version = "0.10.0-dev"
 dependencies = [
  "assert_matches",
  "async-trait",
@@ -7395,7 +7396,7 @@ dependencies = [
 
 [[package]]
 name = "sc-consensus-pow"
-version = "0.9.0"
+version = "0.10.0-dev"
 dependencies = [
  "async-trait",
  "derive_more",
@@ -7418,7 +7419,7 @@ dependencies = [
 
 [[package]]
 name = "sc-consensus-slots"
-version = "0.9.0"
+version = "0.10.0-dev"
 dependencies = [
  "async-trait",
  "futures 0.3.15",
@@ -7446,7 +7447,7 @@ dependencies = [
 
 [[package]]
 name = "sc-consensus-uncles"
-version = "0.9.0"
+version = "0.10.0-dev"
 dependencies = [
  "sc-client-api",
  "sp-authorship",
@@ -7456,7 +7457,7 @@ dependencies = [
 
 [[package]]
 name = "sc-executor"
-version = "0.9.0"
+version = "0.10.0-dev"
 dependencies = [
  "assert_matches",
  "derive_more",
@@ -7498,7 +7499,7 @@ dependencies = [
 
 [[package]]
 name = "sc-executor-common"
-version = "0.9.0"
+version = "0.10.0-dev"
 dependencies = [
  "derive_more",
  "parity-scale-codec",
@@ -7514,7 +7515,7 @@ dependencies = [
 
 [[package]]
 name = "sc-executor-wasmi"
-version = "0.9.0"
+version = "0.10.0-dev"
 dependencies = [
  "log",
  "parity-scale-codec",
@@ -7528,7 +7529,7 @@ dependencies = [
 
 [[package]]
 name = "sc-executor-wasmtime"
-version = "0.9.0"
+version = "0.10.0-dev"
 dependencies = [
  "assert_matches",
  "cfg-if 1.0.0",
@@ -7551,7 +7552,7 @@ dependencies = [
 
 [[package]]
 name = "sc-finality-grandpa"
-version = "0.9.0"
+version = "0.10.0-dev"
 dependencies = [
  "assert_matches",
  "async-trait",
@@ -7600,7 +7601,7 @@ dependencies = [
 
 [[package]]
 name = "sc-finality-grandpa-rpc"
-version = "0.9.0"
+version = "0.10.0-dev"
 dependencies = [
  "derive_more",
  "finality-grandpa",
@@ -7630,7 +7631,7 @@ dependencies = [
 
 [[package]]
 name = "sc-finality-grandpa-warp-sync"
-version = "0.9.0"
+version = "0.10.0-dev"
 dependencies = [
  "derive_more",
  "finality-grandpa",
@@ -7656,7 +7657,7 @@ dependencies = [
 
 [[package]]
 name = "sc-informant"
-version = "0.9.0"
+version = "0.10.0-dev"
 dependencies = [
  "ansi_term 0.12.1",
  "futures 0.3.15",
@@ -7673,7 +7674,7 @@ dependencies = [
 
 [[package]]
 name = "sc-keystore"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "async-trait",
  "derive_more",
@@ -7693,7 +7694,7 @@ dependencies = [
 
 [[package]]
 name = "sc-light"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "hash-db",
  "lazy_static",
@@ -7711,7 +7712,7 @@ dependencies = [
 
 [[package]]
 name = "sc-network"
-version = "0.9.0"
+version = "0.10.0-dev"
 dependencies = [
  "assert_matches",
  "async-std",
@@ -7771,7 +7772,7 @@ dependencies = [
 
 [[package]]
 name = "sc-network-gossip"
-version = "0.9.0"
+version = "0.10.0-dev"
 dependencies = [
  "async-std",
  "futures 0.3.15",
@@ -7819,7 +7820,7 @@ dependencies = [
 
 [[package]]
 name = "sc-offchain"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "bytes 0.5.6",
  "fnv",
@@ -7855,7 +7856,7 @@ dependencies = [
 
 [[package]]
 name = "sc-peerset"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "futures 0.3.15",
  "libp2p",
@@ -7876,7 +7877,7 @@ dependencies = [
 
 [[package]]
 name = "sc-rpc"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "assert_matches",
  "futures 0.1.31",
@@ -7919,7 +7920,7 @@ dependencies = [
 
 [[package]]
 name = "sc-rpc-api"
-version = "0.9.0"
+version = "0.10.0-dev"
 dependencies = [
  "derive_more",
  "futures 0.3.15",
@@ -7943,7 +7944,7 @@ dependencies = [
 
 [[package]]
 name = "sc-rpc-server"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "futures 0.1.31",
  "jsonrpc-core",
@@ -7973,7 +7974,7 @@ dependencies = [
 
 [[package]]
 name = "sc-service"
-version = "0.9.0"
+version = "0.10.0-dev"
 dependencies = [
  "async-std",
  "async-trait",
@@ -8082,7 +8083,7 @@ dependencies = [
 
 [[package]]
 name = "sc-state-db"
-version = "0.9.0"
+version = "0.10.0-dev"
 dependencies = [
  "log",
  "parity-scale-codec",
@@ -8096,7 +8097,7 @@ dependencies = [
 
 [[package]]
 name = "sc-sync-state-rpc"
-version = "0.9.0"
+version = "0.10.0-dev"
 dependencies = [
  "jsonrpc-core",
  "jsonrpc-core-client",
@@ -8115,7 +8116,7 @@ dependencies = [
 
 [[package]]
 name = "sc-telemetry"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "chrono",
  "futures 0.3.15",
@@ -8134,7 +8135,7 @@ dependencies = [
 
 [[package]]
 name = "sc-tracing"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "ansi_term 0.12.1",
  "atty",
@@ -8170,7 +8171,7 @@ dependencies = [
 
 [[package]]
 name = "sc-tracing-proc-macro"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "proc-macro-crate 1.0.0",
  "proc-macro2",
@@ -8180,7 +8181,7 @@ dependencies = [
 
 [[package]]
 name = "sc-transaction-pool"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "assert_matches",
  "criterion",
@@ -8216,7 +8217,7 @@ dependencies = [
 
 [[package]]
 name = "sc-transaction-pool-api"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "derive_more",
  "futures 0.3.15",
@@ -8639,7 +8640,7 @@ dependencies = [
 
 [[package]]
 name = "sp-api"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "hash-db",
  "log",
@@ -8656,7 +8657,7 @@ dependencies = [
 
 [[package]]
 name = "sp-api-proc-macro"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "blake2-rfc",
  "proc-macro-crate 1.0.0",
@@ -8689,7 +8690,7 @@ dependencies = [
 
 [[package]]
 name = "sp-application-crypto"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "parity-scale-codec",
  "serde",
@@ -8712,7 +8713,7 @@ dependencies = [
 
 [[package]]
 name = "sp-arithmetic"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "criterion",
  "integer-sqrt",
@@ -8740,7 +8741,7 @@ dependencies = [
 
 [[package]]
 name = "sp-authority-discovery"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "parity-scale-codec",
  "sp-api",
@@ -8751,7 +8752,7 @@ dependencies = [
 
 [[package]]
 name = "sp-authorship"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "async-trait",
  "parity-scale-codec",
@@ -8762,7 +8763,7 @@ dependencies = [
 
 [[package]]
 name = "sp-block-builder"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "parity-scale-codec",
  "sp-api",
@@ -8773,7 +8774,7 @@ dependencies = [
 
 [[package]]
 name = "sp-blockchain"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "futures 0.3.15",
  "log",
@@ -8790,7 +8791,7 @@ dependencies = [
 
 [[package]]
 name = "sp-consensus"
-version = "0.9.0"
+version = "0.10.0-dev"
 dependencies = [
  "async-trait",
  "futures 0.3.15",
@@ -8817,7 +8818,7 @@ dependencies = [
 
 [[package]]
 name = "sp-consensus-aura"
-version = "0.9.0"
+version = "0.10.0-dev"
 dependencies = [
  "async-trait",
  "parity-scale-codec",
@@ -8833,7 +8834,7 @@ dependencies = [
 
 [[package]]
 name = "sp-consensus-babe"
-version = "0.9.0"
+version = "0.10.0-dev"
 dependencies = [
  "async-trait",
  "merlin",
@@ -8854,7 +8855,7 @@ dependencies = [
 
 [[package]]
 name = "sp-consensus-pow"
-version = "0.9.0"
+version = "0.10.0-dev"
 dependencies = [
  "parity-scale-codec",
  "sp-api",
@@ -8865,7 +8866,7 @@ dependencies = [
 
 [[package]]
 name = "sp-consensus-slots"
-version = "0.9.0"
+version = "0.10.0-dev"
 dependencies = [
  "parity-scale-codec",
  "sp-arithmetic",
@@ -8874,7 +8875,7 @@ dependencies = [
 
 [[package]]
 name = "sp-consensus-vrf"
-version = "0.9.0"
+version = "0.10.0-dev"
 dependencies = [
  "parity-scale-codec",
  "schnorrkel",
@@ -8885,7 +8886,7 @@ dependencies = [
 
 [[package]]
 name = "sp-core"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "base58",
  "blake2-rfc",
@@ -8934,7 +8935,7 @@ dependencies = [
 
 [[package]]
 name = "sp-database"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "kvdb",
  "parking_lot 0.11.1",
@@ -8951,7 +8952,7 @@ dependencies = [
 
 [[package]]
 name = "sp-externalities"
-version = "0.9.0"
+version = "0.10.0-dev"
 dependencies = [
  "environmental",
  "parity-scale-codec",
@@ -8961,7 +8962,7 @@ dependencies = [
 
 [[package]]
 name = "sp-finality-grandpa"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "finality-grandpa",
  "log",
@@ -8977,7 +8978,7 @@ dependencies = [
 
 [[package]]
 name = "sp-inherents"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "async-trait",
  "futures 0.3.15",
@@ -8991,7 +8992,7 @@ dependencies = [
 
 [[package]]
 name = "sp-io"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "futures 0.3.15",
  "hash-db",
@@ -9015,7 +9016,7 @@ dependencies = [
 
 [[package]]
 name = "sp-keyring"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "lazy_static",
  "sp-core",
@@ -9025,7 +9026,7 @@ dependencies = [
 
 [[package]]
 name = "sp-keystore"
-version = "0.9.0"
+version = "0.10.0-dev"
 dependencies = [
  "async-trait",
  "derive_more",
@@ -9043,7 +9044,7 @@ dependencies = [
 
 [[package]]
 name = "sp-maybe-compressed-blob"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "ruzstd",
  "zstd",
@@ -9051,7 +9052,7 @@ dependencies = [
 
 [[package]]
 name = "sp-npos-elections"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "parity-scale-codec",
  "rand 0.7.3",
@@ -9066,7 +9067,7 @@ dependencies = [
 
 [[package]]
 name = "sp-npos-elections-compact"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "parity-scale-codec",
  "proc-macro-crate 1.0.0",
@@ -9094,7 +9095,7 @@ dependencies = [
 
 [[package]]
 name = "sp-offchain"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "sp-api",
  "sp-core",
@@ -9111,7 +9112,7 @@ dependencies = [
 
 [[package]]
 name = "sp-rpc"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "rustc-hash",
  "serde",
@@ -9122,7 +9123,7 @@ dependencies = [
 
 [[package]]
 name = "sp-runtime"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "either",
  "hash256-std-hasher",
@@ -9147,7 +9148,7 @@ dependencies = [
 
 [[package]]
 name = "sp-runtime-interface"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "impl-trait-for-tuples",
  "parity-scale-codec",
@@ -9169,7 +9170,7 @@ dependencies = [
 
 [[package]]
 name = "sp-runtime-interface-proc-macro"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "Inflector",
  "proc-macro-crate 1.0.0",
@@ -9219,7 +9220,7 @@ dependencies = [
 
 [[package]]
 name = "sp-sandbox"
-version = "0.9.0"
+version = "0.10.0-dev"
 dependencies = [
  "assert_matches",
  "parity-scale-codec",
@@ -9241,7 +9242,7 @@ dependencies = [
 
 [[package]]
 name = "sp-session"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "parity-scale-codec",
  "sp-api",
@@ -9253,7 +9254,7 @@ dependencies = [
 
 [[package]]
 name = "sp-staking"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "parity-scale-codec",
  "sp-runtime",
@@ -9262,7 +9263,7 @@ dependencies = [
 
 [[package]]
 name = "sp-state-machine"
-version = "0.9.0"
+version = "0.10.0-dev"
 dependencies = [
  "hash-db",
  "hex-literal",
@@ -9287,11 +9288,11 @@ dependencies = [
 
 [[package]]
 name = "sp-std"
-version = "3.0.0"
+version = "4.0.0-dev"
 
 [[package]]
 name = "sp-storage"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "impl-serde",
  "parity-scale-codec",
@@ -9303,7 +9304,7 @@ dependencies = [
 
 [[package]]
 name = "sp-tasks"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "log",
  "parity-scale-codec",
@@ -9328,7 +9329,7 @@ dependencies = [
 
 [[package]]
 name = "sp-timestamp"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "async-trait",
  "futures-timer 3.0.2",
@@ -9344,7 +9345,7 @@ dependencies = [
 
 [[package]]
 name = "sp-tracing"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "erased-serde",
  "log",
@@ -9361,7 +9362,7 @@ dependencies = [
 
 [[package]]
 name = "sp-transaction-pool"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "sp-api",
  "sp-runtime",
@@ -9369,7 +9370,7 @@ dependencies = [
 
 [[package]]
 name = "sp-transaction-storage-proof"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "async-trait",
  "log",
@@ -9383,7 +9384,7 @@ dependencies = [
 
 [[package]]
 name = "sp-trie"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "criterion",
  "hash-db",
@@ -9401,7 +9402,7 @@ dependencies = [
 
 [[package]]
 name = "sp-utils"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "futures 0.3.15",
  "futures-core",
@@ -9412,7 +9413,7 @@ dependencies = [
 
 [[package]]
 name = "sp-version"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "impl-serde",
  "parity-scale-codec",
@@ -9426,7 +9427,7 @@ dependencies = [
 
 [[package]]
 name = "sp-version-proc-macro"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "parity-scale-codec",
  "proc-macro-crate 1.0.0",
@@ -9438,7 +9439,7 @@ dependencies = [
 
 [[package]]
 name = "sp-wasm-interface"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "impl-trait-for-tuples",
  "parity-scale-codec",
@@ -9570,7 +9571,7 @@ dependencies = [
 
 [[package]]
 name = "substrate-browser-utils"
-version = "0.9.0"
+version = "0.10.0-dev"
 dependencies = [
  "chrono",
  "console_error_panic_hook",
@@ -9602,7 +9603,7 @@ dependencies = [
 
 [[package]]
 name = "substrate-frame-cli"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -9630,7 +9631,7 @@ dependencies = [
 
 [[package]]
 name = "substrate-frame-rpc-system"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "frame-system-rpc-runtime-api",
  "futures 0.3.15",
@@ -9775,7 +9776,7 @@ dependencies = [
 
 [[package]]
 name = "substrate-test-utils"
-version = "3.0.0"
+version = "4.0.0-dev"
 dependencies = [
  "futures 0.3.15",
  "sc-service",
@@ -9786,7 +9787,7 @@ dependencies = [
 
 [[package]]
 name = "substrate-test-utils-derive"
-version = "0.9.0"
+version = "0.10.0-dev"
 dependencies = [
  "proc-macro-crate 1.0.0",
  "quote",
@@ -9804,7 +9805,7 @@ dependencies = [
 
 [[package]]
 name = "substrate-wasm-builder"
-version = "4.0.0"
+version = "5.0.0-dev"
 dependencies = [
  "ansi_term 0.12.1",
  "atty",
@@ -10582,7 +10583,7 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642"
 
 [[package]]
 name = "try-runtime-cli"
-version = "0.9.0"
+version = "0.10.0-dev"
 dependencies = [
  "frame-try-runtime",
  "log",
@@ -10598,7 +10599,6 @@ dependencies = [
  "sp-blockchain",
  "sp-core",
  "sp-externalities",
- "sp-io",
  "sp-keystore",
  "sp-runtime",
  "sp-state-machine",
diff --git a/substrate/bin/node-template/node/Cargo.toml b/substrate/bin/node-template/node/Cargo.toml
index 88657934b1d072c2fe37c28a9dc7d00f3c474391..21f28764eab4f216f7b9b5efb2bd88f77202987c 100644
--- a/substrate/bin/node-template/node/Cargo.toml
+++ b/substrate/bin/node-template/node/Cargo.toml
@@ -8,6 +8,7 @@ license = "Unlicense"
 build = "build.rs"
 homepage = "https://substrate.dev"
 repository = "https://github.com/substrate-developer-hub/substrate-node-template/"
+publish = false
 
 [package.metadata.docs.rs]
 targets = ["x86_64-unknown-linux-gnu"]
@@ -18,39 +19,39 @@ name = "node-template"
 [dependencies]
 structopt = "0.3.8"
 
-sc-cli = { version = "0.9.0", path = "../../../client/cli", features = ["wasmtime"] }
-sp-core = { version = "3.0.0", path = "../../../primitives/core" }
-sc-executor = { version = "0.9.0", path = "../../../client/executor", features = ["wasmtime"] }
-sc-service = { version = "0.9.0", path = "../../../client/service", features = ["wasmtime"] }
-sc-telemetry = { version = "3.0.0", path = "../../../client/telemetry" }
-sc-keystore = { version = "3.0.0", path = "../../../client/keystore" }
-sp-inherents = { version = "3.0.0", path = "../../../primitives/inherents" }
-sc-transaction-pool = { version = "3.0.0", path = "../../../client/transaction-pool" }
-sc-transaction-pool-api = { version = "3.0.0", path = "../../../client/transaction-pool/api" }
-sc-consensus-aura = { version = "0.9.0", path = "../../../client/consensus/aura" }
-sp-consensus-aura = { version = "0.9.0", path = "../../../primitives/consensus/aura" }
-sp-consensus = { version = "0.9.0", path = "../../../primitives/consensus/common" }
-sc-consensus = { version = "0.9.0", path = "../../../client/consensus/common" }
-sc-finality-grandpa = { version = "0.9.0", path = "../../../client/finality-grandpa" }
-sp-finality-grandpa = { version = "3.0.0", path = "../../../primitives/finality-grandpa" }
-sc-client-api = { version = "3.0.0", path = "../../../client/api" }
-sp-runtime = { version = "3.0.0", path = "../../../primitives/runtime" }
-sp-timestamp = { version = "3.0.0", path = "../../../primitives/timestamp" }
+sc-cli = { version = "0.10.0-dev", path = "../../../client/cli", features = ["wasmtime"] }
+sp-core = { version = "4.0.0-dev", path = "../../../primitives/core" }
+sc-executor = { version = "0.10.0-dev", path = "../../../client/executor", features = ["wasmtime"] }
+sc-service = { version = "0.10.0-dev", path = "../../../client/service", features = ["wasmtime"] }
+sc-telemetry = { version = "4.0.0-dev", path = "../../../client/telemetry" }
+sc-keystore = { version = "4.0.0-dev", path = "../../../client/keystore" }
+sp-inherents = { version = "4.0.0-dev", path = "../../../primitives/inherents" }
+sc-transaction-pool = { version = "4.0.0-dev", path = "../../../client/transaction-pool" }
+sc-transaction-pool-api = { version = "4.0.0-dev", path = "../../../client/transaction-pool/api" }
+sc-consensus-aura = { version = "0.10.0-dev", path = "../../../client/consensus/aura" }
+sp-consensus-aura = { version = "0.10.0-dev", path = "../../../primitives/consensus/aura" }
+sp-consensus = { version = "0.10.0-dev", path = "../../../primitives/consensus/common" }
+sc-consensus = { version = "0.10.0-dev", path = "../../../client/consensus/common" }
+sc-finality-grandpa = { version = "0.10.0-dev", path = "../../../client/finality-grandpa" }
+sp-finality-grandpa = { version = "4.0.0-dev", path = "../../../primitives/finality-grandpa" }
+sc-client-api = { version = "4.0.0-dev", path = "../../../client/api" }
+sp-runtime = { version = "4.0.0-dev", path = "../../../primitives/runtime" }
+sp-timestamp = { version = "4.0.0-dev", path = "../../../primitives/timestamp" }
 
 # These dependencies are used for the node template's RPCs
 jsonrpc-core = "15.1.0"
-sc-rpc = { version = "3.0.0", path = "../../../client/rpc" }
-sp-api = { version = "3.0.0", path = "../../../primitives/api" }
-sc-rpc-api = { version = "0.9.0", path = "../../../client/rpc-api" }
-sp-blockchain = { version = "3.0.0", path = "../../../primitives/blockchain" }
-sp-block-builder = { version = "3.0.0", path = "../../../primitives/block-builder" }
-sc-basic-authorship = { version = "0.9.0", path = "../../../client/basic-authorship" }
-substrate-frame-rpc-system = { version = "3.0.0", path = "../../../utils/frame/rpc/system" }
-pallet-transaction-payment-rpc = { version = "3.0.0", path = "../../../frame/transaction-payment/rpc/" }
+sc-rpc = { version = "4.0.0-dev", path = "../../../client/rpc" }
+sp-api = { version = "4.0.0-dev", path = "../../../primitives/api" }
+sc-rpc-api = { version = "0.10.0-dev", path = "../../../client/rpc-api" }
+sp-blockchain = { version = "4.0.0-dev", path = "../../../primitives/blockchain" }
+sp-block-builder = { version = "4.0.0-dev", path = "../../../primitives/block-builder" }
+sc-basic-authorship = { version = "0.10.0-dev", path = "../../../client/basic-authorship" }
+substrate-frame-rpc-system = { version = "4.0.0-dev", path = "../../../utils/frame/rpc/system" }
+pallet-transaction-payment-rpc = { version = "4.0.0-dev", path = "../../../frame/transaction-payment/rpc/" }
 
 # These dependencies are used for runtime benchmarking
-frame-benchmarking = { version = "3.1.0", path = "../../../frame/benchmarking" }
-frame-benchmarking-cli = { version = "3.0.0", path = "../../../utils/frame/benchmarking-cli" }
+frame-benchmarking = { version = "4.0.0-dev", path = "../../../frame/benchmarking" }
+frame-benchmarking-cli = { version = "4.0.0-dev", path = "../../../utils/frame/benchmarking-cli" }
 
 node-template-runtime = { version = "3.0.0", path = "../runtime" }
 
diff --git a/substrate/bin/node-template/pallets/template/Cargo.toml b/substrate/bin/node-template/pallets/template/Cargo.toml
index df76d20a4a7e1431d9f04ac63c51583d4a8ca563..60118013c11b97b1cf24dc390bb13408ad715541 100644
--- a/substrate/bin/node-template/pallets/template/Cargo.toml
+++ b/substrate/bin/node-template/pallets/template/Cargo.toml
@@ -8,21 +8,22 @@ homepage = "https://substrate.dev"
 repository = "https://github.com/substrate-developer-hub/substrate-node-template/"
 description = "FRAME pallet template for defining custom runtime logic."
 readme = "README.md"
+publish = false
 
 [package.metadata.docs.rs]
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] }
-frame-support = { default-features = false, version = "3.0.0", path = "../../../../frame/support" }
-frame-system = { default-features = false,  version = "3.0.0",  path = "../../../../frame/system" }
-frame-benchmarking = { default-features = false,  version = "3.1.0",  path = "../../../../frame/benchmarking", optional = true }
+frame-support = { default-features = false, version = "4.0.0-dev", path = "../../../../frame/support" }
+frame-system = { default-features = false,  version = "4.0.0-dev",  path = "../../../../frame/system" }
+frame-benchmarking = { default-features = false,  version = "4.0.0-dev",  path = "../../../../frame/benchmarking", optional = true }
 
 [dev-dependencies]
 serde = { version = "1.0.119" }
-sp-core = { default-features = false, version = "3.0.0", path = "../../../../primitives/core" }
-sp-io = { default-features = false, version = "3.0.0", path = "../../../../primitives/io" }
-sp-runtime = { default-features = false, version = "3.0.0", path = "../../../../primitives/runtime" }
+sp-core = { default-features = false, version = "4.0.0-dev", path = "../../../../primitives/core" }
+sp-io = { default-features = false, version = "4.0.0-dev", path = "../../../../primitives/io" }
+sp-runtime = { default-features = false, version = "4.0.0-dev", path = "../../../../primitives/runtime" }
 
 [features]
 default = ['std']
diff --git a/substrate/bin/node-template/runtime/Cargo.toml b/substrate/bin/node-template/runtime/Cargo.toml
index 6234f8958aad82116223029fa917997cf05a779a..72e19cc62b0ba82c35fbf7ec04fd9395da34b4f3 100644
--- a/substrate/bin/node-template/runtime/Cargo.toml
+++ b/substrate/bin/node-template/runtime/Cargo.toml
@@ -6,6 +6,7 @@ edition = "2018"
 license = "Unlicense"
 homepage = "https://substrate.dev"
 repository = "https://github.com/substrate-developer-hub/substrate-node-template/"
+publish = false
 
 [package.metadata.docs.rs]
 targets = ["x86_64-unknown-linux-gnu"]
@@ -13,41 +14,41 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] }
 
-pallet-aura = { version = "3.0.0", default-features = false, path = "../../../frame/aura" }
-pallet-balances = { version = "3.0.0", default-features = false, path = "../../../frame/balances" }
-frame-support = { version = "3.0.0", default-features = false, path = "../../../frame/support" }
-pallet-grandpa = { version = "3.1.0", default-features = false, path = "../../../frame/grandpa" }
-pallet-randomness-collective-flip = { version = "3.0.0", default-features = false, path = "../../../frame/randomness-collective-flip" }
-pallet-sudo = { version = "3.0.0", default-features = false, path = "../../../frame/sudo" }
-frame-system = { version = "3.0.0", default-features = false, path = "../../../frame/system" }
-pallet-timestamp = { version = "3.0.0", default-features = false, path = "../../../frame/timestamp" }
-pallet-transaction-payment = { version = "3.0.0", default-features = false, path = "../../../frame/transaction-payment" }
-frame-executive = { version = "3.0.0", default-features = false, path = "../../../frame/executive" }
-sp-api = { version = "3.0.0", default-features = false, path = "../../../primitives/api" }
-sp-block-builder = { path = "../../../primitives/block-builder", default-features = false, version = "3.0.0"}
-sp-consensus-aura = { version = "0.9.0", default-features = false, path = "../../../primitives/consensus/aura" }
-sp-core = { version = "3.0.0", default-features = false, path = "../../../primitives/core" }
-sp-inherents = { path = "../../../primitives/inherents", default-features = false, version = "3.0.0"}
-sp-offchain = { version = "3.0.0", default-features = false, path = "../../../primitives/offchain" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../../primitives/runtime" }
-sp-session = { version = "3.0.0", default-features = false, path = "../../../primitives/session" }
-sp-std = { version = "3.0.0", default-features = false, path = "../../../primitives/std" }
-sp-transaction-pool = { version = "3.0.0", default-features = false, path = "../../../primitives/transaction-pool" }
-sp-version = { version = "3.0.0", default-features = false, path = "../../../primitives/version" }
+pallet-aura = { version = "4.0.0-dev", default-features = false, path = "../../../frame/aura" }
+pallet-balances = { version = "4.0.0-dev", default-features = false, path = "../../../frame/balances" }
+frame-support = { version = "4.0.0-dev", default-features = false, path = "../../../frame/support" }
+pallet-grandpa = { version = "4.0.0-dev", default-features = false, path = "../../../frame/grandpa" }
+pallet-randomness-collective-flip = { version = "4.0.0-dev", default-features = false, path = "../../../frame/randomness-collective-flip" }
+pallet-sudo = { version = "4.0.0-dev", default-features = false, path = "../../../frame/sudo" }
+frame-system = { version = "4.0.0-dev", default-features = false, path = "../../../frame/system" }
+pallet-timestamp = { version = "4.0.0-dev", default-features = false, path = "../../../frame/timestamp" }
+pallet-transaction-payment = { version = "4.0.0-dev", default-features = false, path = "../../../frame/transaction-payment" }
+frame-executive = { version = "4.0.0-dev", default-features = false, path = "../../../frame/executive" }
+sp-api = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/api" }
+sp-block-builder = { path = "../../../primitives/block-builder", default-features = false, version = "4.0.0-dev"}
+sp-consensus-aura = { version = "0.10.0-dev", default-features = false, path = "../../../primitives/consensus/aura" }
+sp-core = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/core" }
+sp-inherents = { path = "../../../primitives/inherents", default-features = false, version = "4.0.0-dev"}
+sp-offchain = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/offchain" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/runtime" }
+sp-session = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/session" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/std" }
+sp-transaction-pool = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/transaction-pool" }
+sp-version = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/version" }
 
 # Used for the node template's RPCs
-frame-system-rpc-runtime-api = { version = "3.0.0", default-features = false, path = "../../../frame/system/rpc/runtime-api/" }
-pallet-transaction-payment-rpc-runtime-api = { version = "3.0.0", default-features = false, path = "../../../frame/transaction-payment/rpc/runtime-api/" }
+frame-system-rpc-runtime-api = { version = "4.0.0-dev", default-features = false, path = "../../../frame/system/rpc/runtime-api/" }
+pallet-transaction-payment-rpc-runtime-api = { version = "4.0.0-dev", default-features = false, path = "../../../frame/transaction-payment/rpc/runtime-api/" }
 
 # Used for runtime benchmarking
-frame-benchmarking = { version = "3.1.0", default-features = false, path = "../../../frame/benchmarking", optional = true }
-frame-system-benchmarking = { version = "3.0.0", default-features = false, path = "../../../frame/system/benchmarking", optional = true }
+frame-benchmarking = { version = "4.0.0-dev", default-features = false, path = "../../../frame/benchmarking", optional = true }
+frame-system-benchmarking = { version = "4.0.0-dev", default-features = false, path = "../../../frame/system/benchmarking", optional = true }
 hex-literal = { version = "0.3.1", optional = true }
 
 pallet-template = { version = "3.0.0", default-features = false, path = "../pallets/template" }
 
 [build-dependencies]
-substrate-wasm-builder = { version = "4.0.0", path = "../../../utils/wasm-builder" }
+substrate-wasm-builder = { version = "5.0.0-dev", path = "../../../utils/wasm-builder" }
 
 [features]
 default = ["std"]
diff --git a/substrate/bin/node/bench/Cargo.toml b/substrate/bin/node/bench/Cargo.toml
index 523353c95ea6deacf83114cda1d42901d40d0ec2..b7b1101b92f00afcafab8be841df18267668ce93 100644
--- a/substrate/bin/node/bench/Cargo.toml
+++ b/substrate/bin/node/bench/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "node-bench"
-version = "0.8.0"
+version = "0.9.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "Substrate node integration benchmarks."
 edition = "2018"
@@ -11,25 +11,25 @@ license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
 [dependencies]
 log = "0.4.8"
 node-primitives = { version = "2.0.0", path = "../primitives" }
-node-testing = { version = "2.0.0", path = "../testing" }
-node-runtime = { version = "2.0.0", path = "../runtime" }
-sc-cli = { version = "0.9.0", path = "../../../client/cli" }
-sc-client-api = { version = "3.0.0", path = "../../../client/api/" }
-sp-runtime = { version = "3.0.0", path = "../../../primitives/runtime" }
-sp-state-machine = { version = "0.9.0", path = "../../../primitives/state-machine" }
+node-testing = { version = "3.0.0-dev", path = "../testing" }
+node-runtime = { version = "3.0.0-dev", path = "../runtime" }
+sc-cli = { version = "0.10.0-dev", path = "../../../client/cli" }
+sc-client-api = { version = "4.0.0-dev", path = "../../../client/api/" }
+sp-runtime = { version = "4.0.0-dev", path = "../../../primitives/runtime" }
+sp-state-machine = { version = "0.10.0-dev", path = "../../../primitives/state-machine" }
 serde = "1.0.101"
 serde_json = "1.0.41"
 structopt = "0.3"
 derive_more = "0.99.2"
 kvdb = "0.10.0"
 kvdb-rocksdb = "0.12.0"
-sp-trie = { version = "3.0.0", path = "../../../primitives/trie" }
-sp-core = { version = "3.0.0", path = "../../../primitives/core" }
-sp-consensus = { version = "0.9.0", path = "../../../primitives/consensus/common" }
-sc-basic-authorship = { version = "0.9.0", path = "../../../client/basic-authorship" }
-sp-inherents = { version = "3.0.0", path = "../../../primitives/inherents" }
-sp-timestamp = { version = "3.0.0", default-features = false, path = "../../../primitives/timestamp" }
-sp-tracing = { version = "3.0.0", path = "../../../primitives/tracing" }
+sp-trie = { version = "4.0.0-dev", path = "../../../primitives/trie" }
+sp-core = { version = "4.0.0-dev", path = "../../../primitives/core" }
+sp-consensus = { version = "0.10.0-dev", path = "../../../primitives/consensus/common" }
+sc-basic-authorship = { version = "0.10.0-dev", path = "../../../client/basic-authorship" }
+sp-inherents = { version = "4.0.0-dev", path = "../../../primitives/inherents" }
+sp-timestamp = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/timestamp" }
+sp-tracing = { version = "4.0.0-dev", path = "../../../primitives/tracing" }
 hash-db = "0.15.2"
 tempfile = "3.1.0"
 fs_extra = "1"
@@ -38,6 +38,6 @@ rand = { version = "0.7.2", features = ["small_rng"] }
 lazy_static = "1.4.0"
 parity-util-mem = { version = "0.10.0", default-features = false, features = ["primitive-types"] }
 parity-db = { version = "0.2.4" }
-sc-transaction-pool = { version = "3.0.0", path = "../../../client/transaction-pool" }
-sc-transaction-pool-api = { version = "3.0.0", path = "../../../client/transaction-pool/api" }
+sc-transaction-pool = { version = "4.0.0-dev", path = "../../../client/transaction-pool" }
+sc-transaction-pool-api = { version = "4.0.0-dev", path = "../../../client/transaction-pool/api" }
 futures = { version = "0.3.4", features = ["thread-pool"] }
diff --git a/substrate/bin/node/browser-testing/Cargo.toml b/substrate/bin/node/browser-testing/Cargo.toml
index f66a0a2ea1ab38f85b8c0fa8d4cb84f70860fdae..bb92d6d61458c94411ebd052f06861258f9b14ff 100644
--- a/substrate/bin/node/browser-testing/Cargo.toml
+++ b/substrate/bin/node/browser-testing/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "node-browser-testing"
-version = "2.0.0"
+version = "3.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "Tests for the in-browser light client."
 edition = "2018"
@@ -17,8 +17,8 @@ wasm-bindgen-futures = "0.4.18"
 wasm-bindgen-test = "0.3.18"
 futures = "0.3.9"
 
-node-cli = { path = "../cli", default-features = false, features = ["browser"], version = "2.0.0"}
-sc-rpc-api = { path = "../../../client/rpc-api", version = "0.9.0"}
+node-cli = { path = "../cli", default-features = false, features = ["browser"], version = "3.0.0-dev"}
+sc-rpc-api = { path = "../../../client/rpc-api", version = "0.10.0-dev"}
 
 # This is a HACK to make browser tests pass.
 # enables [`instant/wasm_bindgen`]
diff --git a/substrate/bin/node/cli/Cargo.toml b/substrate/bin/node/cli/Cargo.toml
index c8d7d4728b03d2b3fc7007d777a10bbac0b64f25..3b6c35ecb34f5048338d1b5ee7e4fe678a50fa48 100644
--- a/substrate/bin/node/cli/Cargo.toml
+++ b/substrate/bin/node/cli/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "node-cli"
-version = "2.0.0"
+version = "3.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "Generic Substrate node implementation in Rust."
 build = "build.rs"
@@ -44,82 +44,83 @@ structopt = { version = "0.3.8", optional = true }
 parking_lot = "0.11.1"
 
 # primitives
-sp-authority-discovery = { version = "3.0.0",  path = "../../../primitives/authority-discovery" }
-sp-consensus-babe = { version = "0.9.0", path = "../../../primitives/consensus/babe" }
-grandpa-primitives = { version = "3.0.0", package = "sp-finality-grandpa", path = "../../../primitives/finality-grandpa" }
-sp-core = { version = "3.0.0", path = "../../../primitives/core" }
-sp-runtime = { version = "3.0.0", path = "../../../primitives/runtime" }
-sp-timestamp = { version = "3.0.0", path = "../../../primitives/timestamp" }
-sp-authorship = { version = "3.0.0", path = "../../../primitives/authorship" }
-sp-inherents = { version = "3.0.0", path = "../../../primitives/inherents" }
-sp-keyring = { version = "3.0.0", path = "../../../primitives/keyring" }
-sp-keystore = { version = "0.9.0", path = "../../../primitives/keystore" }
-sp-io = { version = "3.0.0", path = "../../../primitives/io" }
-sp-consensus = { version = "0.9.0", path = "../../../primitives/consensus/common" }
+sp-authority-discovery = { version = "4.0.0-dev",  path = "../../../primitives/authority-discovery" }
+sp-consensus-babe = { version = "0.10.0-dev", path = "../../../primitives/consensus/babe" }
+grandpa-primitives = { version = "4.0.0-dev", package = "sp-finality-grandpa", path = "../../../primitives/finality-grandpa" }
+sp-core = { version = "4.0.0-dev", path = "../../../primitives/core" }
+sp-runtime = { version = "4.0.0-dev", path = "../../../primitives/runtime" }
+sp-timestamp = { version = "4.0.0-dev", path = "../../../primitives/timestamp" }
+sp-authorship = { version = "4.0.0-dev", path = "../../../primitives/authorship" }
+sp-inherents = { version = "4.0.0-dev", path = "../../../primitives/inherents" }
+sp-keyring = { version = "4.0.0-dev", path = "../../../primitives/keyring" }
+sp-keystore = { version = "0.10.0-dev", path = "../../../primitives/keystore" }
+sp-io = { version = "4.0.0-dev", path = "../../../primitives/io" }
+sp-consensus = { version = "0.10.0-dev", path = "../../../primitives/consensus/common" }
+sp-transaction-pool = { version = "4.0.0-dev", path = "../../../primitives/transaction-pool" }
 
 # client dependencies
-sc-client-api = { version = "3.0.0", path = "../../../client/api" }
-sc-chain-spec = { version = "3.0.0", path = "../../../client/chain-spec" }
-sc-consensus = { version = "0.9.0", path = "../../../client/consensus/common" }
-sc-transaction-pool = { version = "3.0.0", path = "../../../client/transaction-pool" }
-sc-transaction-pool-api = { version = "3.0.0", path = "../../../client/transaction-pool/api" }
-sc-network = { version = "0.9.0", path = "../../../client/network" }
-sc-consensus-slots = { version = "0.9.0", path = "../../../client/consensus/slots" }
-sc-consensus-babe = { version = "0.9.0", path = "../../../client/consensus/babe" }
-sc-consensus-uncles = { version = "0.9.0", path = "../../../client/consensus/uncles" }
-grandpa = { version = "0.9.0", package = "sc-finality-grandpa", path = "../../../client/finality-grandpa" }
-sc-client-db = { version = "0.9.0", default-features = false, path = "../../../client/db" }
-sc-offchain = { version = "3.0.0", path = "../../../client/offchain" }
-sc-rpc = { version = "3.0.0", path = "../../../client/rpc" }
-sc-basic-authorship = { version = "0.9.0", path = "../../../client/basic-authorship" }
-sc-service = { version = "0.9.0", default-features = false, path = "../../../client/service" }
-sc-tracing = { version = "3.0.0", path = "../../../client/tracing" }
-sc-telemetry = { version = "3.0.0", path = "../../../client/telemetry" }
-sc-authority-discovery = { version = "0.9.0",  path = "../../../client/authority-discovery" }
-sc-finality-grandpa-warp-sync = { version = "0.9.0", path = "../../../client/finality-grandpa-warp-sync", optional = true }
+sc-client-api = { version = "4.0.0-dev", path = "../../../client/api" }
+sc-chain-spec = { version = "4.0.0-dev", path = "../../../client/chain-spec" }
+sc-consensus = { version = "0.10.0-dev", path = "../../../client/consensus/common" }
+sc-transaction-pool = { version = "4.0.0-dev", path = "../../../client/transaction-pool" }
+sc-transaction-pool-api = { version = "4.0.0-dev", path = "../../../client/transaction-pool/api" }
+sc-network = { version = "0.10.0-dev", path = "../../../client/network" }
+sc-consensus-slots = { version = "0.10.0-dev", path = "../../../client/consensus/slots" }
+sc-consensus-babe = { version = "0.10.0-dev", path = "../../../client/consensus/babe" }
+sc-consensus-uncles = { version = "0.10.0-dev", path = "../../../client/consensus/uncles" }
+grandpa = { version = "0.10.0-dev", package = "sc-finality-grandpa", path = "../../../client/finality-grandpa" }
+sc-client-db = { version = "0.10.0-dev", default-features = false, path = "../../../client/db" }
+sc-offchain = { version = "4.0.0-dev", path = "../../../client/offchain" }
+sc-rpc = { version = "4.0.0-dev", path = "../../../client/rpc" }
+sc-basic-authorship = { version = "0.10.0-dev", path = "../../../client/basic-authorship" }
+sc-service = { version = "0.10.0-dev", default-features = false, path = "../../../client/service" }
+sc-tracing = { version = "4.0.0-dev", path = "../../../client/tracing" }
+sc-telemetry = { version = "4.0.0-dev", path = "../../../client/telemetry" }
+sc-authority-discovery = { version = "0.10.0-dev",  path = "../../../client/authority-discovery" }
+sc-finality-grandpa-warp-sync = { version = "0.10.0-dev", path = "../../../client/finality-grandpa-warp-sync", optional = true }
 
 # frame dependencies
-pallet-indices = { version = "3.0.0", path = "../../../frame/indices" }
-pallet-timestamp = { version = "3.0.0", default-features = false, path = "../../../frame/timestamp" }
-pallet-contracts = { version = "3.0.0", path = "../../../frame/contracts" }
-frame-system = { version = "3.0.0", path = "../../../frame/system" }
-pallet-balances = { version = "3.0.0", path = "../../../frame/balances" }
-pallet-transaction-payment = { version = "3.0.0", path = "../../../frame/transaction-payment" }
-frame-support = { version = "3.0.0", default-features = false, path = "../../../frame/support" }
-pallet-im-online = { version = "3.0.0", default-features = false, path = "../../../frame/im-online" }
-pallet-authority-discovery = { version = "3.0.0", path = "../../../frame/authority-discovery" }
-pallet-staking = { version = "3.0.0", path = "../../../frame/staking" }
-pallet-grandpa = { version = "3.1.0", path = "../../../frame/grandpa" }
+pallet-indices = { version = "4.0.0-dev", path = "../../../frame/indices" }
+pallet-timestamp = { version = "4.0.0-dev", default-features = false, path = "../../../frame/timestamp" }
+pallet-contracts = { version = "4.0.0-dev", path = "../../../frame/contracts" }
+frame-system = { version = "4.0.0-dev", path = "../../../frame/system" }
+pallet-balances = { version = "4.0.0-dev", path = "../../../frame/balances" }
+pallet-transaction-payment = { version = "4.0.0-dev", path = "../../../frame/transaction-payment" }
+frame-support = { version = "4.0.0-dev", default-features = false, path = "../../../frame/support" }
+pallet-im-online = { version = "4.0.0-dev", default-features = false, path = "../../../frame/im-online" }
+pallet-authority-discovery = { version = "4.0.0-dev", path = "../../../frame/authority-discovery" }
+pallet-staking = { version = "4.0.0-dev", path = "../../../frame/staking" }
+pallet-grandpa = { version = "4.0.0-dev", path = "../../../frame/grandpa" }
 
 # node-specific dependencies
-node-runtime = { version = "2.0.0", path = "../runtime" }
-node-rpc = { version = "2.0.0", path = "../rpc" }
+node-runtime = { version = "3.0.0-dev", path = "../runtime" }
+node-rpc = { version = "3.0.0-dev", path = "../rpc" }
 node-primitives = { version = "2.0.0", path = "../primitives" }
-node-executor = { version = "2.0.0", path = "../executor" }
+node-executor = { version = "3.0.0-dev", path = "../executor" }
 
 # CLI-specific dependencies
-sc-cli = { version = "0.9.0", optional = true, path = "../../../client/cli" }
-frame-benchmarking-cli = { version = "3.0.0", optional = true, path = "../../../utils/frame/benchmarking-cli" }
-node-inspect = { version = "0.8.0", optional = true, path = "../inspect" }
-try-runtime-cli = { version = "0.9.0", optional = true, path = "../../../utils/frame/try-runtime/cli" }
+sc-cli = { version = "0.10.0-dev", optional = true, path = "../../../client/cli" }
+frame-benchmarking-cli = { version = "4.0.0-dev", optional = true, path = "../../../utils/frame/benchmarking-cli" }
+node-inspect = { version = "0.9.0-dev", optional = true, path = "../inspect" }
+try-runtime-cli = { version = "0.10.0-dev", optional = true, path = "../../../utils/frame/try-runtime/cli" }
 
 # WASM-specific dependencies
 wasm-bindgen = { version = "0.2.73", optional = true }
 wasm-bindgen-futures = { version = "0.4.18", optional = true }
-browser-utils = { package = "substrate-browser-utils", path = "../../../utils/browser", optional = true, version = "0.9.0"}
+browser-utils = { package = "substrate-browser-utils", path = "../../../utils/browser", optional = true, version = "0.10.0-dev"}
 libp2p-wasm-ext = { version = "0.28", features = ["websocket"], optional = true }
 
 [target.'cfg(target_arch="x86_64")'.dependencies]
-node-executor = { version = "2.0.0", path = "../executor", features = [ "wasmtime" ] }
-sc-cli = { version = "0.9.0", optional = true, path = "../../../client/cli", features = [ "wasmtime" ] }
-sc-service = { version = "0.9.0", default-features = false, path = "../../../client/service", features = [ "wasmtime" ] }
-sp-trie = { version = "3.0.0", default-features = false, path = "../../../primitives/trie", features = ["memory-tracker"] }
+node-executor = { version = "3.0.0-dev", path = "../executor", features = [ "wasmtime" ] }
+sc-cli = { version = "0.10.0-dev", optional = true, path = "../../../client/cli", features = [ "wasmtime" ] }
+sc-service = { version = "0.10.0-dev", default-features = false, path = "../../../client/service", features = [ "wasmtime" ] }
+sp-trie = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/trie", features = ["memory-tracker"] }
 
 [dev-dependencies]
-sc-keystore = { version = "3.0.0", path = "../../../client/keystore" }
-sc-consensus = { version = "0.9.0", path = "../../../client/consensus/common" }
-sc-consensus-babe = { version = "0.9.0", path = "../../../client/consensus/babe" }
-sc-consensus-epochs = { version = "0.9.0", path = "../../../client/consensus/epochs" }
+sc-keystore = { version = "4.0.0-dev", path = "../../../client/keystore" }
+sc-consensus = { version = "0.10.0-dev", path = "../../../client/consensus/common" }
+sc-consensus-babe = { version = "0.10.0-dev", path = "../../../client/consensus/babe" }
+sc-consensus-epochs = { version = "0.10.0-dev", path = "../../../client/consensus/epochs" }
 sc-service-test = { version = "2.0.0", path = "../../../client/service/test" }
 futures = "0.3.9"
 tempfile = "3.1.0"
@@ -133,14 +134,14 @@ soketto = "0.4.2"
 
 [build-dependencies]
 structopt = { version = "0.3.8", optional = true }
-node-inspect = { version = "0.8.0", optional = true, path = "../inspect" }
-frame-benchmarking-cli = { version = "3.0.0", optional = true, path = "../../../utils/frame/benchmarking-cli" }
+node-inspect = { version = "0.9.0-dev", optional = true, path = "../inspect" }
+frame-benchmarking-cli = { version = "4.0.0-dev", optional = true, path = "../../../utils/frame/benchmarking-cli" }
 substrate-build-script-utils = { version = "3.0.0", optional = true, path = "../../../utils/build-script-utils" }
-substrate-frame-cli = { version = "3.0.0", optional = true, path = "../../../utils/frame/frame-utilities-cli" }
-try-runtime-cli = { version = "0.9.0", optional = true, path = "../../../utils/frame/try-runtime/cli" }
+substrate-frame-cli = { version = "4.0.0-dev", optional = true, path = "../../../utils/frame/frame-utilities-cli" }
+try-runtime-cli = { version = "0.10.0-dev", optional = true, path = "../../../utils/frame/try-runtime/cli" }
 
 [build-dependencies.sc-cli]
-version = "0.9.0"
+version = "0.10.0-dev"
 package = "sc-cli"
 path = "../../../client/cli"
 optional = true
diff --git a/substrate/bin/node/executor/Cargo.toml b/substrate/bin/node/executor/Cargo.toml
index b08d1d78b4aaa596828b2f5311accb886e7d7c4c..5b0617d6af8e05a2b4c51ad1c6eb3ce11d50e5bd 100644
--- a/substrate/bin/node/executor/Cargo.toml
+++ b/substrate/bin/node/executor/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "node-executor"
-version = "2.0.0"
+version = "3.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "Substrate node implementation in Rust."
 edition = "2018"
@@ -14,34 +14,34 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 codec = { package = "parity-scale-codec", version = "2.0.0" }
 node-primitives = { version = "2.0.0", path = "../primitives" }
-node-runtime = { version = "2.0.0", path = "../runtime" }
-sc-executor = { version = "0.9.0", path = "../../../client/executor" }
-sp-core = { version = "3.0.0", path = "../../../primitives/core" }
-sp-keystore = { version = "0.9.0", path = "../../../primitives/keystore" }
-sp-io = { version = "3.0.0", path = "../../../primitives/io" }
-sp-state-machine = { version = "0.9.0", path = "../../../primitives/state-machine" }
-sp-trie = { version = "3.0.0", path = "../../../primitives/trie" }
+node-runtime = { version = "3.0.0-dev", path = "../runtime" }
+sc-executor = { version = "0.10.0-dev", path = "../../../client/executor" }
+sp-core = { version = "4.0.0-dev", path = "../../../primitives/core" }
+sp-keystore = { version = "0.10.0-dev", path = "../../../primitives/keystore" }
+sp-io = { version = "4.0.0-dev", path = "../../../primitives/io" }
+sp-state-machine = { version = "0.10.0-dev", path = "../../../primitives/state-machine" }
+sp-trie = { version = "4.0.0-dev", path = "../../../primitives/trie" }
 trie-root = "0.16.0"
-frame-benchmarking = { version = "3.1.0", path = "../../../frame/benchmarking" }
+frame-benchmarking = { version = "4.0.0-dev", path = "../../../frame/benchmarking" }
 
 [dev-dependencies]
 criterion = "0.3.0"
-frame-support = { version = "3.0.0", path = "../../../frame/support" }
-frame-system = { version = "3.0.0", path = "../../../frame/system" }
-node-testing = { version = "2.0.0", path = "../testing" }
-pallet-balances = { version = "3.0.0", path = "../../../frame/balances" }
-pallet-contracts = { version = "3.0.0", path = "../../../frame/contracts" }
-pallet-grandpa = { version = "3.1.0", path = "../../../frame/grandpa" }
-pallet-im-online = { version = "3.0.0", path = "../../../frame/im-online" }
-pallet-indices = { version = "3.0.0", path = "../../../frame/indices" }
-pallet-session = { version = "3.0.0", path = "../../../frame/session" }
-pallet-timestamp = { version = "3.0.0", path = "../../../frame/timestamp" }
-pallet-transaction-payment = { version = "3.0.0", path = "../../../frame/transaction-payment" }
-pallet-treasury = { version = "3.0.0", path = "../../../frame/treasury" }
-sp-application-crypto = { version = "3.0.0", path = "../../../primitives/application-crypto" }
-sp-consensus-babe = { version = "0.9.0", path = "../../../primitives/consensus/babe" }
-sp-runtime = { version = "3.0.0", path = "../../../primitives/runtime" }
-sp-externalities = { version = "0.9.0", path = "../../../primitives/externalities" }
+frame-support = { version = "4.0.0-dev", path = "../../../frame/support" }
+frame-system = { version = "4.0.0-dev", path = "../../../frame/system" }
+node-testing = { version = "3.0.0-dev", path = "../testing" }
+pallet-balances = { version = "4.0.0-dev", path = "../../../frame/balances" }
+pallet-contracts = { version = "4.0.0-dev", path = "../../../frame/contracts" }
+pallet-grandpa = { version = "4.0.0-dev", path = "../../../frame/grandpa" }
+pallet-im-online = { version = "4.0.0-dev", path = "../../../frame/im-online" }
+pallet-indices = { version = "4.0.0-dev", path = "../../../frame/indices" }
+pallet-session = { version = "4.0.0-dev", path = "../../../frame/session" }
+pallet-timestamp = { version = "4.0.0-dev", path = "../../../frame/timestamp" }
+pallet-transaction-payment = { version = "4.0.0-dev", path = "../../../frame/transaction-payment" }
+pallet-treasury = { version = "4.0.0-dev", path = "../../../frame/treasury" }
+sp-application-crypto = { version = "4.0.0-dev", path = "../../../primitives/application-crypto" }
+sp-consensus-babe = { version = "0.10.0-dev", path = "../../../primitives/consensus/babe" }
+sp-runtime = { version = "4.0.0-dev", path = "../../../primitives/runtime" }
+sp-externalities = { version = "0.10.0-dev", path = "../../../primitives/externalities" }
 substrate-test-client = { version = "2.0.0", path = "../../../test-utils/client" }
 wat = "1.0"
 futures = "0.3.9"
diff --git a/substrate/bin/node/inspect/Cargo.toml b/substrate/bin/node/inspect/Cargo.toml
index 3d89a68aed30982a6c832087aa5c30c819f80464..abd54cdbcd957305776fe349e1d11ea08496fccc 100644
--- a/substrate/bin/node/inspect/Cargo.toml
+++ b/substrate/bin/node/inspect/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "node-inspect"
-version = "0.8.0"
+version = "0.9.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
@@ -14,10 +14,10 @@ targets = ["x86_64-unknown-linux-gnu"]
 codec = { package = "parity-scale-codec", version = "2.0.0" }
 derive_more = "0.99"
 log = "0.4.8"
-sc-cli = { version = "0.9.0", path = "../../../client/cli" }
-sc-client-api = { version = "3.0.0", path = "../../../client/api" }
-sc-service = { version = "0.9.0", default-features = false, path = "../../../client/service" }
-sp-blockchain = { version = "3.0.0", path = "../../../primitives/blockchain" }
-sp-core = { version = "3.0.0", path = "../../../primitives/core" }
-sp-runtime = { version = "3.0.0", path = "../../../primitives/runtime" }
+sc-cli = { version = "0.10.0-dev", path = "../../../client/cli" }
+sc-client-api = { version = "4.0.0-dev", path = "../../../client/api" }
+sc-service = { version = "0.10.0-dev", default-features = false, path = "../../../client/service" }
+sp-blockchain = { version = "4.0.0-dev", path = "../../../primitives/blockchain" }
+sp-core = { version = "4.0.0-dev", path = "../../../primitives/core" }
+sp-runtime = { version = "4.0.0-dev", path = "../../../primitives/runtime" }
 structopt = "0.3.8"
diff --git a/substrate/bin/node/primitives/Cargo.toml b/substrate/bin/node/primitives/Cargo.toml
index 043ec5ab21cec1382594404310bbd8f9c7e077aa..170983d7e09649a7ad95c950fe87ff90ce8795e4 100644
--- a/substrate/bin/node/primitives/Cargo.toml
+++ b/substrate/bin/node/primitives/Cargo.toml
@@ -12,10 +12,10 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] }
-frame-system = { version = "3.0.0", default-features = false, path = "../../../frame/system" }
-sp-application-crypto = { version = "3.0.0", default-features = false, path = "../../../primitives/application-crypto" }
-sp-core = { version = "3.0.0", default-features = false, path = "../../../primitives/core" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../../primitives/runtime" }
+frame-system = { version = "4.0.0-dev", default-features = false, path = "../../../frame/system" }
+sp-application-crypto = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/application-crypto" }
+sp-core = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/core" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/runtime" }
 
 [dev-dependencies]
 sp-serializer = { version = "3.0.0", path = "../../../primitives/serializer" }
diff --git a/substrate/bin/node/rpc-client/Cargo.toml b/substrate/bin/node/rpc-client/Cargo.toml
index 1d9819de24b6dda3f0cc50d7ccbb82c5d47eed88..9ccb6c0817fd040a4c582b345bec4fac37fc927c 100644
--- a/substrate/bin/node/rpc-client/Cargo.toml
+++ b/substrate/bin/node/rpc-client/Cargo.toml
@@ -16,5 +16,5 @@ hyper = "~0.12.35"
 jsonrpc-core-client = { version = "15.1.0", default-features = false, features = ["http"] }
 log = "0.4.8"
 node-primitives = { version = "2.0.0", path = "../primitives" }
-sp-tracing = { version = "3.0.0", path = "../../../primitives/tracing" }
-sc-rpc = { version = "3.0.0", path = "../../../client/rpc" }
+sp-tracing = { version = "4.0.0-dev", path = "../../../primitives/tracing" }
+sc-rpc = { version = "4.0.0-dev", path = "../../../client/rpc" }
diff --git a/substrate/bin/node/rpc/Cargo.toml b/substrate/bin/node/rpc/Cargo.toml
index 1c9f33d7c2272ab39c3a73e0f1642467b6e5b11e..464971379c4929709e39c4c871e9c371e376b6a0 100644
--- a/substrate/bin/node/rpc/Cargo.toml
+++ b/substrate/bin/node/rpc/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "node-rpc"
-version = "2.0.0"
+version = "3.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -13,26 +13,26 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 jsonrpc-core = "15.1.0"
 node-primitives = { version = "2.0.0", path = "../primitives" }
-pallet-contracts-rpc = { version = "3.0.0", path = "../../../frame/contracts/rpc/" }
+pallet-contracts-rpc = { version = "4.0.0-dev", path = "../../../frame/contracts/rpc/" }
 pallet-mmr-rpc = { version = "3.0.0", path = "../../../frame/merkle-mountain-range/rpc/" }
-pallet-transaction-payment-rpc = { version = "3.0.0", path = "../../../frame/transaction-payment/rpc/" }
-sc-client-api = { version = "3.0.0", path = "../../../client/api" }
-sc-consensus-babe = { version = "0.9.0", path = "../../../client/consensus/babe" }
-sc-consensus-babe-rpc = { version = "0.9.0", path = "../../../client/consensus/babe/rpc" }
-sc-consensus-epochs = { version = "0.9.0", path = "../../../client/consensus/epochs" }
-sc-chain-spec = { version = "3.0.0", path = "../../../client/chain-spec" }
-sc-finality-grandpa = { version = "0.9.0", path = "../../../client/finality-grandpa" }
-sc-finality-grandpa-rpc = { version = "0.9.0", path = "../../../client/finality-grandpa/rpc" }
-sc-keystore = { version = "3.0.0", path = "../../../client/keystore" }
-sc-rpc-api = { version = "0.9.0", path = "../../../client/rpc-api" }
-sc-rpc = { version = "3.0.0", path = "../../../client/rpc" }
-sc-sync-state-rpc = { version = "0.9.0", path = "../../../client/sync-state-rpc" }
-sp-api = { version = "3.0.0", path = "../../../primitives/api" }
-sp-block-builder = { version = "3.0.0", path = "../../../primitives/block-builder" }
-sp-blockchain = { version = "3.0.0", path = "../../../primitives/blockchain" }
-sp-keystore = { version = "0.9.0", path = "../../../primitives/keystore" }
-sp-consensus = { version = "0.9.0", path = "../../../primitives/consensus/common" }
-sp-consensus-babe = { version = "0.9.0", path = "../../../primitives/consensus/babe" }
-sp-runtime = { version = "3.0.0", path = "../../../primitives/runtime" }
-sc-transaction-pool-api = { version = "3.0.0", path = "../../../client/transaction-pool/api" }
-substrate-frame-rpc-system = { version = "3.0.0", path = "../../../utils/frame/rpc/system" }
+pallet-transaction-payment-rpc = { version = "4.0.0-dev", path = "../../../frame/transaction-payment/rpc/" }
+sc-client-api = { version = "4.0.0-dev", path = "../../../client/api" }
+sc-consensus-babe = { version = "0.10.0-dev", path = "../../../client/consensus/babe" }
+sc-consensus-babe-rpc = { version = "0.10.0-dev", path = "../../../client/consensus/babe/rpc" }
+sc-consensus-epochs = { version = "0.10.0-dev", path = "../../../client/consensus/epochs" }
+sc-chain-spec = { version = "4.0.0-dev", path = "../../../client/chain-spec" }
+sc-finality-grandpa = { version = "0.10.0-dev", path = "../../../client/finality-grandpa" }
+sc-finality-grandpa-rpc = { version = "0.10.0-dev", path = "../../../client/finality-grandpa/rpc" }
+sc-keystore = { version = "4.0.0-dev", path = "../../../client/keystore" }
+sc-rpc-api = { version = "0.10.0-dev", path = "../../../client/rpc-api" }
+sc-rpc = { version = "4.0.0-dev", path = "../../../client/rpc" }
+sc-sync-state-rpc = { version = "0.10.0-dev", path = "../../../client/sync-state-rpc" }
+sp-api = { version = "4.0.0-dev", path = "../../../primitives/api" }
+sp-block-builder = { version = "4.0.0-dev", path = "../../../primitives/block-builder" }
+sp-blockchain = { version = "4.0.0-dev", path = "../../../primitives/blockchain" }
+sp-keystore = { version = "0.10.0-dev", path = "../../../primitives/keystore" }
+sp-consensus = { version = "0.10.0-dev", path = "../../../primitives/consensus/common" }
+sp-consensus-babe = { version = "0.10.0-dev", path = "../../../primitives/consensus/babe" }
+sp-runtime = { version = "4.0.0-dev", path = "../../../primitives/runtime" }
+sc-transaction-pool-api = { version = "4.0.0-dev", path = "../../../client/transaction-pool/api" }
+substrate-frame-rpc-system = { version = "4.0.0-dev", path = "../../../utils/frame/rpc/system" }
diff --git a/substrate/bin/node/runtime/Cargo.toml b/substrate/bin/node/runtime/Cargo.toml
index c84c6a07b639571807954550c728dc6da5728261..78e46edbd64e465292d0134c91fa57aae7f55194 100644
--- a/substrate/bin/node/runtime/Cargo.toml
+++ b/substrate/bin/node/runtime/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "node-runtime"
-version = "2.0.1"
+version = "3.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 build = "build.rs"
@@ -20,81 +20,81 @@ hex-literal = { version = "0.3.1", optional = true }
 log = { version = "0.4.14", default-features = false }
 
 # primitives
-sp-authority-discovery = { version = "3.0.0", default-features = false, path = "../../../primitives/authority-discovery" }
-sp-consensus-babe = { version = "0.9.0", default-features = false, path = "../../../primitives/consensus/babe" }
-sp-block-builder = { path = "../../../primitives/block-builder", default-features = false, version = "3.0.0"}
-sp-inherents = { version = "3.0.0", default-features = false, path = "../../../primitives/inherents" }
+sp-authority-discovery = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/authority-discovery" }
+sp-consensus-babe = { version = "0.10.0-dev", default-features = false, path = "../../../primitives/consensus/babe" }
+sp-block-builder = { path = "../../../primitives/block-builder", default-features = false, version = "4.0.0-dev"}
+sp-inherents = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/inherents" }
 node-primitives = { version = "2.0.0", default-features = false, path = "../primitives" }
-sp-offchain = { version = "3.0.0", default-features = false, path = "../../../primitives/offchain" }
-sp-core = { version = "3.0.0", default-features = false, path = "../../../primitives/core" }
-sp-std = { version = "3.0.0", default-features = false, path = "../../../primitives/std" }
-sp-api = { version = "3.0.0", default-features = false, path = "../../../primitives/api" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../../primitives/runtime" }
-sp-staking = { version = "3.0.0", default-features = false, path = "../../../primitives/staking" }
-sp-keyring = { version = "3.0.0", optional = true, path = "../../../primitives/keyring" }
-sp-session = { version = "3.0.0", default-features = false, path = "../../../primitives/session" }
-sp-transaction-pool = { version = "3.0.0", default-features = false, path = "../../../primitives/transaction-pool" }
-sp-version = { version = "3.0.0", default-features = false, path = "../../../primitives/version" }
-sp-npos-elections = { version = "3.0.0", default-features = false, path = "../../../primitives/npos-elections" }
+sp-offchain = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/offchain" }
+sp-core = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/core" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/std" }
+sp-api = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/api" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/runtime" }
+sp-staking = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/staking" }
+sp-keyring = { version = "4.0.0-dev", optional = true, path = "../../../primitives/keyring" }
+sp-session = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/session" }
+sp-transaction-pool = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/transaction-pool" }
+sp-version = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/version" }
+sp-npos-elections = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/npos-elections" }
 
 # frame dependencies
-frame-executive = { version = "3.0.0", default-features = false, path = "../../../frame/executive" }
-frame-benchmarking = { version = "3.1.0", default-features = false, path = "../../../frame/benchmarking", optional = true }
-frame-support = { version = "3.0.0", default-features = false, path = "../../../frame/support" }
-frame-system = { version = "3.0.0", default-features = false, path = "../../../frame/system" }
-frame-system-benchmarking = { version = "3.0.0", default-features = false, path = "../../../frame/system/benchmarking", optional = true }
-frame-election-provider-support = { version = "3.0.0", default-features = false, path = "../../../frame/election-provider-support" }
-frame-system-rpc-runtime-api = { version = "3.0.0", default-features = false, path = "../../../frame/system/rpc/runtime-api/" }
-frame-try-runtime = { version = "0.9.0", default-features = false, path = "../../../frame/try-runtime", optional = true }
-pallet-assets = { version = "3.0.0", default-features = false, path = "../../../frame/assets" }
-pallet-authority-discovery = { version = "3.0.0", default-features = false, path = "../../../frame/authority-discovery" }
-pallet-authorship = { version = "3.0.0", default-features = false, path = "../../../frame/authorship" }
-pallet-babe = { version = "3.0.0", default-features = false, path = "../../../frame/babe" }
-pallet-balances = { version = "3.0.0", default-features = false, path = "../../../frame/balances" }
-pallet-bounties = { version = "3.0.0", default-features = false, path = "../../../frame/bounties" }
-pallet-collective = { version = "3.0.0", default-features = false, path = "../../../frame/collective" }
-pallet-contracts = { version = "3.0.0", default-features = false, path = "../../../frame/contracts" }
-pallet-contracts-primitives = { version = "3.0.0", default-features = false, path = "../../../frame/contracts/common/" }
-pallet-contracts-rpc-runtime-api = { version = "3.0.0", default-features = false, path = "../../../frame/contracts/rpc/runtime-api/" }
-pallet-democracy = { version = "3.0.0", default-features = false, path = "../../../frame/democracy" }
-pallet-election-provider-multi-phase = { version = "3.0.0", default-features = false, path = "../../../frame/election-provider-multi-phase" }
-pallet-elections-phragmen = { version = "4.0.0", default-features = false, path = "../../../frame/elections-phragmen" }
-pallet-gilt = { version = "3.0.0", default-features = false, path = "../../../frame/gilt" }
-pallet-grandpa = { version = "3.1.0", default-features = false, path = "../../../frame/grandpa" }
-pallet-im-online = { version = "3.0.0", default-features = false, path = "../../../frame/im-online" }
-pallet-indices = { version = "3.0.0", default-features = false, path = "../../../frame/indices" }
-pallet-identity = { version = "3.0.0", default-features = false, path = "../../../frame/identity" }
-pallet-lottery = { version = "3.0.0", default-features = false, path = "../../../frame/lottery" }
-pallet-membership = { version = "3.0.0", default-features = false, path = "../../../frame/membership" }
-pallet-mmr = { version = "3.0.0", default-features = false, path = "../../../frame/merkle-mountain-range" }
-pallet-multisig = { version = "3.0.0", default-features = false, path = "../../../frame/multisig" }
-pallet-offences = { version = "3.0.0", default-features = false, path = "../../../frame/offences" }
-pallet-offences-benchmarking = { version = "3.0.0", path = "../../../frame/offences/benchmarking", default-features = false, optional = true }
-pallet-proxy = { version = "3.0.0", default-features = false, path = "../../../frame/proxy" }
-pallet-randomness-collective-flip = { version = "3.0.0", default-features = false, path = "../../../frame/randomness-collective-flip" }
-pallet-recovery = { version = "3.0.0", default-features = false, path = "../../../frame/recovery" }
-pallet-session = { version = "3.0.0", features = ["historical"], path = "../../../frame/session", default-features = false }
-pallet-session-benchmarking = { version = "3.0.0", path = "../../../frame/session/benchmarking", default-features = false, optional = true }
-pallet-staking = { version = "3.0.0", default-features = false, path = "../../../frame/staking" }
-pallet-staking-reward-curve = { version = "3.0.0", default-features = false, path = "../../../frame/staking/reward-curve" }
-pallet-scheduler = { version = "3.0.0", default-features = false, path = "../../../frame/scheduler" }
-pallet-society = { version = "3.0.0", default-features = false, path = "../../../frame/society" }
-pallet-sudo = { version = "3.0.0", default-features = false, path = "../../../frame/sudo" }
-pallet-timestamp = { version = "3.0.0", default-features = false, path = "../../../frame/timestamp" }
-pallet-tips = { version = "3.0.0", default-features = false, path = "../../../frame/tips" }
-pallet-treasury = { version = "3.0.0", default-features = false, path = "../../../frame/treasury" }
-pallet-utility = { version = "3.0.0", default-features = false, path = "../../../frame/utility" }
-pallet-transaction-payment = { version = "3.0.0", default-features = false, path = "../../../frame/transaction-payment" }
-pallet-transaction-payment-rpc-runtime-api = { version = "3.0.0", default-features = false, path = "../../../frame/transaction-payment/rpc/runtime-api/" }
-pallet-transaction-storage = { version = "3.0.0", default-features = false, path = "../../../frame/transaction-storage" }
-pallet-uniques = { version = "3.0.0", default-features = false, path = "../../../frame/uniques" }
-pallet-vesting = { version = "3.0.0", default-features = false, path = "../../../frame/vesting" }
+frame-executive = { version = "4.0.0-dev", default-features = false, path = "../../../frame/executive" }
+frame-benchmarking = { version = "4.0.0-dev", default-features = false, path = "../../../frame/benchmarking", optional = true }
+frame-support = { version = "4.0.0-dev", default-features = false, path = "../../../frame/support" }
+frame-system = { version = "4.0.0-dev", default-features = false, path = "../../../frame/system" }
+frame-system-benchmarking = { version = "4.0.0-dev", default-features = false, path = "../../../frame/system/benchmarking", optional = true }
+frame-election-provider-support = { version = "4.0.0-dev", default-features = false, path = "../../../frame/election-provider-support" }
+frame-system-rpc-runtime-api = { version = "4.0.0-dev", default-features = false, path = "../../../frame/system/rpc/runtime-api/" }
+frame-try-runtime = { version = "0.10.0-dev", default-features = false, path = "../../../frame/try-runtime", optional = true }
+pallet-assets = { version = "4.0.0-dev", default-features = false, path = "../../../frame/assets" }
+pallet-authority-discovery = { version = "4.0.0-dev", default-features = false, path = "../../../frame/authority-discovery" }
+pallet-authorship = { version = "4.0.0-dev", default-features = false, path = "../../../frame/authorship" }
+pallet-babe = { version = "4.0.0-dev", default-features = false, path = "../../../frame/babe" }
+pallet-balances = { version = "4.0.0-dev", default-features = false, path = "../../../frame/balances" }
+pallet-bounties = { version = "4.0.0-dev", default-features = false, path = "../../../frame/bounties" }
+pallet-collective = { version = "4.0.0-dev", default-features = false, path = "../../../frame/collective" }
+pallet-contracts = { version = "4.0.0-dev", default-features = false, path = "../../../frame/contracts" }
+pallet-contracts-primitives = { version = "4.0.0-dev", default-features = false, path = "../../../frame/contracts/common/" }
+pallet-contracts-rpc-runtime-api = { version = "4.0.0-dev", default-features = false, path = "../../../frame/contracts/rpc/runtime-api/" }
+pallet-democracy = { version = "4.0.0-dev", default-features = false, path = "../../../frame/democracy" }
+pallet-election-provider-multi-phase = { version = "4.0.0-dev", default-features = false, path = "../../../frame/election-provider-multi-phase" }
+pallet-elections-phragmen = { version = "5.0.0-dev", default-features = false, path = "../../../frame/elections-phragmen" }
+pallet-gilt = { version = "4.0.0-dev", default-features = false, path = "../../../frame/gilt" }
+pallet-grandpa = { version = "4.0.0-dev", default-features = false, path = "../../../frame/grandpa" }
+pallet-im-online = { version = "4.0.0-dev", default-features = false, path = "../../../frame/im-online" }
+pallet-indices = { version = "4.0.0-dev", default-features = false, path = "../../../frame/indices" }
+pallet-identity = { version = "4.0.0-dev", default-features = false, path = "../../../frame/identity" }
+pallet-lottery = { version = "4.0.0-dev", default-features = false, path = "../../../frame/lottery" }
+pallet-membership = { version = "4.0.0-dev", default-features = false, path = "../../../frame/membership" }
+pallet-mmr = { version = "4.0.0-dev", default-features = false, path = "../../../frame/merkle-mountain-range" }
+pallet-multisig = { version = "4.0.0-dev", default-features = false, path = "../../../frame/multisig" }
+pallet-offences = { version = "4.0.0-dev", default-features = false, path = "../../../frame/offences" }
+pallet-offences-benchmarking = { version = "4.0.0-dev", path = "../../../frame/offences/benchmarking", default-features = false, optional = true }
+pallet-proxy = { version = "4.0.0-dev", default-features = false, path = "../../../frame/proxy" }
+pallet-randomness-collective-flip = { version = "4.0.0-dev", default-features = false, path = "../../../frame/randomness-collective-flip" }
+pallet-recovery = { version = "4.0.0-dev", default-features = false, path = "../../../frame/recovery" }
+pallet-session = { version = "4.0.0-dev", features = ["historical"], path = "../../../frame/session", default-features = false }
+pallet-session-benchmarking = { version = "4.0.0-dev", path = "../../../frame/session/benchmarking", default-features = false, optional = true }
+pallet-staking = { version = "4.0.0-dev", default-features = false, path = "../../../frame/staking" }
+pallet-staking-reward-curve = { version = "4.0.0-dev", default-features = false, path = "../../../frame/staking/reward-curve" }
+pallet-scheduler = { version = "4.0.0-dev", default-features = false, path = "../../../frame/scheduler" }
+pallet-society = { version = "4.0.0-dev", default-features = false, path = "../../../frame/society" }
+pallet-sudo = { version = "4.0.0-dev", default-features = false, path = "../../../frame/sudo" }
+pallet-timestamp = { version = "4.0.0-dev", default-features = false, path = "../../../frame/timestamp" }
+pallet-tips = { version = "4.0.0-dev", default-features = false, path = "../../../frame/tips" }
+pallet-treasury = { version = "4.0.0-dev", default-features = false, path = "../../../frame/treasury" }
+pallet-utility = { version = "4.0.0-dev", default-features = false, path = "../../../frame/utility" }
+pallet-transaction-payment = { version = "4.0.0-dev", default-features = false, path = "../../../frame/transaction-payment" }
+pallet-transaction-payment-rpc-runtime-api = { version = "4.0.0-dev", default-features = false, path = "../../../frame/transaction-payment/rpc/runtime-api/" }
+pallet-transaction-storage = { version = "4.0.0-dev", default-features = false, path = "../../../frame/transaction-storage" }
+pallet-uniques = { version = "4.0.0-dev", default-features = false, path = "../../../frame/uniques" }
+pallet-vesting = { version = "4.0.0-dev", default-features = false, path = "../../../frame/vesting" }
 
 [build-dependencies]
-substrate-wasm-builder = { version = "4.0.0", path = "../../../utils/wasm-builder" }
+substrate-wasm-builder = { version = "5.0.0-dev", path = "../../../utils/wasm-builder" }
 
 [dev-dependencies]
-sp-io = { version = "3.0.0", path = "../../../primitives/io" }
+sp-io = { version = "4.0.0-dev", path = "../../../primitives/io" }
 
 [features]
 default = ["std"]
diff --git a/substrate/bin/node/test-runner-example/Cargo.toml b/substrate/bin/node/test-runner-example/Cargo.toml
index 7b8658203132308824e977022c7a4c958260f733..5882a73982ecdc7c59e638d03a6e625c243de5a3 100644
--- a/substrate/bin/node/test-runner-example/Cargo.toml
+++ b/substrate/bin/node/test-runner-example/Cargo.toml
@@ -8,33 +8,33 @@ publish = false
 [dependencies]
 test-runner = { path = "../../../test-utils/test-runner", version = "0.9.0" }
 
-frame-system = { version = "3.0.0", path = "../../../frame/system" }
-frame-support = { path = "../../../frame/support", version = "3.0.0" }
-frame-benchmarking = { path = "../../../frame/benchmarking", version = "3.0.0" }
-pallet-balances = { path = "../../../frame/balances", version = "3.0.0" }
-pallet-sudo = { path = "../../../frame/sudo", version = "3.0.0" }
-pallet-transaction-payment = { version = "3.0.0", path = "../../../frame/transaction-payment" }
+frame-system = { version = "4.0.0-dev", path = "../../../frame/system" }
+frame-support = { path = "../../../frame/support", version = "4.0.0-dev"}
+frame-benchmarking = { path = "../../../frame/benchmarking", version = "4.0.0-dev"}
+pallet-balances = { path = "../../../frame/balances", version = "4.0.0-dev"}
+pallet-sudo = { path = "../../../frame/sudo", version = "4.0.0-dev"}
+pallet-transaction-payment = { version = "4.0.0-dev", path = "../../../frame/transaction-payment" }
 
-node-runtime = { path = "../runtime", version = "2.0.1" }
+node-runtime = { path = "../runtime", version = "3.0.0-dev"}
 node-primitives = { version = "2.0.0", path = "../primitives" }
-node-cli = { path = "../cli", version = "2.0.0" }
+node-cli = { path = "../cli", version = "3.0.0-dev"}
 
-grandpa = { version = "0.9.0", package = "sc-finality-grandpa", path = "../../../client/finality-grandpa" }
-sp-consensus-babe = { version = "0.9.0", path = "../../../primitives/consensus/babe" }
-sc-consensus-babe = { version = "0.9.0", path = "../../../client/consensus/babe" }
-sc-consensus-manual-seal = { version = "0.9.0", path = "../../../client/consensus/manual-seal" }
-sc-service = { version = "0.9.0", default-features = false, path = "../../../client/service" }
-sc-executor = { version = "0.9.0", path = "../../../client/executor" }
-sc-client-api = { version = "3.0.0", path = "../../../client/api" }
-sc-network = { version = "0.9.0", path = "../../../client/network" }
-sc-informant = { version = "0.9.0", path = "../../../client/informant" }
-sc-consensus = { version = "0.9.0", path = "../../../client/consensus/common" }
+grandpa = { version = "0.10.0-dev", package = "sc-finality-grandpa", path = "../../../client/finality-grandpa" }
+sp-consensus-babe = { version = "0.10.0-dev", path = "../../../primitives/consensus/babe" }
+sc-consensus-babe = { version = "0.10.0-dev", path = "../../../client/consensus/babe" }
+sc-consensus-manual-seal = { version = "0.10.0-dev", path = "../../../client/consensus/manual-seal" }
+sc-service = { version = "0.10.0-dev", default-features = false, path = "../../../client/service" }
+sc-executor = { version = "0.10.0-dev", path = "../../../client/executor" }
+sc-client-api = { version = "4.0.0-dev", path = "../../../client/api" }
+sc-network = { version = "0.10.0-dev", path = "../../../client/network" }
+sc-informant = { version = "0.10.0-dev", path = "../../../client/informant" }
+sc-consensus = { version = "0.10.0-dev", path = "../../../client/consensus/common" }
 
-sp-runtime = { path = "../../../primitives/runtime", version = "3.0.0" }
-sp-keyring = { version = "3.0.0", path = "../../../primitives/keyring" }
-sp-timestamp = { version = "3.0.0", path = "../../../primitives/timestamp" }
-sp-api = { version = "3.0.0",  path = "../../../primitives/api" }
-sp-inherents = { version = "3.0.0", path = "../../../primitives/inherents" }
-sp-keystore = { version = "0.9.0", path = "../../../primitives/keystore" }
+sp-runtime = { path = "../../../primitives/runtime", version = "4.0.0-dev"}
+sp-keyring = { version = "4.0.0-dev", path = "../../../primitives/keyring" }
+sp-timestamp = { version = "4.0.0-dev", path = "../../../primitives/timestamp" }
+sp-api = { version = "4.0.0-dev",  path = "../../../primitives/api" }
+sp-inherents = { version = "4.0.0-dev", path = "../../../primitives/inherents" }
+sp-keystore = { version = "0.10.0-dev", path = "../../../primitives/keystore" }
 
 log = "0.4.14"
diff --git a/substrate/bin/node/testing/Cargo.toml b/substrate/bin/node/testing/Cargo.toml
index 706816ddae67135699e71b7834c784a0366037e4..e2a4555e6797c938b9f5372361f05a5b30682b3a 100644
--- a/substrate/bin/node/testing/Cargo.toml
+++ b/substrate/bin/node/testing/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "node-testing"
-version = "2.0.0"
+version = "3.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "Test utilities for Substrate node."
 edition = "2018"
@@ -13,38 +13,38 @@ publish = true
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-pallet-balances = { version = "3.0.0", path = "../../../frame/balances" }
-sc-service = { version = "0.9.0", features = ["test-helpers", "db"],  path = "../../../client/service" }
-sc-client-db = { version = "0.9.0", path = "../../../client/db/", features = ["kvdb-rocksdb", "parity-db"] }
-sc-client-api = { version = "3.0.0", path = "../../../client/api/" }
+pallet-balances = { version = "4.0.0-dev", path = "../../../frame/balances" }
+sc-service = { version = "0.10.0-dev", features = ["test-helpers", "db"],  path = "../../../client/service" }
+sc-client-db = { version = "0.10.0-dev", path = "../../../client/db/", features = ["kvdb-rocksdb", "parity-db"] }
+sc-client-api = { version = "4.0.0-dev", path = "../../../client/api/" }
 codec = { package = "parity-scale-codec", version = "2.0.0" }
-pallet-contracts = { version = "3.0.0", path = "../../../frame/contracts" }
-pallet-grandpa = { version = "3.1.0", path = "../../../frame/grandpa" }
-pallet-indices = { version = "3.0.0", path = "../../../frame/indices" }
-sp-keyring = { version = "3.0.0", path = "../../../primitives/keyring" }
-node-executor = { version = "2.0.0", path = "../executor" }
+pallet-contracts = { version = "4.0.0-dev", path = "../../../frame/contracts" }
+pallet-grandpa = { version = "4.0.0-dev", path = "../../../frame/grandpa" }
+pallet-indices = { version = "4.0.0-dev", path = "../../../frame/indices" }
+sp-keyring = { version = "4.0.0-dev", path = "../../../primitives/keyring" }
+node-executor = { version = "3.0.0-dev", path = "../executor" }
 node-primitives = { version = "2.0.0", path = "../primitives" }
-node-runtime = { version = "2.0.0", path = "../runtime" }
-sp-core = { version = "3.0.0", path = "../../../primitives/core" }
-sp-io = { version = "3.0.0", path = "../../../primitives/io" }
-frame-support = { version = "3.0.0", path = "../../../frame/support" }
-pallet-session = { version = "3.0.0", path = "../../../frame/session" }
-pallet-society = { version = "3.0.0", path = "../../../frame/society" }
-sp-runtime = { version = "3.0.0", path = "../../../primitives/runtime" }
-pallet-staking = { version = "3.0.0", path = "../../../frame/staking" }
-sc-executor = { version = "0.9.0", path = "../../../client/executor", features = ["wasmtime"] }
-sp-consensus = { version = "0.9.0", path = "../../../primitives/consensus/common" }
-frame-system = { version = "3.0.0", path = "../../../frame/system" }
+node-runtime = { version = "3.0.0-dev", path = "../runtime" }
+sp-core = { version = "4.0.0-dev", path = "../../../primitives/core" }
+sp-io = { version = "4.0.0-dev", path = "../../../primitives/io" }
+frame-support = { version = "4.0.0-dev", path = "../../../frame/support" }
+pallet-session = { version = "4.0.0-dev", path = "../../../frame/session" }
+pallet-society = { version = "4.0.0-dev", path = "../../../frame/society" }
+sp-runtime = { version = "4.0.0-dev", path = "../../../primitives/runtime" }
+pallet-staking = { version = "4.0.0-dev", path = "../../../frame/staking" }
+sc-executor = { version = "0.10.0-dev", path = "../../../client/executor", features = ["wasmtime"] }
+sp-consensus = { version = "0.10.0-dev", path = "../../../primitives/consensus/common" }
+frame-system = { version = "4.0.0-dev", path = "../../../frame/system" }
 substrate-test-client = { version = "2.0.0", path = "../../../test-utils/client" }
-pallet-timestamp = { version = "3.0.0", path = "../../../frame/timestamp" }
-pallet-transaction-payment = { version = "3.0.0", path = "../../../frame/transaction-payment" }
-pallet-treasury = { version = "3.0.0", path = "../../../frame/treasury" }
-sp-api = { version = "3.0.0", path = "../../../primitives/api" }
-sp-timestamp = { version = "3.0.0", default-features = false, path = "../../../primitives/timestamp" }
-sp-block-builder = { version = "3.0.0", path = "../../../primitives/block-builder" }
-sc-block-builder = { version = "0.9.0", path = "../../../client/block-builder" }
-sp-inherents = { version = "3.0.0", path = "../../../primitives/inherents" }
-sp-blockchain = { version = "3.0.0", path = "../../../primitives/blockchain" }
+pallet-timestamp = { version = "4.0.0-dev", path = "../../../frame/timestamp" }
+pallet-transaction-payment = { version = "4.0.0-dev", path = "../../../frame/transaction-payment" }
+pallet-treasury = { version = "4.0.0-dev", path = "../../../frame/treasury" }
+sp-api = { version = "4.0.0-dev", path = "../../../primitives/api" }
+sp-timestamp = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/timestamp" }
+sp-block-builder = { version = "4.0.0-dev", path = "../../../primitives/block-builder" }
+sc-block-builder = { version = "0.10.0-dev", path = "../../../client/block-builder" }
+sp-inherents = { version = "4.0.0-dev", path = "../../../primitives/inherents" }
+sp-blockchain = { version = "4.0.0-dev", path = "../../../primitives/blockchain" }
 log = "0.4.8"
 tempfile = "3.1.0"
 fs_extra = "1"
@@ -52,4 +52,4 @@ futures = "0.3.1"
 
 [dev-dependencies]
 criterion = "0.3.0"
-sc-cli = { version = "0.9.0", path = "../../../client/cli" }
+sc-cli = { version = "0.10.0-dev", path = "../../../client/cli" }
diff --git a/substrate/bin/utils/chain-spec-builder/Cargo.toml b/substrate/bin/utils/chain-spec-builder/Cargo.toml
index 3c60d654db944ce5cab2f749b8255b3f7376c12e..5bdf01badc3f401549f415b58dabd7a180470a2b 100644
--- a/substrate/bin/utils/chain-spec-builder/Cargo.toml
+++ b/substrate/bin/utils/chain-spec-builder/Cargo.toml
@@ -8,16 +8,17 @@ license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
 homepage = "https://substrate.dev"
 repository = "https://github.com/paritytech/substrate/"
 readme = "README.md"
+publish = false
 
 [package.metadata.docs.rs]
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 ansi_term = "0.12.1"
-sc-keystore = { version = "3.0.0", path = "../../../client/keystore" }
-sc-chain-spec = { version = "3.0.0", path = "../../../client/chain-spec" }
-node-cli = { version = "2.0.0", path = "../../node/cli" }
-sp-core = { version = "3.0.0", path = "../../../primitives/core" }
-sp-keystore = { version = "0.9.0", path = "../../../primitives/keystore" }
+sc-keystore = { version = "4.0.0-dev", path = "../../../client/keystore" }
+sc-chain-spec = { version = "4.0.0-dev", path = "../../../client/chain-spec" }
+node-cli = { version = "3.0.0-dev", path = "../../node/cli" }
+sp-core = { version = "4.0.0-dev", path = "../../../primitives/core" }
+sp-keystore = { version = "0.10.0-dev", path = "../../../primitives/keystore" }
 rand = "0.7.2"
 structopt = "0.3.8"
diff --git a/substrate/bin/utils/subkey/Cargo.toml b/substrate/bin/utils/subkey/Cargo.toml
index 1adbd88c72176bdfc1b91488ede42c4acac58dee..9bd38a21a664bbeeff6d9263fb29debd3f8d4c5d 100644
--- a/substrate/bin/utils/subkey/Cargo.toml
+++ b/substrate/bin/utils/subkey/Cargo.toml
@@ -7,6 +7,7 @@ license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
 homepage = "https://substrate.dev"
 repository = "https://github.com/paritytech/substrate/"
 readme = "README.md"
+publish = false
 
 [package.metadata.docs.rs]
 targets = ["x86_64-unknown-linux-gnu"]
@@ -16,5 +17,5 @@ path = "src/main.rs"
 name = "subkey"
 
 [dependencies]
-sc-cli = { version = "0.9.0", path = "../../../client/cli" }
+sc-cli = { version = "0.10.0-dev", path = "../../../client/cli" }
 structopt = "0.3.14"
diff --git a/substrate/client/allocator/Cargo.toml b/substrate/client/allocator/Cargo.toml
index 43a3bae4e529b271d406d4bb1d811134cb096d4d..5ebab6cf9d61ac4437fb16b218622875eff2e6cf 100644
--- a/substrate/client/allocator/Cargo.toml
+++ b/substrate/client/allocator/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-allocator"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,7 +14,7 @@ readme = "README.md"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sp-core = { version = "3.0.0", path = "../../primitives/core" }
-sp-wasm-interface = { version = "3.0.0", path = "../../primitives/wasm-interface" }
+sp-core = { version = "4.0.0-dev", path = "../../primitives/core" }
+sp-wasm-interface = { version = "4.0.0-dev", path = "../../primitives/wasm-interface" }
 log = "0.4.11"
 thiserror = "1.0.21"
diff --git a/substrate/client/api/Cargo.toml b/substrate/client/api/Cargo.toml
index 044ef78a07fbe79874cd3b720ad7e2aabfc4fca9..29d38147b988a8135109ba69bab6ed7f8409ef8b 100644
--- a/substrate/client/api/Cargo.toml
+++ b/substrate/client/api/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-client-api"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
@@ -15,31 +15,31 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] }
-sp-consensus = { version = "0.9.0", path = "../../primitives/consensus/common" }
+sp-consensus = { version = "0.10.0-dev", path = "../../primitives/consensus/common" }
 derive_more = "0.99.2"
-sc-executor = { version = "0.9.0", path = "../executor" }
-sp-externalities = { version = "0.9.0", path = "../../primitives/externalities" }
+sc-executor = { version = "0.10.0-dev", path = "../executor" }
+sp-externalities = { version = "0.10.0-dev", path = "../../primitives/externalities" }
 fnv = "1.0.6"
 futures = "0.3.1"
 hash-db = { version = "0.15.2", default-features = false }
-sp-blockchain = { version = "3.0.0", path = "../../primitives/blockchain" }
-sp-inherents = { version = "3.0.0", default-features = false, path = "../../primitives/inherents" }
+sp-blockchain = { version = "4.0.0-dev", path = "../../primitives/blockchain" }
+sp-inherents = { version = "4.0.0-dev", default-features = false, path = "../../primitives/inherents" }
 kvdb = "0.10.0"
 log = "0.4.8"
 parking_lot = "0.11.1"
 lazy_static =  "1.4.0"
-sp-database = { version = "3.0.0", path = "../../primitives/database" }
-sp-core = { version = "3.0.0", default-features = false, path = "../../primitives/core" }
-sp-keystore = { version = "0.9.0", default-features = false, path = "../../primitives/keystore" }
-sp-std = { version = "3.0.0", default-features = false, path = "../../primitives/std" }
-sp-version = { version = "3.0.0", default-features = false, path = "../../primitives/version" }
-sp-api = { version = "3.0.0", path = "../../primitives/api" }
-sp-utils = { version = "3.0.0", path = "../../primitives/utils" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../primitives/runtime" }
-sp-state-machine = { version = "0.9.0", path = "../../primitives/state-machine" }
-sp-trie = { version = "3.0.0", path = "../../primitives/trie" }
-sp-storage = { version = "3.0.0", path = "../../primitives/storage" }
-sc-transaction-pool-api = { version = "3.0.0", path = "../transaction-pool/api" }
+sp-database = { version = "4.0.0-dev", path = "../../primitives/database" }
+sp-core = { version = "4.0.0-dev", default-features = false, path = "../../primitives/core" }
+sp-keystore = { version = "0.10.0-dev", default-features = false, path = "../../primitives/keystore" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../primitives/std" }
+sp-version = { version = "4.0.0-dev", default-features = false, path = "../../primitives/version" }
+sp-api = { version = "4.0.0-dev", path = "../../primitives/api" }
+sp-utils = { version = "4.0.0-dev", path = "../../primitives/utils" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../primitives/runtime" }
+sp-state-machine = { version = "0.10.0-dev", path = "../../primitives/state-machine" }
+sp-trie = { version = "4.0.0-dev", path = "../../primitives/trie" }
+sp-storage = { version = "4.0.0-dev", path = "../../primitives/storage" }
+sc-transaction-pool-api = { version = "4.0.0-dev", path = "../transaction-pool/api" }
 prometheus-endpoint = { package = "substrate-prometheus-endpoint", version = "0.9.0", path = "../../utils/prometheus" }
 
 [dev-dependencies]
diff --git a/substrate/client/authority-discovery/Cargo.toml b/substrate/client/authority-discovery/Cargo.toml
index 5b5baa999c8b342fffe7d78cd7266f466c6eee25..bca84d18d0885bdd4503b66a9616cd2b82e02ece 100644
--- a/substrate/client/authority-discovery/Cargo.toml
+++ b/substrate/client/authority-discovery/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-authority-discovery"
-version = "0.9.0"
+version = "0.10.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 build = "build.rs"
@@ -29,18 +29,18 @@ log = "0.4.8"
 prometheus-endpoint = { package = "substrate-prometheus-endpoint", path = "../../utils/prometheus", version = "0.9.0"}
 prost = "0.7"
 rand = "0.7.2"
-sc-client-api = { version = "3.0.0", path = "../api" }
-sc-network = { version = "0.9.0", path = "../network" }
+sc-client-api = { version = "4.0.0-dev", path = "../api" }
+sc-network = { version = "0.10.0-dev", path = "../network" }
 serde_json = "1.0.41"
-sp-authority-discovery = { version = "3.0.0", path = "../../primitives/authority-discovery" }
-sp-blockchain = { version = "3.0.0", path = "../../primitives/blockchain" }
-sp-core = { version = "3.0.0", path = "../../primitives/core" }
-sp-keystore = { version = "0.9.0", path = "../../primitives/keystore" }
-sp-runtime = { version = "3.0.0", path = "../../primitives/runtime" }
-sp-api = { version = "3.0.0", path = "../../primitives/api" }
+sp-authority-discovery = { version = "4.0.0-dev", path = "../../primitives/authority-discovery" }
+sp-blockchain = { version = "4.0.0-dev", path = "../../primitives/blockchain" }
+sp-core = { version = "4.0.0-dev", path = "../../primitives/core" }
+sp-keystore = { version = "0.10.0-dev", path = "../../primitives/keystore" }
+sp-runtime = { version = "4.0.0-dev", path = "../../primitives/runtime" }
+sp-api = { version = "4.0.0-dev", path = "../../primitives/api" }
 
 [dev-dependencies]
 quickcheck = "1.0.3"
-sp-tracing = { version = "3.0.0", path = "../../primitives/tracing" }
-sc-peerset = { version = "3.0.0", path = "../peerset" }
+sp-tracing = { version = "4.0.0-dev", path = "../../primitives/tracing" }
+sc-peerset = { version = "4.0.0-dev", path = "../peerset" }
 substrate-test-runtime-client = { version = "2.0.0", path = "../../test-utils/runtime/client"}
diff --git a/substrate/client/basic-authorship/Cargo.toml b/substrate/client/basic-authorship/Cargo.toml
index 47dc04a37868ec9a77a9b432c46de3e7f66e724e..469df55cf0233d8b6bf79702beb0912b25bb5c38 100644
--- a/substrate/client/basic-authorship/Cargo.toml
+++ b/substrate/client/basic-authorship/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-basic-authorship"
-version = "0.9.0"
+version = "0.10.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
@@ -18,19 +18,19 @@ futures = "0.3.9"
 futures-timer = "3.0.1"
 log = "0.4.8"
 prometheus-endpoint = { package = "substrate-prometheus-endpoint", path = "../../utils/prometheus", version = "0.9.0"}
-sp-api = { version = "3.0.0", path = "../../primitives/api" }
-sp-runtime = { version = "3.0.0", path = "../../primitives/runtime" }
-sp-core = { version = "3.0.0", path = "../../primitives/core" }
-sp-blockchain = { version = "3.0.0", path = "../../primitives/blockchain" }
-sc-client-api = { version = "3.0.0", path = "../api" }
-sp-consensus = { version = "0.9.0", path = "../../primitives/consensus/common" }
-sp-inherents = { version = "3.0.0", path = "../../primitives/inherents" }
-sc-telemetry = { version = "3.0.0", path = "../telemetry" }
-sc-transaction-pool-api = { version = "3.0.0", path = "../../client/transaction-pool/api" }
-sc-block-builder = { version = "0.9.0", path = "../block-builder" }
+sp-api = { version = "4.0.0-dev", path = "../../primitives/api" }
+sp-runtime = { version = "4.0.0-dev", path = "../../primitives/runtime" }
+sp-core = { version = "4.0.0-dev", path = "../../primitives/core" }
+sp-blockchain = { version = "4.0.0-dev", path = "../../primitives/blockchain" }
+sc-client-api = { version = "4.0.0-dev", path = "../api" }
+sp-consensus = { version = "0.10.0-dev", path = "../../primitives/consensus/common" }
+sp-inherents = { version = "4.0.0-dev", path = "../../primitives/inherents" }
+sc-telemetry = { version = "4.0.0-dev", path = "../telemetry" }
+sc-transaction-pool-api = { version = "4.0.0-dev", path = "../../client/transaction-pool/api" }
+sc-block-builder = { version = "0.10.0-dev", path = "../block-builder" }
 sc-proposer-metrics = { version = "0.9.0", path = "../proposer-metrics" }
 
 [dev-dependencies]
-sc-transaction-pool = { version = "3.0.0", path = "../transaction-pool" }
+sc-transaction-pool = { version = "4.0.0-dev", path = "../transaction-pool" }
 substrate-test-runtime-client = { version = "2.0.0", path = "../../test-utils/runtime/client" }
 parking_lot = "0.11.1"
diff --git a/substrate/client/block-builder/Cargo.toml b/substrate/client/block-builder/Cargo.toml
index 1019e2411c68c51ed1c3a6908e85086ca9777907..557b324efc9a1d7abf801e468c12cd452bc17507 100644
--- a/substrate/client/block-builder/Cargo.toml
+++ b/substrate/client/block-builder/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-block-builder"
-version = "0.9.0"
+version = "0.10.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
@@ -14,16 +14,16 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 
 [dependencies]
-sp-state-machine = { version = "0.9.0", path = "../../primitives/state-machine" }
-sp-runtime = { version = "3.0.0", path = "../../primitives/runtime" }
-sp-api = { version = "3.0.0", path = "../../primitives/api" }
-sp-blockchain = { version = "3.0.0", path = "../../primitives/blockchain" }
-sp-core = { version = "3.0.0", path = "../../primitives/core" }
-sp-block-builder = { version = "3.0.0", path = "../../primitives/block-builder" }
-sp-inherents = { version = "3.0.0", path = "../../primitives/inherents" }
-sc-client-api = { version = "3.0.0", path = "../api" }
+sp-state-machine = { version = "0.10.0-dev", path = "../../primitives/state-machine" }
+sp-runtime = { version = "4.0.0-dev", path = "../../primitives/runtime" }
+sp-api = { version = "4.0.0-dev", path = "../../primitives/api" }
+sp-blockchain = { version = "4.0.0-dev", path = "../../primitives/blockchain" }
+sp-core = { version = "4.0.0-dev", path = "../../primitives/core" }
+sp-block-builder = { version = "4.0.0-dev", path = "../../primitives/block-builder" }
+sp-inherents = { version = "4.0.0-dev", path = "../../primitives/inherents" }
+sc-client-api = { version = "4.0.0-dev", path = "../api" }
 codec = { package = "parity-scale-codec", version = "2.0.0", features = ["derive"] }
 
 [dev-dependencies]
 substrate-test-runtime-client = { path = "../../test-utils/runtime/client" }
-sp-trie = { version = "3.0.0", path = "../../primitives/trie" }
+sp-trie = { version = "4.0.0-dev", path = "../../primitives/trie" }
diff --git a/substrate/client/chain-spec/Cargo.toml b/substrate/client/chain-spec/Cargo.toml
index 2eddec524cad6274e9d47544d99ba462031e3c2a..e6d9aa97153e213e21fcd2d3aa4d542809a16a9c 100644
--- a/substrate/client/chain-spec/Cargo.toml
+++ b/substrate/client/chain-spec/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-chain-spec"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
@@ -13,16 +13,16 @@ readme = "README.md"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sc-chain-spec-derive = { version = "3.0.0", path = "./derive" }
+sc-chain-spec-derive = { version = "4.0.0-dev", path = "./derive" }
 impl-trait-for-tuples = "0.2.1"
-sc-network = { version = "0.9.0", path = "../network" }
-sp-core = { version = "3.0.0", path = "../../primitives/core" }
+sc-network = { version = "0.10.0-dev", path = "../network" }
+sp-core = { version = "4.0.0-dev", path = "../../primitives/core" }
 serde = { version = "1.0.101", features = ["derive"] }
 serde_json = "1.0.41"
-sp-runtime = { version = "3.0.0", path = "../../primitives/runtime" }
-sc-telemetry = { version = "3.0.0", path = "../telemetry" }
+sp-runtime = { version = "4.0.0-dev", path = "../../primitives/runtime" }
+sc-telemetry = { version = "4.0.0-dev", path = "../telemetry" }
 codec = { package = "parity-scale-codec", version = "2.0.0" }
-sc-consensus-babe = { version = "0.9.0", path = "../consensus/babe" }
-sp-consensus-babe = { version = "0.9.0", path = "../../primitives/consensus/babe" }
-sc-consensus-epochs = { version = "0.9.0", path = "../consensus/epochs" }
-sc-finality-grandpa = { version = "0.9.0", path = "../finality-grandpa" }
+sc-consensus-babe = { version = "0.10.0-dev", path = "../consensus/babe" }
+sp-consensus-babe = { version = "0.10.0-dev", path = "../../primitives/consensus/babe" }
+sc-consensus-epochs = { version = "0.10.0-dev", path = "../consensus/epochs" }
+sc-finality-grandpa = { version = "0.10.0-dev", path = "../finality-grandpa" }
diff --git a/substrate/client/chain-spec/derive/Cargo.toml b/substrate/client/chain-spec/derive/Cargo.toml
index 8df820a46aeec559aa3327cedafe65cc082c5600..6823c139dbe5434a5e31f7b43cede1463119ae92 100644
--- a/substrate/client/chain-spec/derive/Cargo.toml
+++ b/substrate/client/chain-spec/derive/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-chain-spec-derive"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
diff --git a/substrate/client/cli/Cargo.toml b/substrate/client/cli/Cargo.toml
index 00a56e5fa9b863316646f3bb16758c43dd7a11cb..82325238ca0fc6121e7fdbc4f4c43877c882c13c 100644
--- a/substrate/client/cli/Cargo.toml
+++ b/substrate/client/cli/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-cli"
-version = "0.9.0"
+version = "0.10.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "Substrate CLI interface."
 edition = "2018"
@@ -24,22 +24,22 @@ hex = "0.4.2"
 rand = "0.7.3"
 tiny-bip39 = "0.8.0"
 serde_json = "1.0.41"
-sc-keystore = { version = "3.0.0", path = "../keystore" }
+sc-keystore = { version = "4.0.0-dev", path = "../keystore" }
 sp-panic-handler = { version = "3.0.0", path = "../../primitives/panic-handler" }
-sc-client-api = { version = "3.0.0", path = "../api" }
-sp-blockchain = { version = "3.0.0", path = "../../primitives/blockchain" }
-sc-network = { version = "0.9.0", path = "../network" }
-sp-runtime = { version = "3.0.0", path = "../../primitives/runtime" }
-sp-utils = { version = "3.0.0", path = "../../primitives/utils" }
-sp-version = { version = "3.0.0", path = "../../primitives/version" }
-sp-core = { version = "3.0.0", path = "../../primitives/core" }
-sp-keystore = { version = "0.9.0", path = "../../primitives/keystore" }
-sc-service = { version = "0.9.0", default-features = false, path = "../service" }
-sc-telemetry = { version = "3.0.0", path = "../telemetry" }
-sp-keyring = { version = "3.0.0", path = "../../primitives/keyring" }
+sc-client-api = { version = "4.0.0-dev", path = "../api" }
+sp-blockchain = { version = "4.0.0-dev", path = "../../primitives/blockchain" }
+sc-network = { version = "0.10.0-dev", path = "../network" }
+sp-runtime = { version = "4.0.0-dev", path = "../../primitives/runtime" }
+sp-utils = { version = "4.0.0-dev", path = "../../primitives/utils" }
+sp-version = { version = "4.0.0-dev", path = "../../primitives/version" }
+sp-core = { version = "4.0.0-dev", path = "../../primitives/core" }
+sp-keystore = { version = "0.10.0-dev", path = "../../primitives/keystore" }
+sc-service = { version = "0.10.0-dev", default-features = false, path = "../service" }
+sc-telemetry = { version = "4.0.0-dev", path = "../telemetry" }
+sp-keyring = { version = "4.0.0-dev", path = "../../primitives/keyring" }
 names = "0.11.0"
 structopt = "0.3.8"
-sc-tracing = { version = "3.0.0", path = "../tracing" }
+sc-tracing = { version = "4.0.0-dev", path = "../tracing" }
 chrono = "0.4.10"
 serde = "1.0.111"
 thiserror = "1.0.21"
diff --git a/substrate/client/consensus/aura/Cargo.toml b/substrate/client/consensus/aura/Cargo.toml
index 27c1534032f4934ffab6d0d7cd20d5d8003b83cd..36187871aa88a840df6036e693c27c33646e541c 100644
--- a/substrate/client/consensus/aura/Cargo.toml
+++ b/substrate/client/consensus/aura/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-consensus-aura"
-version = "0.9.0"
+version = "0.10.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "Aura consensus algorithm for substrate"
 edition = "2018"
@@ -13,28 +13,28 @@ readme = "README.md"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sp-application-crypto = { version = "3.0.0", path = "../../../primitives/application-crypto" }
-sp-consensus-aura = { version = "0.9.0", path = "../../../primitives/consensus/aura" }
-sp-block-builder = { version = "3.0.0", path = "../../../primitives/block-builder" }
-sc-block-builder = { version = "0.9.0", path = "../../block-builder" }
-sc-client-api = { version = "3.0.0", path = "../../api" }
+sp-application-crypto = { version = "4.0.0-dev", path = "../../../primitives/application-crypto" }
+sp-consensus-aura = { version = "0.10.0-dev", path = "../../../primitives/consensus/aura" }
+sp-block-builder = { version = "4.0.0-dev", path = "../../../primitives/block-builder" }
+sc-block-builder = { version = "0.10.0-dev", path = "../../block-builder" }
+sc-client-api = { version = "4.0.0-dev", path = "../../api" }
 codec = { package = "parity-scale-codec", version = "2.0.0" }
-sp-consensus = { version = "0.9.0", path = "../../../primitives/consensus/common" }
-sp-consensus-slots = { version = "0.9.0", path = "../../../primitives/consensus/slots" }
+sp-consensus = { version = "0.10.0-dev", path = "../../../primitives/consensus/common" }
+sp-consensus-slots = { version = "0.10.0-dev", path = "../../../primitives/consensus/slots" }
 derive_more = "0.99.2"
 futures = "0.3.9"
 futures-timer = "3.0.1"
-sp-inherents = { version = "3.0.0", path = "../../../primitives/inherents" }
+sp-inherents = { version = "4.0.0-dev", path = "../../../primitives/inherents" }
 log = "0.4.8"
-sp-core = { version = "3.0.0", path = "../../../primitives/core" }
-sp-blockchain = { version = "3.0.0", path = "../../../primitives/blockchain" }
-sp-io = { version = "3.0.0", path = "../../../primitives/io" }
-sp-version = { version = "3.0.0", path = "../../../primitives/version" }
-sc-consensus-slots = { version = "0.9.0", path = "../slots" }
-sp-api = { version = "3.0.0", path = "../../../primitives/api" }
-sp-runtime = { version = "3.0.0", path = "../../../primitives/runtime" }
-sp-keystore = { version = "0.9.0", path = "../../../primitives/keystore" }
-sc-telemetry = { version = "3.0.0", path = "../../telemetry" }
+sp-core = { version = "4.0.0-dev", path = "../../../primitives/core" }
+sp-blockchain = { version = "4.0.0-dev", path = "../../../primitives/blockchain" }
+sp-io = { version = "4.0.0-dev", path = "../../../primitives/io" }
+sp-version = { version = "4.0.0-dev", path = "../../../primitives/version" }
+sc-consensus-slots = { version = "0.10.0-dev", path = "../slots" }
+sp-api = { version = "4.0.0-dev", path = "../../../primitives/api" }
+sp-runtime = { version = "4.0.0-dev", path = "../../../primitives/runtime" }
+sp-keystore = { version = "0.10.0-dev", path = "../../../primitives/keystore" }
+sc-telemetry = { version = "4.0.0-dev", path = "../../telemetry" }
 prometheus-endpoint = { package = "substrate-prometheus-endpoint", path = "../../../utils/prometheus", version = "0.9.0"}
 async-trait = "0.1.42"
 # We enable it only for web-wasm check
@@ -42,14 +42,14 @@ async-trait = "0.1.42"
 getrandom = { version = "0.2", features = ["js"], optional = true }
 
 [dev-dependencies]
-sp-timestamp = { version = "3.0.0", path = "../../../primitives/timestamp" }
-sp-keyring = { version = "3.0.0", path = "../../../primitives/keyring" }
-sp-tracing = { version = "3.0.0", path = "../../../primitives/tracing" }
-sc-executor = { version = "0.9.0", path = "../../executor" }
-sc-keystore = { version = "3.0.0", path = "../../keystore" }
-sc-network = { version = "0.9.0", path = "../../network" }
+sp-timestamp = { version = "4.0.0-dev", path = "../../../primitives/timestamp" }
+sp-keyring = { version = "4.0.0-dev", path = "../../../primitives/keyring" }
+sp-tracing = { version = "4.0.0-dev", path = "../../../primitives/tracing" }
+sc-executor = { version = "0.10.0-dev", path = "../../executor" }
+sc-keystore = { version = "4.0.0-dev", path = "../../keystore" }
+sc-network = { version = "0.10.0-dev", path = "../../network" }
 sc-network-test = { version = "0.8.0", path = "../../network/test" }
-sc-service = { version = "0.9.0", default-features = false, path = "../../service" }
+sc-service = { version = "0.10.0-dev", default-features = false, path = "../../service" }
 substrate-test-runtime-client = { version = "2.0.0", path = "../../../test-utils/runtime/client" }
 tempfile = "3.1.0"
 parking_lot = "0.11.1"
diff --git a/substrate/client/consensus/babe/Cargo.toml b/substrate/client/consensus/babe/Cargo.toml
index 9ada9fda6216fb2d3304205f323520146e490bd3..f9dc45ed9c6ddac1f984ee7cfb62809f626c9560 100644
--- a/substrate/client/consensus/babe/Cargo.toml
+++ b/substrate/client/consensus/babe/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-consensus-babe"
-version = "0.9.0"
+version = "0.10.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "BABE consensus algorithm for substrate"
 edition = "2018"
@@ -15,31 +15,31 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "2.0.0", features = ["derive"] }
-sp-consensus-babe = { version = "0.9.0", path = "../../../primitives/consensus/babe" }
-sp-core = { version = "3.0.0", path = "../../../primitives/core" }
-sp-application-crypto = { version = "3.0.0", path = "../../../primitives/application-crypto" }
-sp-keystore = { version = "0.9.0", path = "../../../primitives/keystore" }
+sp-consensus-babe = { version = "0.10.0-dev", path = "../../../primitives/consensus/babe" }
+sp-core = { version = "4.0.0-dev", path = "../../../primitives/core" }
+sp-application-crypto = { version = "4.0.0-dev", path = "../../../primitives/application-crypto" }
+sp-keystore = { version = "0.10.0-dev", path = "../../../primitives/keystore" }
 num-bigint = "0.2.3"
 num-rational = "0.2.2"
 num-traits = "0.2.8"
 serde = { version = "1.0.104", features = ["derive"] }
-sp-version = { version = "3.0.0", path = "../../../primitives/version" }
-sp-io = { version = "3.0.0", path = "../../../primitives/io" }
-sp-inherents = { version = "3.0.0", path = "../../../primitives/inherents" }
-sc-telemetry = { version = "3.0.0", path = "../../telemetry" }
-sc-keystore = { version = "3.0.0", path = "../../keystore" }
-sc-client-api = { version = "3.0.0", path = "../../api" }
-sc-consensus-epochs = { version = "0.9.0", path = "../epochs" }
-sp-api = { version = "3.0.0", path = "../../../primitives/api" }
-sp-block-builder = { version = "3.0.0", path = "../../../primitives/block-builder" }
-sp-blockchain = { version = "3.0.0", path = "../../../primitives/blockchain" }
-sp-consensus = { version = "0.9.0", path = "../../../primitives/consensus/common" }
-sp-consensus-slots = { version = "0.9.0", path = "../../../primitives/consensus/slots" }
-sp-consensus-vrf = { version = "0.9.0", path = "../../../primitives/consensus/vrf" }
-sc-consensus-uncles = { version = "0.9.0", path = "../uncles" }
-sc-consensus-slots = { version = "0.9.0", path = "../slots" }
-sp-runtime = { version = "3.0.0", path = "../../../primitives/runtime" }
-sp-utils = { version = "3.0.0", path = "../../../primitives/utils" }
+sp-version = { version = "4.0.0-dev", path = "../../../primitives/version" }
+sp-io = { version = "4.0.0-dev", path = "../../../primitives/io" }
+sp-inherents = { version = "4.0.0-dev", path = "../../../primitives/inherents" }
+sc-telemetry = { version = "4.0.0-dev", path = "../../telemetry" }
+sc-keystore = { version = "4.0.0-dev", path = "../../keystore" }
+sc-client-api = { version = "4.0.0-dev", path = "../../api" }
+sc-consensus-epochs = { version = "0.10.0-dev", path = "../epochs" }
+sp-api = { version = "4.0.0-dev", path = "../../../primitives/api" }
+sp-block-builder = { version = "4.0.0-dev", path = "../../../primitives/block-builder" }
+sp-blockchain = { version = "4.0.0-dev", path = "../../../primitives/blockchain" }
+sp-consensus = { version = "0.10.0-dev", path = "../../../primitives/consensus/common" }
+sp-consensus-slots = { version = "0.10.0-dev", path = "../../../primitives/consensus/slots" }
+sp-consensus-vrf = { version = "0.10.0-dev", path = "../../../primitives/consensus/vrf" }
+sc-consensus-uncles = { version = "0.10.0-dev", path = "../uncles" }
+sc-consensus-slots = { version = "0.10.0-dev", path = "../slots" }
+sp-runtime = { version = "4.0.0-dev", path = "../../../primitives/runtime" }
+sp-utils = { version = "4.0.0-dev", path = "../../../primitives/utils" }
 fork-tree = { version = "3.0.0", path = "../../../utils/fork-tree" }
 prometheus-endpoint = { package = "substrate-prometheus-endpoint", path = "../../../utils/prometheus", version = "0.9.0"}
 futures = "0.3.9"
@@ -55,14 +55,14 @@ retain_mut = "0.1.3"
 async-trait = "0.1.42"
 
 [dev-dependencies]
-sp-timestamp = { version = "3.0.0", path = "../../../primitives/timestamp" }
-sp-keyring = { version = "3.0.0", path = "../../../primitives/keyring" }
-sp-tracing = { version = "3.0.0", path = "../../../primitives/tracing" }
-sc-executor = { version = "0.9.0", path = "../../executor" }
-sc-network = { version = "0.9.0", path = "../../network" }
+sp-timestamp = { version = "4.0.0-dev", path = "../../../primitives/timestamp" }
+sp-keyring = { version = "4.0.0-dev", path = "../../../primitives/keyring" }
+sp-tracing = { version = "4.0.0-dev", path = "../../../primitives/tracing" }
+sc-executor = { version = "0.10.0-dev", path = "../../executor" }
+sc-network = { version = "0.10.0-dev", path = "../../network" }
 sc-network-test = { version = "0.8.0", path = "../../network/test" }
-sc-service = { version = "0.9.0", default-features = false, path = "../../service" }
+sc-service = { version = "0.10.0-dev", default-features = false, path = "../../service" }
 substrate-test-runtime-client = { version = "2.0.0", path = "../../../test-utils/runtime/client" }
-sc-block-builder = { version = "0.9.0", path = "../../block-builder" }
+sc-block-builder = { version = "0.10.0-dev", path = "../../block-builder" }
 rand_chacha = "0.2.2"
 tempfile = "3.1.0"
diff --git a/substrate/client/consensus/babe/rpc/Cargo.toml b/substrate/client/consensus/babe/rpc/Cargo.toml
index 71a1205e3c7aa9547038dba6d14a35f4c72ce1ee..12bce64c3afe7b07cd980c9ac13c972e370c8cb0 100644
--- a/substrate/client/consensus/babe/rpc/Cargo.toml
+++ b/substrate/client/consensus/babe/rpc/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-consensus-babe-rpc"
-version = "0.9.0"
+version = "0.10.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "RPC extensions for the BABE consensus algorithm"
 edition = "2018"
@@ -13,28 +13,28 @@ readme = "README.md"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sc-consensus-babe = { version = "0.9.0", path = "../" }
-sc-rpc-api = { version = "0.9.0", path = "../../../rpc-api" }
+sc-consensus-babe = { version = "0.10.0-dev", path = "../" }
+sc-rpc-api = { version = "0.10.0-dev", path = "../../../rpc-api" }
 jsonrpc-core = "15.1.0"
 jsonrpc-core-client = "15.1.0"
 jsonrpc-derive = "15.1.0"
-sp-consensus-babe = { version = "0.9.0", path = "../../../../primitives/consensus/babe" }
+sp-consensus-babe = { version = "0.10.0-dev", path = "../../../../primitives/consensus/babe" }
 serde = { version = "1.0.104", features=["derive"] }
-sp-blockchain = { version = "3.0.0", path = "../../../../primitives/blockchain" }
-sp-runtime = { version = "3.0.0", path = "../../../../primitives/runtime" }
-sc-consensus-epochs = { version = "0.9.0", path = "../../epochs" }
+sp-blockchain = { version = "4.0.0-dev", path = "../../../../primitives/blockchain" }
+sp-runtime = { version = "4.0.0-dev", path = "../../../../primitives/runtime" }
+sc-consensus-epochs = { version = "0.10.0-dev", path = "../../epochs" }
 futures = { version = "0.3.4", features = ["compat"] }
 derive_more = "0.99.2"
-sp-api = { version = "3.0.0", path = "../../../../primitives/api" }
-sp-consensus = { version = "0.9.0", path = "../../../../primitives/consensus/common" }
-sp-core = { version = "3.0.0", path = "../../../../primitives/core" }
-sp-application-crypto = { version = "3.0.0", path = "../../../../primitives/application-crypto" }
-sp-keystore = { version = "0.9.0", path = "../../../../primitives/keystore" }
+sp-api = { version = "4.0.0-dev", path = "../../../../primitives/api" }
+sp-consensus = { version = "0.10.0-dev", path = "../../../../primitives/consensus/common" }
+sp-core = { version = "4.0.0-dev", path = "../../../../primitives/core" }
+sp-application-crypto = { version = "4.0.0-dev", path = "../../../../primitives/application-crypto" }
+sp-keystore = { version = "0.10.0-dev", path = "../../../../primitives/keystore" }
 
 [dev-dependencies]
-sc-consensus = { version = "0.9.0", path = "../../../consensus/common" }
+sc-consensus = { version = "0.10.0-dev", path = "../../../consensus/common" }
 serde_json = "1.0.50"
-sp-keyring = { version = "3.0.0", path = "../../../../primitives/keyring" }
-sc-keystore = { version = "3.0.0", path = "../../../keystore" }
+sp-keyring = { version = "4.0.0-dev", path = "../../../../primitives/keyring" }
+sc-keystore = { version = "4.0.0-dev", path = "../../../keystore" }
 substrate-test-runtime-client = { version = "2.0.0", path = "../../../../test-utils/runtime/client" }
 tempfile = "3.1.0"
diff --git a/substrate/client/consensus/common/Cargo.toml b/substrate/client/consensus/common/Cargo.toml
index 32babb02c2bf0f74ae2d3a86f3d3330b14eae5c8..c8d86b06115a31e924d181402a5c07286bcf4ee2 100644
--- a/substrate/client/consensus/common/Cargo.toml
+++ b/substrate/client/consensus/common/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-consensus"
-version = "0.9.0"
+version = "0.10.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
@@ -14,8 +14,8 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 async-trait = "0.1"
-sc-client-api = { version = "3.0.0", path = "../../api" }
-sp-blockchain = { version = "3.0.0", path = "../../../primitives/blockchain" }
-sp-runtime = { version = "3.0.0", path = "../../../primitives/runtime" }
-sp-consensus = { version = "0.9.0", path = "../../../primitives/consensus/common" }
+sc-client-api = { version = "4.0.0-dev", path = "../../api" }
+sp-blockchain = { version = "4.0.0-dev", path = "../../../primitives/blockchain" }
+sp-runtime = { version = "4.0.0-dev", path = "../../../primitives/runtime" }
+sp-consensus = { version = "0.10.0-dev", path = "../../../primitives/consensus/common" }
 parking_lot = "0.11.1"
diff --git a/substrate/client/consensus/epochs/Cargo.toml b/substrate/client/consensus/epochs/Cargo.toml
index 8e2fe7710096758398afa06911d0ad65bdcbb593..78e5cc31ea07ec408fc33d26dad53a47d57bc7be 100644
--- a/substrate/client/consensus/epochs/Cargo.toml
+++ b/substrate/client/consensus/epochs/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-consensus-epochs"
-version = "0.9.0"
+version = "0.10.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "Generic epochs-based utilities for consensus"
 edition = "2018"
@@ -15,7 +15,7 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 codec = { package = "parity-scale-codec", version = "2.0.0", features = ["derive"] }
 fork-tree = { version = "3.0.0", path = "../../../utils/fork-tree" }
-sp-runtime = {  path = "../../../primitives/runtime" , version = "3.0.0"}
-sp-blockchain = { version = "3.0.0", path = "../../../primitives/blockchain" }
-sc-client-api = { path = "../../api" , version = "3.0.0"}
-sc-consensus = { path = "../common" , version = "0.9.0"}
+sp-runtime = {  path = "../../../primitives/runtime" , version = "4.0.0-dev"}
+sp-blockchain = { version = "4.0.0-dev", path = "../../../primitives/blockchain" }
+sc-client-api = { path = "../../api" , version = "4.0.0-dev"}
+sc-consensus = { path = "../common" , version = "0.10.0-dev"}
diff --git a/substrate/client/consensus/manual-seal/Cargo.toml b/substrate/client/consensus/manual-seal/Cargo.toml
index f7c2e98656c1b0968f1fe26bd197dc17e7e656d6..5cb2c13c82333ab3e18da9c0a66b23bc47d0abed 100644
--- a/substrate/client/consensus/manual-seal/Cargo.toml
+++ b/substrate/client/consensus/manual-seal/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-consensus-manual-seal"
-version = "0.9.0"
+version = "0.10.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "Manual sealing engine for Substrate"
 edition = "2018"
@@ -25,29 +25,29 @@ serde = { version = "1.0", features=["derive"] }
 assert_matches = "1.3.0"
 async-trait = "0.1.42"
 
-sc-client-api = { path = "../../api", version = "3.0.0"}
-sc-consensus-babe = { path = "../../consensus/babe", version = "0.9.0"}
-sc-consensus-epochs = { path = "../../consensus/epochs", version = "0.9.0"}
-sp-consensus-babe = { path = "../../../primitives/consensus/babe", version = "0.9.0"}
+sc-client-api = { path = "../../api", version = "4.0.0-dev"}
+sc-consensus-babe = { path = "../../consensus/babe", version = "0.10.0-dev"}
+sc-consensus-epochs = { path = "../../consensus/epochs", version = "0.10.0-dev"}
+sp-consensus-babe = { path = "../../../primitives/consensus/babe", version = "0.10.0-dev"}
 
-sc-transaction-pool = { path = "../../transaction-pool", version = "3.0.0"}
-sp-blockchain = { path = "../../../primitives/blockchain", version = "3.0.0"}
-sp-consensus = { path = "../../../primitives/consensus/common", version = "0.9.0"}
-sp-consensus-slots = { path = "../../../primitives/consensus/slots", version = "0.9.0"}
-sp-inherents = { path = "../../../primitives/inherents", version = "3.0.0"}
-sp-runtime = {  path = "../../../primitives/runtime", version = "3.0.0"}
-sp-core = {  path = "../../../primitives/core", version = "3.0.0"}
-sp-keystore = {  path = "../../../primitives/keystore", version = "0.9.0"}
-sp-keyring = {  path = "../../../primitives/keyring", version = "3.0.0"}
-sp-api = {  path = "../../../primitives/api", version = "3.0.0"}
-sc-transaction-pool-api = { path = "../../../client/transaction-pool/api", version = "3.0.0"}
-sp-timestamp = { path = "../../../primitives/timestamp", version = "3.0.0"}
+sc-transaction-pool = { path = "../../transaction-pool", version = "4.0.0-dev"}
+sp-blockchain = { path = "../../../primitives/blockchain", version = "4.0.0-dev"}
+sp-consensus = { path = "../../../primitives/consensus/common", version = "0.10.0-dev"}
+sp-consensus-slots = { path = "../../../primitives/consensus/slots", version = "0.10.0-dev"}
+sp-inherents = { path = "../../../primitives/inherents", version = "4.0.0-dev"}
+sp-runtime = {  path = "../../../primitives/runtime", version = "4.0.0-dev"}
+sp-core = {  path = "../../../primitives/core", version = "4.0.0-dev"}
+sp-keystore = {  path = "../../../primitives/keystore", version = "0.10.0-dev"}
+sp-keyring = {  path = "../../../primitives/keyring", version = "4.0.0-dev"}
+sp-api = {  path = "../../../primitives/api", version = "4.0.0-dev"}
+sc-transaction-pool-api = { path = "../../../client/transaction-pool/api", version = "4.0.0-dev"}
+sp-timestamp = { path = "../../../primitives/timestamp", version = "4.0.0-dev"}
 
 prometheus-endpoint = { package = "substrate-prometheus-endpoint", path = "../../../utils/prometheus", version = "0.9.0"}
 
 [dev-dependencies]
 tokio = { version = "0.2", features = ["rt-core", "macros"] }
-sc-basic-authorship = { path = "../../basic-authorship", version = "0.9.0"}
+sc-basic-authorship = { path = "../../basic-authorship", version = "0.10.0-dev"}
 substrate-test-runtime-client = { path = "../../../test-utils/runtime/client", version = "2.0.0" }
 substrate-test-runtime-transaction-pool = { path = "../../../test-utils/runtime/transaction-pool", version = "2.0.0" }
 tempfile = "3.1.0"
diff --git a/substrate/client/consensus/pow/Cargo.toml b/substrate/client/consensus/pow/Cargo.toml
index 443b852c41e5d810e4419200fe0288650d782d49..e484665cc3f886a7f8f3a26d7863aba72dbbe1d4 100644
--- a/substrate/client/consensus/pow/Cargo.toml
+++ b/substrate/client/consensus/pow/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-consensus-pow"
-version = "0.9.0"
+version = "0.10.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "PoW consensus algorithm for substrate"
 edition = "2018"
@@ -14,15 +14,15 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "2.0.0", features = ["derive"] }
-sp-core = { version = "3.0.0", path = "../../../primitives/core" }
-sp-blockchain = { version = "3.0.0", path = "../../../primitives/blockchain" }
-sp-runtime = { version = "3.0.0", path = "../../../primitives/runtime" }
-sp-api = { version = "3.0.0", path = "../../../primitives/api" }
-sc-client-api = { version = "3.0.0", path = "../../api" }
-sp-block-builder = { version = "3.0.0", path = "../../../primitives/block-builder" }
-sp-inherents = { version = "3.0.0", path = "../../../primitives/inherents" }
-sp-consensus-pow = { version = "0.9.0", path = "../../../primitives/consensus/pow" }
-sp-consensus = { version = "0.9.0", path = "../../../primitives/consensus/common" }
+sp-core = { version = "4.0.0-dev", path = "../../../primitives/core" }
+sp-blockchain = { version = "4.0.0-dev", path = "../../../primitives/blockchain" }
+sp-runtime = { version = "4.0.0-dev", path = "../../../primitives/runtime" }
+sp-api = { version = "4.0.0-dev", path = "../../../primitives/api" }
+sc-client-api = { version = "4.0.0-dev", path = "../../api" }
+sp-block-builder = { version = "4.0.0-dev", path = "../../../primitives/block-builder" }
+sp-inherents = { version = "4.0.0-dev", path = "../../../primitives/inherents" }
+sp-consensus-pow = { version = "0.10.0-dev", path = "../../../primitives/consensus/pow" }
+sp-consensus = { version = "0.10.0-dev", path = "../../../primitives/consensus/common" }
 log = "0.4.8"
 futures = { version = "0.3.1", features = ["compat"] }
 futures-timer = "3.0.1"
diff --git a/substrate/client/consensus/slots/Cargo.toml b/substrate/client/consensus/slots/Cargo.toml
index 51382198f50872969372f8fef128a2f0f872144b..72c3a4ddbf35ee79a7b6d97bead1797a85ae71a7 100644
--- a/substrate/client/consensus/slots/Cargo.toml
+++ b/substrate/client/consensus/slots/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-consensus-slots"
-version = "0.9.0"
+version = "0.10.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "Generic slots-based utilities for consensus"
 edition = "2018"
@@ -15,20 +15,20 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "2.0.0" }
-sc-client-api = { version = "3.0.0", path = "../../api" }
-sp-core = { version = "3.0.0", path = "../../../primitives/core" }
-sp-trie = { version = "3.0.0", path = "../../../primitives/trie" }
-sp-application-crypto = { version = "3.0.0", path = "../../../primitives/application-crypto" }
-sp-arithmetic = { version = "3.0.0", path = "../../../primitives/arithmetic" }
-sp-blockchain = { version = "3.0.0", path = "../../../primitives/blockchain" }
-sp-consensus-slots = { version = "0.9.0", path = "../../../primitives/consensus/slots" }
-sp-runtime = { version = "3.0.0", path = "../../../primitives/runtime" }
-sp-state-machine = { version = "0.9.0", path = "../../../primitives/state-machine" }
-sp-api = { version = "3.0.0", path = "../../../primitives/api" }
-sc-telemetry = { version = "3.0.0", path = "../../telemetry" }
-sp-consensus = { version = "0.9.0", path = "../../../primitives/consensus/common" }
-sp-inherents = { version = "3.0.0", path = "../../../primitives/inherents" }
-sp-timestamp = { version = "3.0.0", path = "../../../primitives/timestamp" }
+sc-client-api = { version = "4.0.0-dev", path = "../../api" }
+sp-core = { version = "4.0.0-dev", path = "../../../primitives/core" }
+sp-trie = { version = "4.0.0-dev", path = "../../../primitives/trie" }
+sp-application-crypto = { version = "4.0.0-dev", path = "../../../primitives/application-crypto" }
+sp-arithmetic = { version = "4.0.0-dev", path = "../../../primitives/arithmetic" }
+sp-blockchain = { version = "4.0.0-dev", path = "../../../primitives/blockchain" }
+sp-consensus-slots = { version = "0.10.0-dev", path = "../../../primitives/consensus/slots" }
+sp-runtime = { version = "4.0.0-dev", path = "../../../primitives/runtime" }
+sp-state-machine = { version = "0.10.0-dev", path = "../../../primitives/state-machine" }
+sp-api = { version = "4.0.0-dev", path = "../../../primitives/api" }
+sc-telemetry = { version = "4.0.0-dev", path = "../../telemetry" }
+sp-consensus = { version = "0.10.0-dev", path = "../../../primitives/consensus/common" }
+sp-inherents = { version = "4.0.0-dev", path = "../../../primitives/inherents" }
+sp-timestamp = { version = "4.0.0-dev", path = "../../../primitives/timestamp" }
 futures = "0.3.9"
 futures-timer = "3.0.1"
 log = "0.4.11"
diff --git a/substrate/client/consensus/uncles/Cargo.toml b/substrate/client/consensus/uncles/Cargo.toml
index ab88d4496fecb73ae1d7ce0893c4b7eff0d6e3c9..7e821db197b3cc1004cbac431f32c4e76611dec0 100644
--- a/substrate/client/consensus/uncles/Cargo.toml
+++ b/substrate/client/consensus/uncles/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-consensus-uncles"
-version = "0.9.0"
+version = "0.10.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "Generic uncle inclusion utilities for consensus"
 edition = "2018"
@@ -13,7 +13,7 @@ readme = "README.md"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sc-client-api = { version = "3.0.0", path = "../../api" }
-sp-runtime = { version = "3.0.0", path = "../../../primitives/runtime" }
-sp-authorship = { version = "3.0.0", path = "../../../primitives/authorship" }
+sc-client-api = { version = "4.0.0-dev", path = "../../api" }
+sp-runtime = { version = "4.0.0-dev", path = "../../../primitives/runtime" }
+sp-authorship = { version = "4.0.0-dev", path = "../../../primitives/authorship" }
 thiserror = "1.0.21"
diff --git a/substrate/client/db/Cargo.toml b/substrate/client/db/Cargo.toml
index 2145b988891d7b70d9821b67378a32e791d69540..5873883a11ee6961ee13e35a49298f0d11acce05 100644
--- a/substrate/client/db/Cargo.toml
+++ b/substrate/client/db/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-client-db"
-version = "0.9.0"
+version = "0.10.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
@@ -24,23 +24,23 @@ parity-util-mem = { version = "0.10.0", default-features = false, features = ["s
 codec = { package = "parity-scale-codec", version = "2.0.0", features = ["derive"] }
 blake2-rfc = "0.2.18"
 
-sc-client-api = { version = "3.0.0", path = "../api" }
-sp-arithmetic = { version = "3.0.0", path = "../../primitives/arithmetic" }
-sp-core = { version = "3.0.0", path = "../../primitives/core" }
-sp-runtime = { version = "3.0.0", path = "../../primitives/runtime" }
-sp-state-machine = { version = "0.9.0", path = "../../primitives/state-machine" }
-sc-executor = { version = "0.9.0", path = "../executor" }
-sc-state-db = { version = "0.9.0", path = "../state-db" }
-sp-trie = { version = "3.0.0", path = "../../primitives/trie" }
-sp-consensus = { version = "0.9.0", path = "../../primitives/consensus/common" }
-sp-blockchain = { version = "3.0.0", path = "../../primitives/blockchain" }
-sp-database = { version = "3.0.0", path = "../../primitives/database" }
+sc-client-api = { version = "4.0.0-dev", path = "../api" }
+sp-arithmetic = { version = "4.0.0-dev", path = "../../primitives/arithmetic" }
+sp-core = { version = "4.0.0-dev", path = "../../primitives/core" }
+sp-runtime = { version = "4.0.0-dev", path = "../../primitives/runtime" }
+sp-state-machine = { version = "0.10.0-dev", path = "../../primitives/state-machine" }
+sc-executor = { version = "0.10.0-dev", path = "../executor" }
+sc-state-db = { version = "0.10.0-dev", path = "../state-db" }
+sp-trie = { version = "4.0.0-dev", path = "../../primitives/trie" }
+sp-consensus = { version = "0.10.0-dev", path = "../../primitives/consensus/common" }
+sp-blockchain = { version = "4.0.0-dev", path = "../../primitives/blockchain" }
+sp-database = { version = "4.0.0-dev", path = "../../primitives/database" }
 parity-db = { version = "0.2.4", optional = true }
 prometheus-endpoint = { package = "substrate-prometheus-endpoint", version = "0.9.0", path = "../../utils/prometheus" }
 
 [dev-dependencies]
-sp-keyring = { version = "3.0.0", path = "../../primitives/keyring" }
-sp-tracing = { version = "3.0.0", path = "../../primitives/tracing" }
+sp-keyring = { version = "4.0.0-dev", path = "../../primitives/keyring" }
+sp-tracing = { version = "4.0.0-dev", path = "../../primitives/tracing" }
 substrate-test-runtime-client = { version = "2.0.0", path = "../../test-utils/runtime/client" }
 quickcheck = "1.0.3"
 kvdb-rocksdb = "0.12.0"
diff --git a/substrate/client/executor/Cargo.toml b/substrate/client/executor/Cargo.toml
index 1f10c65e12f9066fcbc0f388ad1476f980650c2b..a96163f200df89309fb1d10ee0fe21393856c829 100644
--- a/substrate/client/executor/Cargo.toml
+++ b/substrate/client/executor/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-executor"
-version = "0.9.0"
+version = "0.10.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
@@ -16,23 +16,23 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 derive_more = "0.99.2"
 codec = { package = "parity-scale-codec", version = "2.0.0" }
-sp-io = { version = "3.0.0", path = "../../primitives/io" }
-sp-core = { version = "3.0.0", path = "../../primitives/core" }
-sp-tasks = { version = "3.0.0", path = "../../primitives/tasks" }
-sp-trie = { version = "3.0.0", path = "../../primitives/trie" }
+sp-io = { version = "4.0.0-dev", path = "../../primitives/io" }
+sp-core = { version = "4.0.0-dev", path = "../../primitives/core" }
+sp-tasks = { version = "4.0.0-dev", path = "../../primitives/tasks" }
+sp-trie = { version = "4.0.0-dev", path = "../../primitives/trie" }
 sp-serializer = { version = "3.0.0", path = "../../primitives/serializer" }
-sp-version = { version = "3.0.0", path = "../../primitives/version" }
+sp-version = { version = "4.0.0-dev", path = "../../primitives/version" }
 sp-panic-handler = { version = "3.0.0", path = "../../primitives/panic-handler" }
 wasmi = "0.9.0"
 parity-wasm = "0.42.0"
 lazy_static = "1.4.0"
-sp-api = { version = "3.0.0", path = "../../primitives/api" }
-sp-wasm-interface = { version = "3.0.0", path = "../../primitives/wasm-interface" }
-sp-runtime-interface = { version = "3.0.0", path = "../../primitives/runtime-interface" }
-sp-externalities = { version = "0.9.0", path = "../../primitives/externalities" }
-sc-executor-common = { version = "0.9.0", path = "common" }
-sc-executor-wasmi = { version = "0.9.0", path = "wasmi" }
-sc-executor-wasmtime = { version = "0.9.0", path = "wasmtime", optional = true }
+sp-api = { version = "4.0.0-dev", path = "../../primitives/api" }
+sp-wasm-interface = { version = "4.0.0-dev", path = "../../primitives/wasm-interface" }
+sp-runtime-interface = { version = "4.0.0-dev", path = "../../primitives/runtime-interface" }
+sp-externalities = { version = "0.10.0-dev", path = "../../primitives/externalities" }
+sc-executor-common = { version = "0.10.0-dev", path = "common" }
+sc-executor-wasmi = { version = "0.10.0-dev", path = "wasmi" }
+sc-executor-wasmtime = { version = "0.10.0-dev", path = "wasmtime", optional = true }
 parking_lot = "0.11.1"
 log = "0.4.8"
 libsecp256k1 = "0.3.4"
@@ -43,11 +43,11 @@ wat = "1.0"
 hex-literal = "0.3.1"
 sc-runtime-test = { version = "2.0.0", path = "runtime-test" }
 substrate-test-runtime = { version = "2.0.0", path = "../../test-utils/runtime" }
-sp-state-machine = { version = "0.9.0", path = "../../primitives/state-machine" }
-sp-runtime = { version = "3.0.0", path = "../../primitives/runtime" }
-sp-tracing = { version = "3.0.0", path = "../../primitives/tracing" }
-sp-maybe-compressed-blob = { version = "3.0.0", path = "../../primitives/maybe-compressed-blob" }
-sc-tracing = { version = "3.0.0", path = "../tracing" }
+sp-state-machine = { version = "0.10.0-dev", path = "../../primitives/state-machine" }
+sp-runtime = { version = "4.0.0-dev", path = "../../primitives/runtime" }
+sp-tracing = { version = "4.0.0-dev", path = "../../primitives/tracing" }
+sp-maybe-compressed-blob = { version = "4.0.0-dev", path = "../../primitives/maybe-compressed-blob" }
+sc-tracing = { version = "4.0.0-dev", path = "../tracing" }
 tracing = "0.1.25"
 tracing-subscriber = "0.2.18"
 paste = "1.0"
diff --git a/substrate/client/executor/common/Cargo.toml b/substrate/client/executor/common/Cargo.toml
index 75cfcd3d2d851f3e9c80735c42a7e7d61d2aafb6..4457780f8cd8366a57a58a5cac686e1de0a63ed5 100644
--- a/substrate/client/executor/common/Cargo.toml
+++ b/substrate/client/executor/common/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-executor-common"
-version = "0.9.0"
+version = "0.10.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
@@ -18,10 +18,10 @@ derive_more = "0.99.2"
 pwasm-utils = "0.18.0"
 codec = { package = "parity-scale-codec", version = "2.0.0" }
 wasmi = "0.9.0"
-sp-core = { version = "3.0.0", path = "../../../primitives/core" }
-sc-allocator = { version = "3.0.0", path = "../../allocator" }
-sp-wasm-interface = { version = "3.0.0", path = "../../../primitives/wasm-interface" }
-sp-maybe-compressed-blob = { version = "3.0.0", path = "../../../primitives/maybe-compressed-blob" }
+sp-core = { version = "4.0.0-dev", path = "../../../primitives/core" }
+sc-allocator = { version = "4.0.0-dev", path = "../../allocator" }
+sp-wasm-interface = { version = "4.0.0-dev", path = "../../../primitives/wasm-interface" }
+sp-maybe-compressed-blob = { version = "4.0.0-dev", path = "../../../primitives/maybe-compressed-blob" }
 sp-serializer = { version = "3.0.0", path = "../../../primitives/serializer" }
 thiserror = "1.0.21"
 
diff --git a/substrate/client/executor/runtime-test/Cargo.toml b/substrate/client/executor/runtime-test/Cargo.toml
index 9e1cd5bb09e32c978a396cb6f6036cbcb27f8be7..a4fbc88cf56628d4bf488e278bf83a976c2528bb 100644
--- a/substrate/client/executor/runtime-test/Cargo.toml
+++ b/substrate/client/executor/runtime-test/Cargo.toml
@@ -13,15 +13,15 @@ repository = "https://github.com/paritytech/substrate/"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sp-core = { version = "3.0.0", default-features = false, path = "../../../primitives/core" }
-sp-io = { version = "3.0.0", default-features = false, path = "../../../primitives/io" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../../primitives/runtime" }
-sp-sandbox = { version = "0.9.0", default-features = false, path = "../../../primitives/sandbox" }
-sp-std = { version = "3.0.0", default-features = false, path = "../../../primitives/std" }
-sp-tasks = { version = "3.0.0", default-features = false, path = "../../../primitives/tasks" }
+sp-core = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/core" }
+sp-io = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/io" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/runtime" }
+sp-sandbox = { version = "0.10.0-dev", default-features = false, path = "../../../primitives/sandbox" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/std" }
+sp-tasks = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/tasks" }
 
 [build-dependencies]
-substrate-wasm-builder = { version = "4.0.0", path = "../../../utils/wasm-builder" }
+substrate-wasm-builder = { version = "5.0.0-dev", path = "../../../utils/wasm-builder" }
 
 [features]
 default = [ "std" ]
diff --git a/substrate/client/executor/wasmi/Cargo.toml b/substrate/client/executor/wasmi/Cargo.toml
index dbdf26b63d2471accad976fc42b745ec3f53e1e7..c1e5b3d26723d91506ed2c699e6e8115db32f175 100644
--- a/substrate/client/executor/wasmi/Cargo.toml
+++ b/substrate/client/executor/wasmi/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-executor-wasmi"
-version = "0.9.0"
+version = "0.10.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
@@ -17,8 +17,8 @@ targets = ["x86_64-unknown-linux-gnu"]
 log = "0.4.8"
 wasmi = "0.9.0"
 codec = { package = "parity-scale-codec", version = "2.0.0" }
-sc-executor-common = { version = "0.9.0", path = "../common" }
-sc-allocator = { version = "3.0.0", path = "../../allocator" }
-sp-wasm-interface = { version = "3.0.0", path = "../../../primitives/wasm-interface" }
-sp-runtime-interface = { version = "3.0.0", path = "../../../primitives/runtime-interface" }
-sp-core = { version = "3.0.0", path = "../../../primitives/core" }
+sc-executor-common = { version = "0.10.0-dev", path = "../common" }
+sc-allocator = { version = "4.0.0-dev", path = "../../allocator" }
+sp-wasm-interface = { version = "4.0.0-dev", path = "../../../primitives/wasm-interface" }
+sp-runtime-interface = { version = "4.0.0-dev", path = "../../../primitives/runtime-interface" }
+sp-core = { version = "4.0.0-dev", path = "../../../primitives/core" }
diff --git a/substrate/client/executor/wasmtime/Cargo.toml b/substrate/client/executor/wasmtime/Cargo.toml
index 1b8606c440b8af857b7be47883f48eeb71c01218..e2736cd375a38f650d4af2a8c3660c3ed6357c15 100644
--- a/substrate/client/executor/wasmtime/Cargo.toml
+++ b/substrate/client/executor/wasmtime/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-executor-wasmtime"
-version = "0.9.0"
+version = "0.10.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
@@ -19,16 +19,16 @@ log = "0.4.8"
 scoped-tls = "1.0"
 parity-wasm = "0.42.0"
 codec = { package = "parity-scale-codec", version = "2.0.0" }
-sc-executor-common = { version = "0.9.0", path = "../common" }
-sp-wasm-interface = { version = "3.0.0", path = "../../../primitives/wasm-interface" }
-sp-runtime-interface = { version = "3.0.0", path = "../../../primitives/runtime-interface" }
-sp-core = { version = "3.0.0", path = "../../../primitives/core" }
-sc-allocator = { version = "3.0.0", path = "../../allocator" }
+sc-executor-common = { version = "0.10.0-dev", path = "../common" }
+sp-wasm-interface = { version = "4.0.0-dev", path = "../../../primitives/wasm-interface" }
+sp-runtime-interface = { version = "4.0.0-dev", path = "../../../primitives/runtime-interface" }
+sp-core = { version = "4.0.0-dev", path = "../../../primitives/core" }
+sc-allocator = { version = "4.0.0-dev", path = "../../allocator" }
 wasmtime = { version = "0.27.0", default-features = false, features = ["cache", "parallel-compilation"] }
 pwasm-utils = { version = "0.18" }
 
 [dev-dependencies]
 assert_matches = "1.3.0"
 sc-runtime-test = { version = "2.0.0", path = "../runtime-test" }
-sp-io = { version = "3.0.0", path = "../../../primitives/io" }
+sp-io = { version = "4.0.0-dev", path = "../../../primitives/io" }
 wat = "1.0"
diff --git a/substrate/client/finality-grandpa-warp-sync/Cargo.toml b/substrate/client/finality-grandpa-warp-sync/Cargo.toml
index 27728e159c7622ea2f286bf2bd39e80f384042ed..43a7cc0565cde03d281c11fbcfef18cddf798485 100644
--- a/substrate/client/finality-grandpa-warp-sync/Cargo.toml
+++ b/substrate/client/finality-grandpa-warp-sync/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 description = "A request-response protocol for handling grandpa warp sync requests"
 name = "sc-finality-grandpa-warp-sync"
-version = "0.9.0"
+version = "0.10.0-dev"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
@@ -19,18 +19,18 @@ log = "0.4.11"
 num-traits = "0.2.14"
 parking_lot = "0.11.1"
 prost = "0.7"
-sc-client-api = { version = "3.0.0", path = "../api" }
-sc-finality-grandpa = { version = "0.9.0", path = "../finality-grandpa" }
-sc-network = { version = "0.9.0", path = "../network" }
-sc-service = { version = "0.9.0", path = "../service" }
-sp-blockchain = { version = "3.0.0", path = "../../primitives/blockchain" }
-sp-finality-grandpa = { version = "3.0.0", path = "../../primitives/finality-grandpa" }
-sp-runtime = { version = "3.0.0", path = "../../primitives/runtime" }
+sc-client-api = { version = "4.0.0-dev", path = "../api" }
+sc-finality-grandpa = { version = "0.10.0-dev", path = "../finality-grandpa" }
+sc-network = { version = "0.10.0-dev", path = "../network" }
+sc-service = { version = "0.10.0-dev", path = "../service" }
+sp-blockchain = { version = "4.0.0-dev", path = "../../primitives/blockchain" }
+sp-finality-grandpa = { version = "4.0.0-dev", path = "../../primitives/finality-grandpa" }
+sp-runtime = { version = "4.0.0-dev", path = "../../primitives/runtime" }
 
 [dev-dependencies]
 finality-grandpa = { version = "0.14.1" }
 rand = "0.8"
-sc-block-builder = { version = "0.9.0", path = "../block-builder" }
-sp-consensus = { version = "0.9.0", path = "../../primitives/consensus/common" }
-sp-keyring = { version = "3.0.0", path = "../../primitives/keyring" }
+sc-block-builder = { version = "0.10.0-dev", path = "../block-builder" }
+sp-consensus = { version = "0.10.0-dev", path = "../../primitives/consensus/common" }
+sp-keyring = { version = "4.0.0-dev", path = "../../primitives/keyring" }
 substrate-test-runtime-client = { version = "2.0.0",  path = "../../test-utils/runtime/client" }
diff --git a/substrate/client/finality-grandpa/Cargo.toml b/substrate/client/finality-grandpa/Cargo.toml
index 3cb577aee5db807b1d1c2630c59b1a413f9a0b03..8815f70f3ccf6bf693749fce20d8c3ab5d508509 100644
--- a/substrate/client/finality-grandpa/Cargo.toml
+++ b/substrate/client/finality-grandpa/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-finality-grandpa"
-version = "0.9.0"
+version = "0.10.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
@@ -24,26 +24,26 @@ log = "0.4.8"
 parking_lot = "0.11.1"
 rand = "0.7.2"
 parity-scale-codec = { version = "2.0.0", features = ["derive"] }
-sp-application-crypto = { version = "3.0.0", path = "../../primitives/application-crypto" }
-sp-arithmetic = { version = "3.0.0", path = "../../primitives/arithmetic" }
-sp-runtime = { version = "3.0.0", path = "../../primitives/runtime" }
-sp-utils = { version = "3.0.0", path = "../../primitives/utils" }
-sp-consensus = { version = "0.9.0", path = "../../primitives/consensus/common" }
-sc-consensus = { version = "0.9.0", path = "../consensus/common" }
-sp-core = { version = "3.0.0", path = "../../primitives/core" }
-sp-keystore = { version = "0.9.0", path = "../../primitives/keystore" }
-sp-api = { version = "3.0.0", path = "../../primitives/api" }
-sc-telemetry = { version = "3.0.0", path = "../telemetry" }
-sc-keystore = { version = "3.0.0", path = "../keystore" }
+sp-application-crypto = { version = "4.0.0-dev", path = "../../primitives/application-crypto" }
+sp-arithmetic = { version = "4.0.0-dev", path = "../../primitives/arithmetic" }
+sp-runtime = { version = "4.0.0-dev", path = "../../primitives/runtime" }
+sp-utils = { version = "4.0.0-dev", path = "../../primitives/utils" }
+sp-consensus = { version = "0.10.0-dev", path = "../../primitives/consensus/common" }
+sc-consensus = { version = "0.10.0-dev", path = "../consensus/common" }
+sp-core = { version = "4.0.0-dev", path = "../../primitives/core" }
+sp-keystore = { version = "0.10.0-dev", path = "../../primitives/keystore" }
+sp-api = { version = "4.0.0-dev", path = "../../primitives/api" }
+sc-telemetry = { version = "4.0.0-dev", path = "../telemetry" }
+sc-keystore = { version = "4.0.0-dev", path = "../keystore" }
 serde_json = "1.0.41"
-sc-client-api = { version = "3.0.0", path = "../api" }
-sp-inherents = { version = "3.0.0", path = "../../primitives/inherents" }
-sp-blockchain = { version = "3.0.0", path = "../../primitives/blockchain" }
-sc-network = { version = "0.9.0", path = "../network" }
-sc-network-gossip = { version = "0.9.0", path = "../network-gossip" }
-sp-finality-grandpa = { version = "3.0.0", path = "../../primitives/finality-grandpa" }
+sc-client-api = { version = "4.0.0-dev", path = "../api" }
+sp-inherents = { version = "4.0.0-dev", path = "../../primitives/inherents" }
+sp-blockchain = { version = "4.0.0-dev", path = "../../primitives/blockchain" }
+sc-network = { version = "0.10.0-dev", path = "../network" }
+sc-network-gossip = { version = "0.10.0-dev", path = "../network-gossip" }
+sp-finality-grandpa = { version = "4.0.0-dev", path = "../../primitives/finality-grandpa" }
 prometheus-endpoint = { package = "substrate-prometheus-endpoint", path = "../../utils/prometheus", version = "0.9.0"}
-sc-block-builder = { version = "0.9.0", path = "../block-builder" }
+sc-block-builder = { version = "0.10.0-dev", path = "../block-builder" }
 finality-grandpa = { version = "0.14.1", features = ["derive-codec"] }
 pin-project = "1.0.4"
 linked-hash-map = "0.5.2"
@@ -53,12 +53,12 @@ wasm-timer = "0.2"
 [dev-dependencies]
 assert_matches = "1.3.0"
 finality-grandpa = { version = "0.14.1", features = ["derive-codec", "test-helpers"] }
-sc-network = { version = "0.9.0", path = "../network" }
+sc-network = { version = "0.10.0-dev", path = "../network" }
 sc-network-test = { version = "0.8.0", path = "../network/test" }
-sp-keyring = { version = "3.0.0", path = "../../primitives/keyring" }
+sp-keyring = { version = "4.0.0-dev", path = "../../primitives/keyring" }
 substrate-test-runtime-client = { version = "2.0.0",  path = "../../test-utils/runtime/client" }
-sp-consensus-babe = { version = "0.9.0", path = "../../primitives/consensus/babe" }
-sp-state-machine = { version = "0.9.0", path = "../../primitives/state-machine" }
-sp-tracing = { version = "3.0.0", path = "../../primitives/tracing" }
+sp-consensus-babe = { version = "0.10.0-dev", path = "../../primitives/consensus/babe" }
+sp-state-machine = { version = "0.10.0-dev", path = "../../primitives/state-machine" }
+sp-tracing = { version = "4.0.0-dev", path = "../../primitives/tracing" }
 tokio = { version = "0.2", features = ["rt-core"] }
 tempfile = "3.1.0"
diff --git a/substrate/client/finality-grandpa/rpc/Cargo.toml b/substrate/client/finality-grandpa/rpc/Cargo.toml
index 97359120fcaae604cf494075ad95b3bb67888197..e965f9279bd37f6132d95b53ff59b9bf13d82e8e 100644
--- a/substrate/client/finality-grandpa/rpc/Cargo.toml
+++ b/substrate/client/finality-grandpa/rpc/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-finality-grandpa-rpc"
-version = "0.9.0"
+version = "0.10.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "RPC extensions for the GRANDPA finality gadget"
 repository = "https://github.com/paritytech/substrate/"
@@ -9,11 +9,11 @@ license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
 readme = "README.md"
 
 [dependencies]
-sc-finality-grandpa = { version = "0.9.0", path = "../" }
-sc-rpc = { version = "3.0.0", path = "../../rpc" }
-sp-blockchain = { version = "3.0.0", path = "../../../primitives/blockchain" }
-sp-core = { version = "3.0.0", path = "../../../primitives/core" }
-sp-runtime = { version = "3.0.0", path = "../../../primitives/runtime" }
+sc-finality-grandpa = { version = "0.10.0-dev", path = "../" }
+sc-rpc = { version = "4.0.0-dev", path = "../../rpc" }
+sp-blockchain = { version = "4.0.0-dev", path = "../../../primitives/blockchain" }
+sp-core = { version = "4.0.0-dev", path = "../../../primitives/core" }
+sp-runtime = { version = "4.0.0-dev", path = "../../../primitives/runtime" }
 finality-grandpa = { version = "0.14.1", features = ["derive-codec"] }
 jsonrpc-core = "15.1.0"
 jsonrpc-core-client = "15.1.0"
@@ -25,15 +25,15 @@ serde_json = "1.0.50"
 log = "0.4.8"
 derive_more = "0.99.2"
 parity-scale-codec = { version = "2.0.0", features = ["derive"] }
-sc-client-api = { version = "3.0.0", path = "../../api" }
+sc-client-api = { version = "4.0.0-dev", path = "../../api" }
 
 [dev-dependencies]
-sc-block-builder = { version = "0.9.0", path = "../../block-builder" }
+sc-block-builder = { version = "0.10.0-dev", path = "../../block-builder" }
 sc-network-test = { version = "0.8.0", path = "../../network/test" }
-sc-rpc = { version = "3.0.0", path = "../../rpc", features = ["test-helpers"] }
-sp-consensus = { version = "0.9.0", path = "../../../primitives/consensus/common" }
-sp-core = { version = "3.0.0", path = "../../../primitives/core" }
-sp-finality-grandpa = { version = "3.0.0", path = "../../../primitives/finality-grandpa" }
-sp-keyring = { version = "3.0.0", path = "../../../primitives/keyring" }
+sc-rpc = { version = "4.0.0-dev", path = "../../rpc", features = ["test-helpers"] }
+sp-consensus = { version = "0.10.0-dev", path = "../../../primitives/consensus/common" }
+sp-core = { version = "4.0.0-dev", path = "../../../primitives/core" }
+sp-finality-grandpa = { version = "4.0.0-dev", path = "../../../primitives/finality-grandpa" }
+sp-keyring = { version = "4.0.0-dev", path = "../../../primitives/keyring" }
 substrate-test-runtime-client = { version = "2.0.0",  path = "../../../test-utils/runtime/client" }
 lazy_static = "1.4"
diff --git a/substrate/client/informant/Cargo.toml b/substrate/client/informant/Cargo.toml
index f0343a6bf38449fd76428df8545ab949ac3397e2..73d2a902530320bb190772c60b683028c8939a43 100644
--- a/substrate/client/informant/Cargo.toml
+++ b/substrate/client/informant/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-informant"
-version = "0.9.0"
+version = "0.10.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "Substrate informant."
 edition = "2018"
@@ -18,9 +18,9 @@ futures = "0.3.9"
 futures-timer = "3.0.1"
 log = "0.4.8"
 parity-util-mem = { version = "0.10.0", default-features = false, features = ["primitive-types"] }
-sc-client-api = { version = "3.0.0", path = "../api" }
-sc-network = { version = "0.9.0", path = "../network" }
-sp-blockchain = { version = "3.0.0", path = "../../primitives/blockchain" }
-sp-runtime = { version = "3.0.0", path = "../../primitives/runtime" }
-sc-transaction-pool-api = { version = "3.0.0", path = "../transaction-pool/api" }
+sc-client-api = { version = "4.0.0-dev", path = "../api" }
+sc-network = { version = "0.10.0-dev", path = "../network" }
+sp-blockchain = { version = "4.0.0-dev", path = "../../primitives/blockchain" }
+sp-runtime = { version = "4.0.0-dev", path = "../../primitives/runtime" }
+sc-transaction-pool-api = { version = "4.0.0-dev", path = "../transaction-pool/api" }
 wasm-timer = "0.2"
diff --git a/substrate/client/keystore/Cargo.toml b/substrate/client/keystore/Cargo.toml
index fd9fd162e617970e8483eb6336799f427238f9de..b3b1d798125528b8faf17631a441e5dbb5dd6423 100644
--- a/substrate/client/keystore/Cargo.toml
+++ b/substrate/client/keystore/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-keystore"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
@@ -19,9 +19,9 @@ async-trait = "0.1.30"
 derive_more = "0.99.2"
 futures = "0.3.9"
 futures-util = "0.3.4"
-sp-application-crypto = { version = "3.0.0", path = "../../primitives/application-crypto" }
-sp-core = { version = "3.0.0", path = "../../primitives/core" }
-sp-keystore = { version = "0.9.0", path = "../../primitives/keystore" }
+sp-application-crypto = { version = "4.0.0-dev", path = "../../primitives/application-crypto" }
+sp-core = { version = "4.0.0-dev", path = "../../primitives/core" }
+sp-keystore = { version = "0.10.0-dev", path = "../../primitives/keystore" }
 hex = "0.4.0"
 merlin = { version = "2.0", default-features = false }
 parking_lot = "0.11.1"
diff --git a/substrate/client/light/Cargo.toml b/substrate/client/light/Cargo.toml
index 1b45dbf5c0c544e3fb292c3c243a3a9997df750f..4dee5d55e7d32dfc93e744ef36d4c9ba3ac7ee89 100644
--- a/substrate/client/light/Cargo.toml
+++ b/substrate/client/light/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 description = "components for a light client"
 name = "sc-light"
-version = "3.0.0"
+version = "4.0.0-dev"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
@@ -14,15 +14,15 @@ readme = "README.md"
 parking_lot = "0.11.1"
 lazy_static = "1.4.0"
 hash-db = "0.15.2"
-sp-runtime = { version = "3.0.0", path = "../../primitives/runtime" }
-sp-externalities = { version = "0.9.0", path = "../../primitives/externalities" }
-sp-blockchain = { version = "3.0.0", path = "../../primitives/blockchain" }
-sp-core = { version = "3.0.0", path = "../../primitives/core" }
-sp-state-machine = { version = "0.9.0", path = "../../primitives/state-machine" }
-sc-client-api = { version = "3.0.0", path = "../api" }
-sp-api = { version = "3.0.0", path = "../../primitives/api" }
+sp-runtime = { version = "4.0.0-dev", path = "../../primitives/runtime" }
+sp-externalities = { version = "0.10.0-dev", path = "../../primitives/externalities" }
+sp-blockchain = { version = "4.0.0-dev", path = "../../primitives/blockchain" }
+sp-core = { version = "4.0.0-dev", path = "../../primitives/core" }
+sp-state-machine = { version = "0.10.0-dev", path = "../../primitives/state-machine" }
+sc-client-api = { version = "4.0.0-dev", path = "../api" }
+sp-api = { version = "4.0.0-dev", path = "../../primitives/api" }
 codec = { package = "parity-scale-codec", version = "2.0.0" }
-sc-executor = { version = "0.9.0", path = "../executor" }
+sc-executor = { version = "0.10.0-dev", path = "../executor" }
 
 [features]
 default = []
diff --git a/substrate/client/network-gossip/Cargo.toml b/substrate/client/network-gossip/Cargo.toml
index fc5fb9a29ce96deaa35a11889580c906f27025df..ed9dd45d99f832e1737054efe85c370f2ecfbdef 100644
--- a/substrate/client/network-gossip/Cargo.toml
+++ b/substrate/client/network-gossip/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 description = "Gossiping for the Substrate network protocol"
 name = "sc-network-gossip"
-version = "0.9.0"
+version = "0.10.0-dev"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
@@ -21,8 +21,8 @@ libp2p = { version = "0.37.1", default-features = false }
 log = "0.4.8"
 lru = "0.6.5"
 prometheus-endpoint = { package = "substrate-prometheus-endpoint", version = "0.9.0", path = "../../utils/prometheus" }
-sc-network = { version = "0.9.0", path = "../network" }
-sp-runtime = { version = "3.0.0", path = "../../primitives/runtime" }
+sc-network = { version = "0.10.0-dev", path = "../network" }
+sp-runtime = { version = "4.0.0-dev", path = "../../primitives/runtime" }
 wasm-timer = "0.2"
 tracing = "0.1.25"
 
diff --git a/substrate/client/network/Cargo.toml b/substrate/client/network/Cargo.toml
index 3740ebceb63896dac6095ef74aa5e78777560a87..056ae5cbaa05f6c19ead5a59ce7aa83b622e7896 100644
--- a/substrate/client/network/Cargo.toml
+++ b/substrate/client/network/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 description = "Substrate network protocol"
 name = "sc-network"
-version = "0.9.0"
+version = "0.10.0-dev"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
@@ -44,18 +44,18 @@ pin-project = "1.0.4"
 prometheus-endpoint = { package = "substrate-prometheus-endpoint", version = "0.9.0", path = "../../utils/prometheus" }
 prost = "0.7"
 rand = "0.7.2"
-sc-block-builder = { version = "0.9.0", path = "../block-builder" }
-sc-client-api = { version = "3.0.0", path = "../api" }
-sc-peerset = { version = "3.0.0", path = "../peerset" }
+sc-block-builder = { version = "0.10.0-dev", path = "../block-builder" }
+sc-client-api = { version = "4.0.0-dev", path = "../api" }
+sc-peerset = { version = "4.0.0-dev", path = "../peerset" }
 serde = { version = "1.0.101", features = ["derive"] }
 serde_json = "1.0.41"
 smallvec = "1.5.0"
-sp-arithmetic = { version = "3.0.0", path = "../../primitives/arithmetic" }
-sp-blockchain = { version = "3.0.0", path = "../../primitives/blockchain" }
-sp-consensus = { version = "0.9.0", path = "../../primitives/consensus/common" }
-sp-core = { version = "3.0.0", path = "../../primitives/core" }
-sp-runtime = { version = "3.0.0", path = "../../primitives/runtime" }
-sp-utils = { version = "3.0.0", path = "../../primitives/utils" }
+sp-arithmetic = { version = "4.0.0-dev", path = "../../primitives/arithmetic" }
+sp-blockchain = { version = "4.0.0-dev", path = "../../primitives/blockchain" }
+sp-consensus = { version = "0.10.0-dev", path = "../../primitives/consensus/common" }
+sp-core = { version = "4.0.0-dev", path = "../../primitives/core" }
+sp-runtime = { version = "4.0.0-dev", path = "../../primitives/runtime" }
+sp-utils = { version = "4.0.0-dev", path = "../../primitives/utils" }
 thiserror = "1"
 unsigned-varint = { version = "0.6.0", features = ["futures", "asynchronous_codec"] }
 void = "1.0.2"
@@ -76,9 +76,9 @@ assert_matches = "1.3"
 libp2p = { version = "0.37.1", default-features = false }
 quickcheck = "1.0.3"
 rand = "0.7.2"
-sp-keyring = { version = "3.0.0", path = "../../primitives/keyring" }
+sp-keyring = { version = "4.0.0-dev", path = "../../primitives/keyring" }
 sp-test-primitives = { version = "2.0.0", path = "../../primitives/test-primitives" }
-sp-tracing = { version = "3.0.0", path = "../../primitives/tracing" }
+sp-tracing = { version = "4.0.0-dev", path = "../../primitives/tracing" }
 substrate-test-runtime = { version = "2.0.0", path = "../../test-utils/runtime" }
 substrate-test-runtime-client = { version = "2.0.0", path = "../../test-utils/runtime/client" }
 tempfile = "3.1.0"
diff --git a/substrate/client/network/test/Cargo.toml b/substrate/client/network/test/Cargo.toml
index 18a8d5cf8ca0a5bb554a98c4f8b1018fefd844ac..2fc453a8c5a3c2b5d27f61a27d2e87069e6b1c52 100644
--- a/substrate/client/network/test/Cargo.toml
+++ b/substrate/client/network/test/Cargo.toml
@@ -14,24 +14,24 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 async-std = "1.6.5"
-sc-network = { version = "0.9.0", path = "../" }
+sc-network = { version = "0.10.0-dev", path = "../" }
 log = "0.4.8"
 parking_lot = "0.11.1"
 futures = "0.3.9"
 futures-timer = "3.0.1"
 rand = "0.7.2"
 libp2p = { version = "0.37.1", default-features = false }
-sp-consensus = { version = "0.9.0", path = "../../../primitives/consensus/common" }
-sc-consensus = { version = "0.9.0", path = "../../consensus/common" }
-sc-client-api = { version = "3.0.0", path = "../../api" }
-sp-blockchain = { version = "3.0.0", path = "../../../primitives/blockchain" }
-sp-runtime = { version = "3.0.0", path = "../../../primitives/runtime" }
-sp-core = { version = "3.0.0", path = "../../../primitives/core" }
-sc-block-builder = { version = "0.9.0", path = "../../block-builder" }
-sp-consensus-babe = { version = "0.9.0", path = "../../../primitives/consensus/babe" }
+sp-consensus = { version = "0.10.0-dev", path = "../../../primitives/consensus/common" }
+sc-consensus = { version = "0.10.0-dev", path = "../../consensus/common" }
+sc-client-api = { version = "4.0.0-dev", path = "../../api" }
+sp-blockchain = { version = "4.0.0-dev", path = "../../../primitives/blockchain" }
+sp-runtime = { version = "4.0.0-dev", path = "../../../primitives/runtime" }
+sp-core = { version = "4.0.0-dev", path = "../../../primitives/core" }
+sc-block-builder = { version = "0.10.0-dev", path = "../../block-builder" }
+sp-consensus-babe = { version = "0.10.0-dev", path = "../../../primitives/consensus/babe" }
 substrate-test-runtime-client = { version = "2.0.0", path = "../../../test-utils/runtime/client" }
 substrate-test-runtime = { version = "2.0.0", path = "../../../test-utils/runtime" }
 tempfile = "3.1.0"
-sp-tracing = { version = "3.0.0", path = "../../../primitives/tracing" }
-sc-service = { version = "0.9.0", default-features = false, features = ["test-helpers"],  path = "../../service" }
+sp-tracing = { version = "4.0.0-dev", path = "../../../primitives/tracing" }
+sc-service = { version = "0.10.0-dev", default-features = false, features = ["test-helpers"],  path = "../../service" }
 async-trait = "0.1.42"
diff --git a/substrate/client/offchain/Cargo.toml b/substrate/client/offchain/Cargo.toml
index 9f0fbdb64dccf59471b7f0e419455a53a6f4e65c..977df259f5c415c5ba1ea7979cb09821aca0a9e9 100644
--- a/substrate/client/offchain/Cargo.toml
+++ b/substrate/client/offchain/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 description = "Substrate offchain workers"
 name = "sc-offchain"
-version = "3.0.0"
+version = "4.0.0-dev"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
@@ -23,14 +23,14 @@ log = "0.4.8"
 num_cpus = "1.10"
 parking_lot = "0.11.1"
 rand = "0.7.2"
-sc-client-api = { version = "3.0.0", path = "../api" }
-sc-keystore = { version = "3.0.0", path = "../keystore" }
-sc-network = { version = "0.9.0", path = "../network" }
-sp-api = { version = "3.0.0", path = "../../primitives/api" }
-sp-core = { version = "3.0.0", path = "../../primitives/core" }
-sp-offchain = { version = "3.0.0", path = "../../primitives/offchain" }
-sp-runtime = { version = "3.0.0", path = "../../primitives/runtime" }
-sp-utils = { version = "3.0.0", path = "../../primitives/utils" }
+sc-client-api = { version = "4.0.0-dev", path = "../api" }
+sc-keystore = { version = "4.0.0-dev", path = "../keystore" }
+sc-network = { version = "0.10.0-dev", path = "../network" }
+sp-api = { version = "4.0.0-dev", path = "../../primitives/api" }
+sp-core = { version = "4.0.0-dev", path = "../../primitives/core" }
+sp-offchain = { version = "4.0.0-dev", path = "../../primitives/offchain" }
+sp-runtime = { version = "4.0.0-dev", path = "../../primitives/runtime" }
+sp-utils = { version = "4.0.0-dev", path = "../../primitives/utils" }
 threadpool = "1.7"
 
 [target.'cfg(not(target_os = "unknown"))'.dependencies]
@@ -38,12 +38,12 @@ hyper = "0.13.9"
 hyper-rustls = "0.21.0"
 
 [dev-dependencies]
-sc-client-db = { version = "0.9.0", default-features = true, path = "../db" }
-sc-block-builder = { version = "0.9.0", path = "../block-builder" }
-sc-transaction-pool = { version = "3.0.0", path = "../transaction-pool" }
-sc-transaction-pool-api = { version = "3.0.0", path = "../transaction-pool/api" }
-sp-tracing = { version = "3.0.0", path = "../../primitives/tracing" }
-sp-consensus = { version = "0.9.0", path = "../../primitives/consensus/common" }
+sc-client-db = { version = "0.10.0-dev", default-features = true, path = "../db" }
+sc-block-builder = { version = "0.10.0-dev", path = "../block-builder" }
+sc-transaction-pool = { version = "4.0.0-dev", path = "../transaction-pool" }
+sc-transaction-pool-api = { version = "4.0.0-dev", path = "../transaction-pool/api" }
+sp-tracing = { version = "4.0.0-dev", path = "../../primitives/tracing" }
+sp-consensus = { version = "0.10.0-dev", path = "../../primitives/consensus/common" }
 substrate-test-runtime-client = { version = "2.0.0", path = "../../test-utils/runtime/client" }
 tokio = "0.2"
 lazy_static = "1.4.0"
diff --git a/substrate/client/peerset/Cargo.toml b/substrate/client/peerset/Cargo.toml
index 5910116ec01c199d96241d41b2b316b857e4f036..1af585df5359bf12b6d111e80e0d46ddddcfbb67 100644
--- a/substrate/client/peerset/Cargo.toml
+++ b/substrate/client/peerset/Cargo.toml
@@ -3,7 +3,7 @@ description = "Connectivity manager based on reputation"
 homepage = "http://parity.io"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
 name = "sc-peerset"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 repository = "https://github.com/paritytech/substrate/"
@@ -17,7 +17,7 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 futures = "0.3.9"
 libp2p = { version = "0.37.1", default-features = false }
-sp-utils = { version = "3.0.0", path = "../../primitives/utils"}
+sp-utils = { version = "4.0.0-dev", path = "../../primitives/utils"}
 log = "0.4.8"
 serde_json = "1.0.41"
 wasm-timer = "0.2"
diff --git a/substrate/client/rpc-api/Cargo.toml b/substrate/client/rpc-api/Cargo.toml
index 53c9a07fe008328375d7641e339f9d291f9002f9..057a692e83c77b19b57fb4507b2f39c65c06a90f 100644
--- a/substrate/client/rpc-api/Cargo.toml
+++ b/substrate/client/rpc-api/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-rpc-api"
-version = "0.9.0"
+version = "0.10.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
@@ -22,12 +22,12 @@ jsonrpc-derive = "15.1.0"
 jsonrpc-pubsub = "15.1.0"
 log = "0.4.8"
 parking_lot = "0.11.1"
-sp-core = { version = "3.0.0", path = "../../primitives/core" }
-sp-version = { version = "3.0.0", path = "../../primitives/version" }
-sp-runtime = { path = "../../primitives/runtime" , version = "3.0.0"}
-sc-chain-spec = { path = "../chain-spec" , version = "3.0.0"}
+sp-core = { version = "4.0.0-dev", path = "../../primitives/core" }
+sp-version = { version = "4.0.0-dev", path = "../../primitives/version" }
+sp-runtime = { path = "../../primitives/runtime", version = "4.0.0-dev" }
+sc-chain-spec = { path = "../chain-spec", version = "4.0.0-dev" }
 serde = { version = "1.0.101", features = ["derive"] }
 serde_json = "1.0.41"
-sc-transaction-pool-api = { version = "3.0.0", path = "../transaction-pool/api" }
-sp-rpc = { version = "3.0.0", path = "../../primitives/rpc" }
-sp-tracing = { version = "3.0.0", path = "../../primitives/tracing" }
+sc-transaction-pool-api = { version = "4.0.0-dev", path = "../transaction-pool/api" }
+sp-rpc = { version = "4.0.0-dev", path = "../../primitives/rpc" }
+sp-tracing = { version = "4.0.0-dev", path = "../../primitives/tracing" }
diff --git a/substrate/client/rpc-servers/Cargo.toml b/substrate/client/rpc-servers/Cargo.toml
index 95c3e4194cd510ecaf5cbe1aa24a9ea9e35d14e8..5f090ed3e73341ebe17f4f980ece78c1ff9da5d0 100644
--- a/substrate/client/rpc-servers/Cargo.toml
+++ b/substrate/client/rpc-servers/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-rpc-server"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
@@ -20,7 +20,7 @@ log = "0.4.8"
 prometheus-endpoint = { package = "substrate-prometheus-endpoint", path = "../../utils/prometheus", version = "0.9.0"}
 serde = "1.0.101"
 serde_json = "1.0.41"
-sp-runtime = { version = "3.0.0", path = "../../primitives/runtime" }
+sp-runtime = { version = "4.0.0-dev", path = "../../primitives/runtime" }
 
 [target.'cfg(not(target_os = "unknown"))'.dependencies]
 http = { package = "jsonrpc-http-server", version = "15.1.0" }
diff --git a/substrate/client/rpc/Cargo.toml b/substrate/client/rpc/Cargo.toml
index c4cfc40c34d63b66e36e3217faabf78acb2a71be..67e78c8de8de929be570b1395dd0cb3327ccfec3 100644
--- a/substrate/client/rpc/Cargo.toml
+++ b/substrate/client/rpc/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-rpc"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
@@ -13,46 +13,46 @@ readme = "README.md"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sc-rpc-api = { version = "0.9.0", path = "../rpc-api" }
-sc-client-api = { version = "3.0.0", path = "../api" }
-sp-api = { version = "3.0.0", path = "../../primitives/api" }
+sc-rpc-api = { version = "0.10.0-dev", path = "../rpc-api" }
+sc-client-api = { version = "4.0.0-dev", path = "../api" }
+sp-api = { version = "4.0.0-dev", path = "../../primitives/api" }
 codec = { package = "parity-scale-codec", version = "2.0.0" }
 futures = { version = "0.3.1", features = ["compat"] }
 jsonrpc-pubsub = "15.1.0"
 log = "0.4.8"
-sp-core = { version = "3.0.0", path = "../../primitives/core" }
+sp-core = { version = "4.0.0-dev", path = "../../primitives/core" }
 rpc = { package = "jsonrpc-core", version = "15.1.0" }
-sp-version = { version = "3.0.0", path = "../../primitives/version" }
+sp-version = { version = "4.0.0-dev", path = "../../primitives/version" }
 serde_json = "1.0.41"
-sp-session = { version = "3.0.0", path = "../../primitives/session" }
-sp-offchain = { version = "3.0.0", path = "../../primitives/offchain" }
-sp-runtime = { version = "3.0.0", path = "../../primitives/runtime" }
-sp-utils = { version = "3.0.0", path = "../../primitives/utils" }
-sp-rpc = { version = "3.0.0", path = "../../primitives/rpc" }
-sp-keystore = { version = "0.9.0", path = "../../primitives/keystore" }
-sp-state-machine = { version = "0.9.0", path = "../../primitives/state-machine" }
-sc-chain-spec = { version = "3.0.0", path = "../chain-spec" }
-sc-executor = { version = "0.9.0", path = "../executor" }
-sc-block-builder = { version = "0.9.0", path = "../block-builder" }
-sc-keystore = { version = "3.0.0", path = "../keystore" }
-sp-blockchain = { version = "3.0.0", path = "../../primitives/blockchain" }
-sc-tracing = { version = "3.0.0", path = "../tracing" }
+sp-session = { version = "4.0.0-dev", path = "../../primitives/session" }
+sp-offchain = { version = "4.0.0-dev", path = "../../primitives/offchain" }
+sp-runtime = { version = "4.0.0-dev", path = "../../primitives/runtime" }
+sp-utils = { version = "4.0.0-dev", path = "../../primitives/utils" }
+sp-rpc = { version = "4.0.0-dev", path = "../../primitives/rpc" }
+sp-keystore = { version = "0.10.0-dev", path = "../../primitives/keystore" }
+sp-state-machine = { version = "0.10.0-dev", path = "../../primitives/state-machine" }
+sc-chain-spec = { version = "4.0.0-dev", path = "../chain-spec" }
+sc-executor = { version = "0.10.0-dev", path = "../executor" }
+sc-block-builder = { version = "0.10.0-dev", path = "../block-builder" }
+sc-keystore = { version = "4.0.0-dev", path = "../keystore" }
+sp-blockchain = { version = "4.0.0-dev", path = "../../primitives/blockchain" }
+sc-tracing = { version = "4.0.0-dev", path = "../tracing" }
 hash-db = { version = "0.15.2", default-features = false }
 parking_lot = "0.11.1"
 lazy_static = { version = "1.4.0", optional = true }
-sp-tracing = { version = "3.0.0", path = "../../primitives/tracing" }
-sc-transaction-pool-api = { version = "3.0.0", path = "../transaction-pool/api" }
+sp-tracing = { version = "4.0.0-dev", path = "../../primitives/tracing" }
+sc-transaction-pool-api = { version = "4.0.0-dev", path = "../transaction-pool/api" }
 
 [dev-dependencies]
 assert_matches = "1.3.0"
 futures01 = { package = "futures", version = "0.1.29" }
 lazy_static = "1.4.0"
-sc-network = { version = "0.9.0", path = "../network" }
-sp-io = { version = "3.0.0", path = "../../primitives/io" }
+sc-network = { version = "0.10.0-dev", path = "../network" }
+sp-io = { version = "4.0.0-dev", path = "../../primitives/io" }
 substrate-test-runtime-client = { version = "2.0.0", path = "../../test-utils/runtime/client" }
 tokio = "0.1.22"
-sc-transaction-pool = { version = "3.0.0", path = "../transaction-pool" }
-sc-cli = { version = "0.9.0", path = "../cli" }
+sc-transaction-pool = { version = "4.0.0-dev", path = "../transaction-pool" }
+sc-cli = { version = "0.10.0-dev", path = "../cli" }
 
 [features]
 test-helpers = ["lazy_static"]
diff --git a/substrate/client/service/Cargo.toml b/substrate/client/service/Cargo.toml
index fa424a9d0b22c3f3a69fa5b2bb0466103f7b34ed..2129bc1610faa409967fe47725c0a6a798f3f31f 100644
--- a/substrate/client/service/Cargo.toml
+++ b/substrate/client/service/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-service"
-version = "0.9.0"
+version = "0.10.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
@@ -40,44 +40,44 @@ pin-project = "1.0.4"
 hash-db = "0.15.2"
 serde = "1.0.101"
 serde_json = "1.0.41"
-sc-keystore = { version = "3.0.0", path = "../keystore" }
-sp-io = { version = "3.0.0", path = "../../primitives/io" }
-sp-runtime = { version = "3.0.0", path = "../../primitives/runtime" }
-sp-trie = { version = "3.0.0", path = "../../primitives/trie" }
-sp-externalities = { version = "0.9.0", path = "../../primitives/externalities" }
-sp-utils = { version = "3.0.0", path = "../../primitives/utils" }
-sp-version = { version = "3.0.0", path = "../../primitives/version" }
-sp-blockchain = { version = "3.0.0", path = "../../primitives/blockchain" }
-sp-core = { version = "3.0.0", path = "../../primitives/core" }
-sp-keystore = { version = "0.9.0", path = "../../primitives/keystore" }
-sp-session = { version = "3.0.0", path = "../../primitives/session" }
-sp-state-machine = { version = "0.9.0", path = "../../primitives/state-machine" }
-sp-application-crypto = { version = "3.0.0", path = "../../primitives/application-crypto" }
-sp-consensus = { version = "0.9.0", path = "../../primitives/consensus/common" }
-sp-inherents = { version = "3.0.0", path = "../../primitives/inherents" }
-sp-storage = { version = "3.0.0", path = "../../primitives/storage" }
-sc-network = { version = "0.9.0", path = "../network" }
-sc-chain-spec = { version = "3.0.0", path = "../chain-spec" }
-sc-light = { version = "3.0.0", path = "../light" }
-sc-client-api = { version = "3.0.0", path = "../api" }
-sp-api = { version = "3.0.0", path = "../../primitives/api" }
-sc-client-db = { version = "0.9.0", default-features = false, path = "../db" }
+sc-keystore = { version = "4.0.0-dev", path = "../keystore" }
+sp-io = { version = "4.0.0-dev", path = "../../primitives/io" }
+sp-runtime = { version = "4.0.0-dev", path = "../../primitives/runtime" }
+sp-trie = { version = "4.0.0-dev", path = "../../primitives/trie" }
+sp-externalities = { version = "0.10.0-dev", path = "../../primitives/externalities" }
+sp-utils = { version = "4.0.0-dev", path = "../../primitives/utils" }
+sp-version = { version = "4.0.0-dev", path = "../../primitives/version" }
+sp-blockchain = { version = "4.0.0-dev", path = "../../primitives/blockchain" }
+sp-core = { version = "4.0.0-dev", path = "../../primitives/core" }
+sp-keystore = { version = "0.10.0-dev", path = "../../primitives/keystore" }
+sp-session = { version = "4.0.0-dev", path = "../../primitives/session" }
+sp-state-machine = { version = "0.10.0-dev", path = "../../primitives/state-machine" }
+sp-application-crypto = { version = "4.0.0-dev", path = "../../primitives/application-crypto" }
+sp-consensus = { version = "0.10.0-dev", path = "../../primitives/consensus/common" }
+sp-inherents = { version = "4.0.0-dev", path = "../../primitives/inherents" }
+sp-storage = { version = "4.0.0-dev", path = "../../primitives/storage" }
+sc-network = { version = "0.10.0-dev", path = "../network" }
+sc-chain-spec = { version = "4.0.0-dev", path = "../chain-spec" }
+sc-light = { version = "4.0.0-dev", path = "../light" }
+sc-client-api = { version = "4.0.0-dev", path = "../api" }
+sp-api = { version = "4.0.0-dev", path = "../../primitives/api" }
+sc-client-db = { version = "0.10.0-dev", default-features = false, path = "../db" }
 codec = { package = "parity-scale-codec", version = "2.0.0" }
-sc-executor = { version = "0.9.0", path = "../executor" }
-sc-transaction-pool = { version = "3.0.0", path = "../transaction-pool" }
-sp-transaction-pool = { version = "3.0.0", path = "../../primitives/transaction-pool" }
-sc-transaction-pool-api = { version = "3.0.0", path = "../transaction-pool/api" }
-sp-transaction-storage-proof = { version = "3.0.0", path = "../../primitives/transaction-storage-proof" }
-sc-rpc-server = { version = "3.0.0", path = "../rpc-servers" }
-sc-rpc = { version = "3.0.0", path = "../rpc" }
-sc-block-builder = { version = "0.9.0", path = "../block-builder" }
-sp-block-builder = { version = "3.0.0", path = "../../primitives/block-builder" }
-sc-informant = { version = "0.9.0", path = "../informant" }
-sc-telemetry = { version = "3.0.0", path = "../telemetry" }
-sc-offchain = { version = "3.0.0", path = "../offchain" }
+sc-executor = { version = "0.10.0-dev", path = "../executor" }
+sc-transaction-pool = { version = "4.0.0-dev", path = "../transaction-pool" }
+sp-transaction-pool = { version = "4.0.0-dev", path = "../../primitives/transaction-pool" }
+sc-transaction-pool-api = { version = "4.0.0-dev", path = "../transaction-pool/api" }
+sp-transaction-storage-proof = { version = "4.0.0-dev", path = "../../primitives/transaction-storage-proof" }
+sc-rpc-server = { version = "4.0.0-dev", path = "../rpc-servers" }
+sc-rpc = { version = "4.0.0-dev", path = "../rpc" }
+sc-block-builder = { version = "0.10.0-dev", path = "../block-builder" }
+sp-block-builder = { version = "4.0.0-dev", path = "../../primitives/block-builder" }
+sc-informant = { version = "0.10.0-dev", path = "../informant" }
+sc-telemetry = { version = "4.0.0-dev", path = "../telemetry" }
+sc-offchain = { version = "4.0.0-dev", path = "../offchain" }
 prometheus-endpoint = { package = "substrate-prometheus-endpoint", path = "../../utils/prometheus", version = "0.9.0"}
-sc-tracing = { version = "3.0.0", path = "../tracing" }
-sp-tracing = { version = "3.0.0", path = "../../primitives/tracing" }
+sc-tracing = { version = "4.0.0-dev", path = "../tracing" }
+sp-tracing = { version = "4.0.0-dev", path = "../../primitives/tracing" }
 tracing = "0.1.25"
 tracing-futures = { version = "0.2.4" }
 parity-util-mem = { version = "0.10.0", default-features = false, features = ["primitive-types"] }
@@ -90,8 +90,8 @@ directories = "3.0.1"
 [dev-dependencies]
 substrate-test-runtime-client = { version = "2.0.0", path = "../../test-utils/runtime/client" }
 substrate-test-runtime = { version = "2.0.0", path = "../../test-utils/runtime/" }
-sp-consensus-babe = { version = "0.9.0", path = "../../primitives/consensus/babe" }
-grandpa = { version = "0.9.0", package = "sc-finality-grandpa", path = "../finality-grandpa" }
-grandpa-primitives = { version = "3.0.0", package = "sp-finality-grandpa", path = "../../primitives/finality-grandpa" }
+sp-consensus-babe = { version = "0.10.0-dev", path = "../../primitives/consensus/babe" }
+grandpa = { version = "0.10.0-dev", package = "sc-finality-grandpa", path = "../finality-grandpa" }
+grandpa-primitives = { version = "4.0.0-dev", package = "sp-finality-grandpa", path = "../../primitives/finality-grandpa" }
 tokio = { version = "0.2.25", default-features = false }
 async-std = { version = "1.6.5", default-features = false }
diff --git a/substrate/client/service/test/Cargo.toml b/substrate/client/service/test/Cargo.toml
index 27aa14b0d2bc10be9e30c1785e9a7b43ecfd40c7..e7e627f919c120d65cacdccb5eb43c7fda1ea09b 100644
--- a/substrate/client/service/test/Cargo.toml
+++ b/substrate/client/service/test/Cargo.toml
@@ -19,26 +19,26 @@ futures01 = { package = "futures", version = "0.1.29" }
 log = "0.4.8"
 fdlimit = "0.2.1"
 parking_lot = "0.11.1"
-sc-light = { version = "3.0.0", path = "../../light" }
-sp-blockchain = { version = "3.0.0", path = "../../../primitives/blockchain" }
-sp-api = { version = "3.0.0", path = "../../../primitives/api" }
-sp-state-machine = { version = "0.9.0", path = "../../../primitives/state-machine" }
-sp-externalities = { version = "0.9.0", path = "../../../primitives/externalities" }
-sp-trie = { version = "3.0.0", path = "../../../primitives/trie" }
-sp-storage = { version = "3.0.0", path = "../../../primitives/storage" }
-sc-client-db = { version = "0.9.0", default-features = false, path = "../../db" }
+sc-light = { version = "4.0.0-dev", path = "../../light" }
+sp-blockchain = { version = "4.0.0-dev", path = "../../../primitives/blockchain" }
+sp-api = { version = "4.0.0-dev", path = "../../../primitives/api" }
+sp-state-machine = { version = "0.10.0-dev", path = "../../../primitives/state-machine" }
+sp-externalities = { version = "0.10.0-dev", path = "../../../primitives/externalities" }
+sp-trie = { version = "4.0.0-dev", path = "../../../primitives/trie" }
+sp-storage = { version = "4.0.0-dev", path = "../../../primitives/storage" }
+sc-client-db = { version = "0.10.0-dev", default-features = false, path = "../../db" }
 futures = { version = "0.3.1", features = ["compat"] }
-sc-service = { version = "0.9.0", features = ["test-helpers"], path = "../../service" }
-sc-network = { version = "0.9.0", path = "../../network" }
-sp-consensus = { version = "0.9.0", path = "../../../primitives/consensus/common" }
-sp-runtime = { version = "3.0.0", path = "../../../primitives/runtime" }
-sp-core = { version = "3.0.0", path = "../../../primitives/core" }
-sc-transaction-pool-api = { version = "3.0.0", path = "../../../client/transaction-pool/api" }
+sc-service = { version = "0.10.0-dev", features = ["test-helpers"], path = "../../service" }
+sc-network = { version = "0.10.0-dev", path = "../../network" }
+sp-consensus = { version = "0.10.0-dev", path = "../../../primitives/consensus/common" }
+sp-runtime = { version = "4.0.0-dev", path = "../../../primitives/runtime" }
+sp-core = { version = "4.0.0-dev", path = "../../../primitives/core" }
+sc-transaction-pool-api = { version = "4.0.0-dev", path = "../../../client/transaction-pool/api" }
 substrate-test-runtime = { version = "2.0.0", path = "../../../test-utils/runtime" }
 substrate-test-runtime-client = { version = "2.0.0", path = "../../../test-utils/runtime/client" }
-sc-client-api = { version = "3.0.0", path = "../../api" }
-sc-block-builder = { version = "0.9.0", path = "../../block-builder" }
-sc-executor = { version = "0.9.0", path = "../../executor" }
+sc-client-api = { version = "4.0.0-dev", path = "../../api" }
+sc-block-builder = { version = "0.10.0-dev", path = "../../block-builder" }
+sc-executor = { version = "0.10.0-dev", path = "../../executor" }
 sp-panic-handler = { version = "3.0.0", path = "../../../primitives/panic-handler" }
 parity-scale-codec = "2.0.0"
-sp-tracing = { version = "3.0.0", path = "../../../primitives/tracing" }
+sp-tracing = { version = "4.0.0-dev", path = "../../../primitives/tracing" }
diff --git a/substrate/client/state-db/Cargo.toml b/substrate/client/state-db/Cargo.toml
index ca538f9d651f2a2983e7a97c9fb1e95028b66487..40997f65d223184eed5c2a782f0b415bf042d4b2 100644
--- a/substrate/client/state-db/Cargo.toml
+++ b/substrate/client/state-db/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-state-db"
-version = "0.9.0"
+version = "0.10.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
@@ -16,8 +16,8 @@ targets = ["x86_64-unknown-linux-gnu"]
 thiserror = "1.0.21"
 parking_lot = "0.11.1"
 log = "0.4.11"
-sc-client-api = { version = "3.0.0", path = "../api" }
-sp-core = { version = "3.0.0", path = "../../primitives/core" }
+sc-client-api = { version = "4.0.0-dev", path = "../api" }
+sp-core = { version = "4.0.0-dev", path = "../../primitives/core" }
 codec = { package = "parity-scale-codec", version = "2.0.0", features = ["derive"] }
 parity-util-mem = { version = "0.10.0", default-features = false, features = ["primitive-types"] }
 parity-util-mem-derive = "0.1.0"
diff --git a/substrate/client/sync-state-rpc/Cargo.toml b/substrate/client/sync-state-rpc/Cargo.toml
index 3ec48ac9ec57044a87cbe77d8b03d646a5c11b61..0402d16ae008bf29909bfec6abe6048bd09358a3 100644
--- a/substrate/client/sync-state-rpc/Cargo.toml
+++ b/substrate/client/sync-state-rpc/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-sync-state-rpc"
-version = "0.9.0"
+version = "0.10.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "A RPC handler to create sync states for light clients."
 edition = "2018"
@@ -17,12 +17,12 @@ thiserror = "1.0.21"
 jsonrpc-core = "15.0"
 jsonrpc-core-client = "15.0"
 jsonrpc-derive = "15.0"
-sc-chain-spec = { version = "3.0.0", path = "../chain-spec" }
-sc-client-api = { version = "3.0.0", path = "../api" }
-sc-consensus-babe = { version = "0.9.0", path = "../consensus/babe" }
-sc-consensus-epochs = { version = "0.9.0", path = "../consensus/epochs" }
-sc-finality-grandpa = { version = "0.9.0", path = "../finality-grandpa" }
-sc-rpc-api = { version = "0.9.0", path = "../rpc-api" }
+sc-chain-spec = { version = "4.0.0-dev", path = "../chain-spec" }
+sc-client-api = { version = "4.0.0-dev", path = "../api" }
+sc-consensus-babe = { version = "0.10.0-dev", path = "../consensus/babe" }
+sc-consensus-epochs = { version = "0.10.0-dev", path = "../consensus/epochs" }
+sc-finality-grandpa = { version = "0.10.0-dev", path = "../finality-grandpa" }
+sc-rpc-api = { version = "0.10.0-dev", path = "../rpc-api" }
 serde_json = "1.0.58"
-sp-blockchain = { version = "3.0.0", path = "../../primitives/blockchain" }
-sp-runtime = { version = "3.0.0", path = "../../primitives/runtime" }
+sp-blockchain = { version = "4.0.0-dev", path = "../../primitives/blockchain" }
+sp-runtime = { version = "4.0.0-dev", path = "../../primitives/runtime" }
diff --git a/substrate/client/telemetry/Cargo.toml b/substrate/client/telemetry/Cargo.toml
index 6e6ae408247a379c0ee2f0b475827fd8ea8f60f2..e4ea3e25d63c656a1e9548f27668a5da57399e38 100644
--- a/substrate/client/telemetry/Cargo.toml
+++ b/substrate/client/telemetry/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-telemetry"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "Telemetry utils"
 edition = "2018"
diff --git a/substrate/client/tracing/Cargo.toml b/substrate/client/tracing/Cargo.toml
index 1121b922494c91899e91d63141a0bbb6d3233cb9..5d93b26dfbbcb994e1df77202771c43589832949 100644
--- a/substrate/client/tracing/Cargo.toml
+++ b/substrate/client/tracing/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-tracing"
-version = "3.0.0"
+version = "4.0.0-dev"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
@@ -28,18 +28,18 @@ thiserror = "1.0.21"
 tracing = "0.1.25"
 tracing-log = "0.1.2"
 tracing-subscriber = "0.2.18"
-sp-tracing = { version = "3.0.0", path = "../../primitives/tracing" }
-sp-rpc = { version = "3.0.0", path = "../../primitives/rpc" }
-sp-block-builder = { version = "3.0.0", path = "../../primitives/block-builder" }
-sp-storage = { version = "3.0.0", path = "../../primitives/storage" }
-sp-runtime = { version = "3.0.0", path = "../../primitives/runtime" }
-sp-blockchain = { version = "3.0.0", path = "../../primitives/blockchain" }
-sp-api = { version = "3.0.0", path = "../../primitives/api" }
-sp-core = { version = "3.0.0", path = "../../primitives/core" }
-sc-telemetry = { version = "3.0.0", path = "../telemetry" }
-sc-client-api = { version = "3.0.0", path = "../api" }
-sc-tracing-proc-macro = { version = "3.0.0", path = "./proc-macro" }
-sc-rpc-server =  { version = "3.0.0", path = "../rpc-servers" }
+sp-tracing = { version = "4.0.0-dev", path = "../../primitives/tracing" }
+sp-rpc = { version = "4.0.0-dev", path = "../../primitives/rpc" }
+sp-block-builder = { version = "4.0.0-dev", path = "../../primitives/block-builder" }
+sp-storage = { version = "4.0.0-dev", path = "../../primitives/storage" }
+sp-runtime = { version = "4.0.0-dev", path = "../../primitives/runtime" }
+sp-blockchain = { version = "4.0.0-dev", path = "../../primitives/blockchain" }
+sp-api = { version = "4.0.0-dev", path = "../../primitives/api" }
+sp-core = { version = "4.0.0-dev", path = "../../primitives/core" }
+sc-telemetry = { version = "4.0.0-dev", path = "../telemetry" }
+sc-client-api = { version = "4.0.0-dev", path = "../api" }
+sc-tracing-proc-macro = { version = "4.0.0-dev", path = "./proc-macro" }
+sc-rpc-server =  { version = "4.0.0-dev", path = "../rpc-servers" }
 wasm-timer = "0.2"
 
 [target.'cfg(target_os = "unknown")'.dependencies]
diff --git a/substrate/client/tracing/proc-macro/Cargo.toml b/substrate/client/tracing/proc-macro/Cargo.toml
index 3c06a75f0a1f19ab2f91c2b0fa9515307d9d5cb3..fbde99a1a21785cca7617e4761cfcda7f01c639d 100644
--- a/substrate/client/tracing/proc-macro/Cargo.toml
+++ b/substrate/client/tracing/proc-macro/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-tracing-proc-macro"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
diff --git a/substrate/client/transaction-pool/Cargo.toml b/substrate/client/transaction-pool/Cargo.toml
index 988f252a6343056bde4f1d5a6c566037b8aeac53..10f1ed2f09ff543a11cb606fde266aad93a52096 100644
--- a/substrate/client/transaction-pool/Cargo.toml
+++ b/substrate/client/transaction-pool/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-transaction-pool"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
@@ -21,15 +21,15 @@ log = "0.4.8"
 parity-util-mem = { version = "0.10.0", default-features = false, features = ["primitive-types"] }
 parking_lot = "0.11.1"
 prometheus-endpoint = { package = "substrate-prometheus-endpoint", path = "../../utils/prometheus", version = "0.9.0"}
-sc-client-api = { version = "3.0.0", path = "../api" }
-sp-api = { version = "3.0.0", path = "../../primitives/api" }
-sp-core = { version = "3.0.0", path = "../../primitives/core" }
-sp-runtime = { version = "3.0.0", path = "../../primitives/runtime" }
-sp-tracing = { version = "3.0.0", path = "../../primitives/tracing" }
-sp-transaction-pool = { version = "3.0.0", path = "../../primitives/transaction-pool" }
-sc-transaction-pool-api = { version = "3.0.0", path = "./api" }
-sp-blockchain = { version = "3.0.0", path = "../../primitives/blockchain" }
-sp-utils = { version = "3.0.0", path = "../../primitives/utils" }
+sc-client-api = { version = "4.0.0-dev", path = "../api" }
+sp-api = { version = "4.0.0-dev", path = "../../primitives/api" }
+sp-core = { version = "4.0.0-dev", path = "../../primitives/core" }
+sp-runtime = { version = "4.0.0-dev", path = "../../primitives/runtime" }
+sp-tracing = { version = "4.0.0-dev", path = "../../primitives/tracing" }
+sp-transaction-pool = { version = "4.0.0-dev", path = "../../primitives/transaction-pool" }
+sc-transaction-pool-api = { version = "4.0.0-dev", path = "./api" }
+sp-blockchain = { version = "4.0.0-dev", path = "../../primitives/blockchain" }
+sp-utils = { version = "4.0.0-dev", path = "../../primitives/utils" }
 wasm-timer = "0.2"
 derive_more = "0.99.2"
 serde = { version = "1.0.101", features = ["derive"] }
@@ -39,10 +39,10 @@ retain_mut = "0.1.3"
 [dev-dependencies]
 assert_matches = "1.3.0"
 hex = "0.4"
-sp-consensus = { version = "0.9.0", path = "../../primitives/consensus/common" }
+sp-consensus = { version = "0.10.0-dev", path = "../../primitives/consensus/common" }
 substrate-test-runtime-transaction-pool = { version = "2.0.0", path = "../../test-utils/runtime/transaction-pool" }
 substrate-test-runtime-client = { version = "2.0.0", path = "../../test-utils/runtime/client" }
-sc-block-builder = { version = "0.9.0", path = "../block-builder" }
+sc-block-builder = { version = "0.10.0-dev", path = "../block-builder" }
 codec = { package = "parity-scale-codec", version = "2.0.0" }
 substrate-test-runtime = { version = "2.0.0", path = "../../test-utils/runtime" }
 criterion = "0.3"
@@ -52,4 +52,4 @@ name = "basics"
 harness = false
 
 [features]
-test-helpers = []
\ No newline at end of file
+test-helpers = []
diff --git a/substrate/client/transaction-pool/api/Cargo.toml b/substrate/client/transaction-pool/api/Cargo.toml
index 8ec74b17b6e967bad953597932ea422bed54c2a8..d0dcfa34fe299272f2d9fd9f6f38d67aa3e9b88e 100644
--- a/substrate/client/transaction-pool/api/Cargo.toml
+++ b/substrate/client/transaction-pool/api/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-transaction-pool-api"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
@@ -13,8 +13,8 @@ futures = { version = "0.3.1"  }
 log = { version = "0.4.8" }
 serde = { version = "1.0.101", features = ["derive"] }
 thiserror = { version = "1.0.21" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../../primitives/runtime" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/runtime" }
 
 codec = { package = "parity-scale-codec", version = "2.0.0" }
 derive_more = { version = "0.99.11" }
-sp-blockchain = { version = "3.0.0", path = "../../../primitives/blockchain" }
+sp-blockchain = { version = "4.0.0-dev", path = "../../../primitives/blockchain" }
diff --git a/substrate/client/transaction-pool/graph/Cargo.toml b/substrate/client/transaction-pool/graph/Cargo.toml
index 9af2b152d8c6a4f7ab1ba3f6205aaebd567a2d8c..492ca89f5039867a0886eb982ff150a953c3bf83 100644
--- a/substrate/client/transaction-pool/graph/Cargo.toml
+++ b/substrate/client/transaction-pool/graph/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-transaction-graph"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
@@ -20,11 +20,11 @@ log = "0.4.8"
 parking_lot = "0.11.1"
 serde = { version = "1.0.101", features = ["derive"] }
 wasm-timer = "0.2"
-sp-blockchain = { version = "3.0.0", path = "../../../primitives/blockchain" }
-sp-utils = { version = "3.0.0", path = "../../../primitives/utils" }
-sp-core = { version = "3.0.0", path = "../../../primitives/core" }
-sp-runtime = { version = "3.0.0", path = "../../../primitives/runtime" }
-sp-transaction-pool = { version = "3.0.0", path = "../../../primitives/transaction-pool" }
+sp-blockchain = { version = "4.0.0-dev", path = "../../../primitives/blockchain" }
+sp-utils = { version = "4.0.0-dev", path = "../../../primitives/utils" }
+sp-core = { version = "4.0.0-dev", path = "../../../primitives/core" }
+sp-runtime = { version = "4.0.0-dev", path = "../../../primitives/runtime" }
+sp-transaction-pool = { version = "4.0.0-dev", path = "../../../primitives/transaction-pool" }
 parity-util-mem = { version = "0.10.0", default-features = false, features = ["primitive-types"] }
 linked-hash-map = "0.5.2"
 retain_mut = "0.1.3"
diff --git a/substrate/frame/assets/Cargo.toml b/substrate/frame/assets/Cargo.toml
index 7137cf1d789a272b008f4788ac3f29227bdcdbe5..504dd6957aeb9dfc45ec37b2dc4c383a1eb557df 100644
--- a/substrate/frame/assets/Cargo.toml
+++ b/substrate/frame/assets/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-assets"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,20 +14,20 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false }
-sp-std = { version = "3.0.0", default-features = false, path = "../../primitives/std" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../primitives/std" }
 # Needed for various traits. In our case, `OnFinalize`.
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../primitives/runtime" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../primitives/runtime" }
 # Needed for type-safe access to storage DB.
-frame-support = { version = "3.0.0", default-features = false, path = "../support" }
+frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
 # `system` module provides us with all sorts of useful stuff and macros depend on it being around.
-frame-system = { version = "3.0.0", default-features = false, path = "../system" }
-frame-benchmarking = { version = "3.1.0", default-features = false, path = "../benchmarking", optional = true }
+frame-system = { version = "4.0.0-dev", default-features = false, path = "../system" }
+frame-benchmarking = { version = "4.0.0-dev", default-features = false, path = "../benchmarking", optional = true }
 
 [dev-dependencies]
-sp-core = { version = "3.0.0", path = "../../primitives/core" }
-sp-std = { version = "3.0.0", path = "../../primitives/std" }
-sp-io = { version = "3.0.0", path = "../../primitives/io" }
-pallet-balances = { version = "3.0.0", path = "../balances" }
+sp-core = { version = "4.0.0-dev", path = "../../primitives/core" }
+sp-std = { version = "4.0.0-dev", path = "../../primitives/std" }
+sp-io = { version = "4.0.0-dev", path = "../../primitives/io" }
+pallet-balances = { version = "4.0.0-dev", path = "../balances" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/atomic-swap/Cargo.toml b/substrate/frame/atomic-swap/Cargo.toml
index 4fd1284893f99a9c97402608af8375d6f99e3ab7..2519772ed46defa344279c233ef1cf5a1ad40162 100644
--- a/substrate/frame/atomic-swap/Cargo.toml
+++ b/substrate/frame/atomic-swap/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-atomic-swap"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,15 +14,15 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false }
-frame-support = { version = "3.0.0", default-features = false, path = "../support" }
-frame-system = { version = "3.0.0", default-features = false, path = "../system" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../primitives/runtime" }
-sp-std = { version = "3.0.0", default-features = false, path = "../../primitives/std" }
-sp-io = { version = "3.0.0", default-features = false, path = "../../primitives/io" }
-sp-core = { version = "3.0.0", default-features = false, path = "../../primitives/core" }
+frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
+frame-system = { version = "4.0.0-dev", default-features = false, path = "../system" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../primitives/runtime" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../primitives/std" }
+sp-io = { version = "4.0.0-dev", default-features = false, path = "../../primitives/io" }
+sp-core = { version = "4.0.0-dev", default-features = false, path = "../../primitives/core" }
 
 [dev-dependencies]
-pallet-balances = { version = "3.0.0", path = "../balances" }
+pallet-balances = { version = "4.0.0-dev", path = "../balances" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/aura/Cargo.toml b/substrate/frame/aura/Cargo.toml
index 5b247b008de2ff38361c83b909893d3856ed6630..9c4a31017bac50f5dcb1e29e13d8d1742f09dbdd 100644
--- a/substrate/frame/aura/Cargo.toml
+++ b/substrate/frame/aura/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-aura"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -13,19 +13,19 @@ readme = "README.md"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sp-application-crypto = { version = "3.0.0", default-features = false, path = "../../primitives/application-crypto" }
+sp-application-crypto = { version = "4.0.0-dev", default-features = false, path = "../../primitives/application-crypto" }
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] }
-sp-std = { version = "3.0.0", default-features = false, path = "../../primitives/std" }
-pallet-session = { version = "3.0.0", default-features = false, path = "../session" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../primitives/runtime" }
-frame-support = { version = "3.0.0", default-features = false, path = "../support" }
-sp-consensus-aura = { version = "0.9.0", path = "../../primitives/consensus/aura", default-features = false }
-frame-system = { version = "3.0.0", default-features = false, path = "../system" }
-pallet-timestamp = { version = "3.0.0", default-features = false, path = "../timestamp" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../primitives/std" }
+pallet-session = { version = "4.0.0-dev", default-features = false, path = "../session" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../primitives/runtime" }
+frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
+sp-consensus-aura = { version = "0.10.0-dev", path = "../../primitives/consensus/aura", default-features = false }
+frame-system = { version = "4.0.0-dev", default-features = false, path = "../system" }
+pallet-timestamp = { version = "4.0.0-dev", default-features = false, path = "../timestamp" }
 
 [dev-dependencies]
-sp-core = { version = "3.0.0", default-features = false, path = "../../primitives/core" }
-sp-io ={ version = "3.0.0", path = "../../primitives/io" }
+sp-core = { version = "4.0.0-dev", default-features = false, path = "../../primitives/core" }
+sp-io ={ version = "4.0.0-dev", path = "../../primitives/io" }
 lazy_static = "1.4.0"
 parking_lot = "0.11.1"
 
diff --git a/substrate/frame/authority-discovery/Cargo.toml b/substrate/frame/authority-discovery/Cargo.toml
index 25fec9118230e6a98b62863c7cecfb0fc1355316..33faf0183e78a8c1412e6c01f39076d4bc59d795 100644
--- a/substrate/frame/authority-discovery/Cargo.toml
+++ b/substrate/frame/authority-discovery/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-authority-discovery"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -13,19 +13,19 @@ readme = "README.md"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sp-authority-discovery = { version = "3.0.0", default-features = false, path = "../../primitives/authority-discovery" }
-sp-application-crypto = { version = "3.0.0", default-features = false, path = "../../primitives/application-crypto" }
+sp-authority-discovery = { version = "4.0.0-dev", default-features = false, path = "../../primitives/authority-discovery" }
+sp-application-crypto = { version = "4.0.0-dev", default-features = false, path = "../../primitives/application-crypto" }
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] }
-sp-std = { version = "3.0.0", default-features = false, path = "../../primitives/std" }
-pallet-session = { version = "3.0.0", features = ["historical" ], path = "../session", default-features = false }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../primitives/runtime" }
-frame-support = { version = "3.0.0", default-features = false, path = "../support" }
-frame-system = { version = "3.0.0", default-features = false, path = "../system" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../primitives/std" }
+pallet-session = { version = "4.0.0-dev", features = ["historical" ], path = "../session", default-features = false }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../primitives/runtime" }
+frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
+frame-system = { version = "4.0.0-dev", default-features = false, path = "../system" }
 
 [dev-dependencies]
-sp-core = { version = "3.0.0", path = "../../primitives/core" }
-sp-io = { version = "3.0.0", path = "../../primitives/io" }
-sp-staking = { version = "3.0.0", default-features = false, path = "../../primitives/staking" }
+sp-core = { version = "4.0.0-dev", path = "../../primitives/core" }
+sp-io = { version = "4.0.0-dev", path = "../../primitives/io" }
+sp-staking = { version = "4.0.0-dev", default-features = false, path = "../../primitives/staking" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/authorship/Cargo.toml b/substrate/frame/authorship/Cargo.toml
index 56c56e23dfc8c9f19625d615431aa65f410b440b..f0d597b6ad7eed1c2a69f3a87c94016d2beb0440 100644
--- a/substrate/frame/authorship/Cargo.toml
+++ b/substrate/frame/authorship/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-authorship"
-version = "3.0.0"
+version = "4.0.0-dev"
 description = "Block and Uncle Author tracking for the FRAME"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
@@ -14,16 +14,16 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] }
-sp-authorship = { version = "3.0.0", default-features = false, path = "../../primitives/authorship" }
-sp-std = { version = "3.0.0", default-features = false, path = "../../primitives/std" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../primitives/runtime" }
-frame-support = { version = "3.0.0", default-features = false, path = "../support" }
-frame-system = { version = "3.0.0", default-features = false, path = "../system" }
+sp-authorship = { version = "4.0.0-dev", default-features = false, path = "../../primitives/authorship" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../primitives/std" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../primitives/runtime" }
+frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
+frame-system = { version = "4.0.0-dev", default-features = false, path = "../system" }
 impl-trait-for-tuples = "0.2.1"
 
 [dev-dependencies]
-sp-core = { version = "3.0.0", path = "../../primitives/core" }
-sp-io ={ version = "3.0.0", path = "../../primitives/io" }
+sp-core = { version = "4.0.0-dev", path = "../../primitives/core" }
+sp-io ={ version = "4.0.0-dev", path = "../../primitives/io" }
 serde = { version = "1.0.101" }
 
 [features]
diff --git a/substrate/frame/babe/Cargo.toml b/substrate/frame/babe/Cargo.toml
index 64497eafe715c7cbef59530359037fe5b3559dc3..f1a93bb418e9f15e9d9cffa1b58ac9a6d5c5d3a3 100644
--- a/substrate/frame/babe/Cargo.toml
+++ b/substrate/frame/babe/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-babe"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,29 +14,29 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] }
-frame-benchmarking = { version = "3.1.0", default-features = false, path = "../benchmarking", optional = true }
-frame-support = { version = "3.0.0", default-features = false, path = "../support" }
-frame-system = { version = "3.0.0", default-features = false, path = "../system" }
-pallet-authorship = { version = "3.0.0", default-features = false, path = "../authorship" }
-pallet-session = { version = "3.0.0", default-features = false, path = "../session" }
-pallet-timestamp = { version = "3.0.0", default-features = false, path = "../timestamp" }
-sp-application-crypto = { version = "3.0.0", default-features = false, path = "../../primitives/application-crypto" }
-sp-consensus-babe = { version = "0.9.0", default-features = false, path = "../../primitives/consensus/babe" }
-sp-consensus-vrf = { version = "0.9.0", default-features = false, path = "../../primitives/consensus/vrf" }
-sp-io = { version = "3.0.0", default-features = false, path = "../../primitives/io" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../primitives/runtime" }
-sp-session = { version = "3.0.0", default-features = false, path = "../../primitives/session" }
-sp-staking = { version = "3.0.0", default-features = false, path = "../../primitives/staking" }
-sp-std = { version = "3.0.0", default-features = false, path = "../../primitives/std" }
+frame-benchmarking = { version = "4.0.0-dev", default-features = false, path = "../benchmarking", optional = true }
+frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
+frame-system = { version = "4.0.0-dev", default-features = false, path = "../system" }
+pallet-authorship = { version = "4.0.0-dev", default-features = false, path = "../authorship" }
+pallet-session = { version = "4.0.0-dev", default-features = false, path = "../session" }
+pallet-timestamp = { version = "4.0.0-dev", default-features = false, path = "../timestamp" }
+sp-application-crypto = { version = "4.0.0-dev", default-features = false, path = "../../primitives/application-crypto" }
+sp-consensus-babe = { version = "0.10.0-dev", default-features = false, path = "../../primitives/consensus/babe" }
+sp-consensus-vrf = { version = "0.10.0-dev", default-features = false, path = "../../primitives/consensus/vrf" }
+sp-io = { version = "4.0.0-dev", default-features = false, path = "../../primitives/io" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../primitives/runtime" }
+sp-session = { version = "4.0.0-dev", default-features = false, path = "../../primitives/session" }
+sp-staking = { version = "4.0.0-dev", default-features = false, path = "../../primitives/staking" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../primitives/std" }
 log = { version = "0.4.14", default-features = false }
 
 [dev-dependencies]
-pallet-balances = { version = "3.0.0", path = "../balances" }
-pallet-offences = { version = "3.0.0", path = "../offences" }
-pallet-staking = { version = "3.0.0", path = "../staking" }
-pallet-staking-reward-curve = { version = "3.0.0", path = "../staking/reward-curve" }
-sp-core = { version = "3.0.0", path = "../../primitives/core" }
-frame-election-provider-support = { version = "3.0.0", path = "../election-provider-support" }
+pallet-balances = { version = "4.0.0-dev", path = "../balances" }
+pallet-offences = { version = "4.0.0-dev", path = "../offences" }
+pallet-staking = { version = "4.0.0-dev", path = "../staking" }
+pallet-staking-reward-curve = { version = "4.0.0-dev", path = "../staking/reward-curve" }
+sp-core = { version = "4.0.0-dev", path = "../../primitives/core" }
+frame-election-provider-support = { version = "4.0.0-dev", path = "../election-provider-support" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/balances/Cargo.toml b/substrate/frame/balances/Cargo.toml
index 724fadf48c52f6569615a0c3bc5d50bac1a01fd3..8b66f08d45d97cef715315325dbec1c2174cfe3e 100644
--- a/substrate/frame/balances/Cargo.toml
+++ b/substrate/frame/balances/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-balances"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,17 +14,17 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "2.2.0", default-features = false, features = ["derive", "max-encoded-len"] }
-sp-std = { version = "3.0.0", default-features = false, path = "../../primitives/std" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../primitives/runtime" }
-frame-benchmarking = { version = "3.1.0", default-features = false, path = "../benchmarking", optional = true }
-frame-support = { version = "3.0.0", default-features = false, path = "../support" }
-frame-system = { version = "3.0.0", default-features = false, path = "../system" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../primitives/std" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../primitives/runtime" }
+frame-benchmarking = { version = "4.0.0-dev", default-features = false, path = "../benchmarking", optional = true }
+frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
+frame-system = { version = "4.0.0-dev", default-features = false, path = "../system" }
 log = { version = "0.4.14", default-features = false }
 
 [dev-dependencies]
-sp-io = { version = "3.0.0", path = "../../primitives/io" }
-sp-core = { version = "3.0.0", path = "../../primitives/core" }
-pallet-transaction-payment = { version = "3.0.0", path = "../transaction-payment" }
+sp-io = { version = "4.0.0-dev", path = "../../primitives/io" }
+sp-core = { version = "4.0.0-dev", path = "../../primitives/core" }
+pallet-transaction-payment = { version = "4.0.0-dev", path = "../transaction-payment" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/benchmarking/Cargo.toml b/substrate/frame/benchmarking/Cargo.toml
index beff930161a088b0104933fa9feaa75f2fd99fc6..c7908c3f97b72945f9a0c6aa2e9c5707e55c5416 100644
--- a/substrate/frame/benchmarking/Cargo.toml
+++ b/substrate/frame/benchmarking/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "frame-benchmarking"
-version = "3.1.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -16,14 +16,14 @@ targets = ["x86_64-unknown-linux-gnu"]
 linregress = { version = "0.4.3", optional = true }
 paste = "1.0"
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false }
-sp-api = { version = "3.0.0", path = "../../primitives/api", default-features = false }
-sp-runtime-interface = { version = "3.0.0", path = "../../primitives/runtime-interface", default-features = false }
-sp-runtime = { version = "3.0.0", path = "../../primitives/runtime", default-features = false }
-sp-std = { version = "3.0.0", path = "../../primitives/std", default-features = false }
-sp-io = { version = "3.0.0", path = "../../primitives/io", default-features = false }
-sp-storage = { version = "3.0.0", path = "../../primitives/storage", default-features = false }
-frame-support = { version = "3.0.0", default-features = false, path = "../support" }
-frame-system = { version = "3.0.0", default-features = false, path = "../system" }
+sp-api = { version = "4.0.0-dev", path = "../../primitives/api", default-features = false }
+sp-runtime-interface = { version = "4.0.0-dev", path = "../../primitives/runtime-interface", default-features = false }
+sp-runtime = { version = "4.0.0-dev", path = "../../primitives/runtime", default-features = false }
+sp-std = { version = "4.0.0-dev", path = "../../primitives/std", default-features = false }
+sp-io = { version = "4.0.0-dev", path = "../../primitives/io", default-features = false }
+sp-storage = { version = "4.0.0-dev", path = "../../primitives/storage", default-features = false }
+frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
+frame-system = { version = "4.0.0-dev", default-features = false, path = "../system" }
 log = { version = "0.4.14", default-features = false }
 
 [dev-dependencies]
diff --git a/substrate/frame/bounties/Cargo.toml b/substrate/frame/bounties/Cargo.toml
index 1845f77e97a9af9aa50bc84f4a8503c6439568e9..7385f717af109d5754eaba60522af7ec916a7737 100644
--- a/substrate/frame/bounties/Cargo.toml
+++ b/substrate/frame/bounties/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-bounties"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,19 +14,19 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] }
-sp-std = { version = "3.0.0", default-features = false, path = "../../primitives/std" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../primitives/runtime" }
-frame-support = { version = "3.0.0", default-features = false, path = "../support" }
-frame-system = { version = "3.0.0", default-features = false, path = "../system" }
-pallet-treasury = { version = "3.0.0", default-features = false, path = "../treasury" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../primitives/std" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../primitives/runtime" }
+frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
+frame-system = { version = "4.0.0-dev", default-features = false, path = "../system" }
+pallet-treasury = { version = "4.0.0-dev", default-features = false, path = "../treasury" }
 
-frame-benchmarking = { version = "3.1.0", default-features = false, path = "../benchmarking", optional = true }
+frame-benchmarking = { version = "4.0.0-dev", default-features = false, path = "../benchmarking", optional = true }
 
 [dev-dependencies]
-sp-io ={ version = "3.0.0", path = "../../primitives/io" }
-sp-core = { version = "3.0.0", path = "../../primitives/core" }
-sp-storage = { version = "3.0.0", path = "../../primitives/storage" }
-pallet-balances = { version = "3.0.0", path = "../balances" }
+sp-io ={ version = "4.0.0-dev", path = "../../primitives/io" }
+sp-core = { version = "4.0.0-dev", path = "../../primitives/core" }
+sp-storage = { version = "4.0.0-dev", path = "../../primitives/storage" }
+pallet-balances = { version = "4.0.0-dev", path = "../balances" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/collective/Cargo.toml b/substrate/frame/collective/Cargo.toml
index c4940c87f827bc8eb9ddc88b52409d8286fd5607..4f134b2173b2edbf4f5ebe019145fef712cdbfa5 100644
--- a/substrate/frame/collective/Cargo.toml
+++ b/substrate/frame/collective/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-collective"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,18 +14,18 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] }
-sp-core = { version = "3.0.0", default-features = false, path = "../../primitives/core" }
-sp-std = { version = "3.0.0", default-features = false, path = "../../primitives/std" }
-sp-io = { version = "3.0.0", default-features = false, path = "../../primitives/io" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../primitives/runtime" }
-frame-benchmarking = { version = "3.1.0", default-features = false, path = "../benchmarking", optional = true }
-frame-support = { version = "3.0.0", default-features = false, path = "../support" }
-frame-system = { version = "3.0.0", default-features = false, path = "../system" }
+sp-core = { version = "4.0.0-dev", default-features = false, path = "../../primitives/core" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../primitives/std" }
+sp-io = { version = "4.0.0-dev", default-features = false, path = "../../primitives/io" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../primitives/runtime" }
+frame-benchmarking = { version = "4.0.0-dev", default-features = false, path = "../benchmarking", optional = true }
+frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
+frame-system = { version = "4.0.0-dev", default-features = false, path = "../system" }
 log = { version = "0.4.14", default-features = false }
 
 [dev-dependencies]
 hex-literal = "0.3.1"
-pallet-balances = { version = "3.0.0", path = "../balances" }
+pallet-balances = { version = "4.0.0-dev", path = "../balances" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/contracts/Cargo.toml b/substrate/frame/contracts/Cargo.toml
index e9f7236629ab02553fc5805a64758cc8a9bf3376..a0d7da0c5d0c4e7f840456aac9360936462afdc4 100644
--- a/substrate/frame/contracts/Cargo.toml
+++ b/substrate/frame/contracts/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-contracts"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -26,16 +26,16 @@ rand = { version = "0.8", optional = true, default-features = false }
 rand_pcg = { version = "0.3", optional = true }
 
 # Substrate Dependencies
-frame-benchmarking = { version = "3.1.0", default-features = false, path = "../benchmarking", optional = true }
-frame-support = { version = "3.0.0", default-features = false, path = "../support" }
-frame-system = { version = "3.0.0", default-features = false, path = "../system" }
-pallet-contracts-primitives = { version = "3.0.0", default-features = false, path = "common" }
-pallet-contracts-proc-macro = { version = "3.0.0", path = "proc-macro" }
-sp-core = { version = "3.0.0", default-features = false, path = "../../primitives/core" }
-sp-io = { version = "3.0.0", default-features = false, path = "../../primitives/io" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../primitives/runtime" }
-sp-sandbox = { version = "0.9.0", default-features = false, path = "../../primitives/sandbox" }
-sp-std = { version = "3.0.0", default-features = false, path = "../../primitives/std" }
+frame-benchmarking = { version = "4.0.0-dev", default-features = false, path = "../benchmarking", optional = true }
+frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
+frame-system = { version = "4.0.0-dev", default-features = false, path = "../system" }
+pallet-contracts-primitives = { version = "4.0.0-dev", default-features = false, path = "common" }
+pallet-contracts-proc-macro = { version = "4.0.0-dev", path = "proc-macro" }
+sp-core = { version = "4.0.0-dev", default-features = false, path = "../../primitives/core" }
+sp-io = { version = "4.0.0-dev", default-features = false, path = "../../primitives/io" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../primitives/runtime" }
+sp-sandbox = { version = "0.10.0-dev", default-features = false, path = "../../primitives/sandbox" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../primitives/std" }
 
 [dev-dependencies]
 assert_matches = "1"
@@ -45,9 +45,9 @@ pretty_assertions = "0.7"
 wat = "1"
 
 # Substrate Dependencies
-pallet-balances = { version = "3.0.0", path = "../balances" }
-pallet-timestamp = { version = "3.0.0", path = "../timestamp" }
-pallet-randomness-collective-flip = { version = "3.0.0", path = "../randomness-collective-flip" }
+pallet-balances = { version = "4.0.0-dev", path = "../balances" }
+pallet-timestamp = { version = "4.0.0-dev", path = "../timestamp" }
+pallet-randomness-collective-flip = { version = "4.0.0-dev", path = "../randomness-collective-flip" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/contracts/common/Cargo.toml b/substrate/frame/contracts/common/Cargo.toml
index 154ceeb891344b9f36f60f88ff10485c0a374a55..e353b3af04714796c96c6809ba5933bed5deccb3 100644
--- a/substrate/frame/contracts/common/Cargo.toml
+++ b/substrate/frame/contracts/common/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-contracts-primitives"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -18,9 +18,9 @@ codec = { package = "parity-scale-codec", version = "2", default-features = fals
 serde = { version = "1", features = ["derive"], optional = true }
 
 # Substrate Dependencies (This crate should not rely on frame)
-sp-core = { version = "3.0.0", path = "../../../primitives/core", default-features = false }
-sp-std = { version = "3.0.0", default-features = false, path = "../../../primitives/std" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../../primitives/runtime" }
+sp-core = { version = "4.0.0-dev", path = "../../../primitives/core", default-features = false }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/std" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/runtime" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/contracts/proc-macro/Cargo.toml b/substrate/frame/contracts/proc-macro/Cargo.toml
index 2bdde32e0bd452b5fb86a8c215e0a289faccb1e0..605c69fe73e25d346eb17c5064af4f9d325fd6ae 100644
--- a/substrate/frame/contracts/proc-macro/Cargo.toml
+++ b/substrate/frame/contracts/proc-macro/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-contracts-proc-macro"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
diff --git a/substrate/frame/contracts/rpc/Cargo.toml b/substrate/frame/contracts/rpc/Cargo.toml
index dbd4356acc4a9e8526dc09c1ff903b29ff737541..32aa9e21a1a0f99b259de5586dd164791b7b211c 100644
--- a/substrate/frame/contracts/rpc/Cargo.toml
+++ b/substrate/frame/contracts/rpc/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-contracts-rpc"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -20,13 +20,13 @@ jsonrpc-derive = "15"
 serde = { version = "1", features = ["derive"] }
 
 # Substrate Dependencies
-pallet-contracts-primitives = { version = "3.0.0", path = "../common" }
-pallet-contracts-rpc-runtime-api = { version = "3.0.0", path = "./runtime-api" }
-sp-api = { version = "3.0.0", path = "../../../primitives/api" }
-sp-blockchain = { version = "3.0.0", path = "../../../primitives/blockchain" }
-sp-core = { version = "3.0.0", path = "../../../primitives/core" }
-sp-rpc = { version = "3.0.0", path = "../../../primitives/rpc" }
-sp-runtime = { version = "3.0.0", path = "../../../primitives/runtime" }
+pallet-contracts-primitives = { version = "4.0.0-dev", path = "../common" }
+pallet-contracts-rpc-runtime-api = { version = "4.0.0-dev", path = "./runtime-api" }
+sp-api = { version = "4.0.0-dev", path = "../../../primitives/api" }
+sp-blockchain = { version = "4.0.0-dev", path = "../../../primitives/blockchain" }
+sp-core = { version = "4.0.0-dev", path = "../../../primitives/core" }
+sp-rpc = { version = "4.0.0-dev", path = "../../../primitives/rpc" }
+sp-runtime = { version = "4.0.0-dev", path = "../../../primitives/runtime" }
 
 [dev-dependencies]
 serde_json = "1"
diff --git a/substrate/frame/contracts/rpc/runtime-api/Cargo.toml b/substrate/frame/contracts/rpc/runtime-api/Cargo.toml
index 8ce1c13e667ebb203e0088f33f8527d61e66ac2b..fb5addc5a437bfa9a143ea583ae1531de524aba8 100644
--- a/substrate/frame/contracts/rpc/runtime-api/Cargo.toml
+++ b/substrate/frame/contracts/rpc/runtime-api/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-contracts-rpc-runtime-api"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -16,10 +16,10 @@ targets = ["x86_64-unknown-linux-gnu"]
 codec = { package = "parity-scale-codec", version = "2", default-features = false, features = ["derive"] }
 
 # Substrate Dependencies
-pallet-contracts-primitives = { version = "3.0.0", default-features = false, path = "../../common" }
-sp-api = { version = "3.0.0", default-features = false, path = "../../../../primitives/api" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../../../primitives/runtime" }
-sp-std = { version = "3.0.0", default-features = false, path = "../../../../primitives/std" }
+pallet-contracts-primitives = { version = "4.0.0-dev", default-features = false, path = "../../common" }
+sp-api = { version = "4.0.0-dev", default-features = false, path = "../../../../primitives/api" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../../../primitives/runtime" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../../../primitives/std" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/democracy/Cargo.toml b/substrate/frame/democracy/Cargo.toml
index f9b0d035b089d21ffde013bf25b10ad04d0cc83b..178578992ad5439ca660ab6a2c55115d4ef94a53 100644
--- a/substrate/frame/democracy/Cargo.toml
+++ b/substrate/frame/democracy/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-democracy"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -15,19 +15,19 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 serde = { version = "1.0.101", optional = true, features = ["derive"] }
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] }
-sp-std = { version = "3.0.0", default-features = false, path = "../../primitives/std" }
-sp-io = { version = "3.0.0", default-features = false, path = "../../primitives/io" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../primitives/runtime" }
-frame-benchmarking = { version = "3.1.0", default-features = false, path = "../benchmarking", optional = true }
-frame-support = { version = "3.0.0", default-features = false, path = "../support" }
-frame-system = { version = "3.0.0", default-features = false, path = "../system" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../primitives/std" }
+sp-io = { version = "4.0.0-dev", default-features = false, path = "../../primitives/io" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../primitives/runtime" }
+frame-benchmarking = { version = "4.0.0-dev", default-features = false, path = "../benchmarking", optional = true }
+frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
+frame-system = { version = "4.0.0-dev", default-features = false, path = "../system" }
 
 [dev-dependencies]
-sp-core = { version = "3.0.0", path = "../../primitives/core" }
-pallet-balances = { version = "3.0.0", path = "../balances" }
-pallet-scheduler = { version = "3.0.0", path = "../scheduler" }
-sp-storage = { version = "3.0.0", path = "../../primitives/storage" }
-substrate-test-utils = { version = "3.0.0", path = "../../test-utils" }
+sp-core = { version = "4.0.0-dev", path = "../../primitives/core" }
+pallet-balances = { version = "4.0.0-dev", path = "../balances" }
+pallet-scheduler = { version = "4.0.0-dev", path = "../scheduler" }
+sp-storage = { version = "4.0.0-dev", path = "../../primitives/storage" }
+substrate-test-utils = { version = "4.0.0-dev", path = "../../test-utils" }
 hex-literal = "0.3.1"
 
 [features]
diff --git a/substrate/frame/election-provider-multi-phase/Cargo.toml b/substrate/frame/election-provider-multi-phase/Cargo.toml
index cd84ef3778c503fcb741f7c29584c6adb60501eb..c78fba0a569f0396d10dcdad1a86ca6d407e9d36 100644
--- a/substrate/frame/election-provider-multi-phase/Cargo.toml
+++ b/substrate/frame/election-provider-multi-phase/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-election-provider-multi-phase"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -17,19 +17,19 @@ static_assertions = "1.1.0"
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] }
 log = { version = "0.4.14", default-features = false }
 
-frame-support = { version = "3.0.0", default-features = false, path = "../support" }
-frame-system = { version = "3.0.0", default-features = false, path = "../system" }
+frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
+frame-system = { version = "4.0.0-dev", default-features = false, path = "../system" }
 
-sp-io = { version = "3.0.0", default-features = false, path = "../../primitives/io" }
-sp-std = { version = "3.0.0", default-features = false, path = "../../primitives/std" }
-sp-core = { version = "3.0.0", default-features = false, path = "../../primitives/core" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../primitives/runtime" }
-sp-npos-elections = { version = "3.0.0", default-features = false, path = "../../primitives/npos-elections" }
-sp-arithmetic = { version = "3.0.0", default-features = false, path = "../../primitives/arithmetic" }
-frame-election-provider-support = { version = "3.0.0", default-features = false, path = "../election-provider-support" }
+sp-io = { version = "4.0.0-dev", default-features = false, path = "../../primitives/io" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../primitives/std" }
+sp-core = { version = "4.0.0-dev", default-features = false, path = "../../primitives/core" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../primitives/runtime" }
+sp-npos-elections = { version = "4.0.0-dev", default-features = false, path = "../../primitives/npos-elections" }
+sp-arithmetic = { version = "4.0.0-dev", default-features = false, path = "../../primitives/arithmetic" }
+frame-election-provider-support = { version = "4.0.0-dev", default-features = false, path = "../election-provider-support" }
 
 # Optional imports for benchmarking
-frame-benchmarking = { version = "3.1.0", default-features = false, path = "../benchmarking", optional = true }
+frame-benchmarking = { version = "4.0.0-dev", default-features = false, path = "../benchmarking", optional = true }
 rand = { version = "0.7.3", default-features = false, optional = true, features = ["alloc", "small_rng"] }
 
 [dev-dependencies]
@@ -37,14 +37,14 @@ paste = "1.0.3"
 parking_lot = "0.11.0"
 rand = { version = "0.7.3" }
 hex-literal = "0.3.1"
-substrate-test-utils = { version = "3.0.0", path = "../../test-utils" }
-sp-core = { version = "3.0.0", default-features = false, path = "../../primitives/core" }
-sp-io = { version = "3.0.0", path = "../../primitives/io" }
-sp-npos-elections = { version = "3.0.0", default-features = false, features = [ "mocks" ], path = "../../primitives/npos-elections" }
-sp-tracing = { version = "3.0.0", path = "../../primitives/tracing" }
-frame-election-provider-support = { version = "3.0.0", features = ["runtime-benchmarks"], path = "../election-provider-support" }
-pallet-balances = { version = "3.0.0", path = "../balances" }
-frame-benchmarking = { version = "3.1.0", path = "../benchmarking" }
+substrate-test-utils = { version = "4.0.0-dev", path = "../../test-utils" }
+sp-core = { version = "4.0.0-dev", default-features = false, path = "../../primitives/core" }
+sp-io = { version = "4.0.0-dev", path = "../../primitives/io" }
+sp-npos-elections = { version = "4.0.0-dev", default-features = false, features = [ "mocks" ], path = "../../primitives/npos-elections" }
+sp-tracing = { version = "4.0.0-dev", path = "../../primitives/tracing" }
+frame-election-provider-support = { version = "4.0.0-dev", features = ["runtime-benchmarks"], path = "../election-provider-support" }
+pallet-balances = { version = "4.0.0-dev", path = "../balances" }
+frame-benchmarking = { version = "4.0.0-dev", path = "../benchmarking" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/election-provider-support/Cargo.toml b/substrate/frame/election-provider-support/Cargo.toml
index b360cd89eb57b77d83b5f003b5b46a2d6db643d2..c0d332315b020d6f2e6b2d5ebda7e26f7f588836 100644
--- a/substrate/frame/election-provider-support/Cargo.toml
+++ b/substrate/frame/election-provider-support/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "frame-election-provider-support"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,15 +14,15 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] }
-sp-std = { version = "3.0.0", default-features = false, path = "../../primitives/std" }
-sp-arithmetic = { version = "3.0.0", default-features = false, path = "../../primitives/arithmetic" }
-sp-npos-elections = { version = "3.0.0", default-features = false, path = "../../primitives/npos-elections" }
-frame-support = { version = "3.0.0", default-features = false, path = "../support" }
-frame-system = { version = "3.0.0", default-features = false, path = "../system" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../primitives/std" }
+sp-arithmetic = { version = "4.0.0-dev", default-features = false, path = "../../primitives/arithmetic" }
+sp-npos-elections = { version = "4.0.0-dev", default-features = false, path = "../../primitives/npos-elections" }
+frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
+frame-system = { version = "4.0.0-dev", default-features = false, path = "../system" }
 
 [dev-dependencies]
-sp-npos-elections = { version = "3.0.0", path = "../../primitives/npos-elections" }
-sp-runtime = { version = "3.0.0", path = "../../primitives/runtime" }
+sp-npos-elections = { version = "4.0.0-dev", path = "../../primitives/npos-elections" }
+sp-runtime = { version = "4.0.0-dev", path = "../../primitives/runtime" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/elections-phragmen/Cargo.toml b/substrate/frame/elections-phragmen/Cargo.toml
index aa2b564f73f240fd6fbd28d7564027cdb2d29bd0..dc0088c12a57042ec5ddbe3664f0d0f49dea340d 100644
--- a/substrate/frame/elections-phragmen/Cargo.toml
+++ b/substrate/frame/elections-phragmen/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-elections-phragmen"
-version = "4.0.0"
+version = "5.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,21 +14,21 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../primitives/runtime" }
-sp-npos-elections = { version = "3.0.0", default-features = false, path = "../../primitives/npos-elections" }
-sp-io = { version = "3.0.0", default-features = false, path = "../../primitives/io" }
-frame-support = { version = "3.0.0", default-features = false, path = "../support" }
-frame-system = { version = "3.0.0", default-features = false, path = "../system" }
-sp-std = { version = "3.0.0", default-features = false, path = "../../primitives/std" }
-sp-core = { version = "3.0.0", default-features = false, path = "../../primitives/core" }
-frame-benchmarking = { version = "3.1.0", default-features = false, path = "../benchmarking", optional = true }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../primitives/runtime" }
+sp-npos-elections = { version = "4.0.0-dev", default-features = false, path = "../../primitives/npos-elections" }
+sp-io = { version = "4.0.0-dev", default-features = false, path = "../../primitives/io" }
+frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
+frame-system = { version = "4.0.0-dev", default-features = false, path = "../system" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../primitives/std" }
+sp-core = { version = "4.0.0-dev", default-features = false, path = "../../primitives/core" }
+frame-benchmarking = { version = "4.0.0-dev", default-features = false, path = "../benchmarking", optional = true }
 log = { version = "0.4.14", default-features = false }
 
 [dev-dependencies]
 hex-literal = "0.3.1"
-pallet-balances = { version = "3.0.0", path = "../balances" }
-sp-core = { version = "3.0.0", path = "../../primitives/core" }
-substrate-test-utils = { version = "3.0.0", path = "../../test-utils" }
+pallet-balances = { version = "4.0.0-dev", path = "../balances" }
+sp-core = { version = "4.0.0-dev", path = "../../primitives/core" }
+substrate-test-utils = { version = "4.0.0-dev", path = "../../test-utils" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/elections/Cargo.toml b/substrate/frame/elections/Cargo.toml
index d4b84f5bb1565b115466b982d18adbf16cd86e35..b1f49d778050f62f9f6f9c9693e9b3535b902bd9 100644
--- a/substrate/frame/elections/Cargo.toml
+++ b/substrate/frame/elections/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-elections"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,16 +14,16 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] }
-sp-core = { version = "3.0.0", default-features = false, path = "../../primitives/core" }
-sp-std = { version = "3.0.0", default-features = false, path = "../../primitives/std" }
-sp-io = { version = "3.0.0", default-features = false, path = "../../primitives/io" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../primitives/runtime" }
-frame-support = { version = "3.0.0", default-features = false, path = "../support" }
-frame-system = { version = "3.0.0", default-features = false, path = "../system" }
+sp-core = { version = "4.0.0-dev", default-features = false, path = "../../primitives/core" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../primitives/std" }
+sp-io = { version = "4.0.0-dev", default-features = false, path = "../../primitives/io" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../primitives/runtime" }
+frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
+frame-system = { version = "4.0.0-dev", default-features = false, path = "../system" }
 
 [dev-dependencies]
 hex-literal = "0.3.1"
-pallet-balances = { version = "3.0.0", path = "../balances" }
+pallet-balances = { version = "4.0.0-dev", path = "../balances" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/example-offchain-worker/Cargo.toml b/substrate/frame/example-offchain-worker/Cargo.toml
index ea9fb9699ec64c213f8bc9afbac8d24d5800e787..c6b13d11095117b6540892058a6e7b0edf0622b3 100644
--- a/substrate/frame/example-offchain-worker/Cargo.toml
+++ b/substrate/frame/example-offchain-worker/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-example-offchain-worker"
-version = "2.0.1"
+version = "3.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Unlicense"
@@ -14,13 +14,13 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false }
-frame-support = { version = "3.0.0", default-features = false, path = "../support" }
-frame-system = { version = "3.0.0", default-features = false, path = "../system" }
-sp-core = { version = "3.0.0", default-features = false, path = "../../primitives/core" }
-sp-keystore = { version = "0.9.0", path = "../../primitives/keystore", optional = true }
-sp-io = { version = "3.0.0", default-features = false, path = "../../primitives/io" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../primitives/runtime" }
-sp-std = { version = "3.0.0", default-features = false, path = "../../primitives/std" }
+frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
+frame-system = { version = "4.0.0-dev", default-features = false, path = "../system" }
+sp-core = { version = "4.0.0-dev", default-features = false, path = "../../primitives/core" }
+sp-keystore = { version = "0.10.0-dev", path = "../../primitives/keystore", optional = true }
+sp-io = { version = "4.0.0-dev", default-features = false, path = "../../primitives/io" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../primitives/runtime" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../primitives/std" }
 lite-json = { version = "0.1", default-features = false }
 log = { version = "0.4.14", default-features = false }
 
diff --git a/substrate/frame/example-parallel/Cargo.toml b/substrate/frame/example-parallel/Cargo.toml
index 2c593db7ec9dd4ad898907c344b508641517d75a..ab1b8bfbfae26c96b09d529fc5e86359ad87b21d 100644
--- a/substrate/frame/example-parallel/Cargo.toml
+++ b/substrate/frame/example-parallel/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-example-parallel"
-version = "2.0.1"
+version = "3.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Unlicense"
@@ -13,13 +13,13 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false }
-frame-support = { version = "3.0.0", default-features = false, path = "../support" }
-frame-system = { version = "3.0.0", default-features = false, path = "../system" }
-sp-core = { version = "3.0.0", default-features = false, path = "../../primitives/core" }
-sp-io = { version = "3.0.0", default-features = false, path = "../../primitives/io" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../primitives/runtime" }
-sp-std = { version = "3.0.0", default-features = false, path = "../../primitives/std" }
-sp-tasks = { version = "3.0.0", default-features = false, path = "../../primitives/tasks" }
+frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
+frame-system = { version = "4.0.0-dev", default-features = false, path = "../system" }
+sp-core = { version = "4.0.0-dev", default-features = false, path = "../../primitives/core" }
+sp-io = { version = "4.0.0-dev", default-features = false, path = "../../primitives/io" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../primitives/runtime" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../primitives/std" }
+sp-tasks = { version = "4.0.0-dev", default-features = false, path = "../../primitives/tasks" }
 
 [dev-dependencies]
 serde = { version = "1.0.101" }
diff --git a/substrate/frame/example/Cargo.toml b/substrate/frame/example/Cargo.toml
index 258648b52e5b77dbc578cc48214884641787aa8c..08d7af4ef673fd45ab76aaf1370f418e7ee8aa63 100644
--- a/substrate/frame/example/Cargo.toml
+++ b/substrate/frame/example/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-example"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Unlicense"
@@ -14,17 +14,17 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false }
-frame-support = { version = "3.0.0", default-features = false, path = "../support" }
-frame-system = { version = "3.0.0", default-features = false, path = "../system" }
-pallet-balances = { version = "3.0.0", default-features = false, path = "../balances" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../primitives/runtime" }
-sp-std = { version = "3.0.0", default-features = false, path = "../../primitives/std" }
-sp-io = { version = "3.0.0", default-features = false, path = "../../primitives/io" }
-frame-benchmarking = { version = "3.1.0", default-features = false, path = "../benchmarking", optional = true }
+frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
+frame-system = { version = "4.0.0-dev", default-features = false, path = "../system" }
+pallet-balances = { version = "4.0.0-dev", default-features = false, path = "../balances" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../primitives/runtime" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../primitives/std" }
+sp-io = { version = "4.0.0-dev", default-features = false, path = "../../primitives/io" }
+frame-benchmarking = { version = "4.0.0-dev", default-features = false, path = "../benchmarking", optional = true }
 log = { version = "0.4.14", default-features = false }
 
 [dev-dependencies]
-sp-core = { version = "3.0.0", path = "../../primitives/core", default-features = false }
+sp-core = { version = "4.0.0-dev", path = "../../primitives/core", default-features = false }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/executive/Cargo.toml b/substrate/frame/executive/Cargo.toml
index a923f926a09607760975829b72b865ffe7890812..7b5be2ceec10fcf4e39d3a5c1cfbd27e63271961 100644
--- a/substrate/frame/executive/Cargo.toml
+++ b/substrate/frame/executive/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "frame-executive"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,23 +14,23 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] }
-frame-support = { version = "3.0.0", default-features = false, path = "../support" }
-frame-system = { version = "3.0.0", default-features = false, path = "../system" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../primitives/runtime" }
-sp-tracing = { version = "3.0.0", default-features = false, path = "../../primitives/tracing" }
-sp-std = { version = "3.0.0", default-features = false, path = "../../primitives/std" }
-sp-io = { version = "3.0.0", default-features = false, path = "../../primitives/io" }
-sp-core = { version = "3.0.0", default-features = false, path = "../../primitives/core" }
+frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
+frame-system = { version = "4.0.0-dev", default-features = false, path = "../system" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../primitives/runtime" }
+sp-tracing = { version = "4.0.0-dev", default-features = false, path = "../../primitives/tracing" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../primitives/std" }
+sp-io = { version = "4.0.0-dev", default-features = false, path = "../../primitives/io" }
+sp-core = { version = "4.0.0-dev", default-features = false, path = "../../primitives/core" }
 
 [dev-dependencies]
 hex-literal = "0.3.1"
-sp-core = { version = "3.0.0", path = "../../primitives/core" }
-sp-io ={ version = "3.0.0", path = "../../primitives/io" }
-pallet-indices = { version = "3.0.0", path = "../indices" }
-pallet-balances = { version = "3.0.0", path = "../balances" }
-pallet-transaction-payment = { version = "3.0.0", path = "../transaction-payment" }
-sp-version = { version = "3.0.0", path = "../../primitives/version" }
-sp-inherents = { version = "3.0.0", path = "../../primitives/inherents" }
+sp-core = { version = "4.0.0-dev", path = "../../primitives/core" }
+sp-io ={ version = "4.0.0-dev", path = "../../primitives/io" }
+pallet-indices = { version = "4.0.0-dev", path = "../indices" }
+pallet-balances = { version = "4.0.0-dev", path = "../balances" }
+pallet-transaction-payment = { version = "4.0.0-dev", path = "../transaction-payment" }
+sp-version = { version = "4.0.0-dev", path = "../../primitives/version" }
+sp-inherents = { version = "4.0.0-dev", path = "../../primitives/inherents" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/gilt/Cargo.toml b/substrate/frame/gilt/Cargo.toml
index 0b40f6ad4d6dac5ebc28f105007b49fb1cb19db5..a6e59a2dcd65fe17ec8766764af6b723f68d6dd5 100644
--- a/substrate/frame/gilt/Cargo.toml
+++ b/substrate/frame/gilt/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-gilt"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,17 +14,17 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] }
-sp-std = { version = "3.0.0", default-features = false, path = "../../primitives/std" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../primitives/runtime" }
-sp-arithmetic = { version = "3.0.0", default-features = false, path = "../../primitives/arithmetic" }
-frame-benchmarking = { version = "3.0.0", default-features = false, path = "../benchmarking", optional = true }
-frame-support = { version = "3.0.0", default-features = false, path = "../support" }
-frame-system = { version = "3.0.0", default-features = false, path = "../system" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../primitives/std" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../primitives/runtime" }
+sp-arithmetic = { version = "4.0.0-dev", default-features = false, path = "../../primitives/arithmetic" }
+frame-benchmarking = { version = "4.0.0-dev", default-features = false, path = "../benchmarking", optional = true }
+frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
+frame-system = { version = "4.0.0-dev", default-features = false, path = "../system" }
 
 [dev-dependencies]
-sp-io = { version = "3.0.0", path = "../../primitives/io" }
-sp-core = { version = "3.0.0", path = "../../primitives/core" }
-pallet-balances = { version = "3.0.0", path = "../balances" }
+sp-io = { version = "4.0.0-dev", path = "../../primitives/io" }
+sp-core = { version = "4.0.0-dev", path = "../../primitives/core" }
+pallet-balances = { version = "4.0.0-dev", path = "../balances" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/grandpa/Cargo.toml b/substrate/frame/grandpa/Cargo.toml
index 5c3cac8f82182d8281d10a2efeafe0618c39c734..9e60ad0fb3c8a14362ed135dcf5385c895654ba6 100644
--- a/substrate/frame/grandpa/Cargo.toml
+++ b/substrate/frame/grandpa/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-grandpa"
-version = "3.1.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,31 +14,31 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] }
-sp-application-crypto = { version = "3.0.0", default-features = false, path = "../../primitives/application-crypto" }
-sp-core = { version = "3.0.0", default-features = false, path = "../../primitives/core" }
-sp-finality-grandpa = { version = "3.0.0", default-features = false, path = "../../primitives/finality-grandpa" }
-sp-io = { version = "3.0.0", default-features = false, path = "../../primitives/io" }
-sp-session = { version = "3.0.0", default-features = false, path = "../../primitives/session" }
-sp-std = { version = "3.0.0", default-features = false, path = "../../primitives/std" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../primitives/runtime" }
-sp-staking = { version = "3.0.0", default-features = false, path = "../../primitives/staking" }
-frame-benchmarking = { version = "3.1.0", default-features = false, path = "../benchmarking", optional = true }
-frame-support = { version = "3.0.0", default-features = false, path = "../support" }
-frame-system = { version = "3.0.0", default-features = false, path = "../system" }
-pallet-authorship = { version = "3.0.0", default-features = false, path = "../authorship" }
-pallet-session = { version = "3.0.0", default-features = false, path = "../session" }
+sp-application-crypto = { version = "4.0.0-dev", default-features = false, path = "../../primitives/application-crypto" }
+sp-core = { version = "4.0.0-dev", default-features = false, path = "../../primitives/core" }
+sp-finality-grandpa = { version = "4.0.0-dev", default-features = false, path = "../../primitives/finality-grandpa" }
+sp-io = { version = "4.0.0-dev", default-features = false, path = "../../primitives/io" }
+sp-session = { version = "4.0.0-dev", default-features = false, path = "../../primitives/session" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../primitives/std" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../primitives/runtime" }
+sp-staking = { version = "4.0.0-dev", default-features = false, path = "../../primitives/staking" }
+frame-benchmarking = { version = "4.0.0-dev", default-features = false, path = "../benchmarking", optional = true }
+frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
+frame-system = { version = "4.0.0-dev", default-features = false, path = "../system" }
+pallet-authorship = { version = "4.0.0-dev", default-features = false, path = "../authorship" }
+pallet-session = { version = "4.0.0-dev", default-features = false, path = "../session" }
 log = { version = "0.4.14", default-features = false }
 
 [dev-dependencies]
-frame-benchmarking = { version = "3.1.0", path = "../benchmarking" }
+frame-benchmarking = { version = "4.0.0-dev", path = "../benchmarking" }
 grandpa = { package = "finality-grandpa", version = "0.14.1", features = ["derive-codec"] }
-sp-keyring = { version = "3.0.0", path = "../../primitives/keyring" }
-pallet-balances = { version = "3.0.0", path = "../balances" }
-pallet-offences = { version = "3.0.0", path = "../offences" }
-pallet-staking = { version = "3.0.0", path = "../staking" }
-pallet-staking-reward-curve = { version = "3.0.0", path = "../staking/reward-curve" }
-pallet-timestamp = { version = "3.0.0", path = "../timestamp" }
-frame-election-provider-support = { version = "3.0.0", path = "../election-provider-support" }
+sp-keyring = { version = "4.0.0-dev", path = "../../primitives/keyring" }
+pallet-balances = { version = "4.0.0-dev", path = "../balances" }
+pallet-offences = { version = "4.0.0-dev", path = "../offences" }
+pallet-staking = { version = "4.0.0-dev", path = "../staking" }
+pallet-staking-reward-curve = { version = "4.0.0-dev", path = "../staking/reward-curve" }
+pallet-timestamp = { version = "4.0.0-dev", path = "../timestamp" }
+frame-election-provider-support = { version = "4.0.0-dev", path = "../election-provider-support" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/identity/Cargo.toml b/substrate/frame/identity/Cargo.toml
index ed905d407d90ffc6fa5fdc03eb54669ab02da285..b04594b737803e0f49ccb6f4d573c030b9394ed1 100644
--- a/substrate/frame/identity/Cargo.toml
+++ b/substrate/frame/identity/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-identity"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -15,16 +15,16 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 codec = { package = "parity-scale-codec", version = "2.2.0", default-features = false, features = ["derive", "max-encoded-len"] }
 enumflags2 = { version = "0.6.2" }
-sp-std = { version = "3.0.0", default-features = false, path = "../../primitives/std" }
-sp-io = { version = "3.0.0", default-features = false, path = "../../primitives/io" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../primitives/runtime" }
-frame-benchmarking = { version = "3.1.0", default-features = false, path = "../benchmarking", optional = true }
-frame-support = { version = "3.0.0", default-features = false, path = "../support" }
-frame-system = { version = "3.0.0", default-features = false, path = "../system" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../primitives/std" }
+sp-io = { version = "4.0.0-dev", default-features = false, path = "../../primitives/io" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../primitives/runtime" }
+frame-benchmarking = { version = "4.0.0-dev", default-features = false, path = "../benchmarking", optional = true }
+frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
+frame-system = { version = "4.0.0-dev", default-features = false, path = "../system" }
 
 [dev-dependencies]
-sp-core = { version = "3.0.0", path = "../../primitives/core" }
-pallet-balances = { version = "3.0.0", path = "../balances" }
+sp-core = { version = "4.0.0-dev", path = "../../primitives/core" }
+pallet-balances = { version = "4.0.0-dev", path = "../balances" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/im-online/Cargo.toml b/substrate/frame/im-online/Cargo.toml
index 2e816a6bb8564e585f890b755961bddc6c10a4f6..1208da3b3f3d5634ad46fb67b6f13e0cdc9d5e14 100644
--- a/substrate/frame/im-online/Cargo.toml
+++ b/substrate/frame/im-online/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-im-online"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -13,22 +13,22 @@ readme = "README.md"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sp-application-crypto = { version = "3.0.0", default-features = false, path = "../../primitives/application-crypto" }
-pallet-authorship = { version = "3.0.0", default-features = false, path = "../authorship" }
+sp-application-crypto = { version = "4.0.0-dev", default-features = false, path = "../../primitives/application-crypto" }
+pallet-authorship = { version = "4.0.0-dev", default-features = false, path = "../authorship" }
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] }
-sp-core = { version = "3.0.0", default-features = false, path = "../../primitives/core" }
-sp-std = { version = "3.0.0", default-features = false, path = "../../primitives/std" }
-sp-io = { version = "3.0.0", default-features = false, path = "../../primitives/io" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../primitives/runtime" }
-sp-staking = { version = "3.0.0", default-features = false, path = "../../primitives/staking" }
-frame-support = { version = "3.0.0", default-features = false, path = "../support" }
-frame-system = { version = "3.0.0", default-features = false, path = "../system" }
+sp-core = { version = "4.0.0-dev", default-features = false, path = "../../primitives/core" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../primitives/std" }
+sp-io = { version = "4.0.0-dev", default-features = false, path = "../../primitives/io" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../primitives/runtime" }
+sp-staking = { version = "4.0.0-dev", default-features = false, path = "../../primitives/staking" }
+frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
+frame-system = { version = "4.0.0-dev", default-features = false, path = "../system" }
 log = { version = "0.4.14", default-features = false }
 
-frame-benchmarking = { version = "3.1.0", default-features = false, path = "../benchmarking", optional = true }
+frame-benchmarking = { version = "4.0.0-dev", default-features = false, path = "../benchmarking", optional = true }
 
 [dev-dependencies]
-pallet-session = { version = "3.0.0", path = "../session" }
+pallet-session = { version = "4.0.0-dev", path = "../session" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/indices/Cargo.toml b/substrate/frame/indices/Cargo.toml
index 4b60ec8bc3ca81c14969d972e1c81b6d7d462e41..1ef4527f607bcb8f662d2149bd756043f2cf93e5 100644
--- a/substrate/frame/indices/Cargo.toml
+++ b/substrate/frame/indices/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-indices"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,18 +14,18 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] }
-sp-keyring = { version = "3.0.0", optional = true, path = "../../primitives/keyring" }
-sp-std = { version = "3.0.0", default-features = false, path = "../../primitives/std" }
-sp-io = { version = "3.0.0", default-features = false, path = "../../primitives/io" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../primitives/runtime" }
-sp-core = { version = "3.0.0", default-features = false, path = "../../primitives/core" }
-frame-support = { version = "3.0.0", default-features = false, path = "../support" }
-frame-system = { version = "3.0.0", default-features = false, path = "../system" }
+sp-keyring = { version = "4.0.0-dev", optional = true, path = "../../primitives/keyring" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../primitives/std" }
+sp-io = { version = "4.0.0-dev", default-features = false, path = "../../primitives/io" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../primitives/runtime" }
+sp-core = { version = "4.0.0-dev", default-features = false, path = "../../primitives/core" }
+frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
+frame-system = { version = "4.0.0-dev", default-features = false, path = "../system" }
 
-frame-benchmarking = { version = "3.1.0", default-features = false, path = "../benchmarking", optional = true }
+frame-benchmarking = { version = "4.0.0-dev", default-features = false, path = "../benchmarking", optional = true }
 
 [dev-dependencies]
-pallet-balances = { version = "3.0.0", path = "../balances" }
+pallet-balances = { version = "4.0.0-dev", path = "../balances" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/lottery/Cargo.toml b/substrate/frame/lottery/Cargo.toml
index 73de239a4d8018f86a9e6550a9c7eb4ffaf1eaf0..a0368c2e654cef1addfb6c4cd0ce7b1af352a028 100644
--- a/substrate/frame/lottery/Cargo.toml
+++ b/substrate/frame/lottery/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-lottery"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,18 +14,18 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] }
-sp-std = { version = "3.0.0", default-features = false, path = "../../primitives/std" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../primitives/runtime" }
-frame-support = { version = "3.0.0", default-features = false, path = "../support" }
-frame-system = { version = "3.0.0", default-features = false, path = "../system" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../primitives/std" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../primitives/runtime" }
+frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
+frame-system = { version = "4.0.0-dev", default-features = false, path = "../system" }
 
-frame-benchmarking = { version = "3.1.0", default-features = false, path = "../benchmarking", optional = true }
+frame-benchmarking = { version = "4.0.0-dev", default-features = false, path = "../benchmarking", optional = true }
 
 [dev-dependencies]
 frame-support-test = { version = "3.0.0", path = "../support/test" }
-pallet-balances = { version = "3.0.0", path = "../balances" }
-sp-core = { version = "3.0.0", path = "../../primitives/core" }
-sp-io = { version = "3.0.0", path = "../../primitives/io" }
+pallet-balances = { version = "4.0.0-dev", path = "../balances" }
+sp-core = { version = "4.0.0-dev", path = "../../primitives/core" }
+sp-io = { version = "4.0.0-dev", path = "../../primitives/io" }
 serde = { version = "1.0.101" }
 
 [features]
diff --git a/substrate/frame/membership/Cargo.toml b/substrate/frame/membership/Cargo.toml
index 37f9552598cc21647ac9be5a0437c30c5a147d40..3200d986febee585cf5fac932156d941535b2306 100644
--- a/substrate/frame/membership/Cargo.toml
+++ b/substrate/frame/membership/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-membership"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -15,16 +15,16 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false }
 log = { version = "0.4.0", default-features = false }
-sp-std = { version = "3.0.0", default-features = false, path = "../../primitives/std" }
-sp-io = { version = "3.0.0", default-features = false, path = "../../primitives/io" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../primitives/runtime" }
-frame-support = { version = "3.0.0", default-features = false, path = "../support" }
-frame-system = { version = "3.0.0", default-features = false, path = "../system" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../primitives/std" }
+sp-io = { version = "4.0.0-dev", default-features = false, path = "../../primitives/io" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../primitives/runtime" }
+frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
+frame-system = { version = "4.0.0-dev", default-features = false, path = "../system" }
 
-frame-benchmarking = { version = "3.1.0", optional = true, default-features = false, path = "../benchmarking" }
+frame-benchmarking = { version = "4.0.0-dev", optional = true, default-features = false, path = "../benchmarking" }
 
 [dev-dependencies]
-sp-core = { version = "3.0.0", path = "../../primitives/core" }
+sp-core = { version = "4.0.0-dev", path = "../../primitives/core" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/merkle-mountain-range/Cargo.toml b/substrate/frame/merkle-mountain-range/Cargo.toml
index 6ca451c4ab489b2f9545e627de5a07792de32aae..03b80a3339e78dd8388d78cbdf8e559e85213ae6 100644
--- a/substrate/frame/merkle-mountain-range/Cargo.toml
+++ b/substrate/frame/merkle-mountain-range/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-mmr"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -13,15 +13,15 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false }
-frame-benchmarking = { version = "3.1.0", default-features = false, path = "../benchmarking", optional = true }
-frame-support = { version = "3.0.0", default-features = false, path = "../support" }
-frame-system = { version = "3.0.0", default-features = false, path = "../system" }
+frame-benchmarking = { version = "4.0.0-dev", default-features = false, path = "../benchmarking", optional = true }
+frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
+frame-system = { version = "4.0.0-dev", default-features = false, path = "../system" }
 mmr-lib = { package = "ckb-merkle-mountain-range", default-features = false, version = "0.3.1" }
-pallet-mmr-primitives = { version = "3.0.0", default-features = false, path = "./primitives" }
-sp-core = { version = "3.0.0", default-features = false, path = "../../primitives/core" }
-sp-io = { version = "3.0.0", default-features = false, path = "../../primitives/io" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../primitives/runtime" }
-sp-std = { version = "3.0.0", default-features = false, path = "../../primitives/std" }
+pallet-mmr-primitives = { version = "4.0.0-dev", default-features = false, path = "./primitives" }
+sp-core = { version = "4.0.0-dev", default-features = false, path = "../../primitives/core" }
+sp-io = { version = "4.0.0-dev", default-features = false, path = "../../primitives/io" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../primitives/runtime" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../primitives/std" }
 
 [dev-dependencies]
 env_logger = "0.8"
diff --git a/substrate/frame/merkle-mountain-range/primitives/Cargo.toml b/substrate/frame/merkle-mountain-range/primitives/Cargo.toml
index 62a6f4ff1cde830a08c723dac4b7d7e8562c0c92..94b56a00640c2f347593d171fe7072bd518927df 100644
--- a/substrate/frame/merkle-mountain-range/primitives/Cargo.toml
+++ b/substrate/frame/merkle-mountain-range/primitives/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-mmr-primitives"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -13,13 +13,13 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false }
-frame-support = { version = "3.0.0", default-features = false, path = "../../support" }
-frame-system = { version = "3.0.0", default-features = false, path = "../../system" }
+frame-support = { version = "4.0.0-dev", default-features = false, path = "../../support" }
+frame-system = { version = "4.0.0-dev", default-features = false, path = "../../system" }
 serde = { version = "1.0.101", optional = true, features = ["derive"] }
-sp-api = { version = "3.0.0", default-features = false, path = "../../../primitives/api" }
-sp-core = { version = "3.0.0", default-features = false, path = "../../../primitives/core" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../../primitives/runtime" }
-sp-std = { version = "3.0.0", default-features = false, path = "../../../primitives/std" }
+sp-api = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/api" }
+sp-core = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/core" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/runtime" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/std" }
 log = { version = "0.4.14", default-features = false }
 
 [dev-dependencies]
diff --git a/substrate/frame/merkle-mountain-range/rpc/Cargo.toml b/substrate/frame/merkle-mountain-range/rpc/Cargo.toml
index 4730dbc7ea42e6a8ac022a68159535924ac15c64..38c9bbe8aa13100a4fd59cef6e660bad050f94f9 100644
--- a/substrate/frame/merkle-mountain-range/rpc/Cargo.toml
+++ b/substrate/frame/merkle-mountain-range/rpc/Cargo.toml
@@ -17,13 +17,13 @@ codec = { package = "parity-scale-codec", version = "2.0.0" }
 jsonrpc-core = "15.1.0"
 jsonrpc-core-client = "15.1.0"
 jsonrpc-derive = "15.1.0"
-pallet-mmr-primitives = { version = "3.0.0", path = "../primitives" }
+pallet-mmr-primitives = { version = "4.0.0-dev", path = "../primitives" }
 serde = { version = "1.0.101", features = ["derive"] }
-sp-api = { version = "3.0.0", path = "../../../primitives/api" }
-sp-blockchain = { version = "3.0.0", path = "../../../primitives/blockchain" }
-sp-core = { version = "3.0.0", path = "../../../primitives/core" }
-sp-rpc = { version = "3.0.0", path = "../../../primitives/rpc" }
-sp-runtime = { version = "3.0.0", path = "../../../primitives/runtime" }
+sp-api = { version = "4.0.0-dev", path = "../../../primitives/api" }
+sp-blockchain = { version = "4.0.0-dev", path = "../../../primitives/blockchain" }
+sp-core = { version = "4.0.0-dev", path = "../../../primitives/core" }
+sp-rpc = { version = "4.0.0-dev", path = "../../../primitives/rpc" }
+sp-runtime = { version = "4.0.0-dev", path = "../../../primitives/runtime" }
 
 [dev-dependencies]
 serde_json = "1.0.41"
diff --git a/substrate/frame/metadata/Cargo.toml b/substrate/frame/metadata/Cargo.toml
index cede8a836123d3150084cffa56b19e0d39dc8827..57ba40efea99ff9bcb987959f3ddf21240a2f3cc 100644
--- a/substrate/frame/metadata/Cargo.toml
+++ b/substrate/frame/metadata/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "frame-metadata"
-version = "13.0.0"
+version = "14.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -15,8 +15,8 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] }
 serde = { version = "1.0.101", optional = true, features = ["derive"] }
-sp-std = { version = "3.0.0", default-features = false, path = "../../primitives/std" }
-sp-core = { version = "3.0.0", default-features = false, path = "../../primitives/core" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../primitives/std" }
+sp-core = { version = "4.0.0-dev", default-features = false, path = "../../primitives/core" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/multisig/Cargo.toml b/substrate/frame/multisig/Cargo.toml
index 7657f64c819fbf3872106d78df6b4084e69991ea..f53df246096878952266342e320ceb0d8f571505 100644
--- a/substrate/frame/multisig/Cargo.toml
+++ b/substrate/frame/multisig/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-multisig"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,18 +14,18 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false }
-frame-support = { version = "3.0.0", default-features = false, path = "../support" }
-frame-system = { version = "3.0.0", default-features = false, path = "../system" }
-sp-core = { version = "3.0.0", default-features = false, path = "../../primitives/core" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../primitives/runtime" }
-sp-std = { version = "3.0.0", default-features = false, path = "../../primitives/std" }
-sp-io = { version = "3.0.0", default-features = false, path = "../../primitives/io" }
+frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
+frame-system = { version = "4.0.0-dev", default-features = false, path = "../system" }
+sp-core = { version = "4.0.0-dev", default-features = false, path = "../../primitives/core" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../primitives/runtime" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../primitives/std" }
+sp-io = { version = "4.0.0-dev", default-features = false, path = "../../primitives/io" }
 
-frame-benchmarking = { version = "3.1.0", default-features = false, path = "../benchmarking", optional = true }
+frame-benchmarking = { version = "4.0.0-dev", default-features = false, path = "../benchmarking", optional = true }
 
 [dev-dependencies]
-sp-core = { version = "3.0.0", path = "../../primitives/core" }
-pallet-balances = { version = "3.0.0", path = "../balances" }
+sp-core = { version = "4.0.0-dev", path = "../../primitives/core" }
+pallet-balances = { version = "4.0.0-dev", path = "../balances" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/nicks/Cargo.toml b/substrate/frame/nicks/Cargo.toml
index 12db6f905f2ec2190aaeb397ad93f9bd8fd18262..02e64491650cd093b0b22727700127c0caf4615f 100644
--- a/substrate/frame/nicks/Cargo.toml
+++ b/substrate/frame/nicks/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-nicks"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,15 +14,15 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] }
-sp-std = { version = "3.0.0", default-features = false, path = "../../primitives/std" }
-sp-io = { version = "3.0.0", default-features = false, path = "../../primitives/io" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../primitives/runtime" }
-frame-support = { version = "3.0.0", default-features = false, path = "../support" }
-frame-system = { version = "3.0.0", default-features = false, path = "../system" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../primitives/std" }
+sp-io = { version = "4.0.0-dev", default-features = false, path = "../../primitives/io" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../primitives/runtime" }
+frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
+frame-system = { version = "4.0.0-dev", default-features = false, path = "../system" }
 
 [dev-dependencies]
-sp-core = { version = "3.0.0", path = "../../primitives/core" }
-pallet-balances = { version = "3.0.0", path = "../balances" }
+sp-core = { version = "4.0.0-dev", path = "../../primitives/core" }
+pallet-balances = { version = "4.0.0-dev", path = "../balances" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/node-authorization/Cargo.toml b/substrate/frame/node-authorization/Cargo.toml
index 6e657758e8e994d4dde17328f02e8bf76876f078..35b02747e40068a2ab52cf091ce40fad23c149c7 100644
--- a/substrate/frame/node-authorization/Cargo.toml
+++ b/substrate/frame/node-authorization/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-node-authorization"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -13,12 +13,12 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] }
-frame-support = { version = "3.0.0", default-features = false, path = "../support" }
-frame-system = { version = "3.0.0", default-features = false, path = "../system" }
-sp-core = { version = "3.0.0", default-features = false, path = "../../primitives/core" }
-sp-io = { version = "3.0.0", default-features = false, path = "../../primitives/io" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../primitives/runtime" }
-sp-std = { version = "3.0.0", default-features = false, path = "../../primitives/std" }
+frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
+frame-system = { version = "4.0.0-dev", default-features = false, path = "../system" }
+sp-core = { version = "4.0.0-dev", default-features = false, path = "../../primitives/core" }
+sp-io = { version = "4.0.0-dev", default-features = false, path = "../../primitives/io" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../primitives/runtime" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../primitives/std" }
 log = { version = "0.4.14", default-features = false }
 
 [features]
diff --git a/substrate/frame/offences/Cargo.toml b/substrate/frame/offences/Cargo.toml
index a34c5f6bc3a3de58e3aeab1477490889f6a742d3..6d8038605cb2703ea73236cf13af2280d0dd0cc8 100644
--- a/substrate/frame/offences/Cargo.toml
+++ b/substrate/frame/offences/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-offences"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -13,19 +13,19 @@ readme = "README.md"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-pallet-balances = { version = "3.0.0", default-features = false, path = "../balances" }
+pallet-balances = { version = "4.0.0-dev", default-features = false, path = "../balances" }
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] }
-sp-std = { version = "3.0.0", default-features = false, path = "../../primitives/std" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../primitives/std" }
 serde = { version = "1.0.101", optional = true }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../primitives/runtime" }
-sp-staking = { version = "3.0.0", default-features = false, path = "../../primitives/staking" }
-frame-support = { version = "3.0.0", default-features = false, path = "../support" }
-frame-system = { version = "3.0.0", default-features = false, path = "../system" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../primitives/runtime" }
+sp-staking = { version = "4.0.0-dev", default-features = false, path = "../../primitives/staking" }
+frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
+frame-system = { version = "4.0.0-dev", default-features = false, path = "../system" }
 log = { version = "0.4.14", default-features = false }
 
 [dev-dependencies]
-sp-io = { version = "3.0.0", path = "../../primitives/io" }
-sp-core = { version = "3.0.0", path = "../../primitives/core" }
+sp-io = { version = "4.0.0-dev", path = "../../primitives/io" }
+sp-core = { version = "4.0.0-dev", path = "../../primitives/core" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/offences/benchmarking/Cargo.toml b/substrate/frame/offences/benchmarking/Cargo.toml
index acfb5b1b0dc89f8540a65efddde4e44e2c1de4fe..89849d86d74992c0dd5c3e9376ae6e0c049fa768 100644
--- a/substrate/frame/offences/benchmarking/Cargo.toml
+++ b/substrate/frame/offences/benchmarking/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-offences-benchmarking"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,27 +14,27 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false }
-frame-benchmarking = { version = "3.1.0", default-features = false, path = "../../benchmarking" }
-frame-support = { version = "3.0.0", default-features = false, path = "../../support" }
-frame-system = { version = "3.0.0", default-features = false, path = "../../system" }
-pallet-babe = { version = "3.0.0", default-features = false, path = "../../babe" }
-pallet-balances = { version = "3.0.0", default-features = false, path = "../../balances" }
-pallet-grandpa = { version = "3.1.0", default-features = false, path = "../../grandpa" }
-pallet-im-online = { version = "3.0.0", default-features = false, path = "../../im-online" }
-pallet-offences = { version = "3.0.0", default-features = false, features = ["runtime-benchmarks"], path = "../../offences" }
-pallet-session = { version = "3.0.0", default-features = false, path = "../../session" }
-pallet-staking = { version = "3.0.0", default-features = false, features = ["runtime-benchmarks"], path = "../../staking" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../../primitives/runtime" }
-sp-staking = { version = "3.0.0", default-features = false, path = "../../../primitives/staking" }
-sp-std = { version = "3.0.0", default-features = false, path = "../../../primitives/std" }
-frame-election-provider-support = { version = "3.0.0", default-features = false, path = "../../election-provider-support" }
+frame-benchmarking = { version = "4.0.0-dev", default-features = false, path = "../../benchmarking" }
+frame-support = { version = "4.0.0-dev", default-features = false, path = "../../support" }
+frame-system = { version = "4.0.0-dev", default-features = false, path = "../../system" }
+pallet-babe = { version = "4.0.0-dev", default-features = false, path = "../../babe" }
+pallet-balances = { version = "4.0.0-dev", default-features = false, path = "../../balances" }
+pallet-grandpa = { version = "4.0.0-dev", default-features = false, path = "../../grandpa" }
+pallet-im-online = { version = "4.0.0-dev", default-features = false, path = "../../im-online" }
+pallet-offences = { version = "4.0.0-dev", default-features = false, features = ["runtime-benchmarks"], path = "../../offences" }
+pallet-session = { version = "4.0.0-dev", default-features = false, path = "../../session" }
+pallet-staking = { version = "4.0.0-dev", default-features = false, features = ["runtime-benchmarks"], path = "../../staking" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/runtime" }
+sp-staking = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/staking" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/std" }
+frame-election-provider-support = { version = "4.0.0-dev", default-features = false, path = "../../election-provider-support" }
 
 [dev-dependencies]
-pallet-staking-reward-curve = { version = "3.0.0", path = "../../staking/reward-curve" }
-pallet-timestamp = { version = "3.0.0", path = "../../timestamp" }
+pallet-staking-reward-curve = { version = "4.0.0-dev", path = "../../staking/reward-curve" }
+pallet-timestamp = { version = "4.0.0-dev", path = "../../timestamp" }
 serde = { version = "1.0.101" }
-sp-core = { version = "3.0.0", path = "../../../primitives/core" }
-sp-io = { version = "3.0.0", path = "../../../primitives/io" }
+sp-core = { version = "4.0.0-dev", path = "../../../primitives/core" }
+sp-io = { version = "4.0.0-dev", path = "../../../primitives/io" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/proxy/Cargo.toml b/substrate/frame/proxy/Cargo.toml
index 821d26556c4ea53e6827f2fb2f77d6c07ec82d3f..ac33c3d14c8e5862a146f2a43d8f05da22d50700 100644
--- a/substrate/frame/proxy/Cargo.toml
+++ b/substrate/frame/proxy/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-proxy"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,19 +14,19 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "2.2.0", default-features = false, features = ["max-encoded-len"] }
-frame-support = { version = "3.0.0", default-features = false, path = "../support" }
-frame-system = { version = "3.0.0", default-features = false, path = "../system" }
-sp-core = { version = "3.0.0", default-features = false, path = "../../primitives/core" }
-sp-io = { version = "3.0.0", default-features = false, path = "../../primitives/io" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../primitives/runtime" }
-sp-std = { version = "3.0.0", default-features = false, path = "../../primitives/std" }
+frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
+frame-system = { version = "4.0.0-dev", default-features = false, path = "../system" }
+sp-core = { version = "4.0.0-dev", default-features = false, path = "../../primitives/core" }
+sp-io = { version = "4.0.0-dev", default-features = false, path = "../../primitives/io" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../primitives/runtime" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../primitives/std" }
 
-frame-benchmarking = { version = "3.1.0", default-features = false, path = "../benchmarking", optional = true }
+frame-benchmarking = { version = "4.0.0-dev", default-features = false, path = "../benchmarking", optional = true }
 
 [dev-dependencies]
-sp-core = { version = "3.0.0", path = "../../primitives/core" }
-pallet-balances = { version = "3.0.0", path = "../balances" }
-pallet-utility = { version = "3.0.0", path = "../utility" }
+sp-core = { version = "4.0.0-dev", path = "../../primitives/core" }
+pallet-balances = { version = "4.0.0-dev", path = "../balances" }
+pallet-utility = { version = "4.0.0-dev", path = "../utility" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/randomness-collective-flip/Cargo.toml b/substrate/frame/randomness-collective-flip/Cargo.toml
index 5ae350ffcac111a38dd2b957c23fd72c993fec8d..016d56142ecad73dd1e1fd5af008f11816b72abe 100644
--- a/substrate/frame/randomness-collective-flip/Cargo.toml
+++ b/substrate/frame/randomness-collective-flip/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-randomness-collective-flip"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -15,15 +15,15 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 safe-mix = { version = "1.0", default-features = false }
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../primitives/runtime" }
-sp-std = { version = "3.0.0", default-features = false, path = "../../primitives/std" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../primitives/runtime" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../primitives/std" }
 
-frame-support = { version = "3.0.0", default-features = false, path = "../support" }
-frame-system = { version = "3.0.0", default-features = false, path = "../system" }
+frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
+frame-system = { version = "4.0.0-dev", default-features = false, path = "../system" }
 
 [dev-dependencies]
-sp-core = { version = "3.0.0", path = "../../primitives/core" }
-sp-io = { version = "3.0.0", path = "../../primitives/io" }
+sp-core = { version = "4.0.0-dev", path = "../../primitives/core" }
+sp-io = { version = "4.0.0-dev", path = "../../primitives/io" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/recovery/Cargo.toml b/substrate/frame/recovery/Cargo.toml
index acfd2f613f8391b83f1ac085f65003e752aba799..e38f1fd35aaf01b072ac667d1c83ed59db1554f5 100644
--- a/substrate/frame/recovery/Cargo.toml
+++ b/substrate/frame/recovery/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-recovery"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -15,15 +15,15 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] }
 enumflags2 = { version = "0.6.2" }
-sp-std = { version = "3.0.0", default-features = false, path = "../../primitives/std" }
-sp-io = { version = "3.0.0", default-features = false, path = "../../primitives/io" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../primitives/runtime" }
-frame-support = { version = "3.0.0", default-features = false, path = "../support" }
-frame-system = { version = "3.0.0", default-features = false, path = "../system" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../primitives/std" }
+sp-io = { version = "4.0.0-dev", default-features = false, path = "../../primitives/io" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../primitives/runtime" }
+frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
+frame-system = { version = "4.0.0-dev", default-features = false, path = "../system" }
 
 [dev-dependencies]
-sp-core = { version = "3.0.0", path = "../../primitives/core" }
-pallet-balances = { version = "3.0.0", path = "../balances" }
+sp-core = { version = "4.0.0-dev", path = "../../primitives/core" }
+pallet-balances = { version = "4.0.0-dev", path = "../balances" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/scheduler/Cargo.toml b/substrate/frame/scheduler/Cargo.toml
index 8fb5d148662b31330482cfeaf46236dbf7e5943d..93f76b2369f2c670f5eb698b6911af2fa8665194 100644
--- a/substrate/frame/scheduler/Cargo.toml
+++ b/substrate/frame/scheduler/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-scheduler"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Unlicense"
@@ -11,18 +11,18 @@ readme = "README.md"
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false }
-frame-support = { version = "3.0.0", default-features = false, path = "../support" }
-frame-system = { version = "3.0.0", default-features = false, path = "../system" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../primitives/runtime" }
-sp-std = { version = "3.0.0", default-features = false, path = "../../primitives/std" }
-sp-io = { version = "3.0.0", default-features = false, path = "../../primitives/io" }
+frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
+frame-system = { version = "4.0.0-dev", default-features = false, path = "../system" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../primitives/runtime" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../primitives/std" }
+sp-io = { version = "4.0.0-dev", default-features = false, path = "../../primitives/io" }
 log = { version = "0.4.14", default-features = false }
 
-frame-benchmarking = { version = "3.1.0", default-features = false, path = "../benchmarking", optional = true }
+frame-benchmarking = { version = "4.0.0-dev", default-features = false, path = "../benchmarking", optional = true }
 
 [dev-dependencies]
-sp-core = { version = "3.0.0", path = "../../primitives/core", default-features = false }
-substrate-test-utils = { version = "3.0.0", path = "../../test-utils" }
+sp-core = { version = "4.0.0-dev", path = "../../primitives/core", default-features = false }
+substrate-test-utils = { version = "4.0.0-dev", path = "../../test-utils" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/scored-pool/Cargo.toml b/substrate/frame/scored-pool/Cargo.toml
index 0b2f4a8198833ca8426ffa22044459ca58361d5f..dc85e8d2ca811614be7981ed61f808c9199f43bf 100644
--- a/substrate/frame/scored-pool/Cargo.toml
+++ b/substrate/frame/scored-pool/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-scored-pool"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,15 +14,15 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] }
-sp-io = { version = "3.0.0", default-features = false, path = "../../primitives/io" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../primitives/runtime" }
-sp-std = { version = "3.0.0", default-features = false, path = "../../primitives/std" }
-frame-support = { version = "3.0.0", default-features = false, path = "../support" }
-frame-system = { version = "3.0.0", default-features = false, path = "../system" }
+sp-io = { version = "4.0.0-dev", default-features = false, path = "../../primitives/io" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../primitives/runtime" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../primitives/std" }
+frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
+frame-system = { version = "4.0.0-dev", default-features = false, path = "../system" }
 
 [dev-dependencies]
-pallet-balances = { version = "3.0.0", path = "../balances" }
-sp-core = { version = "3.0.0", path = "../../primitives/core" }
+pallet-balances = { version = "4.0.0-dev", path = "../balances" }
+sp-core = { version = "4.0.0-dev", path = "../../primitives/core" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/session/Cargo.toml b/substrate/frame/session/Cargo.toml
index efe7bc133fb4d17516e72f429c3a521f51d5b098..40f1e58c9283574b5f201019be125d9df2f4959f 100644
--- a/substrate/frame/session/Cargo.toml
+++ b/substrate/frame/session/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-session"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,21 +14,21 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] }
-sp-core = { version = "3.0.0", default-features = false, path = "../../primitives/core" }
-sp-std = { version = "3.0.0", default-features = false, path = "../../primitives/std" }
-sp-io = { version = "3.0.0", default-features = false, path = "../../primitives/io" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../primitives/runtime" }
-sp-session = { version = "3.0.0", default-features = false, path = "../../primitives/session" }
-sp-staking = { version = "3.0.0", default-features = false, path = "../../primitives/staking" }
-frame-support = { version = "3.0.0", default-features = false, path = "../support" }
-frame-system = { version = "3.0.0", default-features = false, path = "../system" }
-pallet-timestamp = { version = "3.0.0", default-features = false, path = "../timestamp" }
-sp-trie = { version = "3.0.0", optional = true, default-features = false, path = "../../primitives/trie" }
+sp-core = { version = "4.0.0-dev", default-features = false, path = "../../primitives/core" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../primitives/std" }
+sp-io = { version = "4.0.0-dev", default-features = false, path = "../../primitives/io" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../primitives/runtime" }
+sp-session = { version = "4.0.0-dev", default-features = false, path = "../../primitives/session" }
+sp-staking = { version = "4.0.0-dev", default-features = false, path = "../../primitives/staking" }
+frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
+frame-system = { version = "4.0.0-dev", default-features = false, path = "../system" }
+pallet-timestamp = { version = "4.0.0-dev", default-features = false, path = "../timestamp" }
+sp-trie = { version = "4.0.0-dev", optional = true, default-features = false, path = "../../primitives/trie" }
 log = { version = "0.4.0", default-features = false }
 impl-trait-for-tuples = "0.2.1"
 
 [dev-dependencies]
-sp-application-crypto = { version = "3.0.0", path = "../../primitives/application-crypto" }
+sp-application-crypto = { version = "4.0.0-dev", path = "../../primitives/application-crypto" }
 lazy_static = "1.4.0"
 
 [features]
diff --git a/substrate/frame/session/benchmarking/Cargo.toml b/substrate/frame/session/benchmarking/Cargo.toml
index 9754c16f37560fb9065c9e626b5384356b834e66..58f68899d18f741795552dae3d8964e3565ba906 100644
--- a/substrate/frame/session/benchmarking/Cargo.toml
+++ b/substrate/frame/session/benchmarking/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-session-benchmarking"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -13,25 +13,25 @@ readme = "README.md"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sp-session = { version = "3.0.0", default-features = false, path = "../../../primitives/session" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../../primitives/runtime" }
-sp-std = { version = "3.0.0", default-features = false, path = "../../../primitives/std" }
-frame-system = { version = "3.0.0", default-features = false, path = "../../system" }
-frame-benchmarking = { version = "3.1.0", default-features = false, path = "../../benchmarking" }
-frame-support = { version = "3.0.0", default-features = false, path = "../../support" }
-pallet-staking = { version = "3.0.0", default-features = false, features = ["runtime-benchmarks"], path = "../../staking" }
-pallet-session = { version = "3.0.0", default-features = false, path = "../../session" }
+sp-session = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/session" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/runtime" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/std" }
+frame-system = { version = "4.0.0-dev", default-features = false, path = "../../system" }
+frame-benchmarking = { version = "4.0.0-dev", default-features = false, path = "../../benchmarking" }
+frame-support = { version = "4.0.0-dev", default-features = false, path = "../../support" }
+pallet-staking = { version = "4.0.0-dev", default-features = false, features = ["runtime-benchmarks"], path = "../../staking" }
+pallet-session = { version = "4.0.0-dev", default-features = false, path = "../../session" }
 rand = { version = "0.7.2", default-features = false }
 
 [dev-dependencies]
 serde = { version = "1.0.101" }
 codec = { package = "parity-scale-codec", version = "2.0.0", features = ["derive"] }
-sp-core = { version = "3.0.0", path = "../../../primitives/core" }
-pallet-staking-reward-curve = { version = "3.0.0", path = "../../staking/reward-curve" }
-sp-io ={ version = "3.0.0", path = "../../../primitives/io" }
-pallet-timestamp = { version = "3.0.0", path = "../../timestamp" }
-pallet-balances = { version = "3.0.0", path = "../../balances" }
-frame-election-provider-support = { version = "3.0.0", path = "../../election-provider-support" }
+sp-core = { version = "4.0.0-dev", path = "../../../primitives/core" }
+pallet-staking-reward-curve = { version = "4.0.0-dev", path = "../../staking/reward-curve" }
+sp-io ={ version = "4.0.0-dev", path = "../../../primitives/io" }
+pallet-timestamp = { version = "4.0.0-dev", path = "../../timestamp" }
+pallet-balances = { version = "4.0.0-dev", path = "../../balances" }
+frame-election-provider-support = { version = "4.0.0-dev", path = "../../election-provider-support" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/society/Cargo.toml b/substrate/frame/society/Cargo.toml
index f9c2990061985a71aa0f75aff91ac9cc4d78daf0..b058733b3ce4070355b02c283c6fc061ed27ceac 100644
--- a/substrate/frame/society/Cargo.toml
+++ b/substrate/frame/society/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-society"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,17 +14,17 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../primitives/runtime" }
-sp-std = { version = "3.0.0", default-features = false, path = "../../primitives/std" }
-frame-support = { version = "3.0.0", default-features = false, path = "../support" }
-frame-system = { version = "3.0.0", default-features = false, path = "../system" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../primitives/runtime" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../primitives/std" }
+frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
+frame-system = { version = "4.0.0-dev", default-features = false, path = "../system" }
 rand_chacha = { version = "0.2", default-features = false }
 
 [dev-dependencies]
-sp-core = { version = "3.0.0", path = "../../primitives/core" }
-sp-io ={ version = "3.0.0", path = "../../primitives/io" }
+sp-core = { version = "4.0.0-dev", path = "../../primitives/core" }
+sp-io ={ version = "4.0.0-dev", path = "../../primitives/io" }
 frame-support-test = { version = "3.0.0", path = "../support/test" }
-pallet-balances = { version = "3.0.0", path = "../balances" }
+pallet-balances = { version = "4.0.0-dev", path = "../balances" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/staking/Cargo.toml b/substrate/frame/staking/Cargo.toml
index 908e361e667e3625afb38bd5cf0632ab6496b758..af5b5a976d66773eda0851e0247df9420d130bf0 100644
--- a/substrate/frame/staking/Cargo.toml
+++ b/substrate/frame/staking/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-staking"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -16,33 +16,33 @@ targets = ["x86_64-unknown-linux-gnu"]
 static_assertions = "1.1.0"
 serde = { version = "1.0.101", optional = true }
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] }
-sp-std = { version = "3.0.0", default-features = false, path = "../../primitives/std" }
-sp-io ={ version = "3.0.0", default-features = false, path = "../../primitives/io" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../primitives/runtime" }
-sp-staking = { version = "3.0.0", default-features = false, path = "../../primitives/staking" }
-frame-support = { version = "3.0.0", default-features = false, path = "../support" }
-frame-system = { version = "3.0.0", default-features = false, path = "../system" }
-pallet-session = { version = "3.0.0", default-features = false, features = ["historical"], path = "../session" }
-pallet-authorship = { version = "3.0.0", default-features = false, path = "../authorship" }
-sp-application-crypto = { version = "3.0.0", default-features = false, path = "../../primitives/application-crypto" }
-frame-election-provider-support = { version = "3.0.0", default-features = false, path = "../election-provider-support" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../primitives/std" }
+sp-io ={ version = "4.0.0-dev", default-features = false, path = "../../primitives/io" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../primitives/runtime" }
+sp-staking = { version = "4.0.0-dev", default-features = false, path = "../../primitives/staking" }
+frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
+frame-system = { version = "4.0.0-dev", default-features = false, path = "../system" }
+pallet-session = { version = "4.0.0-dev", default-features = false, features = ["historical"], path = "../session" }
+pallet-authorship = { version = "4.0.0-dev", default-features = false, path = "../authorship" }
+sp-application-crypto = { version = "4.0.0-dev", default-features = false, path = "../../primitives/application-crypto" }
+frame-election-provider-support = { version = "4.0.0-dev", default-features = false, path = "../election-provider-support" }
 log = { version = "0.4.14", default-features = false }
 paste = "1.0"
 
 # Optional imports for benchmarking
-frame-benchmarking = { version = "3.1.0", default-features = false, path = "../benchmarking", optional = true }
+frame-benchmarking = { version = "4.0.0-dev", default-features = false, path = "../benchmarking", optional = true }
 rand_chacha = { version = "0.2", default-features = false, optional = true }
 
 [dev-dependencies]
-sp-storage = { version = "3.0.0", path = "../../primitives/storage" }
-sp-tracing = { version = "3.0.0", path = "../../primitives/tracing" }
-sp-core = { version = "3.0.0", path = "../../primitives/core" }
-pallet-balances = { version = "3.0.0", path = "../balances" }
-pallet-timestamp = { version = "3.0.0", path = "../timestamp" }
-pallet-staking-reward-curve = { version = "3.0.0",  path = "../staking/reward-curve" }
-substrate-test-utils = { version = "3.0.0", path = "../../test-utils" }
-frame-benchmarking = { version = "3.1.0", path = "../benchmarking" }
-frame-election-provider-support = { version = "3.0.0", features = ["runtime-benchmarks"], path = "../election-provider-support" }
+sp-storage = { version = "4.0.0-dev", path = "../../primitives/storage" }
+sp-tracing = { version = "4.0.0-dev", path = "../../primitives/tracing" }
+sp-core = { version = "4.0.0-dev", path = "../../primitives/core" }
+pallet-balances = { version = "4.0.0-dev", path = "../balances" }
+pallet-timestamp = { version = "4.0.0-dev", path = "../timestamp" }
+pallet-staking-reward-curve = { version = "4.0.0-dev",  path = "../staking/reward-curve" }
+substrate-test-utils = { version = "4.0.0-dev", path = "../../test-utils" }
+frame-benchmarking = { version = "4.0.0-dev", path = "../benchmarking" }
+frame-election-provider-support = { version = "4.0.0-dev", features = ["runtime-benchmarks"], path = "../election-provider-support" }
 rand_chacha = { version = "0.2" }
 parking_lot = "0.11.1"
 hex = "0.4"
diff --git a/substrate/frame/staking/reward-curve/Cargo.toml b/substrate/frame/staking/reward-curve/Cargo.toml
index fe5e0f4a947a2fb95b3d765933670b6f5cf4b925..3b4b9db452ba304cf0378c9b9543a8c092e3146a 100644
--- a/substrate/frame/staking/reward-curve/Cargo.toml
+++ b/substrate/frame/staking/reward-curve/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-staking-reward-curve"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -21,4 +21,4 @@ proc-macro2 = "1.0.6"
 proc-macro-crate = "1.0.0"
 
 [dev-dependencies]
-sp-runtime = { version = "3.0.0", path = "../../../primitives/runtime" }
+sp-runtime = { version = "4.0.0-dev", path = "../../../primitives/runtime" }
diff --git a/substrate/frame/staking/reward-fn/Cargo.toml b/substrate/frame/staking/reward-fn/Cargo.toml
index 15b17a5e716c31248a845be51272863f71ae67f3..076e05bf2a61e944c67c31ab6dcbb2fcf76b40c0 100644
--- a/substrate/frame/staking/reward-fn/Cargo.toml
+++ b/substrate/frame/staking/reward-fn/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-staking-reward-fn"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,7 +14,7 @@ targets = ["x86_64-unknown-linux-gnu"]
 [lib]
 
 [dependencies]
-sp-arithmetic = { version = "3.0.0", default-features = false, path = "../../../primitives/arithmetic" }
+sp-arithmetic = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/arithmetic" }
 log = { version = "0.4.14", default-features = false }
 
 [features]
diff --git a/substrate/frame/sudo/Cargo.toml b/substrate/frame/sudo/Cargo.toml
index a73dfaeb1d98111b65f78d6890a4ce40d47feb90..f19afd2d61a0b1aba1b1c5fd1b968fb3e65d3f50 100644
--- a/substrate/frame/sudo/Cargo.toml
+++ b/substrate/frame/sudo/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-sudo"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,14 +14,14 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] }
-sp-std = { version = "3.0.0", default-features = false, path = "../../primitives/std" }
-sp-io = { version = "3.0.0", default-features = false, path = "../../primitives/io" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../primitives/runtime" }
-frame-support = { version = "3.0.0", default-features = false, path = "../support" }
-frame-system = { version = "3.0.0", default-features = false, path = "../system" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../primitives/std" }
+sp-io = { version = "4.0.0-dev", default-features = false, path = "../../primitives/io" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../primitives/runtime" }
+frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
+frame-system = { version = "4.0.0-dev", default-features = false, path = "../system" }
 
 [dev-dependencies]
-sp-core = { version = "3.0.0", path = "../../primitives/core" }
+sp-core = { version = "4.0.0-dev", path = "../../primitives/core" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/support/Cargo.toml b/substrate/frame/support/Cargo.toml
index d87f1b1ef307a00cf1a888b9106c7d093115fe38..72fd4f9cd6b54dec785716fd5a62872192b6c3dc 100644
--- a/substrate/frame/support/Cargo.toml
+++ b/substrate/frame/support/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "frame-support"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -15,19 +15,19 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 serde = { version = "1.0.101", optional = true, features = ["derive"] }
 codec = { package = "parity-scale-codec", version = "2.2.0", default-features = false, features = ["derive", "max-encoded-len"] }
-frame-metadata = { version = "13.0.0", default-features = false, path = "../metadata" }
-sp-std = { version = "3.0.0", default-features = false, path = "../../primitives/std" }
-sp-io = { version = "3.0.0", default-features = false, path = "../../primitives/io" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../primitives/runtime" }
-sp-tracing = { version = "3.0.0", default-features = false, path = "../../primitives/tracing" }
-sp-core = { version = "3.0.0", default-features = false, path = "../../primitives/core" }
-sp-arithmetic = { version = "3.0.0", default-features = false, path = "../../primitives/arithmetic" }
-sp-inherents = { version = "3.0.0", default-features = false, path = "../../primitives/inherents" }
-sp-staking = { version = "3.0.0", default-features = false, path = "../../primitives/staking" }
-frame-support-procedural = { version = "3.0.0", default-features = false, path = "./procedural" }
+frame-metadata = { version = "14.0.0-dev", default-features = false, path = "../metadata" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../primitives/std" }
+sp-io = { version = "4.0.0-dev", default-features = false, path = "../../primitives/io" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../primitives/runtime" }
+sp-tracing = { version = "4.0.0-dev", default-features = false, path = "../../primitives/tracing" }
+sp-core = { version = "4.0.0-dev", default-features = false, path = "../../primitives/core" }
+sp-arithmetic = { version = "4.0.0-dev", default-features = false, path = "../../primitives/arithmetic" }
+sp-inherents = { version = "4.0.0-dev", default-features = false, path = "../../primitives/inherents" }
+sp-staking = { version = "4.0.0-dev", default-features = false, path = "../../primitives/staking" }
+frame-support-procedural = { version = "4.0.0-dev", default-features = false, path = "./procedural" }
 paste = "1.0"
 once_cell = { version = "1", default-features = false, optional = true }
-sp-state-machine = { version = "0.9.0", optional = true, path = "../../primitives/state-machine" }
+sp-state-machine = { version = "0.10.0-dev", optional = true, path = "../../primitives/state-machine" }
 bitflags = "1.2"
 impl-trait-for-tuples = "0.2.1"
 smallvec = "1.4.1"
@@ -35,7 +35,7 @@ log = { version = "0.4.14", default-features = false }
 
 [dev-dependencies]
 pretty_assertions = "0.6.1"
-frame-system = { version = "3.0.0", path = "../system" }
+frame-system = { version = "4.0.0-dev", path = "../system" }
 parity-util-mem = { version = "0.10.0", default-features = false, features = ["primitive-types"] }
 
 [features]
diff --git a/substrate/frame/support/procedural/Cargo.toml b/substrate/frame/support/procedural/Cargo.toml
index 4a00a24e3849d796d059a7d4b0ef2b7ed2eba32c..ba71a7d12c62f547898e6a8b14a13c2e50f5fed4 100644
--- a/substrate/frame/support/procedural/Cargo.toml
+++ b/substrate/frame/support/procedural/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "frame-support-procedural"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -15,7 +15,7 @@ targets = ["x86_64-unknown-linux-gnu"]
 proc-macro = true
 
 [dependencies]
-frame-support-procedural-tools = { version = "3.0.0", path = "./tools" }
+frame-support-procedural-tools = { version = "4.0.0-dev", path = "./tools" }
 proc-macro2 = "1.0.6"
 quote = "1.0.3"
 Inflector = "0.11.4"
diff --git a/substrate/frame/support/procedural/tools/Cargo.toml b/substrate/frame/support/procedural/tools/Cargo.toml
index 316aae0a17a42de0bae781d309727779fdcfd124..2ff49f96e4da1a04a876bbe9e3b8870d771509d3 100644
--- a/substrate/frame/support/procedural/tools/Cargo.toml
+++ b/substrate/frame/support/procedural/tools/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "frame-support-procedural-tools"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
diff --git a/substrate/frame/support/test/Cargo.toml b/substrate/frame/support/test/Cargo.toml
index ce5c8ea7de1fb16afb0253ffb4ffdddef54cc6f1..001c88ba48fbab976de21df8cd62a719c52c6678 100644
--- a/substrate/frame/support/test/Cargo.toml
+++ b/substrate/frame/support/test/Cargo.toml
@@ -14,17 +14,17 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 serde = { version = "1.0.101", default-features = false, features = ["derive"] }
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] }
-sp-io = { version = "3.0.0", path = "../../../primitives/io", default-features = false }
-sp-state-machine = { version = "0.9.0", optional = true, path = "../../../primitives/state-machine" }
-frame-support = { version = "3.0.0", default-features = false, path = "../" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../../primitives/runtime" }
-sp-core = { version = "3.0.0", default-features = false, path = "../../../primitives/core" }
-sp-std = { version = "3.0.0", default-features = false, path = "../../../primitives/std" }
+sp-io = { version = "4.0.0-dev", path = "../../../primitives/io", default-features = false }
+sp-state-machine = { version = "0.10.0-dev", optional = true, path = "../../../primitives/state-machine" }
+frame-support = { version = "4.0.0-dev", default-features = false, path = "../" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/runtime" }
+sp-core = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/core" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/std" }
 trybuild = "1.0.42"
 pretty_assertions = "0.6.1"
 rustversion = "1.0.0"
-frame-metadata = { version = "13.0.0", default-features = false, path = "../../metadata" }
-frame-system = { version = "3.0.0", default-features = false, path = "../../system" }
+frame-metadata = { version = "14.0.0-dev", default-features = false, path = "../../metadata" }
+frame-system = { version = "4.0.0-dev", default-features = false, path = "../../system" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/system/Cargo.toml b/substrate/frame/system/Cargo.toml
index 4306dbd6448150b5af7860eae2120850a820a062..61e35c552a3ed5c8998c71c42c9f6adf2fa0b4ba 100644
--- a/substrate/frame/system/Cargo.toml
+++ b/substrate/frame/system/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "frame-system"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -15,18 +15,18 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 serde = { version = "1.0.101", optional = true, features = ["derive"] }
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] }
-sp-core = { version = "3.0.0", default-features = false, path = "../../primitives/core" }
-sp-std = { version = "3.0.0", default-features = false, path = "../../primitives/std" }
-sp-io = { version = "3.0.0", path = "../../primitives/io", default-features = false }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../primitives/runtime" }
-sp-version = { version = "3.0.0", default-features = false, path = "../../primitives/version" }
-frame-support = { version = "3.0.0", default-features = false, path = "../support" }
+sp-core = { version = "4.0.0-dev", default-features = false, path = "../../primitives/core" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../primitives/std" }
+sp-io = { version = "4.0.0-dev", path = "../../primitives/io", default-features = false }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../primitives/runtime" }
+sp-version = { version = "4.0.0-dev", default-features = false, path = "../../primitives/version" }
+frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
 impl-trait-for-tuples = "0.2.1"
 log = { version = "0.4.14", default-features = false }
 
 [dev-dependencies]
 criterion = "0.3.3"
-sp-externalities = { version = "0.9.0", path = "../../primitives/externalities" }
+sp-externalities = { version = "0.10.0-dev", path = "../../primitives/externalities" }
 substrate-test-runtime-client = { version = "2.0.0", path = "../../test-utils/runtime/client" }
 
 [features]
diff --git a/substrate/frame/system/benchmarking/Cargo.toml b/substrate/frame/system/benchmarking/Cargo.toml
index 1a9317c69bf4395c31aa90e91f04a8e50c4e71ff..b6a5447199b1c4eda722aecd1c9eec1835aa7f25 100644
--- a/substrate/frame/system/benchmarking/Cargo.toml
+++ b/substrate/frame/system/benchmarking/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "frame-system-benchmarking"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,16 +14,16 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false }
-sp-std = { version = "3.0.0", default-features = false, path = "../../../primitives/std" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../../primitives/runtime" }
-frame-benchmarking = { version = "3.1.0", default-features = false, path = "../../benchmarking" }
-frame-system = { version = "3.0.0", default-features = false, path = "../../system" }
-frame-support = { version = "3.0.0", default-features = false, path = "../../support" }
-sp-core = { version = "3.0.0", default-features = false, path = "../../../primitives/core" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/std" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/runtime" }
+frame-benchmarking = { version = "4.0.0-dev", default-features = false, path = "../../benchmarking" }
+frame-system = { version = "4.0.0-dev", default-features = false, path = "../../system" }
+frame-support = { version = "4.0.0-dev", default-features = false, path = "../../support" }
+sp-core = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/core" }
 
 [dev-dependencies]
 serde = { version = "1.0.101" }
-sp-io ={ version = "3.0.0", path = "../../../primitives/io" }
+sp-io ={ version = "4.0.0-dev", path = "../../../primitives/io" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/system/rpc/runtime-api/Cargo.toml b/substrate/frame/system/rpc/runtime-api/Cargo.toml
index 56619d59ddcadc148d53b8c305eb3bb69b6f4de1..fce29612b4d8cd0a6cddd21bd13f0544726a34d1 100644
--- a/substrate/frame/system/rpc/runtime-api/Cargo.toml
+++ b/substrate/frame/system/rpc/runtime-api/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "frame-system-rpc-runtime-api"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -13,7 +13,7 @@ readme = "README.md"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sp-api = { version = "3.0.0", default-features = false, path = "../../../../primitives/api" }
+sp-api = { version = "4.0.0-dev", default-features = false, path = "../../../../primitives/api" }
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false }
 
 [features]
diff --git a/substrate/frame/timestamp/Cargo.toml b/substrate/frame/timestamp/Cargo.toml
index 7a57c5e88a6f6b8da8ed76d1791d732d5f9c9c47..7e8cd7dd751e35ea71f1ed74eb4f723c5cbf5a46 100644
--- a/substrate/frame/timestamp/Cargo.toml
+++ b/substrate/frame/timestamp/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-timestamp"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -16,20 +16,20 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "2.2.0", default-features = false, features = ["derive", "max-encoded-len"] }
-sp-std = { version = "3.0.0", default-features = false, path = "../../primitives/std" }
-sp-io = { version = "3.0.0", default-features = false, path = "../../primitives/io", optional = true }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../primitives/runtime" }
-sp-inherents = { version = "3.0.0", default-features = false, path = "../../primitives/inherents" }
-frame-benchmarking = { version = "3.1.0", default-features = false, path = "../benchmarking", optional = true }
-frame-support = { version = "3.0.0", default-features = false, path = "../support" }
-frame-system = { version = "3.0.0", default-features = false, path = "../system" }
-sp-timestamp = { version = "3.0.0", default-features = false, path = "../../primitives/timestamp" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../primitives/std" }
+sp-io = { version = "4.0.0-dev", default-features = false, path = "../../primitives/io", optional = true }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../primitives/runtime" }
+sp-inherents = { version = "4.0.0-dev", default-features = false, path = "../../primitives/inherents" }
+frame-benchmarking = { version = "4.0.0-dev", default-features = false, path = "../benchmarking", optional = true }
+frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
+frame-system = { version = "4.0.0-dev", default-features = false, path = "../system" }
+sp-timestamp = { version = "4.0.0-dev", default-features = false, path = "../../primitives/timestamp" }
 impl-trait-for-tuples = "0.2.1"
 log = { version = "0.4.14", default-features = false }
 
 [dev-dependencies]
-sp-io ={ version = "3.0.0", path = "../../primitives/io" }
-sp-core = { version = "3.0.0", path = "../../primitives/core" }
+sp-io ={ version = "4.0.0-dev", path = "../../primitives/io" }
+sp-core = { version = "4.0.0-dev", path = "../../primitives/core" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/tips/Cargo.toml b/substrate/frame/tips/Cargo.toml
index a16c9b91327ec5dc7c43364e67ca83d38ca78606..32deca37e74151f29d9c0589f1b9a2058f5679a3 100644
--- a/substrate/frame/tips/Cargo.toml
+++ b/substrate/frame/tips/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-tips"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -15,19 +15,19 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 serde = { version = "1.0.101", optional = true, features = ["derive"] }
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] }
-sp-std = { version = "3.0.0", default-features = false, path = "../../primitives/std" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../primitives/runtime" }
-frame-support = { version = "3.0.0", default-features = false, path = "../support" }
-frame-system = { version = "3.0.0", default-features = false, path = "../system" }
-pallet-treasury = { version = "3.0.0", default-features = false, path = "../treasury" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../primitives/std" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../primitives/runtime" }
+frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
+frame-system = { version = "4.0.0-dev", default-features = false, path = "../system" }
+pallet-treasury = { version = "4.0.0-dev", default-features = false, path = "../treasury" }
 
-frame-benchmarking = { version = "3.1.0", default-features = false, path = "../benchmarking", optional = true }
+frame-benchmarking = { version = "4.0.0-dev", default-features = false, path = "../benchmarking", optional = true }
 
 [dev-dependencies]
-sp-io ={ version = "3.0.0", path = "../../primitives/io" }
-sp-core = { version = "3.0.0", path = "../../primitives/core" }
-sp-storage = { version = "3.0.0", path = "../../primitives/storage" }
-pallet-balances = { version = "3.0.0", path = "../balances" }
+sp-io ={ version = "4.0.0-dev", path = "../../primitives/io" }
+sp-core = { version = "4.0.0-dev", path = "../../primitives/core" }
+sp-storage = { version = "4.0.0-dev", path = "../../primitives/storage" }
+pallet-balances = { version = "4.0.0-dev", path = "../balances" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/transaction-payment/Cargo.toml b/substrate/frame/transaction-payment/Cargo.toml
index c5c7c34a7271ff2ceaf0db3d45e3e00d04b7e1fd..6406b41a5195129bd032d981978408bc30a9c5a7 100644
--- a/substrate/frame/transaction-payment/Cargo.toml
+++ b/substrate/frame/transaction-payment/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-transaction-payment"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -17,18 +17,18 @@ codec = { package = "parity-scale-codec", version = "2.0.0", default-features =
 serde = { version = "1.0.101", optional = true }
 smallvec = "1.4.1"
 
-sp-core = { version = "3.0.0", path = "../../primitives/core", default-features = false }
-sp-io = { version = "3.0.0", path = "../../primitives/io", default-features = false }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../primitives/runtime" }
-sp-std = { version = "3.0.0", default-features = false, path = "../../primitives/std" }
+sp-core = { version = "4.0.0-dev", path = "../../primitives/core", default-features = false }
+sp-io = { version = "4.0.0-dev", path = "../../primitives/io", default-features = false }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../primitives/runtime" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../primitives/std" }
 
-frame-support = { version = "3.0.0", default-features = false, path = "../support" }
-frame-system = { version = "3.0.0", default-features = false, path = "../system" }
+frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
+frame-system = { version = "4.0.0-dev", default-features = false, path = "../system" }
 
 [dev-dependencies]
 serde_json = "1.0.41"
-sp-storage = { version = "3.0.0", path = "../../primitives/storage" }
-pallet-balances = { version = "3.0.0", path = "../balances" }
+sp-storage = { version = "4.0.0-dev", path = "../../primitives/storage" }
+pallet-balances = { version = "4.0.0-dev", path = "../balances" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/transaction-payment/rpc/Cargo.toml b/substrate/frame/transaction-payment/rpc/Cargo.toml
index b5e0fd91e1c5745b8398ef6743353bcaf9499a85..785a7c9c96abc4bf9f963eb0a652d3894b625894 100644
--- a/substrate/frame/transaction-payment/rpc/Cargo.toml
+++ b/substrate/frame/transaction-payment/rpc/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-transaction-payment-rpc"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -18,9 +18,9 @@ jsonrpc-core = "15.1.0"
 jsonrpc-core-client = "15.1.0"
 jsonrpc-derive = "15.1.0"
 
-sp-api = { version = "3.0.0", path = "../../../primitives/api" }
-sp-blockchain = { version = "3.0.0", path = "../../../primitives/blockchain" }
-sp-core = { version = "3.0.0", path = "../../../primitives/core" }
-sp-rpc = { version = "3.0.0", path = "../../../primitives/rpc" }
-sp-runtime = { version = "3.0.0", path = "../../../primitives/runtime" }
-pallet-transaction-payment-rpc-runtime-api = { version = "3.0.0", path = "./runtime-api" }
+sp-api = { version = "4.0.0-dev", path = "../../../primitives/api" }
+sp-blockchain = { version = "4.0.0-dev", path = "../../../primitives/blockchain" }
+sp-core = { version = "4.0.0-dev", path = "../../../primitives/core" }
+sp-rpc = { version = "4.0.0-dev", path = "../../../primitives/rpc" }
+sp-runtime = { version = "4.0.0-dev", path = "../../../primitives/runtime" }
+pallet-transaction-payment-rpc-runtime-api = { version = "4.0.0-dev", path = "./runtime-api" }
diff --git a/substrate/frame/transaction-payment/rpc/runtime-api/Cargo.toml b/substrate/frame/transaction-payment/rpc/runtime-api/Cargo.toml
index bb84364a9dfec3b8e83d113beff4de5ae33b92dd..2f78f2439c6047002d754c9f5a735214d0cefe73 100644
--- a/substrate/frame/transaction-payment/rpc/runtime-api/Cargo.toml
+++ b/substrate/frame/transaction-payment/rpc/runtime-api/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-transaction-payment-rpc-runtime-api"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,9 +14,9 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] }
-sp-api = { version = "3.0.0", default-features = false, path = "../../../../primitives/api" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../../../primitives/runtime" }
-pallet-transaction-payment = { version = "3.0.0", default-features = false, path = "../../../transaction-payment" }
+sp-api = { version = "4.0.0-dev", default-features = false, path = "../../../../primitives/api" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../../../primitives/runtime" }
+pallet-transaction-payment = { version = "4.0.0-dev", default-features = false, path = "../../../transaction-payment" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/transaction-storage/Cargo.toml b/substrate/frame/transaction-storage/Cargo.toml
index 8892e234d436fcc1df38619b9441381b5fe158b8..4504b9a07e2844abfdd146dbacaa105ec5702912 100644
--- a/substrate/frame/transaction-storage/Cargo.toml
+++ b/substrate/frame/transaction-storage/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-transaction-storage"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Unlicense"
@@ -16,20 +16,20 @@ targets = ["x86_64-unknown-linux-gnu"]
 serde = { version = "1.0.101", optional = true }
 hex-literal = { version = "0.3.1", optional = true }
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false }
-frame-support = { version = "3.0.0", default-features = false, path = "../support" }
-frame-system = { version = "3.0.0", default-features = false, path = "../system" }
-pallet-balances = { version = "3.0.0", default-features = false, path = "../balances" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../primitives/runtime" }
-sp-std = { version = "3.0.0", default-features = false, path = "../../primitives/std" }
-sp-io = { version = "3.0.0", default-features = false, path = "../../primitives/io" }
-sp-inherents = { version = "3.0.0", default-features = false, path = "../../primitives/inherents" }
-sp-transaction-storage-proof = { version = "3.0.0", default-features = false, path = "../../primitives/transaction-storage-proof" }
-frame-benchmarking = { version = "3.1.0", default-features = false, path = "../benchmarking", optional = true }
+frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
+frame-system = { version = "4.0.0-dev", default-features = false, path = "../system" }
+pallet-balances = { version = "4.0.0-dev", default-features = false, path = "../balances" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../primitives/runtime" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../primitives/std" }
+sp-io = { version = "4.0.0-dev", default-features = false, path = "../../primitives/io" }
+sp-inherents = { version = "4.0.0-dev", default-features = false, path = "../../primitives/inherents" }
+sp-transaction-storage-proof = { version = "4.0.0-dev", default-features = false, path = "../../primitives/transaction-storage-proof" }
+frame-benchmarking = { version = "4.0.0-dev", default-features = false, path = "../benchmarking", optional = true }
 
 [dev-dependencies]
 frame-support-test = { version = "3.0.0", path = "../support/test" }
-sp-transaction-storage-proof = { version = "3.0.0", default-features = true, path = "../../primitives/transaction-storage-proof" }
-sp-core = { version = "3.0.0", path = "../../primitives/core", default-features = false }
+sp-transaction-storage-proof = { version = "4.0.0-dev", default-features = true, path = "../../primitives/transaction-storage-proof" }
+sp-core = { version = "4.0.0-dev", path = "../../primitives/core", default-features = false }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/treasury/Cargo.toml b/substrate/frame/treasury/Cargo.toml
index da0ffcb725c9b370a51aea332e527eb2d95be4f9..339ce196071a79e5f8420e0f108db31894cffabd 100644
--- a/substrate/frame/treasury/Cargo.toml
+++ b/substrate/frame/treasury/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-treasury"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -15,19 +15,19 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 serde = { version = "1.0.101", optional = true, features = ["derive"] }
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] }
-sp-std = { version = "3.0.0", default-features = false, path = "../../primitives/std" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../primitives/runtime" }
-frame-support = { version = "3.0.0", default-features = false, path = "../support" }
-frame-system = { version = "3.0.0", default-features = false, path = "../system" }
-pallet-balances = { version = "3.0.0", default-features = false, path = "../balances" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../primitives/std" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../primitives/runtime" }
+frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
+frame-system = { version = "4.0.0-dev", default-features = false, path = "../system" }
+pallet-balances = { version = "4.0.0-dev", default-features = false, path = "../balances" }
 impl-trait-for-tuples = "0.2.1"
 
-frame-benchmarking = { version = "3.1.0", default-features = false, path = "../benchmarking", optional = true }
+frame-benchmarking = { version = "4.0.0-dev", default-features = false, path = "../benchmarking", optional = true }
 
 [dev-dependencies]
-sp-io ={ version = "3.0.0", path = "../../primitives/io" }
-sp-core = { version = "3.0.0", path = "../../primitives/core" }
-sp-storage = { version = "3.0.0", path = "../../primitives/storage" }
+sp-io ={ version = "4.0.0-dev", path = "../../primitives/io" }
+sp-core = { version = "4.0.0-dev", path = "../../primitives/core" }
+sp-storage = { version = "4.0.0-dev", path = "../../primitives/storage" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/try-runtime/Cargo.toml b/substrate/frame/try-runtime/Cargo.toml
index 9c1919d380b825d6237497c122d8e5f84b9909e6..b9eac961cf2265f82ffcb5c610ec8aa61e48b988 100644
--- a/substrate/frame/try-runtime/Cargo.toml
+++ b/substrate/frame/try-runtime/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "frame-try-runtime"
-version = "0.9.0"
+version = "0.10.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -15,11 +15,11 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false }
 
-sp-api = { version = "3.0.0", path = "../../primitives/api", default-features = false }
-sp-std = { version = "3.0.0", path = "../../primitives/std" , default-features = false }
-sp-runtime = { version = "3.0.0", path = "../../primitives/runtime" , default-features = false }
+sp-api = { version = "4.0.0-dev", path = "../../primitives/api", default-features = false }
+sp-std = { version = "4.0.0-dev", path = "../../primitives/std" , default-features = false }
+sp-runtime = { version = "4.0.0-dev", path = "../../primitives/runtime" , default-features = false }
 
-frame-support = { version = "3.0.0", path = "../support", default-features = false }
+frame-support = { version = "4.0.0-dev", path = "../support", default-features = false }
 
 [features]
 default = [ "std" ]
diff --git a/substrate/frame/uniques/Cargo.toml b/substrate/frame/uniques/Cargo.toml
index f007744dc64a2315ef041107e912bfd191c4a3f2..53069b5401df4dd7fb8a40e20efd0d774bdc1b23 100644
--- a/substrate/frame/uniques/Cargo.toml
+++ b/substrate/frame/uniques/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-uniques"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,18 +14,18 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false }
-sp-std = { version = "3.0.0", default-features = false, path = "../../primitives/std" }
-sp-core = { version = "3.0.0", default-features = false, path = "../../primitives/core" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../primitives/runtime" }
-frame-support = { version = "3.0.0", default-features = false, path = "../support" }
-frame-system = { version = "3.0.0", default-features = false, path = "../system" }
-frame-benchmarking = { version = "3.1.0", default-features = false, path = "../benchmarking", optional = true }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../primitives/std" }
+sp-core = { version = "4.0.0-dev", default-features = false, path = "../../primitives/core" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../primitives/runtime" }
+frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
+frame-system = { version = "4.0.0-dev", default-features = false, path = "../system" }
+frame-benchmarking = { version = "4.0.0-dev", default-features = false, path = "../benchmarking", optional = true }
 
 [dev-dependencies]
-sp-std = { version = "3.0.0", path = "../../primitives/std" }
-sp-core = { version = "3.0.0", path = "../../primitives/core" }
-sp-io = { version = "3.0.0", path = "../../primitives/io" }
-pallet-balances = { version = "3.0.0", path = "../balances" }
+sp-std = { version = "4.0.0-dev", path = "../../primitives/std" }
+sp-core = { version = "4.0.0-dev", path = "../../primitives/core" }
+sp-io = { version = "4.0.0-dev", path = "../../primitives/io" }
+pallet-balances = { version = "4.0.0-dev", path = "../balances" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/utility/Cargo.toml b/substrate/frame/utility/Cargo.toml
index 1eb92df4ecaa683ab3b15faa48c02573f5409cbd..8f9e18c610fb612c18fd243b0932f209afd75af2 100644
--- a/substrate/frame/utility/Cargo.toml
+++ b/substrate/frame/utility/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-utility"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,18 +14,18 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false }
-frame-support = { version = "3.0.0", default-features = false, path = "../support" }
-frame-system = { version = "3.0.0", default-features = false, path = "../system" }
-sp-core = { version = "3.0.0", default-features = false, path = "../../primitives/core" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../primitives/runtime" }
-sp-std = { version = "3.0.0", default-features = false, path = "../../primitives/std" }
-sp-io = { version = "3.0.0", default-features = false, path = "../../primitives/io" }
+frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
+frame-system = { version = "4.0.0-dev", default-features = false, path = "../system" }
+sp-core = { version = "4.0.0-dev", default-features = false, path = "../../primitives/core" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../primitives/runtime" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../primitives/std" }
+sp-io = { version = "4.0.0-dev", default-features = false, path = "../../primitives/io" }
 
-frame-benchmarking = { version = "3.1.0", default-features = false, path = "../benchmarking", optional = true }
+frame-benchmarking = { version = "4.0.0-dev", default-features = false, path = "../benchmarking", optional = true }
 
 [dev-dependencies]
-sp-core = { version = "3.0.0", path = "../../primitives/core" }
-pallet-balances = { version = "3.0.0", path = "../balances" }
+sp-core = { version = "4.0.0-dev", path = "../../primitives/core" }
+pallet-balances = { version = "4.0.0-dev", path = "../balances" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/vesting/Cargo.toml b/substrate/frame/vesting/Cargo.toml
index 25890fea038defccfdca2288bc9a91e103c973be..f035bcf7d0072e419ab343aed5cc072fbde4943a 100644
--- a/substrate/frame/vesting/Cargo.toml
+++ b/substrate/frame/vesting/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-vesting"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -15,17 +15,17 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] }
 enumflags2 = { version = "0.6.2" }
-sp-std = { version = "3.0.0", default-features = false, path = "../../primitives/std" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../primitives/runtime" }
-frame-support = { version = "3.0.0", default-features = false, path = "../support" }
-frame-system = { version = "3.0.0", default-features = false, path = "../system" }
-frame-benchmarking = { version = "3.1.0", default-features = false, path = "../benchmarking", optional = true }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../primitives/std" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../primitives/runtime" }
+frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
+frame-system = { version = "4.0.0-dev", default-features = false, path = "../system" }
+frame-benchmarking = { version = "4.0.0-dev", default-features = false, path = "../benchmarking", optional = true }
 
 [dev-dependencies]
-sp-io = { version = "3.0.0", path = "../../primitives/io" }
-sp-core = { version = "3.0.0", path = "../../primitives/core" }
-pallet-balances = { version = "3.0.0", path = "../balances" }
-sp-storage = { version = "3.0.0", path = "../../primitives/storage" }
+sp-io = { version = "4.0.0-dev", path = "../../primitives/io" }
+sp-core = { version = "4.0.0-dev", path = "../../primitives/core" }
+pallet-balances = { version = "4.0.0-dev", path = "../balances" }
+sp-storage = { version = "4.0.0-dev", path = "../../primitives/storage" }
 hex-literal = "0.3.1"
 
 [features]
diff --git a/substrate/primitives/api/Cargo.toml b/substrate/primitives/api/Cargo.toml
index c284d1f4791e8b26228f6fd31743a49662f17cae..07f7e100e168cfd1b598dcceebf3f084f2cadc1d 100644
--- a/substrate/primitives/api/Cargo.toml
+++ b/substrate/primitives/api/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-api"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,12 +14,12 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false }
-sp-api-proc-macro = { version = "3.0.0", path = "proc-macro" }
-sp-core = { version = "3.0.0", default-features = false, path = "../core" }
-sp-std = { version = "3.0.0", default-features = false, path = "../std" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../runtime" }
-sp-version = { version = "3.0.0", default-features = false, path = "../version" }
-sp-state-machine = { version = "0.9.0", optional = true, path = "../state-machine" }
+sp-api-proc-macro = { version = "4.0.0-dev", path = "proc-macro" }
+sp-core = { version = "4.0.0-dev", default-features = false, path = "../core" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../std" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../runtime" }
+sp-version = { version = "4.0.0-dev", default-features = false, path = "../version" }
+sp-state-machine = { version = "0.10.0-dev", optional = true, path = "../state-machine" }
 hash-db = { version = "0.15.2", optional = true }
 thiserror = { version = "1.0.21", optional = true }
 
diff --git a/substrate/primitives/api/proc-macro/Cargo.toml b/substrate/primitives/api/proc-macro/Cargo.toml
index d07285fe215a945a94ea41c189fd6ce16534f4a4..2c47554aef42fdb7bf2a0a5d0450d7ce0126357a 100644
--- a/substrate/primitives/api/proc-macro/Cargo.toml
+++ b/substrate/primitives/api/proc-macro/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-api-proc-macro"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
diff --git a/substrate/primitives/api/test/Cargo.toml b/substrate/primitives/api/test/Cargo.toml
index d0c45fb7545bc3aaad0ce1ba6bc668b2af10e9b6..5c2250a2ad4c5683ca85e669565d58deb0faf052 100644
--- a/substrate/primitives/api/test/Cargo.toml
+++ b/substrate/primitives/api/test/Cargo.toml
@@ -12,16 +12,16 @@ repository = "https://github.com/paritytech/substrate/"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sp-api = { version = "3.0.0", path = "../" }
+sp-api = { version = "4.0.0-dev", path = "../" }
 substrate-test-runtime-client = { version = "2.0.0", path = "../../../test-utils/runtime/client" }
-sp-version = { version = "3.0.0", path = "../../version" }
-sp-tracing = { version = "3.0.0", path = "../../tracing" }
-sp-runtime = { version = "3.0.0", path = "../../runtime" }
-sp-blockchain = { version = "3.0.0", path = "../../blockchain" }
-sp-consensus = { version = "0.9.0", path = "../../consensus/common" }
-sc-block-builder = { version = "0.9.0", path = "../../../client/block-builder" }
+sp-version = { version = "4.0.0-dev", path = "../../version" }
+sp-tracing = { version = "4.0.0-dev", path = "../../tracing" }
+sp-runtime = { version = "4.0.0-dev", path = "../../runtime" }
+sp-blockchain = { version = "4.0.0-dev", path = "../../blockchain" }
+sp-consensus = { version = "0.10.0-dev", path = "../../consensus/common" }
+sc-block-builder = { version = "0.10.0-dev", path = "../../../client/block-builder" }
 codec = { package = "parity-scale-codec", version = "2.0.0" }
-sp-state-machine = { version = "0.9.0", path = "../../state-machine" }
+sp-state-machine = { version = "0.10.0-dev", path = "../../state-machine" }
 trybuild = "1.0.42"
 rustversion = "1.0.0"
 
@@ -29,7 +29,7 @@ rustversion = "1.0.0"
 criterion = "0.3.0"
 futures = "0.3.9"
 log = "0.4.14"
-sp-core = { version = "3.0.0", path = "../../core" }
+sp-core = { version = "4.0.0-dev", path = "../../core" }
 substrate-test-runtime-client = { version = "2.0.0", path = "../../../test-utils/runtime/client" }
 
 [[bench]]
diff --git a/substrate/primitives/application-crypto/Cargo.toml b/substrate/primitives/application-crypto/Cargo.toml
index 050d2468aa00d0cbcc8f86a2ad5adf2a24721401..3eee10d8c6f97e978a9509defac42c2b5080ce3a 100644
--- a/substrate/primitives/application-crypto/Cargo.toml
+++ b/substrate/primitives/application-crypto/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-application-crypto"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 description = "Provides facilities for generating application specific crypto wrapper types."
@@ -15,11 +15,11 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 
 [dependencies]
-sp-core = { version = "3.0.0", default-features = false, path = "../core" }
+sp-core = { version = "4.0.0-dev", default-features = false, path = "../core" }
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] }
 serde = { version = "1.0.101", optional = true, features = ["derive"] }
-sp-std = { version = "3.0.0", default-features = false, path = "../std" }
-sp-io = { version = "3.0.0", default-features = false, path = "../io" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../std" }
+sp-io = { version = "4.0.0-dev", default-features = false, path = "../io" }
 
 [features]
 default = [ "std" ]
diff --git a/substrate/primitives/application-crypto/test/Cargo.toml b/substrate/primitives/application-crypto/test/Cargo.toml
index 92a2ea8f3b8c8cc9bb379357da4bb934fc5b07ec..468bfee3cc0105653556f5034660e31157230f20 100644
--- a/substrate/primitives/application-crypto/test/Cargo.toml
+++ b/substrate/primitives/application-crypto/test/Cargo.toml
@@ -13,9 +13,9 @@ repository = "https://github.com/paritytech/substrate/"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sp-core = { version = "3.0.0", default-features = false, path = "../../core" }
-sp-keystore = { version = "0.9.0", path = "../../keystore", default-features = false }
+sp-core = { version = "4.0.0-dev", default-features = false, path = "../../core" }
+sp-keystore = { version = "0.10.0-dev", path = "../../keystore", default-features = false }
 substrate-test-runtime-client = { version = "2.0.0", path = "../../../test-utils/runtime/client" }
-sp-runtime = { version = "3.0.0", path = "../../runtime" }
-sp-api = { version = "3.0.0", path = "../../api" }
-sp-application-crypto = { version = "3.0.0", path = "../" }
+sp-runtime = { version = "4.0.0-dev", path = "../../runtime" }
+sp-api = { version = "4.0.0-dev", path = "../../api" }
+sp-application-crypto = { version = "4.0.0-dev", path = "../" }
diff --git a/substrate/primitives/arithmetic/Cargo.toml b/substrate/primitives/arithmetic/Cargo.toml
index fa3c3b358f3a66397c4eeb80c585613b1885931e..77f298ad46f1f790d9a5a3e62b46d040730728e5 100644
--- a/substrate/primitives/arithmetic/Cargo.toml
+++ b/substrate/primitives/arithmetic/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-arithmetic"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -19,7 +19,7 @@ codec = { package = "parity-scale-codec", version = "2.0.0", default-features =
 integer-sqrt = "0.1.2"
 static_assertions = "1.1.0"
 num-traits = { version = "0.2.8", default-features = false }
-sp-std = { version = "3.0.0", default-features = false, path = "../std" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../std" }
 serde = { version = "1.0.101", optional = true, features = ["derive"] }
 sp-debug-derive = { version = "3.0.0", default-features = false, path = "../debug-derive" }
 
diff --git a/substrate/primitives/arithmetic/fuzzer/Cargo.toml b/substrate/primitives/arithmetic/fuzzer/Cargo.toml
index c79edb99fb4947446e11fd1649dd5bf8c5345136..14f75132afb8862b01cf0d2ae1dfaa51cf5c83db 100644
--- a/substrate/primitives/arithmetic/fuzzer/Cargo.toml
+++ b/substrate/primitives/arithmetic/fuzzer/Cargo.toml
@@ -14,7 +14,7 @@ publish = false
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sp-arithmetic = { version = "3.0.0", path = ".." }
+sp-arithmetic = { version = "4.0.0-dev", path = ".." }
 honggfuzz = "0.5.49"
 primitive-types = "0.10.0"
 num-bigint = "0.2"
diff --git a/substrate/primitives/authority-discovery/Cargo.toml b/substrate/primitives/authority-discovery/Cargo.toml
index a32b13ca728d89a63180d706da72be7a44e48f8e..c900324d85510a04b4cd452996cadd1704ab55a8 100644
--- a/substrate/primitives/authority-discovery/Cargo.toml
+++ b/substrate/primitives/authority-discovery/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-authority-discovery"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "Authority discovery primitives"
 edition = "2018"
@@ -13,11 +13,11 @@ readme = "README.md"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sp-application-crypto = { version = "3.0.0", default-features = false, path = "../application-crypto" }
+sp-application-crypto = { version = "4.0.0-dev", default-features = false, path = "../application-crypto" }
 codec = { package = "parity-scale-codec", default-features = false, version = "2.0.0" }
-sp-std = { version = "3.0.0", default-features = false, path = "../std" }
-sp-api = { version = "3.0.0", default-features = false, path = "../api" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../runtime" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../std" }
+sp-api = { version = "4.0.0-dev", default-features = false, path = "../api" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../runtime" }
 
 [features]
 default = ["std"]
diff --git a/substrate/primitives/authorship/Cargo.toml b/substrate/primitives/authorship/Cargo.toml
index a9428f8422f5670dcf0e8e4348315d256285746c..f6021bd7a2ab2146cfd50107631c513f955f63c1 100644
--- a/substrate/primitives/authorship/Cargo.toml
+++ b/substrate/primitives/authorship/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-authorship"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "Authorship primitives"
 edition = "2018"
@@ -13,9 +13,9 @@ readme = "README.md"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sp-inherents = { version = "3.0.0", default-features = false, path = "../inherents" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../runtime" }
-sp-std = { version = "3.0.0", default-features = false, path = "../std" }
+sp-inherents = { version = "4.0.0-dev", default-features = false, path = "../inherents" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../runtime" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../std" }
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] }
 async-trait = { version = "0.1.48", optional = true }
 
diff --git a/substrate/primitives/block-builder/Cargo.toml b/substrate/primitives/block-builder/Cargo.toml
index 6081e872786ef2b23cfb586a6dabf67d6d87992c..d7fa0f2ef85cf1aa3badc1bb6733dccf3076110b 100644
--- a/substrate/primitives/block-builder/Cargo.toml
+++ b/substrate/primitives/block-builder/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-block-builder"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -13,11 +13,11 @@ readme = "README.md"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sp-runtime = { version = "3.0.0", default-features = false, path = "../runtime" }
-sp-api = { version = "3.0.0", default-features = false, path = "../api" }
-sp-std = { version = "3.0.0", default-features = false, path = "../std" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../runtime" }
+sp-api = { version = "4.0.0-dev", default-features = false, path = "../api" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../std" }
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false }
-sp-inherents = { version = "3.0.0", default-features = false, path = "../inherents" }
+sp-inherents = { version = "4.0.0-dev", default-features = false, path = "../inherents" }
 
 [features]
 default = [ "std" ]
diff --git a/substrate/primitives/blockchain/Cargo.toml b/substrate/primitives/blockchain/Cargo.toml
index c37686c0df73c29509e647a024b32e7ed4a071ed..f3bbde497225a4ff26dae6c4068ac615053c3220 100644
--- a/substrate/primitives/blockchain/Cargo.toml
+++ b/substrate/primitives/blockchain/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-blockchain"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -20,8 +20,8 @@ parking_lot = "0.11.1"
 thiserror = "1.0.21"
 futures = "0.3.9"
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] }
-sp-consensus = { version = "0.9.0", path = "../consensus/common" }
-sp-runtime = { version = "3.0.0", path = "../runtime" }
-sp-state-machine = { version = "0.9.0", path = "../state-machine" }
-sp-database = { version = "3.0.0", path = "../database" }
-sp-api = { version = "3.0.0", path = "../api" }
+sp-consensus = { version = "0.10.0-dev", path = "../consensus/common" }
+sp-runtime = { version = "4.0.0-dev", path = "../runtime" }
+sp-state-machine = { version = "0.10.0-dev", path = "../state-machine" }
+sp-database = { version = "4.0.0-dev", path = "../database" }
+sp-api = { version = "4.0.0-dev", path = "../api" }
diff --git a/substrate/primitives/consensus/aura/Cargo.toml b/substrate/primitives/consensus/aura/Cargo.toml
index 2ae4259a21e50237e76ba1bd2b7933bc41da9a52..f989b2a1897d6476fbe53ecb09aba336c55416eb 100644
--- a/substrate/primitives/consensus/aura/Cargo.toml
+++ b/substrate/primitives/consensus/aura/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-consensus-aura"
-version = "0.9.0"
+version = "0.10.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "Primitives for Aura consensus"
 edition = "2018"
@@ -13,15 +13,15 @@ readme = "README.md"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sp-application-crypto = { version = "3.0.0", default-features = false, path = "../../application-crypto" }
+sp-application-crypto = { version = "4.0.0-dev", default-features = false, path = "../../application-crypto" }
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false }
-sp-std = { version = "3.0.0", default-features = false, path = "../../std" }
-sp-api = { version = "3.0.0", default-features = false, path = "../../api" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../runtime" }
-sp-inherents = { version = "3.0.0", default-features = false, path = "../../inherents" }
-sp-timestamp = { version = "3.0.0", default-features = false, path = "../../timestamp" }
-sp-consensus-slots = { version = "0.9.0", default-features = false, path = "../slots" }
-sp-consensus = { version = "0.9.0", path = "../common", optional = true }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../std" }
+sp-api = { version = "4.0.0-dev", default-features = false, path = "../../api" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../runtime" }
+sp-inherents = { version = "4.0.0-dev", default-features = false, path = "../../inherents" }
+sp-timestamp = { version = "4.0.0-dev", default-features = false, path = "../../timestamp" }
+sp-consensus-slots = { version = "0.10.0-dev", default-features = false, path = "../slots" }
+sp-consensus = { version = "0.10.0-dev", path = "../common", optional = true }
 async-trait = { version = "0.1.48", optional = true }
 
 [features]
diff --git a/substrate/primitives/consensus/babe/Cargo.toml b/substrate/primitives/consensus/babe/Cargo.toml
index 0fc09e11032b07610b4709fbe93b2ca4e0d2765a..aa5f29db0df7879537bf075876da91bf2d51e4db 100644
--- a/substrate/primitives/consensus/babe/Cargo.toml
+++ b/substrate/primitives/consensus/babe/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-consensus-babe"
-version = "0.9.0"
+version = "0.10.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "Primitives for BABE consensus"
 edition = "2018"
@@ -13,19 +13,19 @@ readme = "README.md"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sp-application-crypto = { version = "3.0.0", default-features = false, path = "../../application-crypto" }
+sp-application-crypto = { version = "4.0.0-dev", default-features = false, path = "../../application-crypto" }
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false }
 merlin = { version = "2.0", default-features = false }
-sp-std = { version = "3.0.0", default-features = false, path = "../../std" }
-sp-api = { version = "3.0.0", default-features = false, path = "../../api" }
-sp-consensus = { version = "0.9.0", optional = true, path = "../common" }
-sp-consensus-slots = { version = "0.9.0", default-features = false, path = "../slots" }
-sp-consensus-vrf = { version = "0.9.0", path = "../vrf", default-features = false }
-sp-core = { version = "3.0.0", default-features = false, path = "../../core" }
-sp-inherents = { version = "3.0.0", default-features = false, path = "../../inherents" }
-sp-keystore = { version = "0.9.0", default-features = false, path = "../../keystore", optional = true }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../runtime" }
-sp-timestamp = { version = "3.0.0", path = "../../timestamp", optional = true }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../std" }
+sp-api = { version = "4.0.0-dev", default-features = false, path = "../../api" }
+sp-consensus = { version = "0.10.0-dev", optional = true, path = "../common" }
+sp-consensus-slots = { version = "0.10.0-dev", default-features = false, path = "../slots" }
+sp-consensus-vrf = { version = "0.10.0-dev", path = "../vrf", default-features = false }
+sp-core = { version = "4.0.0-dev", default-features = false, path = "../../core" }
+sp-inherents = { version = "4.0.0-dev", default-features = false, path = "../../inherents" }
+sp-keystore = { version = "0.10.0-dev", default-features = false, path = "../../keystore", optional = true }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../runtime" }
+sp-timestamp = { version = "4.0.0-dev", path = "../../timestamp", optional = true }
 serde = { version = "1.0.123", features = ["derive"], optional = true }
 async-trait = { version = "0.1.48", optional = true }
 
diff --git a/substrate/primitives/consensus/common/Cargo.toml b/substrate/primitives/consensus/common/Cargo.toml
index 038a28ddab35151e1d1a1aaca87e48b536d20671..07cc36e2e31e4ac5471819da64d9d6dd50aa5104 100644
--- a/substrate/primitives/consensus/common/Cargo.toml
+++ b/substrate/primitives/consensus/common/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-consensus"
-version = "0.9.0"
+version = "0.10.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -18,17 +18,17 @@ targets = ["x86_64-unknown-linux-gnu"]
 thiserror = "1.0.21"
 libp2p = { version = "0.37.1", default-features = false }
 log = "0.4.8"
-sp-core = { path= "../../core", version = "3.0.0"}
-sp-inherents = { version = "3.0.0", path = "../../inherents" }
-sp-state-machine = { version = "0.9.0", path = "../../state-machine" }
+sp-core = { path= "../../core", version = "4.0.0-dev"}
+sp-inherents = { version = "4.0.0-dev", path = "../../inherents" }
+sp-state-machine = { version = "0.10.0-dev", path = "../../state-machine" }
 futures = { version = "0.3.1", features = ["thread-pool"] }
 futures-timer = "3.0.1"
-sp-std = { version = "3.0.0", path = "../../std" }
-sp-version = { version = "3.0.0", path = "../../version" }
-sp-runtime = { version = "3.0.0", path = "../../runtime" }
-sp-utils = { version = "3.0.0", path = "../../utils" }
-sp-trie = { version = "3.0.0", path = "../../trie" }
-sp-api = { version = "3.0.0", path = "../../api" }
+sp-std = { version = "4.0.0-dev", path = "../../std" }
+sp-version = { version = "4.0.0-dev", path = "../../version" }
+sp-runtime = { version = "4.0.0-dev", path = "../../runtime" }
+sp-utils = { version = "4.0.0-dev", path = "../../utils" }
+sp-trie = { version = "4.0.0-dev", path = "../../trie" }
+sp-api = { version = "4.0.0-dev", path = "../../api" }
 codec = { package = "parity-scale-codec", version = "2.0.0", features = ["derive"] }
 parking_lot = "0.11.1"
 serde = { version = "1.0", features = ["derive"] }
diff --git a/substrate/primitives/consensus/pow/Cargo.toml b/substrate/primitives/consensus/pow/Cargo.toml
index 850f0efe47ed37ee371c2c55bf6dc740575d85c9..f93eeca2fb24ec885835fbf921bc936190029172 100644
--- a/substrate/primitives/consensus/pow/Cargo.toml
+++ b/substrate/primitives/consensus/pow/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-consensus-pow"
-version = "0.9.0"
+version = "0.10.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "Primitives for Aura consensus"
 edition = "2018"
@@ -13,10 +13,10 @@ readme = "README.md"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sp-api = { version = "3.0.0", default-features = false, path = "../../api" }
-sp-std = { version = "3.0.0", default-features = false, path = "../../std" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../runtime" }
-sp-core = { version = "3.0.0", default-features = false, path = "../../core" }
+sp-api = { version = "4.0.0-dev", default-features = false, path = "../../api" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../std" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../runtime" }
+sp-core = { version = "4.0.0-dev", default-features = false, path = "../../core" }
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] }
 
 [features]
diff --git a/substrate/primitives/consensus/slots/Cargo.toml b/substrate/primitives/consensus/slots/Cargo.toml
index 46dbaca1a6ad4e28e86ac9f66eb2cc0a77bf0955..9619f627a0b7c67f405769d589d4cf4fbae76511 100644
--- a/substrate/primitives/consensus/slots/Cargo.toml
+++ b/substrate/primitives/consensus/slots/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-consensus-slots"
-version = "0.9.0"
+version = "0.10.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "Primitives for slots-based consensus"
 edition = "2018"
@@ -14,8 +14,8 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../runtime" }
-sp-arithmetic = { version = "3.0.0", default-features = false, path = "../../arithmetic" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../runtime" }
+sp-arithmetic = { version = "4.0.0-dev", default-features = false, path = "../../arithmetic" }
 
 [features]
 default = ["std"]
diff --git a/substrate/primitives/consensus/vrf/Cargo.toml b/substrate/primitives/consensus/vrf/Cargo.toml
index 15a9318cd44616c7ea037e1ad701e67d4442643e..124cbf423f06815fc725e651c37fe52f535b25c3 100644
--- a/substrate/primitives/consensus/vrf/Cargo.toml
+++ b/substrate/primitives/consensus/vrf/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-consensus-vrf"
-version = "0.9.0"
+version = "0.10.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "Primitives for VRF based consensus"
 edition = "2018"
@@ -15,9 +15,9 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 codec = { version = "2.0.0", package = "parity-scale-codec", default-features = false }
 schnorrkel = { version = "0.9.1", features = ["preaudit_deprecated", "u64_backend"], default-features = false }
-sp-std = { version = "3.0.0", path = "../../std", default-features = false }
-sp-core = { version = "3.0.0", path = "../../core", default-features = false }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../runtime" }
+sp-std = { version = "4.0.0-dev", path = "../../std", default-features = false }
+sp-core = { version = "4.0.0-dev", path = "../../core", default-features = false }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../runtime" }
 
 [features]
 default = ["std"]
diff --git a/substrate/primitives/core/Cargo.toml b/substrate/primitives/core/Cargo.toml
index 6746e8599e6c59c23ab928d2a74ef64760003f2b..e3b5613e06b65815bdeafe6f72c57ae622d4fa56 100644
--- a/substrate/primitives/core/Cargo.toml
+++ b/substrate/primitives/core/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-core"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -13,7 +13,7 @@ documentation = "https://docs.rs/sp-core"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sp-std = { version = "3.0.0", default-features = false, path = "../std" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../std" }
 codec = { package = "parity-scale-codec", version = "2.2.0", default-features = false, features = ["derive", "max-encoded-len"] }
 log = { version = "0.4.11", default-features = false }
 serde = { version = "1.0.101", optional = true, features = ["derive"] }
@@ -34,8 +34,8 @@ secrecy = { version = "0.7.0", default-features = false }
 lazy_static = { version = "1.4.0", default-features = false, optional = true }
 parking_lot = { version = "0.11.1", optional = true }
 sp-debug-derive = { version = "3.0.0", path = "../debug-derive" }
-sp-externalities = { version = "0.9.0", optional = true, path = "../externalities" }
-sp-storage = { version = "3.0.0", default-features = false, path = "../storage" }
+sp-externalities = { version = "0.10.0-dev", optional = true, path = "../externalities" }
+sp-storage = { version = "4.0.0-dev", default-features = false, path = "../storage" }
 parity-util-mem = { version = "0.10.0", default-features = false, features = ["primitive-types"] }
 futures = { version = "0.3.1", optional = true }
 dyn-clonable = { version = "0.9.0", optional = true }
@@ -52,7 +52,7 @@ twox-hash = { version = "1.5.0", default-features = false, optional = true }
 libsecp256k1 = { version = "0.3.2", default-features = false, features = ["hmac"], optional = true }
 merlin = { version = "2.0", default-features = false, optional = true }
 
-sp-runtime-interface = { version = "3.0.0", default-features = false, path = "../runtime-interface" }
+sp-runtime-interface = { version = "4.0.0-dev", default-features = false, path = "../runtime-interface" }
 
 [dev-dependencies]
 sp-serializer = { version = "3.0.0", path = "../serializer" }
diff --git a/substrate/primitives/database/Cargo.toml b/substrate/primitives/database/Cargo.toml
index f8693449af8cd0d9d32558934736b3e338ae455b..c99651d4ef04279f012dd5a027fc34da25d852d9 100644
--- a/substrate/primitives/database/Cargo.toml
+++ b/substrate/primitives/database/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-database"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
diff --git a/substrate/primitives/externalities/Cargo.toml b/substrate/primitives/externalities/Cargo.toml
index 8552f50ec71be967f77ba98c1657477cee19f20c..52a6300688cd947f894c6391d46cd25f446c1916 100644
--- a/substrate/primitives/externalities/Cargo.toml
+++ b/substrate/primitives/externalities/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-externalities"
-version = "0.9.0"
+version = "0.10.0-dev"
 license = "Apache-2.0"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
@@ -14,8 +14,8 @@ readme = "README.md"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sp-storage = { version = "3.0.0", path = "../storage", default-features = false }
-sp-std = { version = "3.0.0", path = "../std", default-features = false }
+sp-storage = { version = "4.0.0-dev", path = "../storage", default-features = false }
+sp-std = { version = "4.0.0-dev", path = "../std", default-features = false }
 environmental = { version = "1.1.3", default-features = false }
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false }
 
diff --git a/substrate/primitives/finality-grandpa/Cargo.toml b/substrate/primitives/finality-grandpa/Cargo.toml
index ec9e89105d58106b2333adaa4adf0e7027881c91..57a977f617485174ac9681fed4132635b9378e86 100644
--- a/substrate/primitives/finality-grandpa/Cargo.toml
+++ b/substrate/primitives/finality-grandpa/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-finality-grandpa"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -19,12 +19,12 @@ codec = { package = "parity-scale-codec", version = "2.0.0", default-features =
 grandpa = { package = "finality-grandpa", version = "0.14.1", default-features = false, features = ["derive-codec"] }
 log = { version = "0.4.8", optional = true }
 serde = { version = "1.0.101", optional = true, features = ["derive"] }
-sp-api = { version = "3.0.0", default-features = false, path = "../api" }
-sp-application-crypto = { version = "3.0.0", default-features = false, path = "../application-crypto" }
-sp-core = { version = "3.0.0", default-features = false, path = "../core" }
-sp-keystore = { version = "0.9.0", default-features = false, path = "../keystore", optional = true }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../runtime" }
-sp-std = { version = "3.0.0", default-features = false, path = "../std" }
+sp-api = { version = "4.0.0-dev", default-features = false, path = "../api" }
+sp-application-crypto = { version = "4.0.0-dev", default-features = false, path = "../application-crypto" }
+sp-core = { version = "4.0.0-dev", default-features = false, path = "../core" }
+sp-keystore = { version = "0.10.0-dev", default-features = false, path = "../keystore", optional = true }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../runtime" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../std" }
 
 [features]
 default = ["std"]
diff --git a/substrate/primitives/inherents/Cargo.toml b/substrate/primitives/inherents/Cargo.toml
index 54ce09306e19238d3870df2017758652d0fc95a3..353735f806c035891c04213159b17c75470c85e4 100644
--- a/substrate/primitives/inherents/Cargo.toml
+++ b/substrate/primitives/inherents/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-inherents"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -15,9 +15,9 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 
 [dependencies]
-sp-std = { version = "3.0.0", default-features = false, path = "../std" }
-sp-core = { version = "3.0.0", default-features = false, path = "../core" }
-sp-runtime = { version = "3.0.0", path = "../runtime", optional = true }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../std" }
+sp-core = { version = "4.0.0-dev", default-features = false, path = "../core" }
+sp-runtime = { version = "4.0.0-dev", path = "../runtime", optional = true }
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] }
 thiserror = { version = "1.0.21", optional = true }
 impl-trait-for-tuples = "0.2.0"
diff --git a/substrate/primitives/io/Cargo.toml b/substrate/primitives/io/Cargo.toml
index e63fcb909573a19d9fa55c23f87744ee48dd2b49..da9a8fc83200b613e2dad49395a6c06b24ee6120 100644
--- a/substrate/primitives/io/Cargo.toml
+++ b/substrate/primitives/io/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-io"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -17,17 +17,17 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false }
 hash-db = { version = "0.15.2", default-features = false }
-sp-core = { version = "3.0.0", default-features = false, path = "../core" }
-sp-keystore = { version = "0.9.0", default-features = false, optional = true, path = "../keystore" }
-sp-std = { version = "3.0.0", default-features = false, path = "../std" }
+sp-core = { version = "4.0.0-dev", default-features = false, path = "../core" }
+sp-keystore = { version = "0.10.0-dev", default-features = false, optional = true, path = "../keystore" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../std" }
 libsecp256k1 = { version = "0.3.4", optional = true }
-sp-state-machine = { version = "0.9.0", optional = true, path = "../state-machine" }
-sp-wasm-interface = { version = "3.0.0", path = "../wasm-interface", default-features = false }
-sp-runtime-interface = { version = "3.0.0", default-features = false, path = "../runtime-interface" }
-sp-maybe-compressed-blob = { version = "3.0.0", optional = true, path = "../maybe-compressed-blob" }
-sp-trie = { version = "3.0.0", optional = true, path = "../trie" }
-sp-externalities = { version = "0.9.0", optional = true, path = "../externalities" }
-sp-tracing = { version = "3.0.0", default-features = false, path = "../tracing" }
+sp-state-machine = { version = "0.10.0-dev", optional = true, path = "../state-machine" }
+sp-wasm-interface = { version = "4.0.0-dev", path = "../wasm-interface", default-features = false }
+sp-runtime-interface = { version = "4.0.0-dev", default-features = false, path = "../runtime-interface" }
+sp-maybe-compressed-blob = { version = "4.0.0-dev", optional = true, path = "../maybe-compressed-blob" }
+sp-trie = { version = "4.0.0-dev", optional = true, path = "../trie" }
+sp-externalities = { version = "0.10.0-dev", optional = true, path = "../externalities" }
+sp-tracing = { version = "4.0.0-dev", default-features = false, path = "../tracing" }
 log = { version = "0.4.8", optional = true }
 futures = { version = "0.3.1", features = ["thread-pool"], optional = true }
 parking_lot = { version = "0.11.1", optional = true }
diff --git a/substrate/primitives/keyring/Cargo.toml b/substrate/primitives/keyring/Cargo.toml
index ee71687f1ef7c89a9615f53fca1f33a94472301b..a14e98d3d8059c95a8c2e9690798134b9875266f 100644
--- a/substrate/primitives/keyring/Cargo.toml
+++ b/substrate/primitives/keyring/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-keyring"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -15,7 +15,7 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 
 [dependencies]
-sp-core = { version = "3.0.0", path = "../core" }
-sp-runtime = { version = "3.0.0", path = "../runtime" }
+sp-core = { version = "4.0.0-dev", path = "../core" }
+sp-runtime = { version = "4.0.0-dev", path = "../runtime" }
 lazy_static = "1.4.0"
 strum = { version = "0.20.0", features = ["derive"] }
diff --git a/substrate/primitives/keystore/Cargo.toml b/substrate/primitives/keystore/Cargo.toml
index d4ebfc1c74c60e018dba8c0cdf6f50e8fd125dc0..4c2408c831b3c8181b9a7fde7d6bed943c3f99e0 100644
--- a/substrate/primitives/keystore/Cargo.toml
+++ b/substrate/primitives/keystore/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-keystore"
-version = "0.9.0"
+version = "0.10.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -21,8 +21,8 @@ schnorrkel = { version = "0.9.1", features = ["preaudit_deprecated", "u64_backen
 merlin = { version = "2.0", default-features = false }
 parking_lot = { version = "0.11.1", default-features = false }
 serde = { version = "1.0", optional = true}
-sp-core = { version = "3.0.0", path = "../core" }
-sp-externalities = { version = "0.9.0", path = "../externalities", default-features = false }
+sp-core = { version = "4.0.0-dev", path = "../core" }
+sp-externalities = { version = "0.10.0-dev", path = "../externalities", default-features = false }
 
 [dev-dependencies]
 rand = "0.7.2"
diff --git a/substrate/primitives/maybe-compressed-blob/Cargo.toml b/substrate/primitives/maybe-compressed-blob/Cargo.toml
index e647606f1595a3a91f4372aa1c535831d7ae5350..720fc4281ca7b196f056e7073da6b8891ca635f9 100644
--- a/substrate/primitives/maybe-compressed-blob/Cargo.toml
+++ b/substrate/primitives/maybe-compressed-blob/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-maybe-compressed-blob"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
diff --git a/substrate/primitives/npos-elections/Cargo.toml b/substrate/primitives/npos-elections/Cargo.toml
index 5bca1e0bb859f5e4e320784e9f80cb2bd7c35dfd..02e898051d9bf594ba77e2eafe7130abf407e701 100644
--- a/substrate/primitives/npos-elections/Cargo.toml
+++ b/substrate/primitives/npos-elections/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-npos-elections"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -15,15 +15,15 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] }
 serde = { version = "1.0.101", optional = true, features = ["derive"] }
-sp-std = { version = "3.0.0", default-features = false, path = "../std" }
-sp-npos-elections-compact = { version = "3.0.0", path = "./compact" }
-sp-arithmetic = { version = "3.0.0", default-features = false, path = "../arithmetic" }
-sp-core = { version = "3.0.0", default-features = false, path = "../core" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../std" }
+sp-npos-elections-compact = { version = "4.0.0-dev", path = "./compact" }
+sp-arithmetic = { version = "4.0.0-dev", default-features = false, path = "../arithmetic" }
+sp-core = { version = "4.0.0-dev", default-features = false, path = "../core" }
 
 [dev-dependencies]
-substrate-test-utils = { version = "3.0.0", path = "../../test-utils" }
+substrate-test-utils = { version = "4.0.0-dev", path = "../../test-utils" }
 rand = "0.7.3"
-sp-runtime = { version = "3.0.0", path = "../runtime" }
+sp-runtime = { version = "4.0.0-dev", path = "../runtime" }
 
 [features]
 default = ["std"]
diff --git a/substrate/primitives/npos-elections/compact/Cargo.toml b/substrate/primitives/npos-elections/compact/Cargo.toml
index 78432d777a019439a2685753af179f5ef2bac14d..7188128ad29d617db610733835efca9596bbbd45 100644
--- a/substrate/primitives/npos-elections/compact/Cargo.toml
+++ b/substrate/primitives/npos-elections/compact/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-npos-elections-compact"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -22,6 +22,6 @@ proc-macro-crate = "1.0.0"
 
 [dev-dependencies]
 parity-scale-codec = "2.0.1"
-sp-arithmetic = { path = "../../arithmetic" }
-sp-npos-elections = { path = ".." }
+sp-arithmetic = { path = "../../arithmetic" , version = "4.0.0-dev"}
+sp-npos-elections = { path = ".." , version = "4.0.0-dev"}
 trybuild = "1.0.42"
diff --git a/substrate/primitives/npos-elections/fuzzer/Cargo.toml b/substrate/primitives/npos-elections/fuzzer/Cargo.toml
index 3154a7861d30615e85b8ee63a491876302def3ad..775f9a1c211bd0223520ab91f55f562bbc3c7e9c 100644
--- a/substrate/primitives/npos-elections/fuzzer/Cargo.toml
+++ b/substrate/primitives/npos-elections/fuzzer/Cargo.toml
@@ -17,10 +17,10 @@ targets = ["x86_64-unknown-linux-gnu"]
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] }
 honggfuzz = "0.5"
 rand = { version = "0.7.3", features = ["std", "small_rng"] }
-sp-arithmetic = { version = "3.0.0", path = "../../arithmetic" }
-sp-npos-elections = { version = "3.0.0", path = ".." }
-sp-runtime = { version = "3.0.0", path = "../../runtime" }
-sp-std = { version = "3.0.0", path = "../../std" }
+sp-arithmetic = { version = "4.0.0-dev", path = "../../arithmetic" }
+sp-npos-elections = { version = "4.0.0-dev", path = ".." }
+sp-runtime = { version = "4.0.0-dev", path = "../../runtime" }
+sp-std = { version = "4.0.0-dev", path = "../../std" }
 structopt = "0.3.21"
 
 [[bin]]
diff --git a/substrate/primitives/offchain/Cargo.toml b/substrate/primitives/offchain/Cargo.toml
index 1e3d0a34b26b12fcdcc0cf202b1c51a416ee06d2..500d3e8b867a18549cd73648d43ffcb7e7bceadd 100644
--- a/substrate/primitives/offchain/Cargo.toml
+++ b/substrate/primitives/offchain/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 description = "Substrate offchain workers primitives"
 name = "sp-offchain"
-version = "3.0.0"
+version = "4.0.0-dev"
 license = "Apache-2.0"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
@@ -13,12 +13,12 @@ readme = "README.md"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sp-core = { version = "3.0.0", default-features = false, path = "../core" }
-sp-api = { version = "3.0.0", default-features = false, path = "../api" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../runtime" }
+sp-core = { version = "4.0.0-dev", default-features = false, path = "../core" }
+sp-api = { version = "4.0.0-dev", default-features = false, path = "../api" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../runtime" }
 
 [dev-dependencies]
-sp-state-machine = { version = "0.9.0", default-features = false, path = "../state-machine" }
+sp-state-machine = { version = "0.10.0-dev", default-features = false, path = "../state-machine" }
 
 [features]
 default = ["std"]
diff --git a/substrate/primitives/rpc/Cargo.toml b/substrate/primitives/rpc/Cargo.toml
index 9a502c99d311dd6097331efe1af8d419e8d9454f..e740d0be88fa09c6c3f893342490e67445fe398a 100644
--- a/substrate/primitives/rpc/Cargo.toml
+++ b/substrate/primitives/rpc/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-rpc"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,7 +14,7 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 serde = { version = "1.0.101", features = ["derive"] }
-sp-core = { version = "3.0.0", path = "../core" }
+sp-core = { version = "4.0.0-dev", path = "../core" }
 tracing-core = "0.1.17"
 rustc-hash = "1.1.0"
 
diff --git a/substrate/primitives/runtime-interface/Cargo.toml b/substrate/primitives/runtime-interface/Cargo.toml
index c418ef44cef61f5035bbdbc010ab4d45d65f6ae9..9b51af705051939b3aa6f520b09bc5735772588d 100644
--- a/substrate/primitives/runtime-interface/Cargo.toml
+++ b/substrate/primitives/runtime-interface/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-runtime-interface"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,22 +14,22 @@ readme = "README.md"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sp-wasm-interface = { version = "3.0.0", path = "../wasm-interface", default-features = false }
-sp-std = { version = "3.0.0", default-features = false, path = "../std" }
-sp-tracing = { version = "3.0.0", default-features = false, path = "../tracing" }
-sp-runtime-interface-proc-macro = { version = "3.0.0", path = "proc-macro" }
-sp-externalities = { version = "0.9.0", optional = true, path = "../externalities" }
+sp-wasm-interface = { version = "4.0.0-dev", path = "../wasm-interface", default-features = false }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../std" }
+sp-tracing = { version = "4.0.0-dev", default-features = false, path = "../tracing" }
+sp-runtime-interface-proc-macro = { version = "4.0.0-dev", path = "proc-macro" }
+sp-externalities = { version = "0.10.0-dev", optional = true, path = "../externalities" }
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false }
 static_assertions = "1.0.0"
 primitive-types = { version = "0.10.0", default-features = false }
-sp-storage = { version = "3.0.0", default-features = false, path = "../storage" }
+sp-storage = { version = "4.0.0-dev", default-features = false, path = "../storage" }
 impl-trait-for-tuples = "0.2.1"
 
 [dev-dependencies]
 sp-runtime-interface-test-wasm = { version = "2.0.0", path = "test-wasm" }
-sp-state-machine = { version = "0.9.0", path = "../state-machine" }
-sp-core = { version = "3.0.0", path = "../core" }
-sp-io = { version = "3.0.0", path = "../io" }
+sp-state-machine = { version = "0.10.0-dev", path = "../state-machine" }
+sp-core = { version = "4.0.0-dev", path = "../core" }
+sp-io = { version = "4.0.0-dev", path = "../io" }
 rustversion = "1.0.0"
 trybuild = "1.0.42"
 
diff --git a/substrate/primitives/runtime-interface/proc-macro/Cargo.toml b/substrate/primitives/runtime-interface/proc-macro/Cargo.toml
index ae74ff739b187b0746f1347ce5d6d2a8d41cab2b..dcf8a4662b9c47b7e611fb5af693db6f1af84660 100644
--- a/substrate/primitives/runtime-interface/proc-macro/Cargo.toml
+++ b/substrate/primitives/runtime-interface/proc-macro/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-runtime-interface-proc-macro"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
diff --git a/substrate/primitives/runtime-interface/test-wasm-deprecated/Cargo.toml b/substrate/primitives/runtime-interface/test-wasm-deprecated/Cargo.toml
index 91febf68ed285bda9d36c2133bd11373e94f78cc..3ae5d78b0ef95f3d46a839ad683d74882c1cf0b0 100644
--- a/substrate/primitives/runtime-interface/test-wasm-deprecated/Cargo.toml
+++ b/substrate/primitives/runtime-interface/test-wasm-deprecated/Cargo.toml
@@ -13,13 +13,13 @@ publish = false
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sp-runtime-interface = { version = "3.0.0", default-features = false, path = "../" }
-sp-std = { version = "3.0.0", default-features = false, path = "../../std" }
-sp-io = { version = "3.0.0", default-features = false, path = "../../io" }
-sp-core = { version = "3.0.0", default-features = false, path = "../../core" }
+sp-runtime-interface = { version = "4.0.0-dev", default-features = false, path = "../" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../std" }
+sp-io = { version = "4.0.0-dev", default-features = false, path = "../../io" }
+sp-core = { version = "4.0.0-dev", default-features = false, path = "../../core" }
 
 [build-dependencies]
-substrate-wasm-builder = { version = "4.0.0", path = "../../../utils/wasm-builder" }
+substrate-wasm-builder = { version = "5.0.0-dev", path = "../../../utils/wasm-builder" }
 
 [features]
 default = [ "std" ]
diff --git a/substrate/primitives/runtime-interface/test-wasm/Cargo.toml b/substrate/primitives/runtime-interface/test-wasm/Cargo.toml
index d0a61c5b920f499d96a6b13dffa2e058b35856d2..7c7d3e10b2d0c66c7f13d8e8aa7d87780551261d 100644
--- a/substrate/primitives/runtime-interface/test-wasm/Cargo.toml
+++ b/substrate/primitives/runtime-interface/test-wasm/Cargo.toml
@@ -13,13 +13,13 @@ publish = false
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sp-runtime-interface = { version = "3.0.0", default-features = false, path = "../" }
-sp-std = { version = "3.0.0", default-features = false, path = "../../std" }
-sp-io = { version = "3.0.0", default-features = false, path = "../../io" }
-sp-core = { version = "3.0.0", default-features = false, path = "../../core" }
+sp-runtime-interface = { version = "4.0.0-dev", default-features = false, path = "../" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../std" }
+sp-io = { version = "4.0.0-dev", default-features = false, path = "../../io" }
+sp-core = { version = "4.0.0-dev", default-features = false, path = "../../core" }
 
 [build-dependencies]
-substrate-wasm-builder = { version = "4.0.0", path = "../../../utils/wasm-builder" }
+substrate-wasm-builder = { version = "5.0.0-dev", path = "../../../utils/wasm-builder" }
 
 [features]
 default = [ "std" ]
diff --git a/substrate/primitives/runtime-interface/test/Cargo.toml b/substrate/primitives/runtime-interface/test/Cargo.toml
index fb9b3c4b71edf516b3b946a2a8b4af95978d98e7..686eb1b1a13e33df7ef7fefe1142e4670eceddcb 100644
--- a/substrate/primitives/runtime-interface/test/Cargo.toml
+++ b/substrate/primitives/runtime-interface/test/Cargo.toml
@@ -12,14 +12,14 @@ repository = "https://github.com/paritytech/substrate/"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sp-runtime-interface = { version = "3.0.0", path = "../" }
-sc-executor = { version = "0.9.0", path = "../../../client/executor" }
-sc-executor-common = { version = "0.9.0", path = "../../../client/executor/common" }
+sp-runtime-interface = { version = "4.0.0-dev", path = "../" }
+sc-executor = { version = "0.10.0-dev", path = "../../../client/executor" }
+sc-executor-common = { version = "0.10.0-dev", path = "../../../client/executor/common" }
 sp-runtime-interface-test-wasm = { version = "2.0.0", path = "../test-wasm" }
 sp-runtime-interface-test-wasm-deprecated = { version = "2.0.0", path = "../test-wasm-deprecated" }
-sp-state-machine = { version = "0.9.0", path = "../../state-machine" }
-sp-runtime = { version = "3.0.0", path = "../../runtime" }
-sp-core = { version = "3.0.0", path = "../../core" }
-sp-io = { version = "3.0.0", path = "../../io" }
+sp-state-machine = { version = "0.10.0-dev", path = "../../state-machine" }
+sp-runtime = { version = "4.0.0-dev", path = "../../runtime" }
+sp-core = { version = "4.0.0-dev", path = "../../core" }
+sp-io = { version = "4.0.0-dev", path = "../../io" }
 tracing = "0.1.25"
 tracing-core = "0.1.17"
diff --git a/substrate/primitives/runtime/Cargo.toml b/substrate/primitives/runtime/Cargo.toml
index b38bbbb663d4759a431d5309d3e7712b133d90ef..78d141edb19b9d578f6bfc8868e7903782f0d560 100644
--- a/substrate/primitives/runtime/Cargo.toml
+++ b/substrate/primitives/runtime/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-runtime"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -17,11 +17,11 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 serde = { version = "1.0.101", optional = true, features = ["derive"] }
 codec = { package = "parity-scale-codec", version = "2.2.0", default-features = false, features = ["derive", "max-encoded-len"] }
-sp-core = { version = "3.0.0", default-features = false, path = "../core" }
-sp-application-crypto = { version = "3.0.0", default-features = false, path = "../application-crypto" }
-sp-arithmetic = { version = "3.0.0", default-features = false, path = "../arithmetic" }
-sp-std = { version = "3.0.0", default-features = false, path = "../std" }
-sp-io = { version = "3.0.0", default-features = false, path = "../io" }
+sp-core = { version = "4.0.0-dev", default-features = false, path = "../core" }
+sp-application-crypto = { version = "4.0.0-dev", default-features = false, path = "../application-crypto" }
+sp-arithmetic = { version = "4.0.0-dev", default-features = false, path = "../arithmetic" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../std" }
+sp-io = { version = "4.0.0-dev", default-features = false, path = "../io" }
 log = { version = "0.4.14", default-features = false }
 paste = "1.0"
 rand = { version = "0.7.2", optional = true }
@@ -33,10 +33,10 @@ either = { version = "1.5", default-features = false }
 [dev-dependencies]
 serde_json = "1.0.41"
 rand = "0.7.2"
-sp-state-machine = { version = "0.9.0", path = "../state-machine" }
-sp-api = { version = "3.0.0", path = "../api" }
+sp-state-machine = { version = "0.10.0-dev", path = "../state-machine" }
+sp-api = { version = "4.0.0-dev", path = "../api" }
 substrate-test-runtime-client = { version = "2.0.0", path = "../../test-utils/runtime/client" }
-sp-tracing = { version = "3.0.0", path = "../../primitives/tracing" }
+sp-tracing = { version = "4.0.0-dev", path = "../../primitives/tracing" }
 
 [features]
 bench = []
diff --git a/substrate/primitives/sandbox/Cargo.toml b/substrate/primitives/sandbox/Cargo.toml
index dc6103bfa6ada86ff52cc2c33a0896d7e7ddb3a4..f15f1c02d511cbbd7f52c7c0312a9ef25634c23d 100755
--- a/substrate/primitives/sandbox/Cargo.toml
+++ b/substrate/primitives/sandbox/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-sandbox"
-version = "0.9.0"
+version = "0.10.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,10 +14,10 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 wasmi = { version = "0.9.0", optional = true }
-sp-core = { version = "3.0.0", default-features = false, path = "../core" }
-sp-std = { version = "3.0.0", default-features = false, path = "../std" }
-sp-io = { version = "3.0.0", default-features = false, path = "../io" }
-sp-wasm-interface = { version = "3.0.0", default-features = false, path = "../wasm-interface" }
+sp-core = { version = "4.0.0-dev", default-features = false, path = "../core" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../std" }
+sp-io = { version = "4.0.0-dev", default-features = false, path = "../io" }
+sp-wasm-interface = { version = "4.0.0-dev", default-features = false, path = "../wasm-interface" }
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false }
 
 [dev-dependencies]
diff --git a/substrate/primitives/session/Cargo.toml b/substrate/primitives/session/Cargo.toml
index c04b271bc0370550cf607797231dba5d3ecfb522..91677b474d9541380b73f212fe0f79a232a1c61c 100644
--- a/substrate/primitives/session/Cargo.toml
+++ b/substrate/primitives/session/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-session"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,11 +14,11 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] }
-sp-api = { version = "3.0.0", default-features = false, path = "../api" }
-sp-core = { version = "3.0.0", default-features = false, path = "../core" }
-sp-std = { version = "3.0.0", default-features = false, path = "../std" }
-sp-staking = { version = "3.0.0", default-features = false, path = "../staking" }
-sp-runtime = { version = "3.0.0", optional = true, path = "../runtime" }
+sp-api = { version = "4.0.0-dev", default-features = false, path = "../api" }
+sp-core = { version = "4.0.0-dev", default-features = false, path = "../core" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../std" }
+sp-staking = { version = "4.0.0-dev", default-features = false, path = "../staking" }
+sp-runtime = { version = "4.0.0-dev", optional = true, path = "../runtime" }
 
 [features]
 default = [ "std" ]
diff --git a/substrate/primitives/staking/Cargo.toml b/substrate/primitives/staking/Cargo.toml
index cf2347082a885c566c9d0dda4389dbe5680063df..85f5487da884cf461ebff8d6eee355106ec675a8 100644
--- a/substrate/primitives/staking/Cargo.toml
+++ b/substrate/primitives/staking/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-staking"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,8 +14,8 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../runtime" }
-sp-std = { version = "3.0.0", default-features = false, path = "../std" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../runtime" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../std" }
 
 [features]
 default = ["std"]
diff --git a/substrate/primitives/state-machine/Cargo.toml b/substrate/primitives/state-machine/Cargo.toml
index 00050116280e8b69e54ed81f18b0ce83ee3301bb..e5c9ea989068787b89bd6a6d71e6c35e06c7a54d 100644
--- a/substrate/primitives/state-machine/Cargo.toml
+++ b/substrate/primitives/state-machine/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-state-machine"
-version = "0.9.0"
+version = "0.10.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "Substrate State Machine"
 edition = "2018"
@@ -20,20 +20,20 @@ parking_lot = { version = "0.11.1", optional = true }
 hash-db = { version = "0.15.2", default-features = false }
 trie-db = { version = "0.22.6", default-features = false }
 trie-root = { version = "0.16.0", default-features = false }
-sp-trie = { version = "3.0.0", path = "../trie", default-features = false }
-sp-core = { version = "3.0.0", path = "../core", default-features = false }
+sp-trie = { version = "4.0.0-dev", path = "../trie", default-features = false }
+sp-core = { version = "4.0.0-dev", path = "../core", default-features = false }
 sp-panic-handler = { version = "3.0.0", path = "../panic-handler", optional = true }
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false }
 num-traits = { version = "0.2.8", default-features = false }
 rand = { version = "0.7.2", optional = true }
-sp-externalities = { version = "0.9.0", path = "../externalities", default-features = false }
+sp-externalities = { version = "0.10.0-dev", path = "../externalities", default-features = false }
 smallvec = "1.4.1"
-sp-std = { version = "3.0.0", default-features = false, path = "../std" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../std" }
 tracing = { version = "0.1.22", optional = true }
 
 [dev-dependencies]
 hex-literal = "0.3.1"
-sp-runtime = { version = "3.0.0", path = "../runtime" }
+sp-runtime = { version = "4.0.0-dev", path = "../runtime" }
 pretty_assertions = "0.6.1"
 
 [features]
diff --git a/substrate/primitives/std/Cargo.toml b/substrate/primitives/std/Cargo.toml
index bafa1ea7ef414267be34026ebda86f18d67012a9..bf815c1c80c5667f9844b2284b498f6b58883de0 100644
--- a/substrate/primitives/std/Cargo.toml
+++ b/substrate/primitives/std/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-std"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
diff --git a/substrate/primitives/storage/Cargo.toml b/substrate/primitives/storage/Cargo.toml
index 7a984d9205690e5178195d9b14948dd21b7c1a0a..40566deb06b621a856587cbba6ac7e583977a882 100644
--- a/substrate/primitives/storage/Cargo.toml
+++ b/substrate/primitives/storage/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-storage"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 description = "Storage related primitives"
@@ -14,7 +14,7 @@ readme = "README.md"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sp-std = { version = "3.0.0", default-features = false, path = "../std" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../std" }
 serde = { version = "1.0.101", optional = true, features = ["derive"] }
 impl-serde = { version = "0.3.1", optional = true }
 ref-cast = "1.0.0"
diff --git a/substrate/primitives/tasks/Cargo.toml b/substrate/primitives/tasks/Cargo.toml
index 0a361b6c8dbbc9df03b98e3aa2bf193c7b4b3654..ee503ae9b855fc5f5b27307187368f2d7d1314fe 100644
--- a/substrate/primitives/tasks/Cargo.toml
+++ b/substrate/primitives/tasks/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-tasks"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -15,11 +15,11 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 log = { version = "0.4.8", optional = true }
-sp-core = { version = "3.0.0", default-features = false, path = "../core" }
-sp-externalities = { version = "0.9.0", optional = true, path = "../externalities" }
-sp-io = { version = "3.0.0", default-features = false, path = "../io" }
-sp-runtime-interface = { version = "3.0.0", default-features = false, path = "../runtime-interface" }
-sp-std = { version = "3.0.0", default-features = false, path = "../std" }
+sp-core = { version = "4.0.0-dev", default-features = false, path = "../core" }
+sp-externalities = { version = "0.10.0-dev", optional = true, path = "../externalities" }
+sp-io = { version = "4.0.0-dev", default-features = false, path = "../io" }
+sp-runtime-interface = { version = "4.0.0-dev", default-features = false, path = "../runtime-interface" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../std" }
 
 [dev-dependencies]
 codec = { package = "parity-scale-codec", default-features = false, version = "2.0.0" }
diff --git a/substrate/primitives/test-primitives/Cargo.toml b/substrate/primitives/test-primitives/Cargo.toml
index f1f2c70bf231578951ea04f307e1144b6688528b..c7b901e848e1922bb22f5c3b9e2e346f0e416ab0 100644
--- a/substrate/primitives/test-primitives/Cargo.toml
+++ b/substrate/primitives/test-primitives/Cargo.toml
@@ -12,11 +12,11 @@ publish = false
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sp-application-crypto = { version = "3.0.0", default-features = false, path = "../application-crypto" }
+sp-application-crypto = { version = "4.0.0-dev", default-features = false, path = "../application-crypto" }
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] }
-sp-core = { version = "3.0.0", default-features = false, path = "../core" }
+sp-core = { version = "4.0.0-dev", default-features = false, path = "../core" }
 serde = { version = "1.0.101", optional = true, features = ["derive"] }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../runtime" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../runtime" }
 parity-util-mem = { version = "0.10.0", default-features = false, features = ["primitive-types"] }
 
 [features]
diff --git a/substrate/primitives/timestamp/Cargo.toml b/substrate/primitives/timestamp/Cargo.toml
index 3fc8e76f40f1748802a23bbb7cf4dfee0d092686..512635f319231669680407055e8238ae1dafd9a4 100644
--- a/substrate/primitives/timestamp/Cargo.toml
+++ b/substrate/primitives/timestamp/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-timestamp"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -13,11 +13,11 @@ readme = "README.md"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sp-api = { version = "3.0.0", default-features = false, path = "../api" }
-sp-std = { version = "3.0.0", default-features = false, path = "../std" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../runtime" }
+sp-api = { version = "4.0.0-dev", default-features = false, path = "../api" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../std" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../runtime" }
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] }
-sp-inherents = { version = "3.0.0", default-features = false, path = "../inherents" }
+sp-inherents = { version = "4.0.0-dev", default-features = false, path = "../inherents" }
 wasm-timer = { version = "0.2", optional = true }
 thiserror = { version = "1.0.21", optional = true }
 log = { version = "0.4.8", optional = true }
diff --git a/substrate/primitives/tracing/Cargo.toml b/substrate/primitives/tracing/Cargo.toml
index 2c4b7dc12c74468d82304a5aa17a9f60facae5ed..d5fb07ad076b4c150a46af30081b411dccef5732 100644
--- a/substrate/primitives/tracing/Cargo.toml
+++ b/substrate/primitives/tracing/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-tracing"
-version = "3.0.0"
+version = "4.0.0-dev"
 license = "Apache-2.0"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
@@ -18,7 +18,7 @@ features = ["with-tracing"]
 targets = ["x86_64-unknown-linux-gnu", "wasm32-unknown-unknown"]
 
 [dependencies]
-sp-std = { version = "3.0.0", path = "../std", default-features = false}
+sp-std = { version = "4.0.0-dev", path = "../std", default-features = false}
 codec = { version = "2.0.0", package = "parity-scale-codec", default-features = false, features = ["derive"]}
 tracing = { version = "0.1.25", default-features = false }
 tracing-core = { version = "0.1.17", default-features = false }
diff --git a/substrate/primitives/transaction-pool/Cargo.toml b/substrate/primitives/transaction-pool/Cargo.toml
index d6c2d716ee844f19e5890910b8ff3ef66d4f93ab..3f77014ac53b060bedbac6d92a644a9fe34d7435 100644
--- a/substrate/primitives/transaction-pool/Cargo.toml
+++ b/substrate/primitives/transaction-pool/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-transaction-pool"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,8 +14,8 @@ readme = "README.md"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sp-api = { version = "3.0.0", default-features = false, path = "../api" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../runtime" }
+sp-api = { version = "4.0.0-dev", default-features = false, path = "../api" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../runtime" }
 
 [features]
 default = [ "std" ]
diff --git a/substrate/primitives/transaction-storage-proof/Cargo.toml b/substrate/primitives/transaction-storage-proof/Cargo.toml
index bbdcb9f989f0bf0afff6fa87218734696ea1a16b..b04dbbc1124d124d27a226d7caa7c8e57706081f 100644
--- a/substrate/primitives/transaction-storage-proof/Cargo.toml
+++ b/substrate/primitives/transaction-storage-proof/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-transaction-storage-proof"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "Transaction storage proof primitives"
 edition = "2018"
@@ -13,11 +13,11 @@ readme = "README.md"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sp-inherents = { version = "3.0.0", default-features = false, path = "../inherents" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../runtime" }
-sp-std = { version = "3.0.0", default-features = false, path = "../std" }
-sp-trie = { version = "3.0.0", optional = true, path = "../trie" }
-sp-core = { version = "3.0.0", path = "../core", optional = true }
+sp-inherents = { version = "4.0.0-dev", default-features = false, path = "../inherents" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../runtime" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../std" }
+sp-trie = { version = "4.0.0-dev", optional = true, path = "../trie" }
+sp-core = { version = "4.0.0-dev", path = "../core", optional = true }
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] }
 log = { version = "0.4.8", optional = true }
 async-trait = { version = "0.1.48", optional = true }
diff --git a/substrate/primitives/trie/Cargo.toml b/substrate/primitives/trie/Cargo.toml
index e13bc68fb96b061fa238a0978516956614bf65a1..60356e0a8d6d35fcbf194ea7a0bd590035e7138d 100644
--- a/substrate/primitives/trie/Cargo.toml
+++ b/substrate/primitives/trie/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-trie"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "Patricia trie stuff using a parity-scale-codec node format"
 repository = "https://github.com/paritytech/substrate/"
@@ -19,19 +19,19 @@ harness = false
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false }
-sp-std = { version = "3.0.0", default-features = false, path = "../std" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../std" }
 hash-db = { version = "0.15.2", default-features = false }
 trie-db = { version = "0.22.6", default-features = false }
 trie-root = { version = "0.16.0", default-features = false }
 memory-db = { version = "0.27.0", default-features = false }
-sp-core = { version = "3.0.0", default-features = false, path = "../core" }
+sp-core = { version = "4.0.0-dev", default-features = false, path = "../core" }
 
 [dev-dependencies]
 trie-bench = "0.28.0"
 trie-standardmap = "0.15.2"
 criterion = "0.3.3"
 hex-literal = "0.3.1"
-sp-runtime = { version = "3.0.0", path = "../runtime" }
+sp-runtime = { version = "4.0.0-dev", path = "../runtime" }
 
 [features]
 default = ["std"]
diff --git a/substrate/primitives/utils/Cargo.toml b/substrate/primitives/utils/Cargo.toml
index 7669cee346d0b2b56549bd64580bee55a1a5d651..bb5b1da59d41b416766966f66ca5cbe9e6127205 100644
--- a/substrate/primitives/utils/Cargo.toml
+++ b/substrate/primitives/utils/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-utils"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
diff --git a/substrate/primitives/version/Cargo.toml b/substrate/primitives/version/Cargo.toml
index 877897c54c24d2b7603003649aa78788d3a1e343..62f625d1e38e4e05e09e0cf0c8b134efd1a4a120 100644
--- a/substrate/primitives/version/Cargo.toml
+++ b/substrate/primitives/version/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-version"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -18,9 +18,9 @@ targets = ["x86_64-unknown-linux-gnu"]
 impl-serde = { version = "0.3.1", optional = true }
 serde = { version = "1.0.101", optional = true, features = ["derive"] }
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] }
-sp-std = { version = "3.0.0", default-features = false, path = "../std" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../runtime" }
-sp-version-proc-macro = { version = "3.0.0", default-features = false, path = "proc-macro" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../std" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../runtime" }
+sp-version-proc-macro = { version = "4.0.0-dev", default-features = false, path = "proc-macro" }
 parity-wasm = { version = "0.42.2", optional = true }
 thiserror = { version = "1.0.21", optional = true }
 
diff --git a/substrate/primitives/version/proc-macro/Cargo.toml b/substrate/primitives/version/proc-macro/Cargo.toml
index ea3144090c70ed73d8a6439794ff0cabfdcafa5c..e394353e52a1830dfd4a23737c2210d61e841748 100644
--- a/substrate/primitives/version/proc-macro/Cargo.toml
+++ b/substrate/primitives/version/proc-macro/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-version-proc-macro"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -23,4 +23,4 @@ proc-macro-crate = "1.0.0"
 codec = { package = "parity-scale-codec", version = "2.0.0", features = [ "derive" ] }
 
 [dev-dependencies]
-sp-version = { version = "3.0.0", path = ".." }
+sp-version = { version = "4.0.0-dev", path = ".." }
diff --git a/substrate/primitives/wasm-interface/Cargo.toml b/substrate/primitives/wasm-interface/Cargo.toml
index 97171310b4154192f38902740486378289a13137..ba8a7b4e4b466144b73922ec10510199086bafdb 100644
--- a/substrate/primitives/wasm-interface/Cargo.toml
+++ b/substrate/primitives/wasm-interface/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-wasm-interface"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -16,7 +16,7 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 wasmi = { version = "0.9.0", optional = true }
 impl-trait-for-tuples = "0.2.1"
-sp-std = { version = "3.0.0", path = "../std", default-features = false }
+sp-std = { version = "4.0.0-dev", path = "../std", default-features = false }
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] }
 
 [features]
diff --git a/substrate/test-utils/Cargo.toml b/substrate/test-utils/Cargo.toml
index 24a794ff48025fe46715b6350d28814815e3675f..983574915f2b600ed6968add037a18505b077d1b 100644
--- a/substrate/test-utils/Cargo.toml
+++ b/substrate/test-utils/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "substrate-test-utils"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -13,9 +13,9 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 futures = { version = "0.3.1", features = ["compat"] }
-substrate-test-utils-derive = { version = "0.9.0", path = "./derive" }
+substrate-test-utils-derive = { version = "0.10.0-dev", path = "./derive" }
 tokio = { version = "0.2.13", features = ["macros"] }
 
 [dev-dependencies]
-sc-service = { version = "0.9.0", path = "../client/service" }
+sc-service = { version = "0.10.0-dev", path = "../client/service" }
 trybuild = { version = "1.0.42", features = [ "diff" ] }
diff --git a/substrate/test-utils/client/Cargo.toml b/substrate/test-utils/client/Cargo.toml
index 925a69e41bb48e081d8f3617b333be811be041f7..26661b8209c1047d77ea05f2a9bbdf015b9d3b8d 100644
--- a/substrate/test-utils/client/Cargo.toml
+++ b/substrate/test-utils/client/Cargo.toml
@@ -19,18 +19,18 @@ hash-db = "0.15.2"
 hex = "0.4"
 serde = "1.0.55"
 serde_json = "1.0.55"
-sc-client-api = { version = "3.0.0", path = "../../client/api" }
-sc-client-db = { version = "0.9.0", features = ["test-helpers"], path = "../../client/db" }
-sc-consensus = { version = "0.9.0", path = "../../client/consensus/common" }
-sc-executor = { version = "0.9.0", path = "../../client/executor" }
-sc-light = { version = "3.0.0", path = "../../client/light" }
-sc-offchain = { version = "3.0.0", path = "../../client/offchain" }
-sc-service = { version = "0.9.0", default-features = false, features = ["test-helpers"],  path = "../../client/service" }
-sp-blockchain = { version = "3.0.0", path = "../../primitives/blockchain" }
-sp-consensus = { version = "0.9.0", path = "../../primitives/consensus/common" }
-sp-core = { version = "3.0.0", path = "../../primitives/core" }
-sp-keystore = { version = "0.9.0", path = "../../primitives/keystore" }
-sp-keyring = { version = "3.0.0", path = "../../primitives/keyring" }
-sp-runtime = { version = "3.0.0", path = "../../primitives/runtime" }
-sp-state-machine = { version = "0.9.0", path = "../../primitives/state-machine" }
+sc-client-api = { version = "4.0.0-dev", path = "../../client/api" }
+sc-client-db = { version = "0.10.0-dev", features = ["test-helpers"], path = "../../client/db" }
+sc-consensus = { version = "0.10.0-dev", path = "../../client/consensus/common" }
+sc-executor = { version = "0.10.0-dev", path = "../../client/executor" }
+sc-light = { version = "4.0.0-dev", path = "../../client/light" }
+sc-offchain = { version = "4.0.0-dev", path = "../../client/offchain" }
+sc-service = { version = "0.10.0-dev", default-features = false, features = ["test-helpers"],  path = "../../client/service" }
+sp-blockchain = { version = "4.0.0-dev", path = "../../primitives/blockchain" }
+sp-consensus = { version = "0.10.0-dev", path = "../../primitives/consensus/common" }
+sp-core = { version = "4.0.0-dev", path = "../../primitives/core" }
+sp-keystore = { version = "0.10.0-dev", path = "../../primitives/keystore" }
+sp-keyring = { version = "4.0.0-dev", path = "../../primitives/keyring" }
+sp-runtime = { version = "4.0.0-dev", path = "../../primitives/runtime" }
+sp-state-machine = { version = "0.10.0-dev", path = "../../primitives/state-machine" }
 async-trait = "0.1.42"
diff --git a/substrate/test-utils/derive/Cargo.toml b/substrate/test-utils/derive/Cargo.toml
index 501a7058c634daf7709b5deb515e3cd477bccba4..991183edf4aba202df523c276d9f5543c6c12b4d 100644
--- a/substrate/test-utils/derive/Cargo.toml
+++ b/substrate/test-utils/derive/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "substrate-test-utils-derive"
-version = "0.9.0"
+version = "0.10.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
diff --git a/substrate/test-utils/runtime/Cargo.toml b/substrate/test-utils/runtime/Cargo.toml
index 60283bb97d183018bb06307b984334382074be86..371f2fd5a13b64922629db60796ca5c67e03c6f0 100644
--- a/substrate/test-utils/runtime/Cargo.toml
+++ b/substrate/test-utils/runtime/Cargo.toml
@@ -13,36 +13,36 @@ publish = false
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sp-application-crypto = { version = "3.0.0", default-features = false, path = "../../primitives/application-crypto" }
-sp-consensus-aura = { version = "0.9.0", default-features = false, path = "../../primitives/consensus/aura" }
-sp-consensus-babe = { version = "0.9.0", default-features = false, path = "../../primitives/consensus/babe" }
-sp-block-builder = { version = "3.0.0", default-features = false, path = "../../primitives/block-builder" }
+sp-application-crypto = { version = "4.0.0-dev", default-features = false, path = "../../primitives/application-crypto" }
+sp-consensus-aura = { version = "0.10.0-dev", default-features = false, path = "../../primitives/consensus/aura" }
+sp-consensus-babe = { version = "0.10.0-dev", default-features = false, path = "../../primitives/consensus/babe" }
+sp-block-builder = { version = "4.0.0-dev", default-features = false, path = "../../primitives/block-builder" }
 codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] }
-sp-inherents = { version = "3.0.0", default-features = false, path = "../../primitives/inherents" }
-sp-keyring = { version = "3.0.0", optional = true, path = "../../primitives/keyring" }
+sp-inherents = { version = "4.0.0-dev", default-features = false, path = "../../primitives/inherents" }
+sp-keyring = { version = "4.0.0-dev", optional = true, path = "../../primitives/keyring" }
 memory-db = { version = "0.27.0", default-features = false }
-sp-offchain = { path = "../../primitives/offchain", default-features = false, version = "3.0.0"}
-sp-core = { version = "3.0.0", default-features = false, path = "../../primitives/core" }
-sp-std = { version = "3.0.0", default-features = false, path = "../../primitives/std" }
-sp-runtime-interface = { path = "../../primitives/runtime-interface", default-features = false, version = "3.0.0"}
-sp-io = { version = "3.0.0", default-features = false, path = "../../primitives/io" }
-frame-support = { version = "3.0.0", default-features = false, path = "../../frame/support" }
-sp-version = { version = "3.0.0", default-features = false, path = "../../primitives/version" }
-sp-session = { version = "3.0.0", default-features = false, path = "../../primitives/session" }
-sp-api = { version = "3.0.0", default-features = false, path = "../../primitives/api" }
-sp-runtime = { version = "3.0.0", default-features = false, path = "../../primitives/runtime" }
-pallet-babe = { version = "3.0.0", default-features = false, path = "../../frame/babe" }
-frame-system = { version = "3.0.0", default-features = false, path = "../../frame/system" }
-frame-system-rpc-runtime-api = { version = "3.0.0", default-features = false, path = "../../frame/system/rpc/runtime-api" }
-pallet-timestamp = { version = "3.0.0", default-features = false, path = "../../frame/timestamp" }
-sp-finality-grandpa = { version = "3.0.0", default-features = false, path = "../../primitives/finality-grandpa" }
-sp-trie = { version = "3.0.0", default-features = false, path = "../../primitives/trie" }
-sp-transaction-pool = { version = "3.0.0", default-features = false, path = "../../primitives/transaction-pool" }
+sp-offchain = { version = "4.0.0-dev", default-features = false, path = "../../primitives/offchain" }
+sp-core = { version = "4.0.0-dev", default-features = false, path = "../../primitives/core" }
+sp-std = { version = "4.0.0-dev", default-features = false, path = "../../primitives/std" }
+sp-runtime-interface = { version = "4.0.0-dev", default-features = false, path = "../../primitives/runtime-interface" }
+sp-io = { version = "4.0.0-dev", default-features = false, path = "../../primitives/io" }
+frame-support = { version = "4.0.0-dev", default-features = false, path = "../../frame/support" }
+sp-version = { version = "4.0.0-dev", default-features = false, path = "../../primitives/version" }
+sp-session = { version = "4.0.0-dev", default-features = false, path = "../../primitives/session" }
+sp-api = { version = "4.0.0-dev", default-features = false, path = "../../primitives/api" }
+sp-runtime = { version = "4.0.0-dev", default-features = false, path = "../../primitives/runtime" }
+pallet-babe = { version = "4.0.0-dev", default-features = false, path = "../../frame/babe" }
+frame-system = { version = "4.0.0-dev", default-features = false, path = "../../frame/system" }
+frame-system-rpc-runtime-api = { version = "4.0.0-dev", default-features = false, path = "../../frame/system/rpc/runtime-api" }
+pallet-timestamp = { version = "4.0.0-dev", default-features = false, path = "../../frame/timestamp" }
+sp-finality-grandpa = { version = "4.0.0-dev", default-features = false, path = "../../primitives/finality-grandpa" }
+sp-trie = { version = "4.0.0-dev", default-features = false, path = "../../primitives/trie" }
+sp-transaction-pool = { version = "4.0.0-dev", default-features = false, path = "../../primitives/transaction-pool" }
 trie-db = { version = "0.22.6", default-features = false }
 parity-util-mem = { version = "0.10.0", default-features = false, features = ["primitive-types"] }
-sc-service = { version = "0.9.0", default-features = false, optional = true, features = ["test-helpers"], path = "../../client/service" }
-sp-state-machine = { version = "0.9.0", default-features = false, path = "../../primitives/state-machine" }
-sp-externalities = { version = "0.9.0", default-features = false, path = "../../primitives/externalities" }
+sc-service = { version = "0.10.0-dev", default-features = false, optional = true, features = ["test-helpers"], path = "../../client/service" }
+sp-state-machine = { version = "0.10.0-dev", default-features = false, path = "../../primitives/state-machine" }
+sp-externalities = { version = "0.10.0-dev", default-features = false, path = "../../primitives/externalities" }
 
 # 3rd party
 cfg-if = "1.0"
@@ -50,13 +50,13 @@ log = { version = "0.4.14", default-features = false }
 serde = { version = "1.0.101", optional = true, features = ["derive"] }
 
 [dev-dependencies]
-sc-block-builder = { version = "0.9.0", path = "../../client/block-builder" }
-sc-executor = { version = "0.9.0", path = "../../client/executor" }
+sc-block-builder = { version = "0.10.0-dev", path = "../../client/block-builder" }
+sc-executor = { version = "0.10.0-dev", path = "../../client/executor" }
 substrate-test-runtime-client = { version = "2.0.0", path = "./client" }
 futures = "0.3.9"
 
 [build-dependencies]
-substrate-wasm-builder = { version = "4.0.0", path = "../../utils/wasm-builder" }
+substrate-wasm-builder = { version = "5.0.0-dev", path = "../../utils/wasm-builder" }
 
 [features]
 default = [
diff --git a/substrate/test-utils/runtime/client/Cargo.toml b/substrate/test-utils/runtime/client/Cargo.toml
index 0c822f0cdff84401af5a7c9401bb38905125d4f2..24e9f8af294422c842c48b3e277a6f3def93705f 100644
--- a/substrate/test-utils/runtime/client/Cargo.toml
+++ b/substrate/test-utils/runtime/client/Cargo.toml
@@ -12,17 +12,17 @@ publish = false
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sc-light = { version = "3.0.0", path = "../../../client/light" }
-sp-consensus = { version = "0.9.0", path = "../../../primitives/consensus/common" }
-sc-block-builder = { version = "0.9.0", path = "../../../client/block-builder" }
+sc-light = { version = "4.0.0-dev", path = "../../../client/light" }
+sp-consensus = { version = "0.10.0-dev", path = "../../../primitives/consensus/common" }
+sc-block-builder = { version = "0.10.0-dev", path = "../../../client/block-builder" }
 substrate-test-client = { version = "2.0.0", path = "../../client" }
-sp-core = { version = "3.0.0", path = "../../../primitives/core" }
+sp-core = { version = "4.0.0-dev", path = "../../../primitives/core" }
 substrate-test-runtime = { version = "2.0.0", path = "../../runtime" }
-sp-runtime = { version = "3.0.0", path = "../../../primitives/runtime" }
-sp-api = { version = "3.0.0", path = "../../../primitives/api" }
-sp-blockchain = { version = "3.0.0", path = "../../../primitives/blockchain" }
+sp-runtime = { version = "4.0.0-dev", path = "../../../primitives/runtime" }
+sp-api = { version = "4.0.0-dev", path = "../../../primitives/api" }
+sp-blockchain = { version = "4.0.0-dev", path = "../../../primitives/blockchain" }
 codec = { package = "parity-scale-codec", version = "2.0.0" }
-sc-client-api = { version = "3.0.0", path = "../../../client/api" }
-sc-consensus = { version = "0.9.0", path = "../../../client/consensus/common" }
-sc-service = { version = "0.9.0", default-features = false, path = "../../../client/service" }
+sc-client-api = { version = "4.0.0-dev", path = "../../../client/api" }
+sc-consensus = { version = "0.10.0-dev", path = "../../../client/consensus/common" }
+sc-service = { version = "0.10.0-dev", default-features = false, path = "../../../client/service" }
 futures = "0.3.9"
diff --git a/substrate/test-utils/runtime/transaction-pool/Cargo.toml b/substrate/test-utils/runtime/transaction-pool/Cargo.toml
index f0c5a19869df7990a7c2018db76f13db85617dbd..420d052829aabb72d99c79e93de54771a9e5f5ab 100644
--- a/substrate/test-utils/runtime/transaction-pool/Cargo.toml
+++ b/substrate/test-utils/runtime/transaction-pool/Cargo.toml
@@ -15,9 +15,9 @@ targets = ["x86_64-unknown-linux-gnu"]
 substrate-test-runtime-client = { version = "2.0.0", path = "../client" }
 parking_lot = "0.11.1"
 codec = { package = "parity-scale-codec", version = "2.0.0" }
-sp-blockchain = { version = "3.0.0", path = "../../../primitives/blockchain" }
-sp-runtime = { version = "3.0.0", path = "../../../primitives/runtime" }
-sc-transaction-pool = { version = "3.0.0", path = "../../../client/transaction-pool", features = ["test-helpers"] }
-sc-transaction-pool-api = { version = "3.0.0", path = "../../../client/transaction-pool/api" }
+sp-blockchain = { version = "4.0.0-dev", path = "../../../primitives/blockchain" }
+sp-runtime = { version = "4.0.0-dev", path = "../../../primitives/runtime" }
+sc-transaction-pool = { version = "4.0.0-dev", path = "../../../client/transaction-pool", features = ["test-helpers"] }
+sc-transaction-pool-api = { version = "4.0.0-dev", path = "../../../client/transaction-pool/api" }
 futures = { version = "0.3.1", features = ["compat"] }
 derive_more = "0.99.2"
diff --git a/substrate/test-utils/test-crate/Cargo.toml b/substrate/test-utils/test-crate/Cargo.toml
index 846b14fe07744c1310e00caca9f5f69e7aee29a2..6ab53fc752eae4d54e02590ae308c5bb9a30259e 100644
--- a/substrate/test-utils/test-crate/Cargo.toml
+++ b/substrate/test-utils/test-crate/Cargo.toml
@@ -13,5 +13,5 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dev-dependencies]
 tokio = { version = "0.2.13", features = ["macros"] }
-test-utils = { version = "3.0.0", path = "..", package = "substrate-test-utils" }
-sc-service = { version = "0.9.0", path = "../../client/service" }
+test-utils = { version = "4.0.0-dev", path = "..", package = "substrate-test-utils" }
+sc-service = { version = "0.10.0-dev", path = "../../client/service" }
diff --git a/substrate/test-utils/test-runner/Cargo.toml b/substrate/test-utils/test-runner/Cargo.toml
index cf171b0ea5ef315347da47cc666a9df2c812198b..a4c2bf84ab4a4f3805b17478f161b28f23bc934f 100644
--- a/substrate/test-utils/test-runner/Cargo.toml
+++ b/substrate/test-utils/test-runner/Cargo.toml
@@ -7,41 +7,41 @@ publish = false
 
 [dependencies]
 # client deps
-sc-executor = { version = "0.9.0", path = "../../client/executor" }
-sc-service = { version = "0.9.0", path = "../../client/service" }
-sc-informant = { version = "0.9.0", path = "../../client/informant" }
-sc-network = { version = "0.9.0", path = "../../client/network" }
-sc-cli = { version = "0.9.0", path = "../../client/cli" }
-sc-basic-authorship = { version = "0.9.0", path = "../../client/basic-authorship" }
-sc-rpc = { version = "3.0.0", path = "../../client/rpc" }
-sc-transaction-pool = { version = "3.0.0", path = "../../client/transaction-pool" }
-sc-transaction-pool-api = { version = "3.0.0", path = "../../client/transaction-pool/api" }
-sc-client-api = { version = "3.0.0", path = "../../client/api" }
-sc-rpc-server = { version = "3.0.0", path = "../../client/rpc-servers" }
-manual-seal = { package = "sc-consensus-manual-seal", version = "0.9.0", path = "../../client/consensus/manual-seal" }
+sc-executor = { version = "0.10.0-dev", path = "../../client/executor" }
+sc-service = { version = "0.10.0-dev", path = "../../client/service" }
+sc-informant = { version = "0.10.0-dev", path = "../../client/informant" }
+sc-network = { version = "0.10.0-dev", path = "../../client/network" }
+sc-cli = { version = "0.10.0-dev", path = "../../client/cli" }
+sc-basic-authorship = { version = "0.10.0-dev", path = "../../client/basic-authorship" }
+sc-rpc = { version = "4.0.0-dev", path = "../../client/rpc" }
+sc-transaction-pool = { version = "4.0.0-dev", path = "../../client/transaction-pool" }
+sc-transaction-pool-api = { version = "4.0.0-dev", path = "../../client/transaction-pool/api" }
+sc-client-api = { version = "4.0.0-dev", path = "../../client/api" }
+sc-rpc-server = { version = "4.0.0-dev", path = "../../client/rpc-servers" }
+manual-seal = { package = "sc-consensus-manual-seal", version = "0.10.0-dev", path = "../../client/consensus/manual-seal" }
 
 # primitive deps
-sp-core = { version = "3.0.0", path = "../../primitives/core" }
-sp-blockchain = { version = "3.0.0", path = "../../primitives/blockchain" }
-sp-block-builder = { version = "3.0.0", path = "../../primitives/block-builder" }
-sp-api = { version = "3.0.0", path = "../../primitives/api" }
-sp-io = { version = "3.0.0", path = "../../primitives/io" }
-sp-transaction-pool = { version = "3.0.0", path = "../../primitives/transaction-pool" }
-sp-consensus = { version = "0.9.0", path = "../../primitives/consensus/common" }
-sp-keystore = { version = "0.9.0", path = "../../primitives/keystore" }
-sp-runtime = { version = "3.0.0", path = "../../primitives/runtime" }
-sp-session = { version = "3.0.0", path = "../../primitives/session" }
-sp-offchain = { version = "3.0.0", path = "../../primitives/offchain" }
-sp-inherents = { version = "3.0.0", path = "../../primitives/inherents" }
-sp-keyring = { version = "3.0.0", path = "../../primitives/keyring" }
+sp-core = { version = "4.0.0-dev", path = "../../primitives/core" }
+sp-blockchain = { version = "4.0.0-dev", path = "../../primitives/blockchain" }
+sp-block-builder = { version = "4.0.0-dev", path = "../../primitives/block-builder" }
+sp-api = { version = "4.0.0-dev", path = "../../primitives/api" }
+sp-io = { version = "4.0.0-dev", path = "../../primitives/io" }
+sp-transaction-pool = { version = "4.0.0-dev", path = "../../primitives/transaction-pool" }
+sp-consensus = { version = "0.10.0-dev", path = "../../primitives/consensus/common" }
+sp-keystore = { version = "0.10.0-dev", path = "../../primitives/keystore" }
+sp-runtime = { version = "4.0.0-dev", path = "../../primitives/runtime" }
+sp-session = { version = "4.0.0-dev", path = "../../primitives/session" }
+sp-offchain = { version = "4.0.0-dev", path = "../../primitives/offchain" }
+sp-inherents = { version = "4.0.0-dev", path = "../../primitives/inherents" }
+sp-keyring = { version = "4.0.0-dev", path = "../../primitives/keyring" }
 
-sp-externalities = { version = "0.9.0", path = "../../primitives/externalities" }
-sp-state-machine = { version = "0.9.0", path = "../../primitives/state-machine" }
-sp-wasm-interface = { version = "3.0.0", path = "../../primitives/wasm-interface" }
-sp-runtime-interface = { version = "3.0.0", path = "../../primitives/runtime-interface" }
+sp-externalities = { version = "0.10.0-dev", path = "../../primitives/externalities" }
+sp-state-machine = { version = "0.10.0-dev", path = "../../primitives/state-machine" }
+sp-wasm-interface = { version = "4.0.0-dev", path = "../../primitives/wasm-interface" }
+sp-runtime-interface = { version = "4.0.0-dev", path = "../../primitives/runtime-interface" }
 
 # pallets
-frame-system = { version = "3.0.0", path = "../../frame/system" }
+frame-system = { version = "4.0.0-dev", path = "../../frame/system" }
 
 env_logger = "0.7.1"
 log = "0.4.8"
diff --git a/substrate/utils/browser/Cargo.toml b/substrate/utils/browser/Cargo.toml
index eac1730d5ce2d0a51466c0cabdbcfd32ffb12963..c1f4c20c3645a2115b03507a238f1c2815be2f90 100644
--- a/substrate/utils/browser/Cargo.toml
+++ b/substrate/utils/browser/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "substrate-browser-utils"
-version = "0.9.0"
+version = "0.10.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "Utilities for creating a browser light-client."
 edition = "2018"
@@ -22,12 +22,12 @@ js-sys = "0.3.34"
 wasm-bindgen = "0.2.73"
 wasm-bindgen-futures = "0.4.18"
 kvdb-memorydb = "0.10.0"
-sp-database = { version = "3.0.0", path = "../../primitives/database" }
-sc-informant = { version = "0.9.0", path = "../../client/informant" }
-sc-service = { version = "0.9.0", path = "../../client/service", default-features = false }
-sc-network = { path = "../../client/network", version = "0.9.0"}
-sc-chain-spec = { path = "../../client/chain-spec", version = "3.0.0"}
-sc-tracing = { path = "../../client/tracing", version = "3.0.0"}
+sp-database = { version = "4.0.0-dev", path = "../../primitives/database" }
+sc-informant = { version = "0.10.0-dev", path = "../../client/informant" }
+sc-service = { version = "0.10.0-dev", path = "../../client/service", default-features = false }
+sc-network = { path = "../../client/network", version = "0.10.0-dev"}
+sc-chain-spec = { path = "../../client/chain-spec", version = "4.0.0-dev"}
+sc-tracing = { path = "../../client/tracing", version = "4.0.0-dev"}
 
 # Imported just for the `wasm-bindgen` feature
 getrandom = { version = "0.2", features = ["js"] }
diff --git a/substrate/utils/frame/benchmarking-cli/Cargo.toml b/substrate/utils/frame/benchmarking-cli/Cargo.toml
index 4a88a31b7f647c7296c35c84e46eec8fda7a832f..d6f8da089f1539855930ec26b198b0f55de0ab42 100644
--- a/substrate/utils/frame/benchmarking-cli/Cargo.toml
+++ b/substrate/utils/frame/benchmarking-cli/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "frame-benchmarking-cli"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -13,17 +13,17 @@ readme = "README.md"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-frame-benchmarking = { version = "3.1.0", path = "../../../frame/benchmarking" }
-frame-support = { version = "3.0.0", path = "../../../frame/support" }
-sp-core = { version = "3.0.0", path = "../../../primitives/core" }
-sc-service = { version = "0.9.0", default-features = false, path = "../../../client/service" }
-sc-cli = { version = "0.9.0", path = "../../../client/cli" }
-sc-client-db = { version = "0.9.0", path = "../../../client/db" }
-sc-executor = { version = "0.9.0", path = "../../../client/executor" }
-sp-externalities = { version = "0.9.0", path = "../../../primitives/externalities" }
-sp-keystore = { version = "0.9.0", path = "../../../primitives/keystore" }
-sp-runtime = { version = "3.0.0", path = "../../../primitives/runtime" }
-sp-state-machine = { version = "0.9.0", path = "../../../primitives/state-machine" }
+frame-benchmarking = { version = "4.0.0-dev", path = "../../../frame/benchmarking" }
+frame-support = { version = "4.0.0-dev", path = "../../../frame/support" }
+sp-core = { version = "4.0.0-dev", path = "../../../primitives/core" }
+sc-service = { version = "0.10.0-dev", default-features = false, path = "../../../client/service" }
+sc-cli = { version = "0.10.0-dev", path = "../../../client/cli" }
+sc-client-db = { version = "0.10.0-dev", path = "../../../client/db" }
+sc-executor = { version = "0.10.0-dev", path = "../../../client/executor" }
+sp-externalities = { version = "0.10.0-dev", path = "../../../primitives/externalities" }
+sp-keystore = { version = "0.10.0-dev", path = "../../../primitives/keystore" }
+sp-runtime = { version = "4.0.0-dev", path = "../../../primitives/runtime" }
+sp-state-machine = { version = "0.10.0-dev", path = "../../../primitives/state-machine" }
 codec = { version = "2.0.0", package = "parity-scale-codec" }
 structopt = "0.3.8"
 chrono = "0.4"
diff --git a/substrate/utils/frame/frame-utilities-cli/Cargo.toml b/substrate/utils/frame/frame-utilities-cli/Cargo.toml
index 1fdf4e4cd9a9707d92dee588feefa54788b26919..1b6597fc9f2fcc4cca5ea9ca2562442f979eb095 100644
--- a/substrate/utils/frame/frame-utilities-cli/Cargo.toml
+++ b/substrate/utils/frame/frame-utilities-cli/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "substrate-frame-cli"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -11,12 +11,12 @@ documentation = "https://docs.rs/substrate-frame-cli"
 readme = "README.md"
 
 [dependencies]
-sp-core = { version = "3.0.0", path = "../../../primitives/core" }
-sc-cli = { version = "0.9.0", path = "../../../client/cli" }
-sp-runtime = { version = "3.0.0", path = "../../../primitives/runtime" }
+sp-core = { version = "4.0.0-dev", path = "../../../primitives/core" }
+sc-cli = { version = "0.10.0-dev", path = "../../../client/cli" }
+sp-runtime = { version = "4.0.0-dev", path = "../../../primitives/runtime" }
 structopt = "0.3.8"
-frame-system = { version = "3.0.0", path = "../../../frame/system" }
-frame-support = { version = "3.0.0", path = "../../../frame/support" }
+frame-system = { version = "4.0.0-dev", path = "../../../frame/system" }
+frame-support = { version = "4.0.0-dev", path = "../../../frame/support" }
 
 [dev-dependencies]
 
diff --git a/substrate/utils/frame/remote-externalities/Cargo.toml b/substrate/utils/frame/remote-externalities/Cargo.toml
index a7519b7e47f33f87abcf09ad86ae4db67fa641d5..3f51b00dd639a09b80927b379516992f32edd150 100644
--- a/substrate/utils/frame/remote-externalities/Cargo.toml
+++ b/substrate/utils/frame/remote-externalities/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "remote-externalities"
-version = "0.9.0"
+version = "0.10.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -23,14 +23,14 @@ codec = { package = "parity-scale-codec", version = "2.0.0" }
 serde_json = "1.0"
 serde = "1.0.0"
 
-sp-io = { version = "3.0.0", path = "../../../primitives/io" }
-sp-core = { version = "3.0.0", path = "../../../primitives/core" }
-sp-runtime = { version = "3.0.0", path = "../../../primitives/runtime" }
+sp-io = { version = "4.0.0-dev", path = "../../../primitives/io" }
+sp-core = { version = "4.0.0-dev", path = "../../../primitives/core" }
+sp-runtime = { version = "4.0.0-dev", path = "../../../primitives/runtime" }
 
 [dev-dependencies]
 tokio = { version = "0.2", features = ["macros", "rt-threaded"] }
-pallet-elections-phragmen = { path = "../../../frame/elections-phragmen", version = "4.0.0" }
-frame-support = { path = "../../../frame/support", version = "3.0.0" }
+pallet-elections-phragmen = { path = "../../../frame/elections-phragmen", version = "5.0.0-dev"}
+frame-support = { path = "../../../frame/support", version = "4.0.0-dev"}
 
 [features]
 remote-test = []
diff --git a/substrate/utils/frame/rpc/support/Cargo.toml b/substrate/utils/frame/rpc/support/Cargo.toml
index ca3705b499a22187993a80725cddeb879bcdded2..4d4631be2025e9a58766944d8eb3b5e23c8ccc24 100644
--- a/substrate/utils/frame/rpc/support/Cargo.toml
+++ b/substrate/utils/frame/rpc/support/Cargo.toml
@@ -17,10 +17,10 @@ jsonrpc-client-transports = { version = "15.1.0", default-features = false, feat
 jsonrpc-core = "15.1.0"
 codec = { package = "parity-scale-codec", version = "2.0.0" }
 serde = "1"
-frame-support = { version = "3.0.0", path = "../../../../frame/support" }
-sp-storage = { version = "3.0.0", path = "../../../../primitives/storage" }
-sc-rpc-api = { version = "0.9.0", path = "../../../../client/rpc-api" }
+frame-support = { version = "4.0.0-dev", path = "../../../../frame/support" }
+sp-storage = { version = "4.0.0-dev", path = "../../../../primitives/storage" }
+sc-rpc-api = { version = "0.10.0-dev", path = "../../../../client/rpc-api" }
 
 [dev-dependencies]
-frame-system = { version = "3.0.0", path = "../../../../frame/system" }
+frame-system = { version = "4.0.0-dev", path = "../../../../frame/system" }
 tokio = "0.2"
diff --git a/substrate/utils/frame/rpc/system/Cargo.toml b/substrate/utils/frame/rpc/system/Cargo.toml
index 3572400cee52715294b17c793595d9b87be487bc..503d8d86e4a4e47adc06509e33a967a386811d96 100644
--- a/substrate/utils/frame/rpc/system/Cargo.toml
+++ b/substrate/utils/frame/rpc/system/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "substrate-frame-rpc-system"
-version = "3.0.0"
+version = "4.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -13,7 +13,7 @@ readme = "README.md"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sc-client-api = { version = "3.0.0", path = "../../../../client/api" }
+sc-client-api = { version = "4.0.0-dev", path = "../../../../client/api" }
 codec = { package = "parity-scale-codec", version = "2.0.0" }
 futures = { version = "0.3.4", features = ["compat"] }
 jsonrpc-core = "15.1.0"
@@ -21,16 +21,16 @@ jsonrpc-core-client = "15.1.0"
 jsonrpc-derive = "15.1.0"
 log = "0.4.8"
 serde = { version = "1.0.101", features = ["derive"] }
-sp-runtime = { version = "3.0.0", path = "../../../../primitives/runtime" }
-sp-api = { version = "3.0.0", path = "../../../../primitives/api" }
-frame-system-rpc-runtime-api = { version = "3.0.0", path = "../../../../frame/system/rpc/runtime-api" }
-sp-core = { version = "3.0.0", path = "../../../../primitives/core" }
-sp-blockchain = { version = "3.0.0", path = "../../../../primitives/blockchain" }
-sc-transaction-pool-api = { version = "3.0.0", path = "../../../../client/transaction-pool/api" }
-sp-block-builder = { version = "3.0.0", path = "../../../../primitives/block-builder" }
-sc-rpc-api = { version = "0.9.0", path = "../../../../client/rpc-api" }
+sp-runtime = { version = "4.0.0-dev", path = "../../../../primitives/runtime" }
+sp-api = { version = "4.0.0-dev", path = "../../../../primitives/api" }
+frame-system-rpc-runtime-api = { version = "4.0.0-dev", path = "../../../../frame/system/rpc/runtime-api" }
+sp-core = { version = "4.0.0-dev", path = "../../../../primitives/core" }
+sp-blockchain = { version = "4.0.0-dev", path = "../../../../primitives/blockchain" }
+sc-transaction-pool-api = { version = "4.0.0-dev", path = "../../../../client/transaction-pool/api" }
+sp-block-builder = { version = "4.0.0-dev", path = "../../../../primitives/block-builder" }
+sc-rpc-api = { version = "0.10.0-dev", path = "../../../../client/rpc-api" }
 
 [dev-dependencies]
 substrate-test-runtime-client = { version = "2.0.0", path = "../../../../test-utils/runtime/client" }
-sp-tracing = { version = "3.0.0", path = "../../../../primitives/tracing" }
-sc-transaction-pool = { version = "3.0.0", path = "../../../../client/transaction-pool" }
+sp-tracing = { version = "4.0.0-dev", path = "../../../../primitives/tracing" }
+sc-transaction-pool = { version = "4.0.0-dev", path = "../../../../client/transaction-pool" }
diff --git a/substrate/utils/frame/try-runtime/cli/Cargo.toml b/substrate/utils/frame/try-runtime/cli/Cargo.toml
index 2e2335bc5fff907fddf93ff979be985430184f08..61bfe9290a679b4ec272433c27ac49f619bdd3ef 100644
--- a/substrate/utils/frame/try-runtime/cli/Cargo.toml
+++ b/substrate/utils/frame/try-runtime/cli/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "try-runtime-cli"
-version = "0.9.0"
+version = "0.10.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -18,19 +18,18 @@ parity-scale-codec = { version = "2.0.0" }
 serde = "1.0.0"
 structopt = "0.3.8"
 
-sc-service = { version = "0.9.0", default-features = false, path = "../../../../client/service" }
-sc-cli = { version = "0.9.0", path = "../../../../client/cli" }
-sc-executor = { version = "0.9.0", path = "../../../../client/executor" }
-sc-client-api = { version = "3.0.0", path = "../../../../client/api" }
-sc-chain-spec = { version = "3.0.0", path = "../../../../client/chain-spec" }
-sp-state-machine = { version = "0.9.0", path = "../../../../primitives/state-machine" }
-sp-api = { version = "3.0.0", path = "../../../../primitives/api" }
-sp-blockchain = { version = "3.0.0", path = "../../../../primitives/blockchain" }
-sp-runtime = { version = "3.0.0", path = "../../../../primitives/runtime" }
-sp-externalities = { version = "0.9.0", path = "../../../../primitives/externalities" }
-sp-core = { version = "3.0.0", path = "../../../../primitives/core" }
-sp-io = { version = "3.0.0", path = "../../../../primitives/io" }
-sp-keystore = { version = "0.9.0", path = "../../../../primitives/keystore" }
-frame-try-runtime = { version = "0.9.0", path = "../../../../frame/try-runtime" }
+sc-service = { version = "0.10.0-dev", default-features = false, path = "../../../../client/service" }
+sc-cli = { version = "0.10.0-dev", path = "../../../../client/cli" }
+sc-executor = { version = "0.10.0-dev", path = "../../../../client/executor" }
+sc-client-api = { version = "4.0.0-dev", path = "../../../../client/api" }
+sc-chain-spec = { version = "4.0.0-dev", path = "../../../../client/chain-spec" }
+sp-state-machine = { version = "0.10.0-dev", path = "../../../../primitives/state-machine" }
+sp-api = { version = "4.0.0-dev", path = "../../../../primitives/api" }
+sp-blockchain = { version = "4.0.0-dev", path = "../../../../primitives/blockchain" }
+sp-runtime = { version = "4.0.0-dev", path = "../../../../primitives/runtime" }
+sp-externalities = { version = "0.10.0-dev", path = "../../../../primitives/externalities" }
+sp-core = { version = "4.0.0-dev", path = "../../../../primitives/core" }
+sp-keystore = { version = "0.10.0-dev", path = "../../../../primitives/keystore" }
+frame-try-runtime = { version = "0.10.0-dev", path = "../../../../frame/try-runtime" }
 
-remote-externalities = { version = "0.9.0", path = "../../remote-externalities" }
+remote-externalities = { version = "0.10.0-dev", path = "../../remote-externalities" }
diff --git a/substrate/utils/wasm-builder/Cargo.toml b/substrate/utils/wasm-builder/Cargo.toml
index 09c86ca76cc18576c70a9fbb0de58ae9f302fbfb..0b0182b4302adba30453171d981cae8c4d69220b 100644
--- a/substrate/utils/wasm-builder/Cargo.toml
+++ b/substrate/utils/wasm-builder/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "substrate-wasm-builder"
-version = "4.0.0"
+version = "5.0.0-dev"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "Utility for building WASM binaries"
 edition = "2018"
@@ -21,4 +21,4 @@ walkdir = "2.3.1"
 wasm-gc-api = "0.1.11"
 atty = "0.2.13"
 ansi_term = "0.12.1"
-sp-maybe-compressed-blob = { version = "3.0.0", path = "../../primitives/maybe-compressed-blob" }
+sp-maybe-compressed-blob = { version = "4.0.0-dev", path = "../../primitives/maybe-compressed-blob" }