# Operator Permissions

### Node Operators

The Node implements the [ERC-7540](https://eips.ethereum.org/EIPS/eip-7540) operator system to allow delegation of redemption management. Operators can request and claim redemptions on behalf of share owners.

#### Setting Operators

```solidity
function setOperator(address operator, bool approved) external returns (bool) {
    if (msg.sender == operator) revert ErrorsLib.CannotSetSelfAsOperator();
    isOperator[msg.sender][operator] = approved;
    emit OperatorSet(msg.sender, operator, approved);
    return true;
}
```

#### Operator Permissions

Operators can:

* Request redemptions for owner
* Withdraw/claim assets for owner

```solidity
function _validateController(address controller) internal view {
    if (controller != msg.sender && !isOperator[controller][msg.sender]) revert ErrorsLib.InvalidController();
}
```

#### Usage Example

```solidity
// Owner approves operator
node.setOperator(operatorAddress, true);

// Operator can then manage redemptions
function requestRedeem(uint256 shares, address controller, address owner) external {
    // Operator can call with controller = owner
}

function withdraw(uint256 assets, address receiver, address controller) external {
    // Operator can claim with controller = owner
}
```

Note: Operators cannot be set as self, and permissions can be revoked by setting approved to false.


---

# 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://nashpoint.gitbook.io/nashpoint/managing-a-node/operator-permissions.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.
