Overview
Delegates are addresses that can perform specific operations on your vault. As a vault owner, you can grant granular permissions to delegates for different protocols and operations without transferring vault ownership. This is useful for:- Allowing trading bots to execute swaps
- Enabling portfolio managers to manage DeFi positions
- Granting limited access to team members
- Automating specific vault operations
Understanding Delegate Permissions
Permissions are organized by:- Integration Program: The protocol integration (e.g., Jupiter, Kamino, Drift)
- Protocol: Specific protocol within the integration
- Permission Names: Specific operations allowed (e.g., swap, deposit, borrow)
Permission Scope
Each delegate can have different permissions for different protocols:Listing Delegates
View all delegates and their current permissions:Delegates are identified by their public key (wallet address). Make sure you have the correct address before granting permissions.
Granting Permissions
Grant specific permissions to a delegate for a protocol:Examples
Skip Confirmation
Use the-y flag to skip the confirmation prompt:
Common Protocol Names
Here are commonly used protocol names:| Protocol Name | Operations | Description |
|---|---|---|
JupiterSwap | swap, limitOrder | Token swaps via Jupiter |
KaminoLend | deposit, withdraw, borrow, repay | Kamino lending operations |
KaminoVaults | deposit, withdraw | Kamino liquidity vaults |
DriftProtocol | deposit, withdraw, swap, borrow | Drift perpetuals and trading |
SplToken | transfer, burn | SPL token operations |
Marinade | stake, unstake | Marinade liquid staking |
Revoking Permissions
Revoke specific permissions from a delegate:Examples
Revoking All Access
Completely remove all permissions for a delegate:Permission Management Workflows
Setting Up a Trading Bot
Onboarding a Portfolio Manager
Emergency Access Revocation
Rotating Delegate Access
Security Best Practices
Principle of Least Privilege
Principle of Least Privilege
Only grant the minimum permissions required for each delegate to perform their tasks.Bad:Good:
Use Dedicated Wallets
Use Dedicated Wallets
Create separate wallets for different delegates instead of sharing access:
Regular Permission Audits
Regular Permission Audits
Review delegate permissions regularly:Remove delegates that are no longer needed.
Monitor Delegate Activity
Monitor Delegate Activity
Track transactions performed by delegates using Solana explorers or monitoring tools.
Emergency Procedures
Emergency Procedures
Have a documented process for emergency access revocation:
Troubleshooting
Permission grant fails
Permission grant fails
Error:
Protocol not found or Invalid permission nameSolution:- Verify the protocol name is spelled correctly (case-insensitive)
- Check available protocols using
glam delegate list - Ensure you’re using the correct permission names for the protocol
Delegate cannot perform operation
Delegate cannot perform operation
Issue: Delegate receives permission denied errorSolution:
Cannot revoke permission
Cannot revoke permission
Error: Permission not found or already revokedSolution:
Command Reference
| Command | Description | Required Options |
|---|---|---|
delegate list | List all delegates and permissions | None |
delegate grant <pubkey> | Grant permissions to delegate | --protocol <name><permissions...> |
delegate revoke <pubkey> | Revoke specific permissions | --protocol <name><permissions...> |
delegate revoke-all <pubkey> | Revoke all delegate access | None |
Common Options
-y, --yes- Skip confirmation prompt--protocol <name>- Protocol name (required for grant/revoke)
Next Steps
Managing Assets
Learn how to manage vault assets and balances
Jupiter Commands
Execute swaps with delegate permissions
Kamino Commands
Manage DeFi positions with delegates
Drift Commands
Trade perpetuals using delegate accounts