diff --git a/bridges/primitives/chain-asset-hub-rococo/Cargo.toml b/bridges/chains/chain-asset-hub-rococo/Cargo.toml
similarity index 87%
rename from bridges/primitives/chain-asset-hub-rococo/Cargo.toml
rename to bridges/chains/chain-asset-hub-rococo/Cargo.toml
index 08be719bfd98..336e2b4d4022 100644
--- a/bridges/primitives/chain-asset-hub-rococo/Cargo.toml
+++ b/bridges/chains/chain-asset-hub-rococo/Cargo.toml
@@ -17,7 +17,7 @@ scale-info = { version = "2.11.0", default-features = false, features = ["derive
frame-support = { git = "https://github.com/paritytech/polkadot-sdk", branch = "master", default-features = false }
# Bridge Dependencies
-bp-xcm-bridge-hub-router = { path = "../xcm-bridge-hub-router", default-features = false }
+bp-xcm-bridge-hub-router = { path = "../../primitives/xcm-bridge-hub-router", default-features = false }
[features]
default = ["std"]
diff --git a/bridges/primitives/chain-asset-hub-rococo/src/lib.rs b/bridges/chains/chain-asset-hub-rococo/src/lib.rs
similarity index 100%
rename from bridges/primitives/chain-asset-hub-rococo/src/lib.rs
rename to bridges/chains/chain-asset-hub-rococo/src/lib.rs
diff --git a/bridges/primitives/chain-asset-hub-westend/Cargo.toml b/bridges/chains/chain-asset-hub-westend/Cargo.toml
similarity index 87%
rename from bridges/primitives/chain-asset-hub-westend/Cargo.toml
rename to bridges/chains/chain-asset-hub-westend/Cargo.toml
index d8245c7a8958..99b6c26e2638 100644
--- a/bridges/primitives/chain-asset-hub-westend/Cargo.toml
+++ b/bridges/chains/chain-asset-hub-westend/Cargo.toml
@@ -17,7 +17,7 @@ scale-info = { version = "2.11.0", default-features = false, features = ["derive
frame-support = { git = "https://github.com/paritytech/polkadot-sdk", branch = "master", default-features = false }
# Bridge Dependencies
-bp-xcm-bridge-hub-router = { path = "../xcm-bridge-hub-router", default-features = false }
+bp-xcm-bridge-hub-router = { path = "../../primitives/xcm-bridge-hub-router", default-features = false }
[features]
default = ["std"]
diff --git a/bridges/primitives/chain-asset-hub-westend/src/lib.rs b/bridges/chains/chain-asset-hub-westend/src/lib.rs
similarity index 100%
rename from bridges/primitives/chain-asset-hub-westend/src/lib.rs
rename to bridges/chains/chain-asset-hub-westend/src/lib.rs
diff --git a/bridges/primitives/chain-bridge-hub-cumulus/Cargo.toml b/bridges/chains/chain-bridge-hub-cumulus/Cargo.toml
similarity index 100%
rename from bridges/primitives/chain-bridge-hub-cumulus/Cargo.toml
rename to bridges/chains/chain-bridge-hub-cumulus/Cargo.toml
diff --git a/bridges/primitives/chain-bridge-hub-cumulus/src/lib.rs b/bridges/chains/chain-bridge-hub-cumulus/src/lib.rs
similarity index 100%
rename from bridges/primitives/chain-bridge-hub-cumulus/src/lib.rs
rename to bridges/chains/chain-bridge-hub-cumulus/src/lib.rs
diff --git a/bridges/primitives/chain-bridge-hub-kusama/Cargo.toml b/bridges/chains/chain-bridge-hub-kusama/Cargo.toml
similarity index 100%
rename from bridges/primitives/chain-bridge-hub-kusama/Cargo.toml
rename to bridges/chains/chain-bridge-hub-kusama/Cargo.toml
diff --git a/bridges/primitives/chain-bridge-hub-kusama/src/lib.rs b/bridges/chains/chain-bridge-hub-kusama/src/lib.rs
similarity index 100%
rename from bridges/primitives/chain-bridge-hub-kusama/src/lib.rs
rename to bridges/chains/chain-bridge-hub-kusama/src/lib.rs
diff --git a/bridges/primitives/chain-bridge-hub-polkadot/Cargo.toml b/bridges/chains/chain-bridge-hub-polkadot/Cargo.toml
similarity index 100%
rename from bridges/primitives/chain-bridge-hub-polkadot/Cargo.toml
rename to bridges/chains/chain-bridge-hub-polkadot/Cargo.toml
diff --git a/bridges/primitives/chain-bridge-hub-polkadot/src/lib.rs b/bridges/chains/chain-bridge-hub-polkadot/src/lib.rs
similarity index 100%
rename from bridges/primitives/chain-bridge-hub-polkadot/src/lib.rs
rename to bridges/chains/chain-bridge-hub-polkadot/src/lib.rs
diff --git a/bridges/primitives/chain-bridge-hub-rococo/Cargo.toml b/bridges/chains/chain-bridge-hub-rococo/Cargo.toml
similarity index 100%
rename from bridges/primitives/chain-bridge-hub-rococo/Cargo.toml
rename to bridges/chains/chain-bridge-hub-rococo/Cargo.toml
diff --git a/bridges/chains/chain-bridge-hub-rococo/src/lib.rs b/bridges/chains/chain-bridge-hub-rococo/src/lib.rs
index e69de29bb2d1..c4e697fbe952 100644
--- a/bridges/chains/chain-bridge-hub-rococo/src/lib.rs
+++ b/bridges/chains/chain-bridge-hub-rococo/src/lib.rs
@@ -0,0 +1,111 @@
+// Copyright (C) Parity Technologies (UK) Ltd.
+// This file is part of Parity Bridges Common.
+
+// Parity Bridges Common is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+
+// Parity Bridges Common is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with Parity Bridges Common. If not, see .
+
+//! Module with configuration which reflects BridgeHubRococo runtime setup (AccountId, Headers,
+//! Hashes...)
+
+#![warn(missing_docs)]
+#![cfg_attr(not(feature = "std"), no_std)]
+
+pub use bp_bridge_hub_cumulus::*;
+use bp_messages::*;
+use bp_runtime::{
+ decl_bridge_finality_runtime_apis, decl_bridge_messages_runtime_apis, Chain, ChainId, Parachain,
+};
+use frame_support::dispatch::DispatchClass;
+use sp_runtime::{MultiAddress, MultiSigner, RuntimeDebug};
+
+/// BridgeHubRococo parachain.
+#[derive(RuntimeDebug)]
+pub struct BridgeHubRococo;
+
+impl Chain for BridgeHubRococo {
+ const ID: ChainId = *b"bhro";
+
+ type BlockNumber = BlockNumber;
+ type Hash = Hash;
+ type Hasher = Hasher;
+ type Header = Header;
+
+ type AccountId = AccountId;
+ type Balance = Balance;
+ type Nonce = Nonce;
+ type Signature = Signature;
+
+ fn max_extrinsic_size() -> u32 {
+ *BlockLength::get().max.get(DispatchClass::Normal)
+ }
+
+ fn max_extrinsic_weight() -> Weight {
+ BlockWeightsForAsyncBacking::get()
+ .get(DispatchClass::Normal)
+ .max_extrinsic
+ .unwrap_or(Weight::MAX)
+ }
+}
+
+impl Parachain for BridgeHubRococo {
+ const PARACHAIN_ID: u32 = BRIDGE_HUB_ROCOCO_PARACHAIN_ID;
+}
+
+impl ChainWithMessages for BridgeHubRococo {
+ const WITH_CHAIN_MESSAGES_PALLET_NAME: &'static str =
+ WITH_BRIDGE_HUB_ROCOCO_MESSAGES_PALLET_NAME;
+
+ const MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX: MessageNonce =
+ MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX;
+ const MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX: MessageNonce =
+ MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX;
+}
+
+/// Public key of the chain account that may be used to verify signatures.
+pub type AccountSigner = MultiSigner;
+
+/// The address format for describing accounts.
+pub type Address = MultiAddress;
+
+/// Identifier of BridgeHubRococo in the Rococo relay chain.
+pub const BRIDGE_HUB_ROCOCO_PARACHAIN_ID: u32 = 1013;
+
+/// Name of the With-BridgeHubRococo messages pallet instance that is deployed at bridged chains.
+pub const WITH_BRIDGE_HUB_ROCOCO_MESSAGES_PALLET_NAME: &str = "BridgeRococoMessages";
+
+/// Name of the With-BridgeHubRococo bridge-relayers pallet instance that is deployed at bridged
+/// chains.
+pub const WITH_BRIDGE_HUB_ROCOCO_RELAYERS_PALLET_NAME: &str = "BridgeRelayers";
+
+/// Pallet index of `BridgeWestendMessages: pallet_bridge_messages::`.
+pub const WITH_BRIDGE_ROCOCO_TO_WESTEND_MESSAGES_PALLET_INDEX: u8 = 51;
+/// Pallet index of `BridgePolkadotBulletinMessages: pallet_bridge_messages::`.
+pub const WITH_BRIDGE_ROCOCO_TO_BULLETIN_MESSAGES_PALLET_INDEX: u8 = 61;
+
+decl_bridge_finality_runtime_apis!(bridge_hub_rococo);
+decl_bridge_messages_runtime_apis!(bridge_hub_rococo);
+
+frame_support::parameter_types! {
+ /// The XCM fee that is paid for executing XCM program (with `ExportMessage` instruction) at the Rococo
+ /// BridgeHub.
+ /// (initially was calculated by test `BridgeHubRococo::can_calculate_weight_for_paid_export_message_with_reserve_transfer` + `33%`)
+ pub const BridgeHubRococoBaseXcmFeeInRocs: u128 = 59_034_266;
+
+ /// Transaction fee that is paid at the Rococo BridgeHub for delivering single inbound message.
+ /// (initially was calculated by test `BridgeHubRococo::can_calculate_fee_for_complex_message_delivery_transaction` + `33%`)
+ pub const BridgeHubRococoBaseDeliveryFeeInRocs: u128 = 5_651_581_649;
+
+ /// Transaction fee that is paid at the Rococo BridgeHub for delivering single outbound message confirmation.
+ /// (initially was calculated by test `BridgeHubRococo::can_calculate_fee_for_complex_message_confirmation_transaction` + `33%`)
+ pub const BridgeHubRococoBaseConfirmationFeeInRocs: u128 = 5_380_829_647;
+}
diff --git a/bridges/primitives/chain-bridge-hub-westend/Cargo.toml b/bridges/chains/chain-bridge-hub-westend/Cargo.toml
similarity index 100%
rename from bridges/primitives/chain-bridge-hub-westend/Cargo.toml
rename to bridges/chains/chain-bridge-hub-westend/Cargo.toml
diff --git a/bridges/primitives/chain-bridge-hub-westend/src/lib.rs b/bridges/chains/chain-bridge-hub-westend/src/lib.rs
similarity index 100%
rename from bridges/primitives/chain-bridge-hub-westend/src/lib.rs
rename to bridges/chains/chain-bridge-hub-westend/src/lib.rs
diff --git a/bridges/primitives/chain-kusama/Cargo.toml b/bridges/chains/chain-kusama/Cargo.toml
similarity index 75%
rename from bridges/primitives/chain-kusama/Cargo.toml
rename to bridges/chains/chain-kusama/Cargo.toml
index 465acf121d40..56a4386afb8f 100644
--- a/bridges/primitives/chain-kusama/Cargo.toml
+++ b/bridges/chains/chain-kusama/Cargo.toml
@@ -13,9 +13,9 @@ workspace = true
# Bridge Dependencies
-bp-header-chain = { path = "../header-chain", default-features = false }
-bp-polkadot-core = { path = "../polkadot-core", default-features = false }
-bp-runtime = { path = "../runtime", default-features = false }
+bp-header-chain = { path = "../../primitives/header-chain", default-features = false }
+bp-polkadot-core = { path = "../../primitives/polkadot-core", default-features = false }
+bp-runtime = { path = "../../primitives/runtime", default-features = false }
# Substrate Based Dependencies
diff --git a/bridges/primitives/chain-kusama/src/lib.rs b/bridges/chains/chain-kusama/src/lib.rs
similarity index 100%
rename from bridges/primitives/chain-kusama/src/lib.rs
rename to bridges/chains/chain-kusama/src/lib.rs
diff --git a/bridges/primitives/chain-polkadot-bulletin/Cargo.toml b/bridges/chains/chain-polkadot-bulletin/Cargo.toml
similarity index 80%
rename from bridges/primitives/chain-polkadot-bulletin/Cargo.toml
rename to bridges/chains/chain-polkadot-bulletin/Cargo.toml
index 797a893b21c3..1e2bbaf6b8af 100644
--- a/bridges/primitives/chain-polkadot-bulletin/Cargo.toml
+++ b/bridges/chains/chain-polkadot-bulletin/Cargo.toml
@@ -15,10 +15,10 @@ scale-info = { version = "2.11.0", default-features = false, features = ["derive
# Bridge Dependencies
-bp-header-chain = { path = "../header-chain", default-features = false }
-bp-messages = { path = "../messages", default-features = false }
-bp-polkadot-core = { path = "../polkadot-core", default-features = false }
-bp-runtime = { path = "../runtime", default-features = false }
+bp-header-chain = { path = "../../primitives/header-chain", default-features = false }
+bp-messages = { path = "../../primitives/messages", default-features = false }
+bp-polkadot-core = { path = "../../primitives/polkadot-core", default-features = false }
+bp-runtime = { path = "../../primitives/runtime", default-features = false }
# Substrate Based Dependencies
diff --git a/bridges/primitives/chain-polkadot-bulletin/src/lib.rs b/bridges/chains/chain-polkadot-bulletin/src/lib.rs
similarity index 100%
rename from bridges/primitives/chain-polkadot-bulletin/src/lib.rs
rename to bridges/chains/chain-polkadot-bulletin/src/lib.rs
diff --git a/bridges/primitives/chain-polkadot/Cargo.toml b/bridges/chains/chain-polkadot/Cargo.toml
similarity index 75%
rename from bridges/primitives/chain-polkadot/Cargo.toml
rename to bridges/chains/chain-polkadot/Cargo.toml
index 20080a7901b6..5faee3bd34ad 100644
--- a/bridges/primitives/chain-polkadot/Cargo.toml
+++ b/bridges/chains/chain-polkadot/Cargo.toml
@@ -13,9 +13,9 @@ workspace = true
# Bridge Dependencies
-bp-header-chain = { path = "../header-chain", default-features = false }
-bp-polkadot-core = { path = "../polkadot-core", default-features = false }
-bp-runtime = { path = "../runtime", default-features = false }
+bp-header-chain = { path = "../../primitives/header-chain", default-features = false }
+bp-polkadot-core = { path = "../../primitives/polkadot-core", default-features = false }
+bp-runtime = { path = "../../primitives/runtime", default-features = false }
# Substrate Based Dependencies
diff --git a/bridges/primitives/chain-polkadot/src/lib.rs b/bridges/chains/chain-polkadot/src/lib.rs
similarity index 100%
rename from bridges/primitives/chain-polkadot/src/lib.rs
rename to bridges/chains/chain-polkadot/src/lib.rs
diff --git a/bridges/primitives/chain-rococo/Cargo.toml b/bridges/chains/chain-rococo/Cargo.toml
similarity index 75%
rename from bridges/primitives/chain-rococo/Cargo.toml
rename to bridges/chains/chain-rococo/Cargo.toml
index 459ee6f9f051..401611bebbe4 100644
--- a/bridges/primitives/chain-rococo/Cargo.toml
+++ b/bridges/chains/chain-rococo/Cargo.toml
@@ -13,9 +13,9 @@ workspace = true
# Bridge Dependencies
-bp-header-chain = { path = "../header-chain", default-features = false }
-bp-polkadot-core = { path = "../polkadot-core", default-features = false }
-bp-runtime = { path = "../runtime", default-features = false }
+bp-header-chain = { path = "../../primitives/header-chain", default-features = false }
+bp-polkadot-core = { path = "../../primitives/polkadot-core", default-features = false }
+bp-runtime = { path = "../../primitives/runtime", default-features = false }
# Substrate Based Dependencies
diff --git a/bridges/primitives/chain-rococo/src/lib.rs b/bridges/chains/chain-rococo/src/lib.rs
similarity index 100%
rename from bridges/primitives/chain-rococo/src/lib.rs
rename to bridges/chains/chain-rococo/src/lib.rs
diff --git a/bridges/primitives/chain-westend/Cargo.toml b/bridges/chains/chain-westend/Cargo.toml
similarity index 75%
rename from bridges/primitives/chain-westend/Cargo.toml
rename to bridges/chains/chain-westend/Cargo.toml
index 4710da7bb335..d697e2b36c42 100644
--- a/bridges/primitives/chain-westend/Cargo.toml
+++ b/bridges/chains/chain-westend/Cargo.toml
@@ -13,9 +13,9 @@ workspace = true
# Bridge Dependencies
-bp-header-chain = { path = "../header-chain", default-features = false }
-bp-polkadot-core = { path = "../polkadot-core", default-features = false }
-bp-runtime = { path = "../runtime", default-features = false }
+bp-header-chain = { path = "../../primitives/header-chain", default-features = false }
+bp-polkadot-core = { path = "../../primitives/polkadot-core", default-features = false }
+bp-runtime = { path = "../../primitives/runtime", default-features = false }
# Substrate Based Dependencies
diff --git a/bridges/primitives/chain-westend/src/lib.rs b/bridges/chains/chain-westend/src/lib.rs
similarity index 100%
rename from bridges/primitives/chain-westend/src/lib.rs
rename to bridges/chains/chain-westend/src/lib.rs
diff --git a/bridges/primitives/chain-bridge-hub-rococo/src/lib.rs b/bridges/primitives/chain-bridge-hub-rococo/src/lib.rs
deleted file mode 100644
index c4e697fbe952..000000000000
--- a/bridges/primitives/chain-bridge-hub-rococo/src/lib.rs
+++ /dev/null
@@ -1,111 +0,0 @@
-// Copyright (C) Parity Technologies (UK) Ltd.
-// This file is part of Parity Bridges Common.
-
-// Parity Bridges Common is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-
-// Parity Bridges Common is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with Parity Bridges Common. If not, see .
-
-//! Module with configuration which reflects BridgeHubRococo runtime setup (AccountId, Headers,
-//! Hashes...)
-
-#![warn(missing_docs)]
-#![cfg_attr(not(feature = "std"), no_std)]
-
-pub use bp_bridge_hub_cumulus::*;
-use bp_messages::*;
-use bp_runtime::{
- decl_bridge_finality_runtime_apis, decl_bridge_messages_runtime_apis, Chain, ChainId, Parachain,
-};
-use frame_support::dispatch::DispatchClass;
-use sp_runtime::{MultiAddress, MultiSigner, RuntimeDebug};
-
-/// BridgeHubRococo parachain.
-#[derive(RuntimeDebug)]
-pub struct BridgeHubRococo;
-
-impl Chain for BridgeHubRococo {
- const ID: ChainId = *b"bhro";
-
- type BlockNumber = BlockNumber;
- type Hash = Hash;
- type Hasher = Hasher;
- type Header = Header;
-
- type AccountId = AccountId;
- type Balance = Balance;
- type Nonce = Nonce;
- type Signature = Signature;
-
- fn max_extrinsic_size() -> u32 {
- *BlockLength::get().max.get(DispatchClass::Normal)
- }
-
- fn max_extrinsic_weight() -> Weight {
- BlockWeightsForAsyncBacking::get()
- .get(DispatchClass::Normal)
- .max_extrinsic
- .unwrap_or(Weight::MAX)
- }
-}
-
-impl Parachain for BridgeHubRococo {
- const PARACHAIN_ID: u32 = BRIDGE_HUB_ROCOCO_PARACHAIN_ID;
-}
-
-impl ChainWithMessages for BridgeHubRococo {
- const WITH_CHAIN_MESSAGES_PALLET_NAME: &'static str =
- WITH_BRIDGE_HUB_ROCOCO_MESSAGES_PALLET_NAME;
-
- const MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX: MessageNonce =
- MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX;
- const MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX: MessageNonce =
- MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX;
-}
-
-/// Public key of the chain account that may be used to verify signatures.
-pub type AccountSigner = MultiSigner;
-
-/// The address format for describing accounts.
-pub type Address = MultiAddress;
-
-/// Identifier of BridgeHubRococo in the Rococo relay chain.
-pub const BRIDGE_HUB_ROCOCO_PARACHAIN_ID: u32 = 1013;
-
-/// Name of the With-BridgeHubRococo messages pallet instance that is deployed at bridged chains.
-pub const WITH_BRIDGE_HUB_ROCOCO_MESSAGES_PALLET_NAME: &str = "BridgeRococoMessages";
-
-/// Name of the With-BridgeHubRococo bridge-relayers pallet instance that is deployed at bridged
-/// chains.
-pub const WITH_BRIDGE_HUB_ROCOCO_RELAYERS_PALLET_NAME: &str = "BridgeRelayers";
-
-/// Pallet index of `BridgeWestendMessages: pallet_bridge_messages::`.
-pub const WITH_BRIDGE_ROCOCO_TO_WESTEND_MESSAGES_PALLET_INDEX: u8 = 51;
-/// Pallet index of `BridgePolkadotBulletinMessages: pallet_bridge_messages::`.
-pub const WITH_BRIDGE_ROCOCO_TO_BULLETIN_MESSAGES_PALLET_INDEX: u8 = 61;
-
-decl_bridge_finality_runtime_apis!(bridge_hub_rococo);
-decl_bridge_messages_runtime_apis!(bridge_hub_rococo);
-
-frame_support::parameter_types! {
- /// The XCM fee that is paid for executing XCM program (with `ExportMessage` instruction) at the Rococo
- /// BridgeHub.
- /// (initially was calculated by test `BridgeHubRococo::can_calculate_weight_for_paid_export_message_with_reserve_transfer` + `33%`)
- pub const BridgeHubRococoBaseXcmFeeInRocs: u128 = 59_034_266;
-
- /// Transaction fee that is paid at the Rococo BridgeHub for delivering single inbound message.
- /// (initially was calculated by test `BridgeHubRococo::can_calculate_fee_for_complex_message_delivery_transaction` + `33%`)
- pub const BridgeHubRococoBaseDeliveryFeeInRocs: u128 = 5_651_581_649;
-
- /// Transaction fee that is paid at the Rococo BridgeHub for delivering single outbound message confirmation.
- /// (initially was calculated by test `BridgeHubRococo::can_calculate_fee_for_complex_message_confirmation_transaction` + `33%`)
- pub const BridgeHubRococoBaseConfirmationFeeInRocs: u128 = 5_380_829_647;
-}
diff --git a/bridges/relays/bin-substrate/Cargo.toml b/bridges/relays/bin-substrate/Cargo.toml
index 032fc8ce741e..6c0ac1da6fc5 100644
--- a/bridges/relays/bin-substrate/Cargo.toml
+++ b/bridges/relays/bin-substrate/Cargo.toml
@@ -26,15 +26,15 @@ signal-hook-async-std = "0.2.2"
strum = { version = "0.26.2", features = ["derive"] }
# Bridge dependencies
-bp-bridge-hub-polkadot = { path = "../../primitives/chain-bridge-hub-polkadot" }
-bp-bridge-hub-rococo = { path = "../../primitives/chain-bridge-hub-rococo" }
+bp-bridge-hub-polkadot = { path = "../../chains/chain-bridge-hub-polkadot" }
+bp-bridge-hub-rococo = { path = "../../chains/chain-bridge-hub-rococo" }
bp-header-chain = { path = "../../primitives/header-chain" }
bp-messages = { path = "../../primitives/messages" }
bp-parachains = { path = "../../primitives/parachains" }
-bp-polkadot-bulletin = { path = "../../primitives/chain-polkadot-bulletin" }
-bp-polkadot = { path = "../../primitives/chain-polkadot" }
+bp-polkadot-bulletin = { path = "../../chains/chain-polkadot-bulletin" }
+bp-polkadot = { path = "../../chains/chain-polkadot" }
bp-polkadot-core = { path = "../../primitives/polkadot-core" }
-bp-rococo = { path = "../../primitives/chain-rococo" }
+bp-rococo = { path = "../../chains/chain-rococo" }
bp-runtime = { path = "../../primitives/runtime" }
bridge-runtime-common = { path = "../../bin/runtime-common" }
pallet-bridge-parachains = { path = "../../modules/parachains" }
diff --git a/bridges/relays/client-bridge-hub-kusama/Cargo.toml b/bridges/relays/client-bridge-hub-kusama/Cargo.toml
index 6e41bb3fcee8..a02dc26a0a8d 100644
--- a/bridges/relays/client-bridge-hub-kusama/Cargo.toml
+++ b/bridges/relays/client-bridge-hub-kusama/Cargo.toml
@@ -16,11 +16,11 @@ subxt = { version = "0.32.1", default-features = false, features = ["native"] }
# Bridge dependencies
-bp-bridge-hub-kusama = { path = "../../primitives/chain-bridge-hub-kusama" }
+bp-bridge-hub-kusama = { path = "../../chains/chain-bridge-hub-kusama" }
bp-header-chain = { path = "../../primitives/header-chain" }
bp-messages = { path = "../../primitives/messages" }
bp-parachains = { path = "../../primitives/parachains" }
-bp-polkadot = { path = "../../primitives/chain-polkadot" }
+bp-polkadot = { path = "../../chains/chain-polkadot" }
bp-polkadot-core = { path = "../../primitives/polkadot-core" }
bridge-runtime-common = { path = "../../bin/runtime-common" }
relay-substrate-client = { path = "../client-substrate" }
diff --git a/bridges/relays/client-bridge-hub-polkadot/Cargo.toml b/bridges/relays/client-bridge-hub-polkadot/Cargo.toml
index f5fc69d02be2..abfd5bae4f02 100644
--- a/bridges/relays/client-bridge-hub-polkadot/Cargo.toml
+++ b/bridges/relays/client-bridge-hub-polkadot/Cargo.toml
@@ -15,13 +15,13 @@ subxt = { version = "0.32.1", default-features = false, features = ["native"] }
# Bridge dependencies
-bp-bridge-hub-polkadot = { path = "../../primitives/chain-bridge-hub-polkadot" }
+bp-bridge-hub-polkadot = { path = "../../chains/chain-bridge-hub-polkadot" }
bp-header-chain = { path = "../../primitives/header-chain" }
bp-messages = { path = "../../primitives/messages" }
bp-parachains = { path = "../../primitives/parachains" }
-bp-polkadot = { path = "../../primitives/chain-polkadot" }
+bp-polkadot = { path = "../../chains/chain-polkadot" }
bp-polkadot-core = { path = "../../primitives/polkadot-core" }
-bp-kusama = { path = "../../primitives/chain-kusama" }
+bp-kusama = { path = "../../chains/chain-kusama" }
bp-runtime = { path = "../../primitives/runtime" }
bridge-runtime-common = { path = "../../bin/runtime-common" }
relay-substrate-client = { path = "../client-substrate" }
diff --git a/bridges/relays/client-bridge-hub-rococo/Cargo.toml b/bridges/relays/client-bridge-hub-rococo/Cargo.toml
index efccfa5fb60e..70d65ac19453 100644
--- a/bridges/relays/client-bridge-hub-rococo/Cargo.toml
+++ b/bridges/relays/client-bridge-hub-rococo/Cargo.toml
@@ -15,7 +15,7 @@ subxt = { version = "0.32.1", default-features = false, features = ["native"] }
# Bridge dependencies
-bp-bridge-hub-rococo = { path = "../../primitives/chain-bridge-hub-rococo" }
+bp-bridge-hub-rococo = { path = "../../chains/chain-bridge-hub-rococo" }
bp-header-chain = { path = "../../primitives/header-chain" }
bp-messages = { path = "../../primitives/messages" }
bp-parachains = { path = "../../primitives/parachains" }
diff --git a/bridges/relays/client-bridge-hub-westend/Cargo.toml b/bridges/relays/client-bridge-hub-westend/Cargo.toml
index 188839e2dba4..c65c7ec0014b 100644
--- a/bridges/relays/client-bridge-hub-westend/Cargo.toml
+++ b/bridges/relays/client-bridge-hub-westend/Cargo.toml
@@ -15,12 +15,12 @@ subxt = { version = "0.32.1", default-features = false, features = ["native"] }
# Bridge dependencies
-bp-bridge-hub-westend = { path = "../../primitives/chain-bridge-hub-westend" }
+bp-bridge-hub-westend = { path = "../../chains/chain-bridge-hub-westend" }
bp-header-chain = { path = "../../primitives/header-chain" }
bp-messages = { path = "../../primitives/messages" }
bp-parachains = { path = "../../primitives/parachains" }
bp-polkadot-core = { path = "../../primitives/polkadot-core" }
-bp-rococo = { path = "../../primitives/chain-rococo" }
+bp-rococo = { path = "../../chains/chain-rococo" }
bridge-runtime-common = { path = "../../bin/runtime-common" }
relay-substrate-client = { path = "../client-substrate" }
diff --git a/bridges/relays/client-kusama/Cargo.toml b/bridges/relays/client-kusama/Cargo.toml
index 6d3a71b3855e..c459f347af1e 100644
--- a/bridges/relays/client-kusama/Cargo.toml
+++ b/bridges/relays/client-kusama/Cargo.toml
@@ -15,7 +15,7 @@ subxt = { version = "0.32.1", default-features = false, features = ["native"] }
# Bridge dependencies
-bp-kusama = { path = "../../primitives/chain-kusama" }
+bp-kusama = { path = "../../chains/chain-kusama" }
bp-polkadot-core = { path = "../../primitives/polkadot-core" }
bp-runtime = { path = "../../primitives/runtime" }
diff --git a/bridges/relays/client-polkadot-bulletin/Cargo.toml b/bridges/relays/client-polkadot-bulletin/Cargo.toml
index 2160a35fb8ff..842b53c48ef2 100644
--- a/bridges/relays/client-polkadot-bulletin/Cargo.toml
+++ b/bridges/relays/client-polkadot-bulletin/Cargo.toml
@@ -18,7 +18,7 @@ subxt = { version = "0.32.1", default-features = false, features = ["native"] }
bp-header-chain = { path = "../../primitives/header-chain" }
bp-messages = { path = "../../primitives/messages" }
bp-polkadot-core = { path = "../../primitives/polkadot-core" }
-bp-polkadot-bulletin = { path = "../../primitives/chain-polkadot-bulletin" }
+bp-polkadot-bulletin = { path = "../../chains/chain-polkadot-bulletin" }
bp-runtime = { path = "../../primitives/runtime" }
bridge-runtime-common = { path = "../../bin/runtime-common" }
relay-substrate-client = { path = "../client-substrate" }
diff --git a/bridges/relays/client-polkadot/Cargo.toml b/bridges/relays/client-polkadot/Cargo.toml
index daa3423bbd42..19cf9f9335bc 100644
--- a/bridges/relays/client-polkadot/Cargo.toml
+++ b/bridges/relays/client-polkadot/Cargo.toml
@@ -15,7 +15,7 @@ subxt = { version = "0.32.1", default-features = false, features = ["native"] }
# Bridge dependencies
-bp-polkadot = { path = "../../primitives/chain-polkadot" }
+bp-polkadot = { path = "../../chains/chain-polkadot" }
bp-polkadot-core = { path = "../../primitives/polkadot-core" }
bp-runtime = { path = "../../primitives/runtime" }
diff --git a/bridges/relays/client-rococo/Cargo.toml b/bridges/relays/client-rococo/Cargo.toml
index 7a6b7d3bae22..5e847600f466 100644
--- a/bridges/relays/client-rococo/Cargo.toml
+++ b/bridges/relays/client-rococo/Cargo.toml
@@ -16,7 +16,7 @@ subxt = { version = "0.32.1", default-features = false, features = ["native"] }
# Bridge dependencies
bp-polkadot-core = { path = "../../primitives/polkadot-core" }
-bp-rococo = { path = "../../primitives/chain-rococo" }
+bp-rococo = { path = "../../chains/chain-rococo" }
relay-substrate-client = { path = "../client-substrate" }
relay-utils = { path = "../utils" }
diff --git a/bridges/relays/client-westend/Cargo.toml b/bridges/relays/client-westend/Cargo.toml
index 2c9aacc16e69..8b56e51d084d 100644
--- a/bridges/relays/client-westend/Cargo.toml
+++ b/bridges/relays/client-westend/Cargo.toml
@@ -17,7 +17,7 @@ subxt = { version = "0.32.1", default-features = false, features = ["native"] }
bp-polkadot-core = { path = "../../primitives/polkadot-core" }
bp-runtime = { path = "../../primitives/runtime" }
-bp-westend = { path = "../../primitives/chain-westend" }
+bp-westend = { path = "../../chains/chain-westend" }
relay-substrate-client = { path = "../client-substrate" }
relay-utils = { path = "../utils" }
diff --git a/bridges/relays/lib-substrate-relay/Cargo.toml b/bridges/relays/lib-substrate-relay/Cargo.toml
index db4f37417be4..db4c3a7f8875 100644
--- a/bridges/relays/lib-substrate-relay/Cargo.toml
+++ b/bridges/relays/lib-substrate-relay/Cargo.toml
@@ -56,7 +56,7 @@ sp-consensus-grandpa = { git = "https://github.com/paritytech/polkadot-sdk", bra
sp-runtime = { git = "https://github.com/paritytech/polkadot-sdk", branch = "master" }
[dev-dependencies]
-bp-rococo = { path = "../../primitives/chain-rococo" }
+bp-rococo = { path = "../../chains/chain-rococo" }
pallet-transaction-payment = { git = "https://github.com/paritytech/polkadot-sdk", branch = "master" }
relay-bridge-hub-rococo-client = { path = "../client-bridge-hub-rococo" }
relay-bridge-hub-westend-client = { path = "../client-bridge-hub-westend" }