fhenix-access-control
Installation
SKILL.md
Fhenix FHE Access Control (ACL)
Why it exists
Every FHE operation verifies the caller has explicit permission for all input ciphertext handles. Without this, anyone could observe a handle and reuse/decrypt it. Each chain has a deployed ACL.sol tracking ownership:
mapping(uint128 handle => mapping(address account => bool)) persistedAllowedPairs;
Operating on a handle you lack permission for reverts with ACLNotAllowed:
FHE.add(notAllowedCt, allowedCt); // reverts ACLNotAllowed
Default access
A newly created handle is accessible to the contract that created it only for the current transaction. Any access beyond that (future txs, other addresses, decryption) must be explicitly granted.