diff --git a/Cargo.lock b/Cargo.lock
index c83eeb050df9cc78981468afdb138958e08e546f..9c5a2c57da004903f27e05ee6b39ec627f117689 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -3604,7 +3604,7 @@ dependencies = [
 name = "cumulus-pallet-parachain-system-proc-macro"
 version = "0.1.0"
 dependencies = [
- "proc-macro-crate",
+ "proc-macro-crate 2.0.0",
  "proc-macro2",
  "quote",
  "syn 2.0.38",
@@ -5054,7 +5054,7 @@ checksum = "f5aa1e3ae159e592ad222dc90c5acbad632b527779ba88486abe92782ab268bd"
 dependencies = [
  "expander 0.0.4",
  "indexmap 1.9.3",
- "proc-macro-crate",
+ "proc-macro-crate 1.3.1",
  "proc-macro2",
  "quote",
  "syn 1.0.109",
@@ -5378,7 +5378,7 @@ dependencies = [
  "frame-election-provider-support",
  "frame-support",
  "parity-scale-codec",
- "proc-macro-crate",
+ "proc-macro-crate 2.0.0",
  "proc-macro2",
  "quote",
  "scale-info",
@@ -5543,7 +5543,7 @@ name = "frame-support-procedural-tools"
 version = "4.0.0-dev"
 dependencies = [
  "frame-support-procedural-tools-derive",
- "proc-macro-crate",
+ "proc-macro-crate 2.0.0",
  "proc-macro2",
  "quote",
  "syn 2.0.38",
@@ -6768,7 +6768,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "44e8ab85614a08792b9bff6c8feee23be78c98d0182d4c622c05256ab553892a"
 dependencies = [
  "heck",
- "proc-macro-crate",
+ "proc-macro-crate 1.3.1",
  "proc-macro2",
  "quote",
  "syn 1.0.109",
@@ -8199,7 +8199,7 @@ version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fc076939022111618a5026d3be019fd8b366e76314538ff9a1b59ffbcbf98bcd"
 dependencies = [
- "proc-macro-crate",
+ "proc-macro-crate 1.3.1",
  "proc-macro-error",
  "proc-macro2",
  "quote",
@@ -8843,7 +8843,7 @@ dependencies = [
  "itertools 0.11.0",
  "layout-rs",
  "petgraph",
- "proc-macro-crate",
+ "proc-macro-crate 1.3.1",
  "proc-macro2",
  "quote",
  "syn 1.0.109",
@@ -10654,7 +10654,7 @@ dependencies = [
 name = "pallet-staking-reward-curve"
 version = "4.0.0-dev"
 dependencies = [
- "proc-macro-crate",
+ "proc-macro-crate 2.0.0",
  "proc-macro2",
  "quote",
  "sp-runtime",
@@ -11259,7 +11259,7 @@ version = "3.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "312270ee71e1cd70289dacf597cab7b207aa107d2f28191c2ae45b2ece18a260"
 dependencies = [
- "proc-macro-crate",
+ "proc-macro-crate 1.3.1",
  "proc-macro2",
  "quote",
  "syn 1.0.109",
@@ -13490,6 +13490,15 @@ dependencies = [
  "toml_edit 0.19.14",
 ]
 
+[[package]]
+name = "proc-macro-crate"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7e8366a6159044a37876a2b9817124296703c586a5c92e2c53751fa06d8d43e8"
+dependencies = [
+ "toml_edit 0.20.7",
+]
+
 [[package]]
 name = "proc-macro-error"
 version = "1.0.4"
@@ -14831,7 +14840,7 @@ dependencies = [
 name = "sc-chain-spec-derive"
 version = "4.0.0-dev"
 dependencies = [
- "proc-macro-crate",
+ "proc-macro-crate 2.0.0",
  "proc-macro2",
  "quote",
  "syn 2.0.38",
@@ -16087,7 +16096,7 @@ dependencies = [
 name = "sc-tracing-proc-macro"
 version = "4.0.0-dev"
 dependencies = [
- "proc-macro-crate",
+ "proc-macro-crate 2.0.0",
  "proc-macro2",
  "quote",
  "syn 2.0.38",
@@ -16177,7 +16186,7 @@ version = "2.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "abf2c68b89cafb3b8d918dd07b42be0da66ff202cf1155c5739a4e0c1ea0dc19"
 dependencies = [
- "proc-macro-crate",
+ "proc-macro-crate 1.3.1",
  "proc-macro2",
  "quote",
  "syn 1.0.109",
@@ -16966,7 +16975,7 @@ dependencies = [
  "assert_matches",
  "blake2 0.10.6",
  "expander 2.0.0",
- "proc-macro-crate",
+ "proc-macro-crate 2.0.0",
  "proc-macro2",
  "quote",
  "syn 2.0.38",
@@ -17643,7 +17652,7 @@ version = "11.0.0"
 dependencies = [
  "Inflector",
  "expander 2.0.0",
- "proc-macro-crate",
+ "proc-macro-crate 2.0.0",
  "proc-macro2",
  "quote",
  "syn 2.0.38",
@@ -17655,7 +17664,7 @@ version = "11.0.0"
 source = "git+https://github.com/paritytech/polkadot-sdk#82912acb33a9030c0ef3bf590a34fca09b72dc5f"
 dependencies = [
  "Inflector",
- "proc-macro-crate",
+ "proc-macro-crate 1.3.1",
  "proc-macro2",
  "quote",
  "syn 2.0.38",
@@ -19337,6 +19346,17 @@ dependencies = [
  "winnow",
 ]
 
+[[package]]
+name = "toml_edit"
+version = "0.20.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81"
+dependencies = [
+ "indexmap 2.0.0",
+ "toml_datetime",
+ "winnow",
+]
+
 [[package]]
 name = "toml_edit"
 version = "0.21.0"
@@ -19451,7 +19471,7 @@ version = "1.0.0"
 dependencies = [
  "assert_matches",
  "expander 2.0.0",
- "proc-macro-crate",
+ "proc-macro-crate 2.0.0",
  "proc-macro2",
  "quote",
  "syn 2.0.38",
diff --git a/cumulus/pallets/parachain-system/proc-macro/Cargo.toml b/cumulus/pallets/parachain-system/proc-macro/Cargo.toml
index f4bfdf270626a57de5c6e6d25b34479d5f102d30..ed85b718f503fb44e37c6f57b2b235814e9d0e7d 100644
--- a/cumulus/pallets/parachain-system/proc-macro/Cargo.toml
+++ b/cumulus/pallets/parachain-system/proc-macro/Cargo.toml
@@ -13,7 +13,7 @@ proc-macro = true
 syn = "2.0.38"
 proc-macro2 = "1.0.64"
 quote = "1.0.33"
-proc-macro-crate = "1.3.1"
+proc-macro-crate = "2.0.0"
 
 [features]
 default = ["std"]
diff --git a/polkadot/node/gum/proc-macro/Cargo.toml b/polkadot/node/gum/proc-macro/Cargo.toml
index cd6e19b3dd2829925c0742a5de2ec2fa75741fb3..c775c57070516950e5db0f9cd4388a351048e5f8 100644
--- a/polkadot/node/gum/proc-macro/Cargo.toml
+++ b/polkadot/node/gum/proc-macro/Cargo.toml
@@ -16,7 +16,7 @@ proc-macro = true
 syn = { version = "2.0.38", features = ["extra-traits", "full"] }
 quote = "1.0.28"
 proc-macro2 = "1.0.56"
-proc-macro-crate = "1.1.3"
+proc-macro-crate = "2.0.0"
 expander = "2.0.0"
 
 [dev-dependencies]
diff --git a/substrate/client/chain-spec/derive/Cargo.toml b/substrate/client/chain-spec/derive/Cargo.toml
index 74b8b656a4042bdd348cf2997fa3b9ae686fe2cd..c200d84244d4cde48427e4cde1a1fcd3f8e4ddf7 100644
--- a/substrate/client/chain-spec/derive/Cargo.toml
+++ b/substrate/client/chain-spec/derive/Cargo.toml
@@ -15,7 +15,7 @@ targets = ["x86_64-unknown-linux-gnu"]
 proc-macro = true
 
 [dependencies]
-proc-macro-crate = "1.1.3"
+proc-macro-crate = "2.0.0"
 proc-macro2 = "1.0.56"
 quote = "1.0.28"
 syn = "2.0.38"
diff --git a/substrate/client/tracing/proc-macro/Cargo.toml b/substrate/client/tracing/proc-macro/Cargo.toml
index 2e4a0c8f3eee82836b762fbbb00608398d70f0f4..f0cca5c41b60adece5c7459d192cfb63ade03546 100644
--- a/substrate/client/tracing/proc-macro/Cargo.toml
+++ b/substrate/client/tracing/proc-macro/Cargo.toml
@@ -15,7 +15,7 @@ targets = ["x86_64-unknown-linux-gnu"]
 proc-macro = true
 
 [dependencies]
-proc-macro-crate = "1.1.3"
+proc-macro-crate = "2.0.0"
 proc-macro2 = "1.0.56"
 quote = { version = "1.0.28", features = ["proc-macro"] }
 syn = { version = "2.0.38", features = ["extra-traits", "full", "parsing", "proc-macro"] }
diff --git a/substrate/frame/election-provider-support/solution-type/Cargo.toml b/substrate/frame/election-provider-support/solution-type/Cargo.toml
index 1e3002d5dc49f5f2b272c9fae0a4408e813a95dd..e5d596856616781b93740d97c7264e71de2d7e19 100644
--- a/substrate/frame/election-provider-support/solution-type/Cargo.toml
+++ b/substrate/frame/election-provider-support/solution-type/Cargo.toml
@@ -18,7 +18,7 @@ proc-macro = true
 syn = { version = "2.0.38", features = ["full", "visit"] }
 quote = "1.0.28"
 proc-macro2 = "1.0.56"
-proc-macro-crate = "1.1.3"
+proc-macro-crate = "2.0.0"
 
 [dev-dependencies]
 parity-scale-codec = "3.6.1"
diff --git a/substrate/frame/staking/reward-curve/Cargo.toml b/substrate/frame/staking/reward-curve/Cargo.toml
index 0a725996115990b36e81b7f538f35e2f551dfe6d..2d57dc60fffaf4ed662b8bb5fd56243321ee8f1c 100644
--- a/substrate/frame/staking/reward-curve/Cargo.toml
+++ b/substrate/frame/staking/reward-curve/Cargo.toml
@@ -15,7 +15,7 @@ targets = ["x86_64-unknown-linux-gnu"]
 proc-macro = true
 
 [dependencies]
-proc-macro-crate = "1.1.3"
+proc-macro-crate = "2.0.0"
 proc-macro2 = "1.0.56"
 quote = "1.0.28"
 syn = { version = "2.0.38", features = ["full", "visit"] }
diff --git a/substrate/frame/support/procedural/tools/Cargo.toml b/substrate/frame/support/procedural/tools/Cargo.toml
index 836e55b8a631651e621feb5472d150fa98ef2897..4921a2a942895ad17fd683b3b5e6503d9729a856 100644
--- a/substrate/frame/support/procedural/tools/Cargo.toml
+++ b/substrate/frame/support/procedural/tools/Cargo.toml
@@ -12,7 +12,7 @@ description = "Proc macro helpers for procedural macros"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-proc-macro-crate = "1.1.3"
+proc-macro-crate = "2.0.0"
 proc-macro2 = "1.0.56"
 quote = "1.0.28"
 syn = { version = "2.0.38", features = ["extra-traits", "full", "visit"] }
diff --git a/substrate/primitives/api/proc-macro/Cargo.toml b/substrate/primitives/api/proc-macro/Cargo.toml
index 8188299f533b1c1faf5874cddaba1531199d7e12..232b988124baff5b6987d43f8b1ebc89297c7969 100644
--- a/substrate/primitives/api/proc-macro/Cargo.toml
+++ b/substrate/primitives/api/proc-macro/Cargo.toml
@@ -20,7 +20,7 @@ quote = "1.0.28"
 syn = { version = "2.0.38", features = ["extra-traits", "fold", "full", "visit"] }
 proc-macro2 = "1.0.56"
 blake2 = { version = "0.10.4", default-features = false }
-proc-macro-crate = "1.1.3"
+proc-macro-crate = "2.0.0"
 expander = "2.0.0"
 Inflector = "0.11.4"
 
diff --git a/substrate/primitives/runtime-interface/proc-macro/Cargo.toml b/substrate/primitives/runtime-interface/proc-macro/Cargo.toml
index 6a06bb9565434a527133c7a55b76d34f5d7fc67e..6018ef6c2d4ea68408b7b055d720ec1bc509ebe1 100644
--- a/substrate/primitives/runtime-interface/proc-macro/Cargo.toml
+++ b/substrate/primitives/runtime-interface/proc-macro/Cargo.toml
@@ -17,7 +17,7 @@ proc-macro = true
 
 [dependencies]
 Inflector = "0.11.4"
-proc-macro-crate = "1.1.3"
+proc-macro-crate = "2.0.0"
 proc-macro2 = "1.0.56"
 quote = "1.0.28"
 expander = "2.0.0"