Skip to content

Manage Vault Roles

This tutorial guides you through the process of setting up and managing roles for your Morpho vault. Proper role assignment is crucial for vault operations, governance, and security.

Using the Curator App

To manage your vault's roles, navigate using the left-hand side menu to the Roles section.

Vault roles management interface

Owner Transfer

The vault owner can transfer ownership to a new address. Click the Transfer button next to the current owner address. The new owner must accept the transfer to complete the process.

Setting Up Core Roles

The following roles can be configured through the interface or directly via contract calls.

Using Contract Calls

Set Curator

The curator manages market configurations and can submit caps and market removals.

Execute setCurator(0xNewCurator)

  • Parameters:
    • newCurator: Address of the new curator
  • Permissions: Only owner can execute
  • Effect: Immediate - no timelock required

Add Allocators

Allocators can reallocate liquidity between markets and manage supply/withdraw queues.

Execute setIsAllocator(0xNewAllocator, true)

  • Parameters:
    • newAllocator: Address to grant allocator permissions
    • isAllocator: true to grant, false to revoke
  • Permissions: Only owner can execute
  • Effect: Immediate - can have multiple allocators

Set Guardian

The guardian can revoke pending operations and provides additional security oversight.

Execute submitGuardian(0xNewGuardian)

  • Parameters:
    • newGuardian: Address of the new guardian
  • Permissions: Only owner can execute
  • Timelock: If no guardian exists, sets immediately. Otherwise, requires timelock period
  • Acceptance: New guardian must call acceptGuardian() after timelock expires

Configure Fee Structure

Performance fees are collected when vault performance exceeds benchmarks.

Step 1: Set Fee Recipient Execute setFeeRecipient(0xFeeRecipient)

Step 2: Set Fee Rate Execute setFee(10000000000000000) // 1% fee (18 decimal precision)

  • Parameters:
    • feeRecipient: Address to receive performance fees
    • fee: Fee rate in 18-decimal format (1% = 10^16)
  • Limits: Maximum fee is 50% (0.5e18)
  • Requirements: Fee recipient must be set before setting non-zero fee

Set Skim Recipient

The skim recipient receives rewards and excess tokens allocated to the vault.

Execute setSkimRecipient(0xSkimRecipient)

  • Parameters:
    • skimRecipient: Address to receive skimmed tokens
  • Purpose: Collects rewards from market participation
  • Usage: Call skim(tokenAddress) to transfer accumulated tokens

Role Management via Curator App

Detailed roles management interface

Guardian Changes

Guardian changes require timelock approval for security:

  1. Click Change next to the current guardian
  2. Enter the new guardian address
  3. Submit the transaction - this starts the timelock period
  4. Wait for the timelock to expire
  5. New guardian must click Accept to complete the change

Curator Management

Curator changes are immediate and don't require timelock:

  1. Click Change next to the current curator
  2. Enter the new curator address
  3. Submit the transaction - change takes effect immediately

Allocator Management

Adding Allocators:
  • Click Add Allocator in the top right
  • Enter the allocator address in the popup
  • Submit the transaction
Adding Public Allocator:
  • Click Add Public Allocator for one-click integration
  • This adds the Morpho Public Allocator to your vault
Removing Allocators:
  • Click Remove on the relevant allocator row
  • Confirm the transaction

Best Practices

  • Owner: Use a secure multisig wallet for the owner role
  • Curator: Choose experienced DeFi professionals familiar with Morpho markets
  • Guardian: Select a trusted party different from the curator for oversight
  • Fee Recipient: Can be the same as owner or a separate treasury address
  • Allocators: Add the Public Allocator for automated optimizations, plus any custom allocators