diff --git a/protocol/accounts-contracts/access-keys.mdx b/protocol/accounts-contracts/access-keys.mdx
index ee3337425e3..0bb855e4e23 100644
--- a/protocol/accounts-contracts/access-keys.mdx
+++ b/protocol/accounts-contracts/access-keys.mdx
@@ -58,6 +58,33 @@ You should never share your `Full-Access`, otherwise you are giving **total cont
---
+## Limited Access Key Caveats
+
+### Account with Only Function-Call Keys
+
+If an account has **no full-access keys** and only function-call keys, it becomes effectively restricted:
+- It **cannot** transfer NEAR, delete itself, or manage its own keys
+- It can **only** perform the specific contract calls defined by the key's `receiver_id` and `method_names`
+
+This is useful for creating restricted sub-accounts (e.g. for [chain signatures](../../chain-abstraction/chain-signatures)), but be aware the account cannot be recovered or reconfigured through standard transactions.
+
+
+Creating a sub-account with only a single function-call key means that account will **never** be able to remove itself, transfer NEAR out, or add new keys — unless the target contract provides a method to do so.
+
+
+### Allowance Exhaustion
+
+The `allowance` field defines how much NEAR the key can spend on gas fees:
+
+- If set to a specific amount and fully consumed → the key becomes **unusable** and no new transactions can be signed
+- If set to `0` or omitted → **unlimited** allowance (the key has no gas budget restriction)
+
+
+If an account has only function-call keys and the allowance runs out, the account is permanently locked from initiating any transaction. Either use unlimited allowance (`0`) or ensure the account is topped up with NEAR before the allowance is exhausted.
+
+
+---
+
## Locked Accounts
If you remove all keys from an account, then the account will become **locked**, meaning that no external actor can perform transactions in the
account's name.