Spool Tech Docs

DoHardWork Mechanics


The DoHardWork System manages reallocations, user deposits, user withdraws, compounds rewards and is able to do complex operations at a shared cost. DoHardWork is the backbone to Spools gas efficiency and fluid user experience.


  • Aggregating User Deposits
  • Distributing User Deposits to the correct Strategies
  • Aggregating User Withdrawals
  • Compounding generated profits
  • Reallocating of assets between Strategies

Functional Requirements

  • Successful Spool Ecosystem Deployment
  • Whitelisted DoHardWorkers
  • Funds in the system

Expected Output

  • Completion of User Deposits
  • Completion of User Withdrawals
  • Completion of reallocations
  • Completion of compounding by exchanging Reward Tokens for underlying assets

Relevant Entities

Relevant Implementations

Spool.sol, batchDoHardWork(), batchDoHardWorkReallocation()

Fact Sheet

  • DoHardWork aggregates user deposits under one function call
  • DoHardWorkers are reimbursed in SPOOL Tokens
  • DoHardWorkers are whitelisted entities
  • All the logic and code in the DoHardWork Section is unique, like the rest of the Spool Protocol