➡️Rewards Distribution

Every week, a prize pool is created. It is filled according to the activity on the platform. When a user validates a task, the task compensation is put into the prize pool and he earns points. At the end of each period (weekend) a general user ranking based on points is made. The prize pool is then distributed to the users according to an exponential function. The remainder of this page outlines the main steps involved in calculating the rewards distributed to users.

Parameters

  • to_distributeto\_distribute: The amount of money to be distributed

  • percent_to_winpercent\_to\_win: The percentage of winning users

  • decay_factordecay\_factor: The exponential decay factor

Invariants

  • A task completed by a user of rank 𝑥 should be better rewarded than a task completed by a user of rank 𝑥 + 1.

Algorithm

  • Get the users selected to win the prize pool winners=users_numberpercent_to_winwinners=users\_number * percent\_to\_win.

  • For each user ii, compute his exponential factor factori=factor(len(winners),decay_factor,i)factor_i=factor(len(winners), decay\_factor, i).

  • For each user ii, compute his score scorei=factorinbtasksiscore_i=factor_i*nb_{tasks_i}.

  • Compute the sum of the scores sumscore=Σscoreisum_{score}=\Sigma score_i.

  • For each user ii, compute his score ratio ratioi=scorei/sumscoreratio_i=score_i/sum_{score}.

  • For each user ii, compute his rewards rewardi=ratioito_distributereward_i=ratio_i*to\_distribute.

TADA vs Gems

The distribution of TADA and Gems uses exactly the same algorithm. However, the quantity of Gems distributed and the number of winners are much higher.