Spool Tech Docs
Search
K

Flow of funds

The flow of funds within the Spool Ecosystem can be split up into two main parts:

Depositing into a Spool

During a deposit, assets are deposited into the Master Spool and upon the completion of a DoHardWork they are routed to the respective Strategies. In order to differentiate to which Spool (Vault) a deposit has been made, depositing requires a "vault address", which is derived automatically in the User Interface on Spool.fi.
  1. 1.
    User approves the asset they want to deposit for spending by the Master Spool (Or by the individual Vault)
    1. 1.
      User awaits this approval to be confirmed
  2. 2.
    User deposits into the Spool (Vault)
    1. 1.
      During this transaction the deposit gets routed to the Master Spool
  3. 3.
    Upon completion of the deposit transaction any incentivized rewards start
    1. 1.
      Incentivized rewards refer to the SPOOL Token Rewards and/or any other rewards emitted by the respective Spool (Vault)
  4. 4.
    A DoHardWork gets done by a respective DoHardWorker
  5. 5.
    The funds get routed to the respective Strategies in the allocation that was set under the Spool (Vault) in which the User did deposit

Withdrawing from a Spool

During a withdrawal from a Spool (Vault), the first stage is the initiation of a withdrawal request. Upon completion of this step and a DoHardWork, the funds are moved from their respective Strategies back to the respective Spool (Vault). Once the funds are in the Spool (Vault), the User can claim their withdrawal and the funds move to their individual wallet. A User is free to leave their funds in the "waiting to be claimed" stage for any length of time, be it that no yield is generated during that period.
A withdrawal can only be initiated after a successful deposit and a DoHardWork. The flow looks like this:
  1. 1.
    User makes a withdrawal request to the Spool (Vault)
    1. 1.
      This withdrawal is denominated in Shares
    2. 2.
      And awaits the confirmation of this transaction
  2. 2.
    A DoHardWork is done by a respective DoHardWorker
    1. 1.
      Funds are routed from their respective Strategies to the Master Spool
  3. 3.
    On the next Vault Synchronization funds are routed to the respective Spool (Vault)
    1. 1.
      The user can claim their withdrawal
  4. 4.
    User claims their withdrawal
    1. 1.
      And awaits the confirmation of this transaction
  5. 5.
    Funds are routed to their wallet

Fast Withdrawing from a Spool

A Fast Withdrawal allows a Spool User to withdraw their assets in one transaction without the need to await the completion of a DoHardWork, the core difference between a regular withdrawal is the fact that a "Fast Withdrawal" is more expensive in terms of gas costs, since the "Fast Withdrawal" exit routine does not use the Buffer System.
A "Fast Withdrawal" can only be initiated after a successful deposit and a DoHardWork. The flow looks like this:
  1. 1.
    User instigates a Fast Withdrawal
    1. 1.
      This is a route through which the End User pays for the entire exit routine of each Strategy individually
    2. 2.
      User awaits the confirmation of the transaction
  2. 2.
    Upon completion of this transaction:
    1. 1.
      The underlying asset is transferred from each Strategy individually to the Master Spool
    2. 2.
      The underlying asset is transferred from the Master Spool to the Fast Withdrawal Contract
    3. 3.
      The underlying assets is transferred from the Fast Withdrawal Contract to the wallet of the User