Spool Docs
Flow of Funds

1. Depositing funds into a Spool

  • The user submits a transaction that moves their funds to the buffer. This submitted transaction is relatively cheap because tokens are only being sent from X to Y.
  • Funds are held in the buffer, waiting to be deployed into the protocol.

2. DoHardWork() function is called

  • The funds either match with a user that withdraws an equal- or bigger share (again, to optimize capital efficiency) OR the funds are deposited into the selected strategies according to the Spool's current portfolio weighting.
Yield starts generating after steps 1 and 2 are executed.


  • The user makes a request for the withdrawal which gets buffered up.
  • After DoHardWork() is executed, the respective user can claim the amount they just requested to withdraw.
  • This is done to achieve higher capital efficiency and lower gas costs.
Yield stops generating the moment a withdrawal request is submitted and subsequently a DoHardWork has happened after the withdrawal request.
After a withdrawal is in the claim stage, funds remain available to claim until the user claims them. No time constraints are in place for claiming a withdrawal.