1. Find a table that holds all of the events of the Market, Accounting, and Rewards contracts.
    1. Market.PositionCreated(owner, tokenID, initialDebt) - tells us the position ID and initial debt (we care about 0 or not 0)
    2. HuePositionNFT.Transfer(from, to, tokenID) - Tells us if a debt position was moved from owner to owner
    3. Market.PositionAdjusted(tokenID, newDebt) - tells us if a debt position now has no debt or some debt
  2. Develop an algorithm using the above events to determine:
    1. During a given time period, what addresses owned at least one position that had non-zero debt (counting multiple positions only once)
    2. How much time during that time period each address held at least one position that had non-zero debt
    3. Filter by addresses that sent at least one transaction to ethereum during the year leading up to launch
    4. Add up all all of the valid address position times during the time period
    5. Generate a signature for each address that gives it tokens proportional to the amount of total time that address contributed non-zero debt.

Part 2:

  1. Do the same for Liquidity positions (Will define more precisely once above algorithm is complete, since this one might be slightly more complex, but not much since people can't "transfer" their positions)