diff --git a/prdoc/pr_3606.prdoc b/prdoc/pr_3606.prdoc
new file mode 100644
index 0000000000000000000000000000000000000000..18b71de9477ea516de2bcd5ecfab52a6a5479afb
--- /dev/null
+++ b/prdoc/pr_3606.prdoc
@@ -0,0 +1,9 @@
+title: "[pallet_contracts] mark lock/unlock_delegate_dependency as stable"
+
+doc:
+  - audience: Runtime Dev
+    description: |
+      Lock and unlock delegate dependency are stable now, so we can mark them as such.
+
+crates:
+  - name: pallet-contracts
diff --git a/substrate/frame/contracts/src/wasm/runtime.rs b/substrate/frame/contracts/src/wasm/runtime.rs
index f440c818166d865a3b884eea03107c663a985046..402ff78dcde255c68bdc185f6e10d0bd5ab3c446 100644
--- a/substrate/frame/contracts/src/wasm/runtime.rs
+++ b/substrate/frame/contracts/src/wasm/runtime.rs
@@ -2305,7 +2305,6 @@ pub mod env {
 
 	/// Adds a new delegate dependency to the contract.
 	/// See [`pallet_contracts_uapi::HostFn::lock_delegate_dependency`].
-	#[unstable]
 	fn lock_delegate_dependency(ctx: _, memory: _, code_hash_ptr: u32) -> Result<(), TrapReason> {
 		ctx.charge_gas(RuntimeCosts::LockDelegateDependency)?;
 		let code_hash = ctx.read_sandbox_memory_as(memory, code_hash_ptr)?;
@@ -2315,7 +2314,6 @@ pub mod env {
 
 	/// Removes the delegate dependency from the contract.
 	/// see [`pallet_contracts_uapi::HostFn::unlock_delegate_dependency`].
-	#[unstable]
 	fn unlock_delegate_dependency(ctx: _, memory: _, code_hash_ptr: u32) -> Result<(), TrapReason> {
 		ctx.charge_gas(RuntimeCosts::UnlockDelegateDependency)?;
 		let code_hash = ctx.read_sandbox_memory_as(memory, code_hash_ptr)?;