diff --git a/bridges/relays/bin-substrate/src/bridges/kusama_polkadot/kusama_headers_to_bridge_hub_polkadot.rs b/bridges/relays/bin-substrate/src/bridges/kusama_polkadot/kusama_headers_to_bridge_hub_polkadot.rs
index a5419a725e2e1d6c8370a9320a3afb2e5bb38836..2dc9c131305ad1969ff97df313bf37bef0e72d12 100644
--- a/bridges/relays/bin-substrate/src/bridges/kusama_polkadot/kusama_headers_to_bridge_hub_polkadot.rs
+++ b/bridges/relays/bin-substrate/src/bridges/kusama_polkadot/kusama_headers_to_bridge_hub_polkadot.rs
@@ -21,12 +21,10 @@ use crate::cli::bridge::{
 };
 
 use async_trait::async_trait;
-use relay_substrate_client::{AccountKeyPairOf, Client};
 use substrate_relay_helper::{
 	equivocation::SubstrateEquivocationDetectionPipeline,
 	finality::SubstrateFinalitySyncPipeline,
 	finality_base::{engine::Grandpa as GrandpaFinalityEngine, SubstrateFinalityPipeline},
-	TransactionParams,
 };
 
 /// Description of Kusama -> PolkadotBridgeHub finalized headers bridge.
@@ -58,20 +56,6 @@ impl SubstrateFinalityPipeline for KusamaFinalityToBridgeHubPolkadot {
 #[async_trait]
 impl SubstrateFinalitySyncPipeline for KusamaFinalityToBridgeHubPolkadot {
 	type SubmitFinalityProofCallBuilder = SubmitFinalityProofCallBuilder;
-
-	async fn start_relay_guards(
-		target_client: &Client<Self::TargetChain>,
-		_transaction_params: &TransactionParams<AccountKeyPairOf<Self::TargetChain>>,
-		enable_version_guard: bool,
-	) -> relay_substrate_client::Result<()> {
-		if enable_version_guard {
-			relay_substrate_client::guard::abort_on_spec_version_change(
-				target_client.clone(),
-				target_client.simple_runtime_version().await?.spec_version,
-			);
-		}
-		Ok(())
-	}
 }
 
 #[async_trait]
diff --git a/bridges/relays/bin-substrate/src/bridges/kusama_polkadot/polkadot_headers_to_bridge_hub_kusama.rs b/bridges/relays/bin-substrate/src/bridges/kusama_polkadot/polkadot_headers_to_bridge_hub_kusama.rs
index 5899b8c25f6e0bc4c500e3dfe4b0847f665c264b..589bf2546e8c1823a80c217de37fba284b892720 100644
--- a/bridges/relays/bin-substrate/src/bridges/kusama_polkadot/polkadot_headers_to_bridge_hub_kusama.rs
+++ b/bridges/relays/bin-substrate/src/bridges/kusama_polkadot/polkadot_headers_to_bridge_hub_kusama.rs
@@ -21,12 +21,10 @@ use crate::cli::bridge::{
 };
 
 use async_trait::async_trait;
-use relay_substrate_client::{AccountKeyPairOf, Client};
 use substrate_relay_helper::{
 	equivocation::SubstrateEquivocationDetectionPipeline,
 	finality::SubstrateFinalitySyncPipeline,
 	finality_base::{engine::Grandpa as GrandpaFinalityEngine, SubstrateFinalityPipeline},
-	TransactionParams,
 };
 
 /// Description of Polkadot -> KusamaBridgeHub finalized headers bridge.
@@ -58,20 +56,6 @@ impl SubstrateFinalityPipeline for PolkadotFinalityToBridgeHubKusama {
 #[async_trait]
 impl SubstrateFinalitySyncPipeline for PolkadotFinalityToBridgeHubKusama {
 	type SubmitFinalityProofCallBuilder = SubmitFinalityProofCallBuilder;
-
-	async fn start_relay_guards(
-		target_client: &Client<Self::TargetChain>,
-		_transaction_params: &TransactionParams<AccountKeyPairOf<Self::TargetChain>>,
-		enable_version_guard: bool,
-	) -> relay_substrate_client::Result<()> {
-		if enable_version_guard {
-			relay_substrate_client::guard::abort_on_spec_version_change(
-				target_client.clone(),
-				target_client.simple_runtime_version().await?.spec_version,
-			);
-		}
-		Ok(())
-	}
 }
 
 #[async_trait]
diff --git a/bridges/relays/bin-substrate/src/bridges/polkadot_bulletin/polkadot_bulletin_headers_to_bridge_hub_polkadot.rs b/bridges/relays/bin-substrate/src/bridges/polkadot_bulletin/polkadot_bulletin_headers_to_bridge_hub_polkadot.rs
index 33f59feda3bae45f142b73fd5abfec20e980844e..dbf89ddeec39877cbc3c35ffc5c4fd65229ffc21 100644
--- a/bridges/relays/bin-substrate/src/bridges/polkadot_bulletin/polkadot_bulletin_headers_to_bridge_hub_polkadot.rs
+++ b/bridges/relays/bin-substrate/src/bridges/polkadot_bulletin/polkadot_bulletin_headers_to_bridge_hub_polkadot.rs
@@ -22,12 +22,10 @@ use crate::cli::bridge::{
 };
 
 use async_trait::async_trait;
-use relay_substrate_client::{AccountKeyPairOf, Client};
 use substrate_relay_helper::{
 	equivocation::SubstrateEquivocationDetectionPipeline,
 	finality::SubstrateFinalitySyncPipeline,
 	finality_base::{engine::Grandpa as GrandpaFinalityEngine, SubstrateFinalityPipeline},
-	TransactionParams,
 };
 
 /// Description of `PolkadotBulletin` -> `PolkadotBridgeHub` finalized headers bridge.
@@ -59,20 +57,6 @@ impl SubstrateFinalityPipeline for PolkadotBulletinFinalityToBridgeHubPolkadot {
 #[async_trait]
 impl SubstrateFinalitySyncPipeline for PolkadotBulletinFinalityToBridgeHubPolkadot {
 	type SubmitFinalityProofCallBuilder = SubmitFinalityProofCallBuilder;
-
-	async fn start_relay_guards(
-		target_client: &Client<Self::TargetChain>,
-		_transaction_params: &TransactionParams<AccountKeyPairOf<Self::TargetChain>>,
-		enable_version_guard: bool,
-	) -> relay_substrate_client::Result<()> {
-		if enable_version_guard {
-			relay_substrate_client::guard::abort_on_spec_version_change(
-				target_client.clone(),
-				target_client.simple_runtime_version().await?.spec_version,
-			);
-		}
-		Ok(())
-	}
 }
 
 #[async_trait]
diff --git a/bridges/relays/bin-substrate/src/bridges/polkadot_bulletin/polkadot_headers_to_polkadot_bulletin.rs b/bridges/relays/bin-substrate/src/bridges/polkadot_bulletin/polkadot_headers_to_polkadot_bulletin.rs
index 7770fd1559444cef9de4ac3b3327b586e4617aab..897c2ac884f91c4e9166901d7db6b825fb4e5e55 100644
--- a/bridges/relays/bin-substrate/src/bridges/polkadot_bulletin/polkadot_headers_to_polkadot_bulletin.rs
+++ b/bridges/relays/bin-substrate/src/bridges/polkadot_bulletin/polkadot_headers_to_polkadot_bulletin.rs
@@ -21,12 +21,10 @@ use crate::cli::bridge::{
 };
 
 use async_trait::async_trait;
-use relay_substrate_client::{AccountKeyPairOf, Client};
 use substrate_relay_helper::{
 	equivocation::SubstrateEquivocationDetectionPipeline,
 	finality::SubstrateFinalitySyncPipeline,
 	finality_base::{engine::Grandpa as GrandpaFinalityEngine, SubstrateFinalityPipeline},
-	TransactionParams,
 };
 
 /// Description of Polkadot -> `PolkadotBulletin` finalized headers bridge.
@@ -58,20 +56,6 @@ impl SubstrateFinalityPipeline for PolkadotFinalityToPolkadotBulletin {
 #[async_trait]
 impl SubstrateFinalitySyncPipeline for PolkadotFinalityToPolkadotBulletin {
 	type SubmitFinalityProofCallBuilder = SubmitFinalityProofCallBuilder;
-
-	async fn start_relay_guards(
-		target_client: &Client<Self::TargetChain>,
-		_transaction_params: &TransactionParams<AccountKeyPairOf<Self::TargetChain>>,
-		enable_version_guard: bool,
-	) -> relay_substrate_client::Result<()> {
-		if enable_version_guard {
-			relay_substrate_client::guard::abort_on_spec_version_change(
-				target_client.clone(),
-				target_client.simple_runtime_version().await?.spec_version,
-			);
-		}
-		Ok(())
-	}
 }
 
 #[async_trait]
diff --git a/bridges/relays/bin-substrate/src/bridges/rococo_westend/rococo_headers_to_bridge_hub_westend.rs b/bridges/relays/bin-substrate/src/bridges/rococo_westend/rococo_headers_to_bridge_hub_westend.rs
index 75f6ff6f25c206bab9dfa64efa8e0f6e7d03d284..24d0b6603157a1bf550d6bad1164a70dedee9c9f 100644
--- a/bridges/relays/bin-substrate/src/bridges/rococo_westend/rococo_headers_to_bridge_hub_westend.rs
+++ b/bridges/relays/bin-substrate/src/bridges/rococo_westend/rococo_headers_to_bridge_hub_westend.rs
@@ -21,12 +21,10 @@ use crate::cli::bridge::{
 };
 
 use async_trait::async_trait;
-use relay_substrate_client::{AccountKeyPairOf, Client};
 use substrate_relay_helper::{
 	equivocation::SubstrateEquivocationDetectionPipeline,
 	finality::SubstrateFinalitySyncPipeline,
 	finality_base::{engine::Grandpa as GrandpaFinalityEngine, SubstrateFinalityPipeline},
-	TransactionParams,
 };
 
 /// Description of Rococo -> Westend finalized headers bridge.
@@ -58,20 +56,6 @@ impl SubstrateFinalityPipeline for RococoFinalityToBridgeHubWestend {
 #[async_trait]
 impl SubstrateFinalitySyncPipeline for RococoFinalityToBridgeHubWestend {
 	type SubmitFinalityProofCallBuilder = SubmitFinalityProofCallBuilder;
-
-	async fn start_relay_guards(
-		target_client: &Client<Self::TargetChain>,
-		_transaction_params: &TransactionParams<AccountKeyPairOf<Self::TargetChain>>,
-		enable_version_guard: bool,
-	) -> relay_substrate_client::Result<()> {
-		if enable_version_guard {
-			relay_substrate_client::guard::abort_on_spec_version_change(
-				target_client.clone(),
-				target_client.simple_runtime_version().await?.spec_version,
-			);
-		}
-		Ok(())
-	}
 }
 
 #[async_trait]
diff --git a/bridges/relays/bin-substrate/src/bridges/rococo_westend/westend_headers_to_bridge_hub_rococo.rs b/bridges/relays/bin-substrate/src/bridges/rococo_westend/westend_headers_to_bridge_hub_rococo.rs
index 1532e06b9538657f828963eeb1ab5b826326b252..451089b2ce009e379f89846710da060e50b3b94d 100644
--- a/bridges/relays/bin-substrate/src/bridges/rococo_westend/westend_headers_to_bridge_hub_rococo.rs
+++ b/bridges/relays/bin-substrate/src/bridges/rococo_westend/westend_headers_to_bridge_hub_rococo.rs
@@ -21,12 +21,10 @@ use crate::cli::bridge::{
 };
 
 use async_trait::async_trait;
-use relay_substrate_client::{AccountKeyPairOf, Client};
 use substrate_relay_helper::{
 	equivocation::SubstrateEquivocationDetectionPipeline,
 	finality::SubstrateFinalitySyncPipeline,
 	finality_base::{engine::Grandpa as GrandpaFinalityEngine, SubstrateFinalityPipeline},
-	TransactionParams,
 };
 
 /// Description of Westend -> Rococo finalized headers bridge.
@@ -58,20 +56,6 @@ impl SubstrateFinalityPipeline for WestendFinalityToBridgeHubRococo {
 #[async_trait]
 impl SubstrateFinalitySyncPipeline for WestendFinalityToBridgeHubRococo {
 	type SubmitFinalityProofCallBuilder = SubmitFinalityProofCallBuilder;
-
-	async fn start_relay_guards(
-		target_client: &Client<Self::TargetChain>,
-		_transaction_params: &TransactionParams<AccountKeyPairOf<Self::TargetChain>>,
-		enable_version_guard: bool,
-	) -> relay_substrate_client::Result<()> {
-		if enable_version_guard {
-			relay_substrate_client::guard::abort_on_spec_version_change(
-				target_client.clone(),
-				target_client.simple_runtime_version().await?.spec_version,
-			);
-		}
-		Ok(())
-	}
 }
 
 #[async_trait]
diff --git a/bridges/relays/bin-substrate/src/bridges/rococo_wococo/rococo_headers_to_bridge_hub_wococo.rs b/bridges/relays/bin-substrate/src/bridges/rococo_wococo/rococo_headers_to_bridge_hub_wococo.rs
index d89ba35849c69e5e300a9a76349461953272e80e..b9b9a89ba0f5260d6658d96f644044fdea4060c0 100644
--- a/bridges/relays/bin-substrate/src/bridges/rococo_wococo/rococo_headers_to_bridge_hub_wococo.rs
+++ b/bridges/relays/bin-substrate/src/bridges/rococo_wococo/rococo_headers_to_bridge_hub_wococo.rs
@@ -21,12 +21,10 @@ use crate::cli::bridge::{
 };
 
 use async_trait::async_trait;
-use relay_substrate_client::{AccountKeyPairOf, Client};
 use substrate_relay_helper::{
 	equivocation::SubstrateEquivocationDetectionPipeline,
 	finality::SubstrateFinalitySyncPipeline,
 	finality_base::{engine::Grandpa as GrandpaFinalityEngine, SubstrateFinalityPipeline},
-	TransactionParams,
 };
 
 /// Description of Rococo -> Wococo finalized headers bridge.
@@ -58,20 +56,6 @@ impl SubstrateFinalityPipeline for RococoFinalityToBridgeHubWococo {
 #[async_trait]
 impl SubstrateFinalitySyncPipeline for RococoFinalityToBridgeHubWococo {
 	type SubmitFinalityProofCallBuilder = SubmitFinalityProofCallBuilder;
-
-	async fn start_relay_guards(
-		target_client: &Client<Self::TargetChain>,
-		_transaction_params: &TransactionParams<AccountKeyPairOf<Self::TargetChain>>,
-		enable_version_guard: bool,
-	) -> relay_substrate_client::Result<()> {
-		if enable_version_guard {
-			relay_substrate_client::guard::abort_on_spec_version_change(
-				target_client.clone(),
-				target_client.simple_runtime_version().await?.spec_version,
-			);
-		}
-		Ok(())
-	}
 }
 
 #[async_trait]
diff --git a/bridges/relays/bin-substrate/src/bridges/rococo_wococo/wococo_headers_to_bridge_hub_rococo.rs b/bridges/relays/bin-substrate/src/bridges/rococo_wococo/wococo_headers_to_bridge_hub_rococo.rs
index 44d91f06e3e781f3170d73ec42e5a7a4bca16aa9..c000a2764e26eae00ffd4b97fd4d3556f6c1d95f 100644
--- a/bridges/relays/bin-substrate/src/bridges/rococo_wococo/wococo_headers_to_bridge_hub_rococo.rs
+++ b/bridges/relays/bin-substrate/src/bridges/rococo_wococo/wococo_headers_to_bridge_hub_rococo.rs
@@ -21,12 +21,10 @@ use crate::cli::bridge::{
 };
 
 use async_trait::async_trait;
-use relay_substrate_client::{AccountKeyPairOf, Client};
 use substrate_relay_helper::{
 	equivocation::SubstrateEquivocationDetectionPipeline,
 	finality::SubstrateFinalitySyncPipeline,
 	finality_base::{engine::Grandpa as GrandpaFinalityEngine, SubstrateFinalityPipeline},
-	TransactionParams,
 };
 
 /// Description of Wococo -> Rococo finalized headers bridge.
@@ -58,20 +56,6 @@ impl SubstrateFinalityPipeline for WococoFinalityToBridgeHubRococo {
 #[async_trait]
 impl SubstrateFinalitySyncPipeline for WococoFinalityToBridgeHubRococo {
 	type SubmitFinalityProofCallBuilder = SubmitFinalityProofCallBuilder;
-
-	async fn start_relay_guards(
-		target_client: &Client<Self::TargetChain>,
-		_transaction_params: &TransactionParams<AccountKeyPairOf<Self::TargetChain>>,
-		enable_version_guard: bool,
-	) -> relay_substrate_client::Result<()> {
-		if enable_version_guard {
-			relay_substrate_client::guard::abort_on_spec_version_change(
-				target_client.clone(),
-				target_client.simple_runtime_version().await?.spec_version,
-			);
-		}
-		Ok(())
-	}
 }
 
 #[async_trait]
diff --git a/bridges/relays/bin-substrate/src/cli/detect_equivocations.rs b/bridges/relays/bin-substrate/src/cli/detect_equivocations.rs
index 142a3f8e69a8803ac6b7e46844221d1f66764f99..bc456e025499e0de53556b6ec90fdda50c773369 100644
--- a/bridges/relays/bin-substrate/src/cli/detect_equivocations.rs
+++ b/bridges/relays/bin-substrate/src/cli/detect_equivocations.rs
@@ -37,7 +37,7 @@ use async_trait::async_trait;
 use relay_substrate_client::ChainWithTransactions;
 use structopt::StructOpt;
 use strum::{EnumString, EnumVariantNames, VariantNames};
-use substrate_relay_helper::equivocation;
+use substrate_relay_helper::{equivocation, equivocation::SubstrateEquivocationDetectionPipeline};
 
 /// Start equivocation detection loop.
 #[derive(StructOpt)]
@@ -73,8 +73,15 @@ where
 	Self::Source: ChainWithTransactions,
 {
 	async fn start(data: DetectEquivocations) -> anyhow::Result<()> {
+		let source_client = data.source.into_client::<Self::Source>().await?;
+		Self::Equivocation::start_relay_guards(
+			&source_client,
+			source_client.can_start_version_guard(),
+		)
+		.await?;
+
 		equivocation::run::<Self::Equivocation>(
-			data.source.into_client::<Self::Source>().await?,
+			source_client,
 			data.target.into_client::<Self::Target>().await?,
 			data.source_sign.transaction_params::<Self::Source>()?,
 			data.prometheus_params.into_metrics_params()?,
diff --git a/bridges/relays/bin-substrate/src/cli/relay_headers.rs b/bridges/relays/bin-substrate/src/cli/relay_headers.rs
index 800e8587d8b25d707839cd8024551306f6583f09..d3a7fa09367dfb594762b760f46c2135516478b2 100644
--- a/bridges/relays/bin-substrate/src/cli/relay_headers.rs
+++ b/bridges/relays/bin-substrate/src/cli/relay_headers.rs
@@ -96,12 +96,8 @@ trait HeadersRelayer: RelayToRelayHeadersCliBridge {
 			signer: target_sign,
 			mortality: target_transactions_mortality,
 		};
-		Self::Finality::start_relay_guards(
-			&target_client,
-			&target_transactions_params,
-			target_client.can_start_version_guard(),
-		)
-		.await?;
+		Self::Finality::start_relay_guards(&target_client, target_client.can_start_version_guard())
+			.await?;
 
 		substrate_relay_helper::finality::run::<Self::Finality>(
 			source_client,
diff --git a/bridges/relays/bin-substrate/src/cli/relay_headers_and_messages/parachain_to_parachain.rs b/bridges/relays/bin-substrate/src/cli/relay_headers_and_messages/parachain_to_parachain.rs
index 24d6f00861d00619a5f0d81c7d5517b73a8a6799..1610f648bdcddfdfb7b942526cdd7461a3ace7a9 100644
--- a/bridges/relays/bin-substrate/src/cli/relay_headers_and_messages/parachain_to_parachain.rs
+++ b/bridges/relays/bin-substrate/src/cli/relay_headers_and_messages/parachain_to_parachain.rs
@@ -218,13 +218,11 @@ where
 
 		<L2R as ParachainToRelayHeadersCliBridge>::RelayFinality::start_relay_guards(
 			&self.common.right.client,
-			&self.left_headers_to_right_transaction_params,
 			self.common.right.client.can_start_version_guard(),
 		)
 		.await?;
 		<R2L as ParachainToRelayHeadersCliBridge>::RelayFinality::start_relay_guards(
 			&self.common.left.client,
-			&self.right_headers_to_left_transaction_params,
 			self.common.left.client.can_start_version_guard(),
 		)
 		.await?;
diff --git a/bridges/relays/bin-substrate/src/cli/relay_headers_and_messages/relay_to_parachain.rs b/bridges/relays/bin-substrate/src/cli/relay_headers_and_messages/relay_to_parachain.rs
index ef47e44dc1837f865df87fbcd764694153fc6ce1..98b313cc0960d2077bf12ad7ff675efdf43fab74 100644
--- a/bridges/relays/bin-substrate/src/cli/relay_headers_and_messages/relay_to_parachain.rs
+++ b/bridges/relays/bin-substrate/src/cli/relay_headers_and_messages/relay_to_parachain.rs
@@ -200,13 +200,11 @@ where
 
 		<L2R as RelayToRelayHeadersCliBridge>::Finality::start_relay_guards(
 			&self.common.right.client,
-			&self.left_headers_to_right_transaction_params,
 			self.common.right.client.can_start_version_guard(),
 		)
 		.await?;
 		<R2L as ParachainToRelayHeadersCliBridge>::RelayFinality::start_relay_guards(
 			&self.common.left.client,
-			&self.right_headers_to_left_transaction_params,
 			self.common.left.client.can_start_version_guard(),
 		)
 		.await?;
diff --git a/bridges/relays/bin-substrate/src/cli/relay_headers_and_messages/relay_to_relay.rs b/bridges/relays/bin-substrate/src/cli/relay_headers_and_messages/relay_to_relay.rs
index a313628933ba68c5042bca4d9466f066206a780a..a75263540a55f7dde64768cb9286b63f1d116b8b 100644
--- a/bridges/relays/bin-substrate/src/cli/relay_headers_and_messages/relay_to_relay.rs
+++ b/bridges/relays/bin-substrate/src/cli/relay_headers_and_messages/relay_to_relay.rs
@@ -156,13 +156,11 @@ where
 
 		<L2R as RelayToRelayHeadersCliBridge>::Finality::start_relay_guards(
 			&self.common.right.client,
-			&self.left_to_right_transaction_params,
 			self.common.right.client.can_start_version_guard(),
 		)
 		.await?;
 		<R2L as RelayToRelayHeadersCliBridge>::Finality::start_relay_guards(
 			&self.common.left.client,
-			&self.right_to_left_transaction_params,
 			self.common.left.client.can_start_version_guard(),
 		)
 		.await?;
diff --git a/bridges/relays/lib-substrate-relay/src/equivocation/mod.rs b/bridges/relays/lib-substrate-relay/src/equivocation/mod.rs
index ee0928c2af1370ce45220fe3e6f7e5cfbb550514..f6d58cbaa4ab4c4d7f489de5a80ab226b3b475b4 100644
--- a/bridges/relays/lib-substrate-relay/src/equivocation/mod.rs
+++ b/bridges/relays/lib-substrate-relay/src/equivocation/mod.rs
@@ -66,6 +66,20 @@ pub trait SubstrateEquivocationDetectionPipeline:
 {
 	/// How the `report_equivocation` call is built ?
 	type ReportEquivocationCallBuilder: ReportEquivocationCallBuilder<Self>;
+
+	/// Add relay guards if required.
+	async fn start_relay_guards(
+		source_client: &Client<Self::SourceChain>,
+		enable_version_guard: bool,
+	) -> relay_substrate_client::Result<()> {
+		if enable_version_guard {
+			relay_substrate_client::guard::abort_on_spec_version_change(
+				source_client.clone(),
+				source_client.simple_runtime_version().await?.spec_version,
+			);
+		}
+		Ok(())
+	}
 }
 
 type FinalityProoffOf<P> = <<P as SubstrateFinalityPipeline>::FinalityEngine as Engine<
diff --git a/bridges/relays/lib-substrate-relay/src/finality/mod.rs b/bridges/relays/lib-substrate-relay/src/finality/mod.rs
index 98aec1d52b908dc5b272050f5f15ad11f645ff42..b8cf27ea78fde9704820a30373dc80e6d4e317d5 100644
--- a/bridges/relays/lib-substrate-relay/src/finality/mod.rs
+++ b/bridges/relays/lib-substrate-relay/src/finality/mod.rs
@@ -75,10 +75,15 @@ pub trait SubstrateFinalitySyncPipeline: BaseSubstrateFinalitySyncPipeline {
 
 	/// Add relay guards if required.
 	async fn start_relay_guards(
-		_target_client: &Client<Self::TargetChain>,
-		_transaction_params: &TransactionParams<AccountKeyPairOf<Self::TargetChain>>,
-		_enable_version_guard: bool,
+		target_client: &Client<Self::TargetChain>,
+		enable_version_guard: bool,
 	) -> relay_substrate_client::Result<()> {
+		if enable_version_guard {
+			relay_substrate_client::guard::abort_on_spec_version_change(
+				target_client.clone(),
+				target_client.simple_runtime_version().await?.spec_version,
+			);
+		}
 		Ok(())
 	}
 }