An ERC-721 token system for managing access policies

The contracts have a separate open-source project that can be found here (opens in a new tab).

The Access contract enables the Pool's owner to have easy access control over functions of the Pool's contracts for all users. When a Pool is created, an Access contract is deployed to manage access control for all other contracts within the Pool.

Function access is granted through ownership of an ERC-721 token, with each token representing an access role. A user can hold multiple roles and gain access to allowed functions based on their roles. A contract function can be associated with multiple roles simultaneously.

The contract supports up to 256 roles simultaneously for a single Pool, and also provides the option to assign a custom name to each role for greater convenience of use.