# Access Controls

## Implementing Access Controls for NFT Collections

Access controls are a crucial feature for NFT collection owners who want to manage their Traits effectively. They enable you to assign different permission levels to users within your ecosystem, ensuring that only authorized individuals can add new Traits or modify existing ones.

### Setting Up Access Controls

The Trait Management System's Access Controls feature allows NFT collection owners to define access controls for their collections. This functionality enables them to regulate who can add, modify, and delete Traits.

Collection administrators can invite collaborators, such as artists, to contribute new visual traits, or brands to add new utility traits to the collection. Access Controls can be configured to grant varying degrees of access based on a user's role, such as admin or contributor.

### Access Control Levels

The Trait Management System offers multiple levels of access control to cater to different user roles and responsibilities. The access control levels include:

* **Admin**: Has full access to add, modify, and delete Traits.
* **Contributor**: Can add and modify Traits but cannot delete them.
* **Viewer**: Can only view the Traits in the collection.

By assigning different access control levels, you can ensure that only authorized users can perform specific Trait-related actions within your NFT collection.

### Contract Level Access Controls

Access controls are enforced at the contract level, providing an added layer of security. This approach guarantees that no third-party marketplace can bypass the access controls that you have established for your NFT collection. By integrating access controls within the smart contract, you can maintain the integrity of your collection and ensure that only users with the appropriate permissions can manage your NFT Traits.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.playground.ooo/degen-engine/concepts/access-controls.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
