diff --git a/substrate/frame/assets/src/lib.rs b/substrate/frame/assets/src/lib.rs
index c25f33ae3eaf9bd1572d2fbf92f19c432652a282..33aacd9323bf2bdb64078db6d3c26a878a3b85ee 100644
--- a/substrate/frame/assets/src/lib.rs
+++ b/substrate/frame/assets/src/lib.rs
@@ -1654,7 +1654,7 @@ pub mod pallet {
 	impl<T: Config<I>, I: 'static> AccountTouch<T::AssetId, T::AccountId> for Pallet<T, I> {
 		type Balance = DepositBalanceOf<T, I>;
 
-		fn deposit_required() -> Self::Balance {
+		fn deposit_required(_: T::AssetId) -> Self::Balance {
 			T::AssetAccountDeposit::get()
 		}
 
diff --git a/substrate/frame/support/src/traits/misc.rs b/substrate/frame/support/src/traits/misc.rs
index e21fcfbb24179d10e8950d99e4da360a39eac0f8..a6f8c46d6395128b8794a07d88fcaf9b57df76c5 100644
--- a/substrate/frame/support/src/traits/misc.rs
+++ b/substrate/frame/support/src/traits/misc.rs
@@ -1160,8 +1160,8 @@ pub trait AccountTouch<AssetId, AccountId> {
 	/// The type for currency units of the deposit.
 	type Balance;
 
-	/// The deposit amount of a native currency required for creating an asset account.
-	fn deposit_required() -> Self::Balance;
+	/// The deposit amount of a native currency required for creating an account of the `asset`.
+	fn deposit_required(asset: AssetId) -> Self::Balance;
 
 	/// Create an account for `who` of the `asset` with a deposit taken from the `depositor`.
 	fn touch(asset: AssetId, who: AccountId, depositor: AccountId) -> DispatchResult;