From c78c2892a4ec47b67c39c43fe52b3c32cae21169 Mon Sep 17 00:00:00 2001
From: Benjamin Kampmann <ben@gnunicorn.org>
Date: Sun, 11 Jul 2021 14:17:53 +0200
Subject: [PATCH] Attempting to fix publishing (#9140)

* mark template and utils as non-publish

* switch to development version for testing

* activate unleash check

* maybe if I disable all rules...

* Fix isolated compilation of `max-encoded-len-derive` with `syn`

error[E0369]: binary operation `==` cannot be applied to type `syn::Path`
  --> src/lib.rs:88:29
   |
88 |             .filter(|attr| attr.path == parse_quote!(max_encoded_len_crate))
   |                            --------- ^^ ----------------------------------- _
   |                            |
   |                            syn::Path

error: aborting due to previous error

For more information about this error, try `rustc --explain E0369`.
Error: could not compile `max-encoded-len-derive`

* WIP: bump changes crates since v3 tag to next breaking

cargo unleash version bump-breaking --changed-since v3.0.0
cargo unleash version set-pre dev --changed-since v3.0.0

FIXME: Don't modify crates that are not yet released, e.g.
`max-encoded-len-derive`

* Update lockfile

* WIP: Bump sp-transaction-pool as well

* WIP: Bump sp-offchain as well

* WIP: Bump frame-system-rpc-runtime-api as well

* WIP: Bump sp-authority-discovery as well

* Manually deactivate dev-deps before `cargo unleash check`

Otherwise we run into `Cycle detected` error.

* Bump sp-consensus-slots

* Add missing Cargo.lock change

* Bump sp-consensus-vrf as well

* Bump sp-keyring as well

* Bump sp-consensus-pow as well

* Try to speed up the `unleash-check` job

Previously, the job took 106 minutes - let's see if explicitly
specifying a `CARGO_TARGET_DIR` will help

* fixup: Ensure the temp target dir exists for unleash check

* Bump pallet-transaction-payment-rpc-runtime-api as well

Needed for Polkadot

* Bump pallet-transaction-payment-rpc as well

Needed for Polkadot

* Try updating crates after patching in the Polkadot CI job

* Use another approach to update patched Substrate crates

* Try to update all sp-core versions in Polkadot CI job

* Simplify sp-core version checking

* Apply another shellcheck lint

* Just do the simplest thing I guess

* Welp don't do --offline then

* Clean up `unleash-check` job triggers

Co-authored-by: Denis Pisarev <denis.pisarev@parity.io>

* Fix a note in unleash-check cache step

* Add a note about temporary optimization in cargo-unleash

* Pin a newer version of cargo-unleash

Co-authored-by: Igor Matuszewski <xanewok@gmail.com>
Co-authored-by: Denis Pisarev <denis.pisarev@parity.io>
---
 substrate/.gitlab-ci.yml                      |  13 +-
 .../gitlab/check_polkadot_companion_build.sh  |   7 +
 substrate/Cargo.lock                          | 350 +++++++++---------
 substrate/bin/node-template/node/Cargo.toml   |  57 +--
 .../node-template/pallets/template/Cargo.toml |  13 +-
 .../bin/node-template/runtime/Cargo.toml      |  53 +--
 substrate/bin/node/bench/Cargo.toml           |  32 +-
 substrate/bin/node/browser-testing/Cargo.toml |   6 +-
 substrate/bin/node/cli/Cargo.toml             | 129 +++----
 substrate/bin/node/executor/Cargo.toml        |  50 +--
 substrate/bin/node/inspect/Cargo.toml         |  14 +-
 substrate/bin/node/primitives/Cargo.toml      |   8 +-
 substrate/bin/node/rpc-client/Cargo.toml      |   4 +-
 substrate/bin/node/rpc/Cargo.toml             |  46 +--
 substrate/bin/node/runtime/Cargo.toml         | 138 +++----
 .../bin/node/test-runner-example/Cargo.toml   |  48 +--
 substrate/bin/node/testing/Cargo.toml         |  62 ++--
 .../bin/utils/chain-spec-builder/Cargo.toml   |  11 +-
 substrate/bin/utils/subkey/Cargo.toml         |   3 +-
 substrate/client/allocator/Cargo.toml         |   6 +-
 substrate/client/api/Cargo.toml               |  36 +-
 .../client/authority-discovery/Cargo.toml     |  22 +-
 substrate/client/basic-authorship/Cargo.toml  |  24 +-
 substrate/client/block-builder/Cargo.toml     |  20 +-
 substrate/client/chain-spec/Cargo.toml        |  20 +-
 substrate/client/chain-spec/derive/Cargo.toml |   2 +-
 substrate/client/cli/Cargo.toml               |  28 +-
 substrate/client/consensus/aura/Cargo.toml    |  50 +--
 substrate/client/consensus/babe/Cargo.toml    |  58 +--
 .../client/consensus/babe/rpc/Cargo.toml      |  30 +-
 substrate/client/consensus/common/Cargo.toml  |  10 +-
 substrate/client/consensus/epochs/Cargo.toml  |  10 +-
 .../client/consensus/manual-seal/Cargo.toml   |  36 +-
 substrate/client/consensus/pow/Cargo.toml     |  20 +-
 substrate/client/consensus/slots/Cargo.toml   |  30 +-
 substrate/client/consensus/uncles/Cargo.toml  |   8 +-
 substrate/client/db/Cargo.toml                |  28 +-
 substrate/client/executor/Cargo.toml          |  36 +-
 substrate/client/executor/common/Cargo.toml   |  10 +-
 .../client/executor/runtime-test/Cargo.toml   |  14 +-
 substrate/client/executor/wasmi/Cargo.toml    |  12 +-
 substrate/client/executor/wasmtime/Cargo.toml |  14 +-
 .../finality-grandpa-warp-sync/Cargo.toml     |  22 +-
 substrate/client/finality-grandpa/Cargo.toml  |  48 +--
 .../client/finality-grandpa/rpc/Cargo.toml    |  26 +-
 substrate/client/informant/Cargo.toml         |  12 +-
 substrate/client/keystore/Cargo.toml          |   8 +-
 substrate/client/light/Cargo.toml             |  18 +-
 substrate/client/network-gossip/Cargo.toml    |   6 +-
 substrate/client/network/Cargo.toml           |  24 +-
 substrate/client/network/test/Cargo.toml      |  22 +-
 substrate/client/offchain/Cargo.toml          |  30 +-
 substrate/client/peerset/Cargo.toml           |   4 +-
 substrate/client/rpc-api/Cargo.toml           |  16 +-
 substrate/client/rpc-servers/Cargo.toml       |   4 +-
 substrate/client/rpc/Cargo.toml               |  50 +--
 substrate/client/service/Cargo.toml           |  80 ++--
 substrate/client/service/test/Cargo.toml      |  36 +-
 substrate/client/state-db/Cargo.toml          |   6 +-
 substrate/client/sync-state-rpc/Cargo.toml    |  18 +-
 substrate/client/telemetry/Cargo.toml         |   2 +-
 substrate/client/tracing/Cargo.toml           |  26 +-
 .../client/tracing/proc-macro/Cargo.toml      |   2 +-
 substrate/client/transaction-pool/Cargo.toml  |  26 +-
 .../client/transaction-pool/api/Cargo.toml    |   6 +-
 .../client/transaction-pool/graph/Cargo.toml  |  12 +-
 substrate/frame/assets/Cargo.toml             |  20 +-
 substrate/frame/atomic-swap/Cargo.toml        |  16 +-
 substrate/frame/aura/Cargo.toml               |  22 +-
 .../frame/authority-discovery/Cargo.toml      |  22 +-
 substrate/frame/authorship/Cargo.toml         |  16 +-
 substrate/frame/babe/Cargo.toml               |  42 +--
 substrate/frame/balances/Cargo.toml           |  18 +-
 substrate/frame/benchmarking/Cargo.toml       |  18 +-
 substrate/frame/bounties/Cargo.toml           |  22 +-
 substrate/frame/collective/Cargo.toml         |  18 +-
 substrate/frame/contracts/Cargo.toml          |  28 +-
 substrate/frame/contracts/common/Cargo.toml   |   8 +-
 .../frame/contracts/proc-macro/Cargo.toml     |   2 +-
 substrate/frame/contracts/rpc/Cargo.toml      |  16 +-
 .../contracts/rpc/runtime-api/Cargo.toml      |  10 +-
 substrate/frame/democracy/Cargo.toml          |  24 +-
 .../election-provider-multi-phase/Cargo.toml  |  38 +-
 .../election-provider-support/Cargo.toml      |  16 +-
 substrate/frame/elections-phragmen/Cargo.toml |  24 +-
 substrate/frame/elections/Cargo.toml          |  16 +-
 .../frame/example-offchain-worker/Cargo.toml  |  16 +-
 substrate/frame/example-parallel/Cargo.toml   |  16 +-
 substrate/frame/example/Cargo.toml            |  18 +-
 substrate/frame/executive/Cargo.toml          |  30 +-
 substrate/frame/gilt/Cargo.toml               |  20 +-
 substrate/frame/grandpa/Cargo.toml            |  44 +--
 substrate/frame/identity/Cargo.toml           |  18 +-
 substrate/frame/im-online/Cargo.toml          |  24 +-
 substrate/frame/indices/Cargo.toml            |  20 +-
 substrate/frame/lottery/Cargo.toml            |  18 +-
 substrate/frame/membership/Cargo.toml         |  16 +-
 .../frame/merkle-mountain-range/Cargo.toml    |  18 +-
 .../primitives/Cargo.toml                     |  14 +-
 .../merkle-mountain-range/rpc/Cargo.toml      |  12 +-
 substrate/frame/metadata/Cargo.toml           |   6 +-
 substrate/frame/multisig/Cargo.toml           |  20 +-
 substrate/frame/nicks/Cargo.toml              |  16 +-
 substrate/frame/node-authorization/Cargo.toml |  14 +-
 substrate/frame/offences/Cargo.toml           |  18 +-
 .../frame/offences/benchmarking/Cargo.toml    |  38 +-
 substrate/frame/proxy/Cargo.toml              |  22 +-
 .../randomness-collective-flip/Cargo.toml     |  14 +-
 substrate/frame/recovery/Cargo.toml           |  16 +-
 substrate/frame/scheduler/Cargo.toml          |  18 +-
 substrate/frame/scored-pool/Cargo.toml        |  16 +-
 substrate/frame/session/Cargo.toml            |  24 +-
 .../frame/session/benchmarking/Cargo.toml     |  30 +-
 substrate/frame/society/Cargo.toml            |  16 +-
 substrate/frame/staking/Cargo.toml            |  42 +--
 .../frame/staking/reward-curve/Cargo.toml     |   4 +-
 substrate/frame/staking/reward-fn/Cargo.toml  |   4 +-
 substrate/frame/sudo/Cargo.toml               |  14 +-
 substrate/frame/support/Cargo.toml            |  26 +-
 substrate/frame/support/procedural/Cargo.toml |   4 +-
 .../frame/support/procedural/tools/Cargo.toml |   2 +-
 substrate/frame/support/test/Cargo.toml       |  16 +-
 substrate/frame/system/Cargo.toml             |  16 +-
 .../frame/system/benchmarking/Cargo.toml      |  16 +-
 .../frame/system/rpc/runtime-api/Cargo.toml   |   4 +-
 substrate/frame/timestamp/Cargo.toml          |  22 +-
 substrate/frame/tips/Cargo.toml               |  22 +-
 .../frame/transaction-payment/Cargo.toml      |  18 +-
 .../frame/transaction-payment/rpc/Cargo.toml  |  14 +-
 .../rpc/runtime-api/Cargo.toml                |   8 +-
 .../frame/transaction-storage/Cargo.toml      |  24 +-
 substrate/frame/treasury/Cargo.toml           |  20 +-
 substrate/frame/try-runtime/Cargo.toml        |  10 +-
 substrate/frame/uniques/Cargo.toml            |  22 +-
 substrate/frame/utility/Cargo.toml            |  20 +-
 substrate/frame/vesting/Cargo.toml            |  20 +-
 substrate/primitives/api/Cargo.toml           |  14 +-
 .../primitives/api/proc-macro/Cargo.toml      |   2 +-
 substrate/primitives/api/test/Cargo.toml      |  18 +-
 .../primitives/application-crypto/Cargo.toml  |   8 +-
 .../application-crypto/test/Cargo.toml        |  10 +-
 substrate/primitives/arithmetic/Cargo.toml    |   4 +-
 .../primitives/arithmetic/fuzzer/Cargo.toml   |   2 +-
 .../primitives/authority-discovery/Cargo.toml |  10 +-
 substrate/primitives/authorship/Cargo.toml    |   8 +-
 substrate/primitives/block-builder/Cargo.toml |  10 +-
 substrate/primitives/blockchain/Cargo.toml    |  12 +-
 .../primitives/consensus/aura/Cargo.toml      |  18 +-
 .../primitives/consensus/babe/Cargo.toml      |  24 +-
 .../primitives/consensus/common/Cargo.toml    |  20 +-
 substrate/primitives/consensus/pow/Cargo.toml |  10 +-
 .../primitives/consensus/slots/Cargo.toml     |   6 +-
 substrate/primitives/consensus/vrf/Cargo.toml |   8 +-
 substrate/primitives/core/Cargo.toml          |  10 +-
 substrate/primitives/database/Cargo.toml      |   2 +-
 substrate/primitives/externalities/Cargo.toml |   6 +-
 .../primitives/finality-grandpa/Cargo.toml    |  14 +-
 substrate/primitives/inherents/Cargo.toml     |   8 +-
 substrate/primitives/io/Cargo.toml            |  22 +-
 substrate/primitives/keyring/Cargo.toml       |   6 +-
 substrate/primitives/keystore/Cargo.toml      |   6 +-
 .../maybe-compressed-blob/Cargo.toml          |   2 +-
 .../primitives/npos-elections/Cargo.toml      |  14 +-
 .../npos-elections/compact/Cargo.toml         |   6 +-
 .../npos-elections/fuzzer/Cargo.toml          |   8 +-
 substrate/primitives/offchain/Cargo.toml      |  10 +-
 substrate/primitives/rpc/Cargo.toml           |   4 +-
 .../primitives/runtime-interface/Cargo.toml   |  20 +-
 .../runtime-interface/proc-macro/Cargo.toml   |   2 +-
 .../test-wasm-deprecated/Cargo.toml           |  10 +-
 .../runtime-interface/test-wasm/Cargo.toml    |  10 +-
 .../runtime-interface/test/Cargo.toml         |  14 +-
 substrate/primitives/runtime/Cargo.toml       |  18 +-
 substrate/primitives/sandbox/Cargo.toml       |  10 +-
 substrate/primitives/session/Cargo.toml       |  12 +-
 substrate/primitives/staking/Cargo.toml       |   6 +-
 substrate/primitives/state-machine/Cargo.toml |  12 +-
 substrate/primitives/std/Cargo.toml           |   2 +-
 substrate/primitives/storage/Cargo.toml       |   4 +-
 substrate/primitives/tasks/Cargo.toml         |  12 +-
 .../primitives/test-primitives/Cargo.toml     |   6 +-
 substrate/primitives/timestamp/Cargo.toml     |  10 +-
 substrate/primitives/tracing/Cargo.toml       |   4 +-
 .../primitives/transaction-pool/Cargo.toml    |   6 +-
 .../transaction-storage-proof/Cargo.toml      |  12 +-
 substrate/primitives/trie/Cargo.toml          |   8 +-
 substrate/primitives/utils/Cargo.toml         |   2 +-
 substrate/primitives/version/Cargo.toml       |   8 +-
 .../primitives/version/proc-macro/Cargo.toml  |   4 +-
 .../primitives/wasm-interface/Cargo.toml      |   4 +-
 substrate/test-utils/Cargo.toml               |   6 +-
 substrate/test-utils/client/Cargo.toml        |  28 +-
 substrate/test-utils/derive/Cargo.toml        |   2 +-
 substrate/test-utils/runtime/Cargo.toml       |  58 +--
 .../test-utils/runtime/client/Cargo.toml      |  20 +-
 .../runtime/transaction-pool/Cargo.toml       |   8 +-
 substrate/test-utils/test-crate/Cargo.toml    |   4 +-
 substrate/test-utils/test-runner/Cargo.toml   |  60 +--
 substrate/utils/browser/Cargo.toml            |  14 +-
 .../utils/frame/benchmarking-cli/Cargo.toml   |  24 +-
 .../frame/frame-utilities-cli/Cargo.toml      |  12 +-
 .../frame/remote-externalities/Cargo.toml     |  12 +-
 substrate/utils/frame/rpc/support/Cargo.toml  |   8 +-
 substrate/utils/frame/rpc/system/Cargo.toml   |  24 +-
 .../utils/frame/try-runtime/cli/Cargo.toml    |  31 +-
 substrate/utils/wasm-builder/Cargo.toml       |   4 +-
 206 files changed, 2097 insertions(+), 2084 deletions(-)

diff --git a/substrate/.gitlab-ci.yml b/substrate/.gitlab-ci.yml
index 2ffa8a4b977..727ee204964 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 89780f082e4..531155b73df 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 c40c48a9b44..38a401f11ac 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 88657934b1d..21f28764eab 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 df76d20a4a7..60118013c11 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 6234f8958aa..72e19cc62b0 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 523353c95ea..b7b1101b92f 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 f66a0a2ea1a..bb92d6d6145 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 c8d7d4728b0..3b6c35ecb34 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 b08d1d78b4a..5b0617d6af8 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 3d89a68aed3..abd54cdbcd9 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 043ec5ab21c..170983d7e09 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 1d9819de24b..9ccb6c0817f 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 1c9f33d7c22..464971379c4 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 c84c6a07b63..78e46edbd64 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 7b865820313..5882a73982e 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 706816ddae6..e2a4555e679 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 3c60d654db9..5bdf01badc3 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 1adbd88c721..9bd38a21a66 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 43a3bae4e52..5ebab6cf9d6 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 044ef78a07f..29d38147b98 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 5b5baa999c8..bca84d18d08 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 47dc04a3786..469df55cf02 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 1019e2411c6..557b324efc9 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 2eddec524ca..e6d9aa97153 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 8df820a46ae..6823c139dbe 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 00a56e5fa9b..82325238ca0 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 27c1534032f..36187871aa8 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 9ada9fda621..f9dc45ed9c6 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 71a1205e3c7..12bce64c3af 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 32babb02c2b..c8d86b06115 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 8e2fe771009..78e5cc31ea0 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 f7c2e98656c..5cb2c13c823 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 443b852c41e..e484665cc3f 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 51382198f50..72c3a4ddbf3 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 ab88d4496fe..7e821db197b 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 2145b988891..5873883a11e 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 1f10c65e12f..a96163f200d 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 75cfcd3d2d8..4457780f8cd 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 9e1cd5bb09e..a4fbc88cf56 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 dbdf26b63d2..c1e5b3d2672 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 1b8606c440b..e2736cd375a 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 27728e159c7..43a7cc0565c 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 3cb577aee5d..8815f70f3cc 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 97359120fca..e965f9279bd 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 f0343a6bf38..73d2a902530 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 fd9fd162e61..b3b1d798125 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 1b45dbf5c0c..4dee5d55e7d 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 fc5fb9a29ce..ed9dd45d99f 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 3740ebceb63..056ae5cbaa0 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 18a8d5cf8ca..2fc453a8c5a 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 9f0fbdb64dc..977df259f5c 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 5910116ec01..1af585df535 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 53c9a07fe00..057a692e83c 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 95c3e4194cd..5f090ed3e73 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 c4cfc40c34d..67e78c8de8d 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 fa424a9d0b2..2129bc1610f 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 27aa14b0d2b..e7e627f919c 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 ca538f9d651..40997f65d22 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 3ec48ac9ec5..0402d16ae00 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 6e6ae408247..e4ea3e25d63 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 1121b922494..5d93b26dfbb 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 3c06a75f0a1..fbde99a1a21 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 988f252a634..10f1ed2f09f 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 8ec74b17b6e..d0dcfa34fe2 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 9af2b152d8c..492ca89f503 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 7137cf1d789..504dd6957ae 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 4fd1284893f..2519772ed46 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 5b247b008de..9c4a31017ba 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 25fec911823..33faf0183e7 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 56c56e23dfc..f0d597b6ad7 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 64497eafe71..f1a93bb418e 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 724fadf48c5..8b66f08d45d 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 beff930161a..c7908c3f97b 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 1845f77e97a..7385f717af1 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 c4940c87f82..4f134b2173b 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 e9f7236629a..a0d7da0c5d0 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 154ceeb8913..e353b3af047 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 2bdde32e0bd..605c69fe73e 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 dbd4356acc4..32aa9e21a1a 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 8ce1c13e667..fb5addc5a43 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 f9b0d035b08..178578992ad 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 cd84ef3778c..c78fba0a569 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 b360cd89eb5..c0d332315b0 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 aa2b564f73f..dc0088c12a5 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 d4b84f5bb15..b1f49d77805 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 ea9fb9699ec..c6b13d11095 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 2c593db7ec9..ab1b8bfbfae 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 258648b52e5..08d7af4ef67 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 a923f926a09..7b5be2ceec1 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 0b40f6ad4d6..a6e59a2dcd6 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 5c3cac8f821..9e60ad0fb3c 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 ed905d407d9..b04594b7378 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 2e816a6bb85..1208da3b3f3 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 4b60ec8bc3c..1ef4527f607 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 73de239a4d8..a0368c2e654 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 37f9552598c..3200d986feb 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 6ca451c4ab4..03b80a3339e 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 62a6f4ff1cd..94b56a00640 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 4730dbc7ea4..38c9bbe8aa1 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 cede8a83612..57ba40efea9 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 7657f64c819..f53df246096 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 12db6f905f2..02e64491650 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 6e657758e8e..35b02747e40 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 a34c5f6bc3a..6d8038605cb 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 acfb5b1b0dc..89849d86d74 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 821d26556c4..ac33c3d14c8 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 5ae350ffcac..016d56142ec 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 acfd2f613f8..e38f1fd35aa 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 8fb5d148662..93f76b2369f 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 0b2f4a81988..dc85e8d2ca8 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 efe7bc133fb..40f1e58c928 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 9754c16f375..58f68899d18 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 f9c29900619..b058733b3ce 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 908e361e667..af5b5a976d6 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 fe5e0f4a947..3b4b9db452b 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 15b17a5e716..076e05bf2a6 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 a73dfaeb1d9..f19afd2d61a 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 d87f1b1ef30..72fd4f9cd6b 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 4a00a24e384..ba71a7d12c6 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 316aae0a17a..2ff49f96e4d 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 ce5c8ea7de1..001c88ba48f 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 4306dbd6448..61e35c552a3 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 1a9317c69bf..b6a5447199b 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 56619d59ddc..fce29612b4d 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 7a57c5e88a6..7e8cd7dd751 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 a16c9b91327..32deca37e74 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 c5c7c34a727..6406b41a519 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 b5e0fd91e1c..785a7c9c96a 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 bb84364a9df..2f78f2439c6 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 8892e234d43..4504b9a07e2 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 da0ffcb725c..339ce196071 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 9c1919d380b..b9eac961cf2 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 f007744dc64..53069b5401d 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 1eb92df4eca..8f9e18c610f 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 25890fea038..f035bcf7d00 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 c284d1f4791..07f7e100e16 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 d07285fe215..2c47554aef4 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 d0c45fb7545..5c2250a2ad4 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 050d2468aa0..3eee10d8c6f 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 92a2ea8f3b8..468bfee3cc0 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 fa3c3b358f3..77f298ad46f 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 c79edb99fb4..14f75132afb 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 a32b13ca728..c900324d855 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 a9428f8422f..f6021bd7a2a 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 6081e872786..d7fa0f2ef85 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 c37686c0df7..f3bbde49722 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 2ae4259a21e..f989b2a1897 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 0fc09e11032..aa5f29db0df 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 038a28ddab3..07cc36e2e31 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 850f0efe47e..f93eeca2fb2 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 46dbaca1a6a..9619f627a0b 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 15a9318cd44..124cbf423f0 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 6746e8599e6..e3b5613e06b 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 f8693449af8..c99651d4ef0 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 8552f50ec71..52a6300688c 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 ec9e89105d5..57a977f6174 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 54ce09306e1..353735f806c 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 e63fcb90957..da9a8fc8320 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 ee71687f1ef..a14e98d3d80 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 d4ebfc1c74c..4c2408c831b 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 e647606f159..720fc4281ca 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 5bca1e0bb85..02e898051d9 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 78432d777a0..7188128ad29 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 3154a7861d3..775f9a1c211 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 1e3d0a34b26..500d3e8b867 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 9a502c99d31..e740d0be88f 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 c418ef44cef..9b51af70505 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 ae74ff739b1..dcf8a4662b9 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 91febf68ed2..3ae5d78b0ef 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 d0a61c5b920..7c7d3e10b2d 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 fb9b3c4b71e..686eb1b1a13 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 b38bbbb663d..78d141edb19 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 dc6103bfa6a..f15f1c02d51 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 c04b271bc03..91677b474d9 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 cf2347082a8..85f5487da88 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 00050116280..e5c9ea98906 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 bafa1ea7ef4..bf815c1c80c 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 7a984d92056..40566deb06b 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 0a361b6c8db..ee503ae9b85 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 f1f2c70bf23..c7b901e848e 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 3fc8e76f40f..512635f3192 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 2c4b7dc12c7..d5fb07ad076 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 d6c2d716ee8..3f77014ac53 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 bbdcb9f989f..b04dbbc1124 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 e13bc68fb96..60356e0a8d6 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 7669cee346d..bb5b1da59d4 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 877897c54c2..62f625d1e38 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 ea3144090c7..e394353e52a 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 97171310b41..ba8a7b4e4b4 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 24a794ff480..983574915f2 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 925a69e41bb..26661b8209c 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 501a7058c63..991183edf4a 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 60283bb97d1..371f2fd5a13 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 0c822f0cdff..24e9f8af294 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 f0c5a19869d..420d052829a 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 846b14fe077..6ab53fc752e 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 cf171b0ea5e..a4c2bf84ab4 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 eac1730d5ce..c1f4c20c364 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 4a88a31b7f6..d6f8da089f1 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 1fdf4e4cd9a..1b6597fc9f2 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 a7519b7e47f..3f51b00dd63 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 ca3705b499a..4d4631be202 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 3572400cee5..503d8d86e4a 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 2e2335bc5ff..61bfe9290a6 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 09c86ca76cc..0b0182b4302 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" }
-- 
GitLab