> For the complete documentation index, see [llms.txt](https://docs.uxd.fi/uxdprogram-solana/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.uxd.fi/uxdprogram-solana/instructions/edit_identity_depository.md).

# edit\_identity\_depository

Permissionned - Update one or multiple properties of the identity depository in a single call

### Flow

* Checks
  * Anchor IDL accounts checks
* Handler
  * Update the `depository` PDA internal data with the new value
  * Emits Anchor `SetDepositoryRedeemableAmountUnderManagementCapEvent` or/and `SetDepositoryMintingDisabledEvent` event

### Parameters

`EditIdentityDepositoryFields` - a specific object type that accomodate all the new values for updating the properties in `depository`. The latest structure:

```
{
    redeemable_amount_under_management_cap: Option<u128>,
    minting_disabled: Option<bool>,
}
```

### Accounts in

{% code title="programs/uxd/src/instructions/edit\_identity\_depository.rs" %}

```rust
// ...

#[derive(Accounts)]
pub struct EditIdentityDepository<'info> {
    /// #1 Authored call accessible only to the signer matching Controller.authority
    pub authority: Signer<'info>,

    /// #2 The top level UXDProgram on chain account managing the redeemable mint
    #[account(
        mut,
        seeds = [CONTROLLER_NAMESPACE],
        bump = controller.load()?.bump,
        has_one = authority @UxdError::InvalidAuthority,
    )]
    pub controller: AccountLoader<'info, Controller>,

    /// #3 UXDProgram on chain account bound to a Controller instance.
    #[account(
        mut,
        seeds = [IDENTITY_DEPOSITORY_NAMESPACE],
        bump = depository.load()?.bump,
    )]
    pub depository: AccountLoader<'info, IdentityDepository>,
}

// ...
```

{% endcode %}
