# AccessManager

## View Methods

### whiteListMode (KYC)

```solidity
function whiteListMode(address _vaultAddress) external view returns (bool isEnabled)
```

Returns the KYC mode status of a vault.

**Call Parameters:**

|                | Type    | Description          |
| -------------- | ------- | -------------------- |
| \_vaultAddress | address | address of the vault |

**Return Value:**

| Type | Description                       |
| ---- | --------------------------------- |
| bool | `true` if the KYC mode is enabled |

### permissionLessMode

```solidity
function permissionLessMode() external view returns (bool isEnabled)
```

Returns the status of the permission-less mode.&#x20;

**Return Value:**

| Type | Description                                   |
| ---- | --------------------------------------------- |
| bool | `true` if the permission-less mode is enabled |

### getUserAccessInfo

```solidity
function getUserAccessInfo(address _user)
    external
    view
    returns (
        uint256 ownedTokenID,
        bool isUserKYC,
        IKYCToken.TokenParameters memory _tokenParameters
    )
```

Returns the KYC information for a given user.

**Call Parameters:**

<table><thead><tr><th width="214">Name</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td><code>_user</code></td><td>address</td><td>address of the user</td></tr></tbody></table>

**Return Values:**

<table><thead><tr><th width="214">Name</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td><code>ownedTokenID</code></td><td>uint256</td><td>KYC token ID</td></tr><tr><td><code>isUserKYC</code></td><td>bool</td><td>KYC state of the user</td></tr><tr><td><code>_tokenParameters</code></td><td>IKYCToken.TokenParameters</td><td>KYC information of the user</td></tr></tbody></table>

### isWhiteListed

```solidity
function isWhiteListed(address _vault, address _user) 
    public view returns (bool)
```

Returns the whitelist status of a given user.

**Call Parameters:**

| Name     | Type    | Description               |
| -------- | ------- | ------------------------- |
| `_vault` | address | address of a vault        |
| `_user`  | address | address of a vault's user |

**Return Value:**

| Type | Description                          |
| ---- | ------------------------------------ |
| bool | `true` if the address is whitelisted |

## Write Methods

### SetPermissionLessMode

```solidity
function setPermissionLessMode(bool _status) external
```

Settles the permission-less mode.&#x20;

{% hint style="info" %}
This method can only be called by address with **DEFAULT\_ADMIN\_ROLE**.
{% endhint %}

**Call Parameters:**

| Name      | Type | Description                               |
| --------- | ---- | ----------------------------------------- |
| `_status` | bool | `true` to enable the permission-less mode |

### SetWhiteListMode (KYC)

```solidity
function setWhiteListMode(address _vault, bool _status) external
```

Settles the KYC mode of a vault.&#x20;

{% hint style="info" %}
This method can only be called by address with **DEFAULT\_ADMIN\_ROLE**.
{% endhint %}

**Call Parameters:**

| Name      | Type    | Description                   |
| --------- | ------- | ----------------------------- |
| `_vault`  | address | address of a vault            |
| `_status` | bool    | `true` to enable the KYC mode |

### SetKYCTokenImp

```solidity
function setKYCTokenImp(address _newKYCTokenImp) external
```

Settles the implementation address of the KYCToken.&#x20;

{% hint style="info" %}
This method can only be called by address with **DEFAULT\_ADMIN\_ROLE**.
{% endhint %}

**Call Parameters:**

| Name              | Type    | Description                                                   |
| ----------------- | ------- | ------------------------------------------------------------- |
| `_newKYCTokenImp` | address | the address of the contract containing the new implementation |


---

# 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.shprd.finance/technical-reference/core-contracts/accessmanager.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.
