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.

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 permissionsisAllocator
: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 feesfee
: 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

Guardian Changes
Guardian changes require timelock approval for security:
- Click Change next to the current guardian
- Enter the new guardian address
- Submit the transaction - this starts the timelock period
- Wait for the timelock to expire
- New guardian must click Accept to complete the change
Curator Management
Curator changes are immediate and don't require timelock:
- Click Change next to the current curator
- Enter the new curator address
- 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
- Click Add Public Allocator for one-click integration
- This adds the Morpho Public Allocator to your vault
- 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