Deposit
Asynchronous Deposit Process
The deposit flow is asynchronous, meaning tokens are accepted immediately, but shares are only issued (minted) after NAV settlement.


The process consists of two phases:
Request Deposit
Deposits are asynchronous: the request is instant, but shares are minted upon NAV settlement.


- Users initiate deposits by calling - requestDepositfunction with:- classId: The share class to deposit into.
- amount: The amount of underlying tokens to deposit.
- authSignature: (if KYC/auth is enabled).
 
- The deposit amount is transferred to the vault, and requests are recorded into a batch. 
- Users can track their pending deposit requests using: - depositRequestOf(classId, user): total pending deposits across all batches.
- depositRequestOfAt(classId, user, batchId): deposits for a specific batch.
 
Important:
- Only one deposit request is allowed per user per batch. 
- Minimum deposit amounts are enforced per class. 
- Maximum deposit caps can be set per class. 
Settle Deposit
Upon settlement, the Oracle calls settleDeposit to finalize all queued deposits for a specific series. The number of shares issued is calculated based on the current NAV and total share supply.


- Manager initiates settle deposit flow using the Oracle by calling - settleDeposit:- classId: The share class to settle.
- batchId: The batch to settle up to (excluding current batch).
- newTotalAssets: Updated NAV from off-chain calculations.
- authSignature: (if settlement auth is enabled).
 
- The vault calculates shares to mint based on: - Current price per share (NAV / total shares). 
- Deposited amounts for each user. 
 
- New shares are minted and allocated to depositors in the appropriate series: - Lead series (Series 1) for initial deposits. 
- New series created if performance fees apply. 
 
- Deposited tokens are transferred to the manager address. 
- Management and performance fees are calculated and accrued. 
- Series may be consolidated if conditions are met. 
Last updated
Was this helpful?

