Rewards

The core primitive of the Hourglass platform is the TBT, representing a share of ownership within a time boosted vault. Assets that are staked into Hourglass vaults in exchange for TBT's generate yield while they sit in the vault until their maturity date. This yield is periodically distributed to users as rewards.

Reward Distribution

On the 15th and final day of each month, the Hourglass protocol executes a process that updates the amount of yield that each user is entitled to. If a user has unclaimed rewards from previous runs of this process, they continue to accumulate each time this process is run. This means that users can wait multiple periods to claim their rewards to minimize costs incurred from claiming with no consequence.

Reward Claiming

At any point in time where a user has unclaimed yield, they can claim what they are owed by interacting with the rewards interface.

Determining Reward Amounts

Here is the process by which the Hourglass protocol computes and distributes rewards to its users.

  • A user acquires TBT's by either 1) Staking assets into Hourglass vaults 2) Purchasing TBT's on the Hourglass Marketplace.

  • As time passes, the underlying assets deposited in the vaults accrue yield. The TBT's held by a user entitle them to a pro-rata share of yield earned by the vault.

  • On the 15th and last day of the month (twice a month), an off-chain script is run to determine the amount of rewards that each user is entitled to. This algorithm accounts for how ownership of the vaults (i.e. the distribution of TBT's held across unique addresses) evolves over time and uses this information to determine reward amounts for each unique combination of an address and reward token (currently supported reward tokens are CRV, CVX, and FXS).

  • The data output from the previous step is written to the Hourglass Rewards Distributor smart contract.

  • A user can now use the Rewards tab on the Hourglass website to claim their rewards.

Notes

There are a few important nuances to understand about the above process.

Rewards are computed across all vaults

A consequence of the above design is that we can aggregate reward amounts owed to all users across all vaults. If a user were to individually manage a large number of Convex Frax staking positions across multiple pools and durations, they would be responsible for the entire cost of claiming rewards across all positions. Using this Merkle airdrop approach, we can simply compute reward amounts owed to users across all vaults and reduce the cost of claiming to a single ERC20 transfer per reward token.

You are only earning rewards while you are a vault shareholder.

Let's say we have a vault that matures 3 months from now, and you currently own 0 of the TBT for this vault. Two months pass and then you acquire some TBT's for this vault. When rewards are computed at the end of the 3 month period, you will only be entitled to a share of the vault rewards accrued between the end of the second month and the end of the third month (a one month period). Only users who held TBT's during the first two months of the vault will be entitled to the remaining vault rewards.

TBT Rewards are sticky

When a TBT is transferred between accounts AA and BB at time point tt, the yield earned prior to tt will be distributed to AA and future yield from time point tt onwards will be distributed to BB, assuming no more transfers of the TBT. We say that the yield prior to the transfer sticks to account AA.

Let's say we have a vault that matures 3 months from now, and you own some TBT's for this vault. You hold these TBT's until 3 days after the vault matures, then you sell them to someone else on the Hourglass marketplace. Even though you now hold 0 TBT's for this vault, you can still go to the Hourglass website and claim your rewards for the full duration of the vault (3 month period). The new holder of your TBT's can redeem the tokens for the underlying assets, but will not get any rewards from the vault.

Last updated