Docs / Paper

Rewards(11)

Paper holders receive two flows: 50 % of every fee charged, win and loss fees alike, and 100 % of the excess swept from the house above the $75,000 reserve cap.

The accumulator

[ Fig. 1 ] DISTRIBUTION OF x
if total_paper == 0:   unallocated += x        paid out with the next distribution
otherwise:             acc_per_paper += x × SCALE / total_paper        SCALE = 1e24

Your share is read from the accumulator, so a distribution costs the same whether there are ten holders or ten thousand. Before paper is minted to you, the program settles what you have earned so far:

[ Fig. 2 ] PER HOLDER
rewards_owed += paper × acc_per_paper / SCALE − reward_debt
paper        += minted
reward_debt   = paper × acc_per_paper / SCALE

Claiming

claim_rewards() moves rewards_owed and anything pending into your available balance, where you can trade with it or withdraw it. Only your wallet can claim; a session key cannot.

An example

Total paper outstanding is 100,000 and a $10 fee is charged. $5 goes to paper holders, so acc_per_paper rises by $0.00005 per paper. A holder of 1,960 paper has earned $0.098.

Rounding

acc_per_paper is a u128 scaled by 1e24, and every division rounds down. The dust left by rounding stays in the vault, in the protocol's favour, and amounts to less than one base unit per holder each time rewards are settled.