Currator
📖 Centuari Prime — Curator & Vault Architecture Documentation
📌 Overview
Centuari Prime introduces an active capital management framework through Curators and Vaults, allowing dynamic capital deployment and risk-optimized strategies on top of the Centuari lending markets.
A Curator acts as an active fund manager within the protocol — creating, configuring, and managing Vaults, while continuously reallocating capital based on market conditions and performance targets.
Each Vault represents a curated, tokenized portfolio where users can deposit funds and benefit from automated, actively managed strategies without handling individual lending positions themselves.
📌 Key Entities
Curator
Address responsible for creating Vaults, managing supply/withdraw queues, allocating capital, and harvesting yield.
Vault
A dedicated DataStore contract representing a curated investment strategy, holding user deposits and allocating capital into selected markets.
Vault Token
ERC20 share token representing ownership in the Vault’s total assets, minted on deposit and burned on withdrawal.
📌 Vault Lifecycle
1️⃣ Vault Creation
A curator calls createVault()
providing a VaultConfig
, which includes:
Curator address
Deposit token address
Vault name
Process:
Deploy a new
DataStore
Set vault metadata and initialize as active
Deploy a Vault-specific ERC20 token (
CentuariPrimeToken
)Emit
CreateVault
event
Reference:
vault.setAddress(CentuariPrimeDSLib.CURATOR_ADDRESS, config.curator);
vault.setBool(CentuariPrimeDSLib.IS_ACTIVE_BOOL, true);
2️⃣ User Deposit
Users deposit capital into a vault via deposit()
.
Flow:
Validate vault status and deposit amount
Accrue interest from existing market positions
Calculate Vault shares to mint based on
totalAssets / totalShares
Transfer deposit token from user to Centuari protocol
Auto-supply funds to lending markets based on
SupplyQueue
configEmit
Deposit
event
Reference:
IERC20(depositToken).safeTransferFrom(msg.sender, address(CENTUARI), amount);
_supplyToMarkets(vault, amount);
3️⃣ Capital Deployment via Supply Queue
Each Vault maintains a Supply Queue of market configs and target lending rates. Upon deposit:
Iterate over Supply Queue
Check market caps and bond balances
Place lending orders to CLOB markets via
CENTUARI_CLOB.placeOrder()
Reference:
CENTUARI_CLOB.placeOrder(marketConfig, rate, Side.LEND, supplyAmount, 0);
4️⃣ Withdrawals
Users redeem Vault shares via withdraw()
Accrue latest interest
Compute withdrawal value based on share proportion
Burn Vault shares
Withdraw underlying assets from markets using Withdraw Queue
Transfer funds to user
Reference:
CENTUARI.withdraw(marketConfig, rate, withdrawAmount);
IERC20(loanToken).safeTransfer(msg.sender, assets);
5️⃣ Interest Accrual
On deposits and withdrawals:
Query active positions from CLOB markets via Centuari
Update vault’s
totalAssets
based on bond token balances and latest market valuationsEnsure yield compounding and correct asset valuation
Reference:
CENTUARI.accrueInterest(marketConfig, rate);
uint256 marketValue = (bondBalance * totalMarketSupplyAssets) / totalMarketSupplyShares;
6️⃣ Queue Configuration (Curator Control)
Curators can update:
Supply Queue: Target markets + rates + cap per market
Withdraw Queue: Priority withdrawal order and liquidity mapping
With validation to prevent:
Removing active markets with unsold positions
Duplicate market/rate configs
Reference:
vault.setBytes(CentuariPrimeDSLib.SUPPLY_QUEUE_BYTES, abi.encode(supplyQueue));
📌 Role of the Curator
Create Vaults
createVault()
Allocate deposits to markets
_supplyToMarkets()
Adjust Supply / Withdraw queues
setSupplyQueue()
, setWithdrawQueue()
Accrue and update yield
_accrueInterest()
(Planned) Reallocation logic
reallocate()
(todo)
📌 Summary
Centuari Prime’s Curator-Vault model empowers protocol-native asset managers to:
Dynamically route capital into fixed-rate lending markets
Optimize returns based on market liquidity and rates
Tokenize managed strategies through Vault-specific share tokens
Offer users passive, yield-generating exposure to curated lending positions
Last updated