diff --git a/cumulus/parachains/integration-tests/emulated/chains/parachains/assets/asset-hub-rococo/src/genesis.rs b/cumulus/parachains/integration-tests/emulated/chains/parachains/assets/asset-hub-rococo/src/genesis.rs
index 82f86e2b32ef00b50896bbc6208bda059dd8a8b3..5b70ed490c633b7d78558e72762fb60a2f7d0635 100644
--- a/cumulus/parachains/integration-tests/emulated/chains/parachains/assets/asset-hub-rococo/src/genesis.rs
+++ b/cumulus/parachains/integration-tests/emulated/chains/parachains/assets/asset-hub-rococo/src/genesis.rs
@@ -70,7 +70,7 @@ pub fn genesis() -> Storage {
 		},
 		assets: asset_hub_rococo_runtime::AssetsConfig {
 			assets: vec![
-				(RESERVABLE_ASSET_ID, AssetHubRococoAssetOwner::get(), true, ED),
+				(RESERVABLE_ASSET_ID, AssetHubRococoAssetOwner::get(), false, ED),
 				(USDT_ID, AssetHubRococoAssetOwner::get(), true, ED),
 			],
 			..Default::default()
@@ -81,7 +81,7 @@ pub fn genesis() -> Storage {
 				(
 					PenpalTeleportableAssetLocation::get(),
 					PenpalSiblingSovereignAccount::get(),
-					true,
+					false,
 					ED,
 				),
 			],
diff --git a/cumulus/parachains/integration-tests/emulated/chains/parachains/assets/asset-hub-westend/src/genesis.rs b/cumulus/parachains/integration-tests/emulated/chains/parachains/assets/asset-hub-westend/src/genesis.rs
index fd84030ed13be0b5deeb4490552f0d8c44678ad4..d20e059f9fea48a649934b6ca2a0470327ee5e54 100644
--- a/cumulus/parachains/integration-tests/emulated/chains/parachains/assets/asset-hub-westend/src/genesis.rs
+++ b/cumulus/parachains/integration-tests/emulated/chains/parachains/assets/asset-hub-westend/src/genesis.rs
@@ -21,7 +21,7 @@ use sp_core::{sr25519, storage::Storage};
 use emulated_integration_tests_common::{
 	accounts, build_genesis_storage, collators, get_account_id_from_seed,
 	PenpalSiblingSovereignAccount, PenpalTeleportableAssetLocation, RESERVABLE_ASSET_ID,
-	SAFE_XCM_VERSION,
+	SAFE_XCM_VERSION, USDT_ID,
 };
 use parachains_common::{AccountId, Balance};
 
@@ -65,7 +65,10 @@ pub fn genesis() -> Storage {
 			..Default::default()
 		},
 		assets: asset_hub_westend_runtime::AssetsConfig {
-			assets: vec![(RESERVABLE_ASSET_ID, AssetHubWestendAssetOwner::get(), true, ED)],
+			assets: vec![
+				(RESERVABLE_ASSET_ID, AssetHubWestendAssetOwner::get(), false, ED),
+				(USDT_ID, AssetHubWestendAssetOwner::get(), true, ED),
+			],
 			..Default::default()
 		},
 		foreign_assets: asset_hub_westend_runtime::ForeignAssetsConfig {
@@ -74,7 +77,7 @@ pub fn genesis() -> Storage {
 				(
 					PenpalTeleportableAssetLocation::get(),
 					PenpalSiblingSovereignAccount::get(),
-					true,
+					false,
 					ED,
 				),
 			],
diff --git a/cumulus/parachains/integration-tests/emulated/chains/parachains/testing/penpal/src/genesis.rs b/cumulus/parachains/integration-tests/emulated/chains/parachains/testing/penpal/src/genesis.rs
index 260875088bbcb2c68381bd2d6974f98520c5d616..38c94b34aa2e3bfc7b81f8ee46737ba4e153c659 100644
--- a/cumulus/parachains/integration-tests/emulated/chains/parachains/testing/penpal/src/genesis.rs
+++ b/cumulus/parachains/integration-tests/emulated/chains/parachains/testing/penpal/src/genesis.rs
@@ -22,7 +22,7 @@ use emulated_integration_tests_common::{
 	accounts, build_genesis_storage, collators, get_account_id_from_seed, SAFE_XCM_VERSION,
 };
 use parachains_common::{AccountId, Balance};
-use penpal_runtime::xcm_config::{LocalReservableFromAssetHub, RelayLocation};
+use penpal_runtime::xcm_config::{LocalReservableFromAssetHub, RelayLocation, UsdtFromAssetHub};
 // Penpal
 pub const PARA_ID_A: u32 = 2000;
 pub const PARA_ID_B: u32 = 2001;
@@ -81,6 +81,8 @@ pub fn genesis(para_id: u32) -> Storage {
 				(RelayLocation::get(), PenpalAssetOwner::get(), true, ED),
 				// Sufficient AssetHub asset representation
 				(LocalReservableFromAssetHub::get(), PenpalAssetOwner::get(), true, ED),
+				// USDT from Asset Hub
+				(UsdtFromAssetHub::get(), PenpalAssetOwner::get(), true, ED),
 			],
 			..Default::default()
 		},
diff --git a/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-rococo/src/tests/reserve_transfer.rs b/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-rococo/src/tests/reserve_transfer.rs
index 8b9fedcd4947cf5aaef5db0233166c6bc7cbcf21..313fa953dd05c7f007236c35ea210866080d96c7 100644
--- a/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-rococo/src/tests/reserve_transfer.rs
+++ b/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-rococo/src/tests/reserve_transfer.rs
@@ -939,7 +939,7 @@ fn reserve_transfer_assets_from_system_para_to_para() {
 	);
 }
 
-/// Reserve Transfers of a foreign asset and native asset from Parachain to System Para should
+/// Reserve Transfers of a random asset and native asset from Parachain to System Para should
 /// work
 #[test]
 fn reserve_transfer_assets_from_para_to_system_para() {
diff --git a/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-rococo/src/tests/treasury.rs b/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-rococo/src/tests/treasury.rs
index f8190e11c51c8b202804dcee9cf689d93ef33678..3320392b495d281bf9c127ab299793535362ddcd 100644
--- a/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-rococo/src/tests/treasury.rs
+++ b/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-rococo/src/tests/treasury.rs
@@ -14,7 +14,10 @@
 // limitations under the License.
 
 use crate::imports::*;
-use emulated_integration_tests_common::accounts::{ALICE, BOB};
+use emulated_integration_tests_common::{
+	accounts::{ALICE, BOB},
+	USDT_ID,
+};
 use frame_support::{
 	dispatch::RawOrigin,
 	sp_runtime::traits::Dispatchable,
@@ -161,7 +164,6 @@ fn spend_roc_on_asset_hub() {
 
 #[test]
 fn create_and_claim_treasury_spend_in_usdt() {
-	const ASSET_ID: u32 = 1984;
 	const SPEND_AMOUNT: u128 = 10_000_000;
 	// treasury location from a sibling parachain.
 	let treasury_location: Location = Location::new(1, PalletInstance(18));
@@ -175,7 +177,7 @@ fn create_and_claim_treasury_spend_in_usdt() {
 	let asset_kind = VersionedLocatableAsset::V3 {
 		location: asset_hub_location,
 		asset_id: v3::AssetId::Concrete(
-			(v3::Junction::PalletInstance(50), v3::Junction::GeneralIndex(ASSET_ID.into())).into(),
+			(v3::Junction::PalletInstance(50), v3::Junction::GeneralIndex(USDT_ID.into())).into(),
 		),
 	};
 	// treasury spend beneficiary.
@@ -187,9 +189,9 @@ fn create_and_claim_treasury_spend_in_usdt() {
 		type Assets = <AssetHubRococo as AssetHubRococoPallet>::Assets;
 
 		// USDT created at genesis, mint some assets to the treasury account.
-		assert_ok!(<Assets as Mutate<_>>::mint_into(ASSET_ID, &treasury_account, SPEND_AMOUNT * 4));
+		assert_ok!(<Assets as Mutate<_>>::mint_into(USDT_ID, &treasury_account, SPEND_AMOUNT * 4));
 		// beneficiary has zero balance.
-		assert_eq!(<Assets as FungiblesInspect<_>>::balance(ASSET_ID, &alice,), 0u128,);
+		assert_eq!(<Assets as FungiblesInspect<_>>::balance(USDT_ID, &alice,), 0u128,);
 	});
 
 	Rococo::execute_with(|| {
@@ -231,7 +233,7 @@ fn create_and_claim_treasury_spend_in_usdt() {
 			AssetHubRococo,
 			vec![
 				RuntimeEvent::Assets(pallet_assets::Event::Transferred { asset_id: id, from, to, amount }) => {
-					id: id == &ASSET_ID,
+					id: id == &USDT_ID,
 					from: from == &treasury_account,
 					to: to == &alice,
 					amount: amount == &SPEND_AMOUNT,
@@ -241,7 +243,7 @@ fn create_and_claim_treasury_spend_in_usdt() {
 			]
 		);
 		// beneficiary received the assets from the treasury.
-		assert_eq!(<Assets as FungiblesInspect<_>>::balance(ASSET_ID, &alice,), SPEND_AMOUNT,);
+		assert_eq!(<Assets as FungiblesInspect<_>>::balance(USDT_ID, &alice,), SPEND_AMOUNT,);
 	});
 
 	Rococo::execute_with(|| {
diff --git a/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-westend/src/tests/fellowship_treasury.rs b/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-westend/src/tests/fellowship_treasury.rs
index 15f4fe33bddc1b65f079832facc4ce495823ad84..9520659712fc625ff479da489ffdae7acbb7d185 100644
--- a/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-westend/src/tests/fellowship_treasury.rs
+++ b/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-westend/src/tests/fellowship_treasury.rs
@@ -14,15 +14,17 @@
 // limitations under the License.
 
 use crate::imports::*;
-use emulated_integration_tests_common::accounts::{ALICE, BOB};
-use frame_support::traits::fungibles::{Create, Inspect, Mutate};
+use emulated_integration_tests_common::{
+	accounts::{ALICE, BOB},
+	USDT_ID,
+};
+use frame_support::traits::fungibles::{Inspect, Mutate};
 use polkadot_runtime_common::impls::VersionedLocatableAsset;
 use xcm_executor::traits::ConvertLocation;
 
 #[test]
 fn create_and_claim_treasury_spend() {
-	const ASSET_ID: u32 = 1984;
-	const SPEND_AMOUNT: u128 = 1_000_000;
+	const SPEND_AMOUNT: u128 = 1_000_000_000;
 	// treasury location from a sibling parachain.
 	let treasury_location: Location =
 		Location::new(1, [Parachain(CollectivesWestend::para_id().into()), PalletInstance(65)]);
@@ -34,7 +36,7 @@ fn create_and_claim_treasury_spend() {
 	// asset kind to be spent from the treasury.
 	let asset_kind = VersionedLocatableAsset::V4 {
 		location: asset_hub_location,
-		asset_id: AssetId((PalletInstance(50), GeneralIndex(ASSET_ID.into())).into()),
+		asset_id: AssetId((PalletInstance(50), GeneralIndex(USDT_ID.into())).into()),
 	};
 	// treasury spend beneficiary.
 	let alice: AccountId = Westend::account_id_of(ALICE);
@@ -44,16 +46,10 @@ fn create_and_claim_treasury_spend() {
 	AssetHubWestend::execute_with(|| {
 		type Assets = <AssetHubWestend as AssetHubWestendPallet>::Assets;
 
-		// create an asset class and mint some assets to the treasury account.
-		assert_ok!(<Assets as Create<_>>::create(
-			ASSET_ID,
-			treasury_account.clone(),
-			true,
-			SPEND_AMOUNT / 2
-		));
-		assert_ok!(<Assets as Mutate<_>>::mint_into(ASSET_ID, &treasury_account, SPEND_AMOUNT * 4));
+		// USDT created at genesis, mint some assets to the fellowship treasury account.
+		assert_ok!(<Assets as Mutate<_>>::mint_into(USDT_ID, &treasury_account, SPEND_AMOUNT * 4));
 		// beneficiary has zero balance.
-		assert_eq!(<Assets as Inspect<_>>::balance(ASSET_ID, &alice,), 0u128,);
+		assert_eq!(<Assets as Inspect<_>>::balance(USDT_ID, &alice,), 0u128,);
 	});
 
 	CollectivesWestend::execute_with(|| {
@@ -96,7 +92,7 @@ fn create_and_claim_treasury_spend() {
 			AssetHubWestend,
 			vec![
 				RuntimeEvent::Assets(pallet_assets::Event::Transferred { asset_id: id, from, to, amount }) => {
-					id: id == &ASSET_ID,
+					id: id == &USDT_ID,
 					from: from == &treasury_account,
 					to: to == &alice,
 					amount: amount == &SPEND_AMOUNT,
@@ -106,7 +102,7 @@ fn create_and_claim_treasury_spend() {
 			]
 		);
 		// beneficiary received the assets from the treasury.
-		assert_eq!(<Assets as Inspect<_>>::balance(ASSET_ID, &alice,), SPEND_AMOUNT,);
+		assert_eq!(<Assets as Inspect<_>>::balance(USDT_ID, &alice,), SPEND_AMOUNT,);
 	});
 
 	CollectivesWestend::execute_with(|| {
diff --git a/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-westend/src/tests/reserve_transfer.rs b/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-westend/src/tests/reserve_transfer.rs
index 65d013a0eec40aa90b42a475f40dca9197f318e9..82ef74fdab104cf0b5a5c0e4ccad9e9fc567b47a 100644
--- a/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-westend/src/tests/reserve_transfer.rs
+++ b/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-westend/src/tests/reserve_transfer.rs
@@ -940,7 +940,7 @@ fn reserve_transfer_assets_from_system_para_to_para() {
 	);
 }
 
-/// Reserve Transfers of a foreign asset and native asset from Parachain to System Para should
+/// Reserve Transfers of a random asset and native asset from Parachain to System Para should
 /// work
 #[test]
 fn reserve_transfer_assets_from_para_to_system_para() {
diff --git a/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-westend/src/tests/treasury.rs b/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-westend/src/tests/treasury.rs
index 8cbce3e0d223277e240e159e99f76696b7b339be..b70967184387a868b4bd2b49970f8e16d418d62d 100644
--- a/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-westend/src/tests/treasury.rs
+++ b/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-westend/src/tests/treasury.rs
@@ -14,15 +14,17 @@
 // limitations under the License.
 
 use crate::imports::*;
-use emulated_integration_tests_common::accounts::{ALICE, BOB};
-use frame_support::traits::fungibles::{Create, Inspect, Mutate};
+use emulated_integration_tests_common::{
+	accounts::{ALICE, BOB},
+	USDT_ID,
+};
+use frame_support::traits::fungibles::{Inspect, Mutate};
 use polkadot_runtime_common::impls::VersionedLocatableAsset;
 use xcm_executor::traits::ConvertLocation;
 
 #[test]
 fn create_and_claim_treasury_spend() {
-	const ASSET_ID: u32 = 1984;
-	const SPEND_AMOUNT: u128 = 1_000_000;
+	const SPEND_AMOUNT: u128 = 1_000_000_000;
 	// treasury location from a sibling parachain.
 	let treasury_location: Location = Location::new(1, PalletInstance(37));
 	// treasury account on a sibling parachain.
@@ -33,7 +35,7 @@ fn create_and_claim_treasury_spend() {
 	// asset kind to be spend from the treasury.
 	let asset_kind = VersionedLocatableAsset::V4 {
 		location: asset_hub_location,
-		asset_id: AssetId([PalletInstance(50), GeneralIndex(ASSET_ID.into())].into()),
+		asset_id: AssetId([PalletInstance(50), GeneralIndex(USDT_ID.into())].into()),
 	};
 	// treasury spend beneficiary.
 	let alice: AccountId = Westend::account_id_of(ALICE);
@@ -43,16 +45,10 @@ fn create_and_claim_treasury_spend() {
 	AssetHubWestend::execute_with(|| {
 		type Assets = <AssetHubWestend as AssetHubWestendPallet>::Assets;
 
-		// create an asset class and mint some assets to the treasury account.
-		assert_ok!(<Assets as Create<_>>::create(
-			ASSET_ID,
-			treasury_account.clone(),
-			true,
-			SPEND_AMOUNT / 2
-		));
-		assert_ok!(<Assets as Mutate<_>>::mint_into(ASSET_ID, &treasury_account, SPEND_AMOUNT * 4));
+		// USDT created at genesis, mint some assets to the treasury account.
+		assert_ok!(<Assets as Mutate<_>>::mint_into(USDT_ID, &treasury_account, SPEND_AMOUNT * 4));
 		// beneficiary has zero balance.
-		assert_eq!(<Assets as Inspect<_>>::balance(ASSET_ID, &alice,), 0u128,);
+		assert_eq!(<Assets as Inspect<_>>::balance(USDT_ID, &alice,), 0u128,);
 	});
 
 	Westend::execute_with(|| {
@@ -94,7 +90,7 @@ fn create_and_claim_treasury_spend() {
 			AssetHubWestend,
 			vec![
 				RuntimeEvent::Assets(pallet_assets::Event::Transferred { asset_id: id, from, to, amount }) => {
-					id: id == &ASSET_ID,
+					id: id == &USDT_ID,
 					from: from == &treasury_account,
 					to: to == &alice,
 					amount: amount == &SPEND_AMOUNT,
@@ -104,7 +100,7 @@ fn create_and_claim_treasury_spend() {
 			]
 		);
 		// beneficiary received the assets from the treasury.
-		assert_eq!(<Assets as Inspect<_>>::balance(ASSET_ID, &alice,), SPEND_AMOUNT,);
+		assert_eq!(<Assets as Inspect<_>>::balance(USDT_ID, &alice,), SPEND_AMOUNT,);
 	});
 
 	Westend::execute_with(|| {
diff --git a/cumulus/parachains/runtimes/testing/penpal/src/xcm_config.rs b/cumulus/parachains/runtimes/testing/penpal/src/xcm_config.rs
index eca7c7bbc3c2daa4291ba84a11e67b335377e4df..d0c421bccaf89c8a54e348c3ff04950be444a233 100644
--- a/cumulus/parachains/runtimes/testing/penpal/src/xcm_config.rs
+++ b/cumulus/parachains/runtimes/testing/penpal/src/xcm_config.rs
@@ -282,6 +282,10 @@ parameter_types! {
 		1,
 		[Parachain(ASSET_HUB_ID), PalletInstance(ASSETS_PALLET_ID), GeneralIndex(RESERVABLE_ASSET_ID.into())]
 	);
+	pub UsdtFromAssetHub: Location = Location::new(
+		1,
+		[Parachain(ASSET_HUB_ID), PalletInstance(ASSETS_PALLET_ID), GeneralIndex(1984)]
+	);
 
 	/// The Penpal runtime is utilized for testing with various environment setups.
 	/// This storage item provides the opportunity to customize testing scenarios