> ## Documentation Index
> Fetch the complete documentation index at: https://docs.superform.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Vault Settings

> Configure fees, PPS parameters, redeem timelock, banned hook leaves, session keys, notifications, and upkeep activation.

Vault Settings is the configuration hub for vault-level controls. Most settings use the same pattern: Erebor prepares calldata, the manager wallet signs, and the protocol contract applies the change onchain.

<Note>
  Prepare endpoints return transaction data. They do not mutate protocol state by themselves. The connected wallet must sign and submit the transaction.
</Note>

## Access Model

Primary managers own sensitive vault settings. Secondary managers can operate the vault but do not control primary-only settings such as manager assignment and some security parameters.

See [Permissions Model](/curate/permissions) for the full matrix.

## Fees

Configure the vault's performance fee, management fee, and fee recipient.

Fee changes protect depositors through the protocol's proposal/timelock rules. The dashboard displays current values and prepares the required transaction when a primary manager proposes a change.

## PPS Parameters

Price-per-share controls define how often PPS can update and when stale data blocks operations.

Common fields:

* **Deviation threshold** — maximum allowed difference between calculated and current PPS.
* **PPS expiration / staleness** — when vault operations should stop waiting for a fresh PPS update.
* **Minimum update interval** — minimum time between PPS updates.

These settings are read from vault detail data and changed through signed transactions.

## Redeem Timelock

Redeem timelock adds a delay between redemption request and fulfillment eligibility.

Use it for:

* Liquidity sourcing before fulfillment.
* Fraud and risk review windows.
* Regulatory or operational policy requirements.

Relevant APIs:

| Endpoint                                                    | Method | Description                         |
| ----------------------------------------------------------- | ------ | ----------------------------------- |
| `/api/v1/redeem-timelocks`                                  | GET    | List configured timelocks           |
| `/api/v1/redeem-timelocks/bulk`                             | GET    | Bulk timelock lookup                |
| `/api/v1/vaults/{chain_id}/{vault_address}/redeem-timelock` | GET    | Read one vault's timelock           |
| `/api/v1/settings/redeem-timelock`                          | POST   | Prepare timelock update transaction |

<Warning>
  Changing a redeem timelock affects future redemption requests. Existing requests are not retroactively changed.
</Warning>

## Banned Hook Leaves

A banned hook leaf is blocked even if it appears in an authorized merkle tree. Use this to quickly stop a specific hook + parameter combination while you prepare a cleaner merkle config update.

Banning a leaf is narrow: it blocks the exact leaf, not the entire hook category.

## Upkeep and Activation

Upkeep funds vault automation. It is also the practical activation gate for a new vault.

The Upkeep panel shows:

* Current upkeep balance.
* Upkeep token.
* Required balance and shortfall.
* Activation status: `active` or `insufficient_upkeep`.
* Whether the vault is active for keeper operations and discoverable in public listing surfaces.
* Pending upkeep withdrawal proposal, if any.

A vault below its required upkeep threshold is not considered active. Once the required balance is in place, Erebor marks it active and discoverable. Erebor returns this as `upkeep_info` plus `activation`; upkeep withdrawal lifecycle is returned separately as `withdrawal_status`.

### Deposit Upkeep

Managers deposit upkeep through the settings flow:

```bash theme={null}
POST /api/v1/settings/upkeep/deposit
```

The dashboard handles token allowance checks first, then prepares the deposit transaction for wallet signature.

### Withdraw Upkeep

Withdrawals use a propose / execute pattern:

```bash theme={null}
POST /api/v1/settings/upkeep/withdraw/propose
POST /api/v1/settings/upkeep/withdraw/execute
```

Use withdrawals carefully on live vaults. Pulling the balance below threshold can make the vault inactive or undiscoverable.

## Session Keys

Session keys delegate limited execution authority for automation. They are used by the OMS / Strategy Engine path so strategies can publish and execute intents without asking the manager wallet for every tick.

Erebor exposes vault-scoped session-key inventory and prepare endpoints:

| Endpoint                                                | Method | Description                              |
| ------------------------------------------------------- | ------ | ---------------------------------------- |
| `/api/v1/session-keys`                                  | GET    | List session keys visible to the manager |
| `/api/v1/vaults/{chain_id}/{vault_address}/session-key` | GET    | Read a vault session key                 |
| `/api/v1/vaults/session-key/prepare`                    | POST   | Prepare grant transaction                |
| `/api/v1/vaults/session-key/revoke/prepare`             | POST   | Prepare revoke transaction               |

OMS also exposes strategy-automation session-key readiness and rotation endpoints. See [OMS API](/curate/api/oms).

## Notification Channels

Notification channels attach Slack, webhook, or websocket destinations to a vault.

| Endpoint                                                                       | Method   | Description                           |
| ------------------------------------------------------------------------------ | -------- | ------------------------------------- |
| `/api/v1/notification-channels`                                                | GET/POST | List or create manager-owned channels |
| `/api/v1/vaults/{chain_id}/{vault_address}/notification-channels`              | GET/POST | Attach or list vault channels         |
| `/api/v1/vaults/{chain_id}/{vault_address}/notification-channels/{channel_id}` | DELETE   | Detach channel                        |

Use notification channels for operational alerts, monitoring, and downstream automation.

## API Reference

| Endpoint                                    | Method | Description                                           |
| ------------------------------------------- | ------ | ----------------------------------------------------- |
| `/api/v1/vaults/{chain_id}/{vault_address}` | GET    | Full vault detail including fee, PPS, and upkeep data |
| `/api/v1/settings/upkeep`                   | POST   | Prepare upkeep settings update                        |
| `/api/v1/settings/upkeep/deposit`           | POST   | Prepare upkeep deposit                                |
| `/api/v1/settings/upkeep/withdraw/propose`  | POST   | Prepare upkeep withdrawal proposal                    |
| `/api/v1/settings/upkeep/withdraw/execute`  | POST   | Prepare upkeep withdrawal execution                   |
| `/api/v1/settings/redeem-timelock`          | POST   | Prepare redeem timelock update                        |
