Distribution Methods
Bullish Social supports four distribution methods to split club rewards among members. Each method corresponds to a different on-chain calculation, as defined in the BSReward
smart contract.
🟢 1. Shared
All users receive the same reward amount, regardless of score or rank.
Contract Logic:
Example:
If a club earns 1000 $BUSO and has 5 members, each member gets:
🟡 2. Rank-Based
Users are rewarded based on their leaderboard rank using a reverse-rank weighting system.
Used Functions:
Explanation:
- Each user gets:
reward = rewardPiece × (receiverCount - rank + 1)
Example:
5 users, 1000 $BUSO reward:
Rank | Volume | Reward |
---|---|---|
1 | 5 | (5 / 15) × 1000 = 333.33 |
2 | 4 | = 266.66 |
3 | 3 | = 200 |
4 | 2 | = 133.33 |
5 | 1 | = 66.66 |
🔵 3. Score-Based
Rewards are distributed based on each user's score.
Used Functions:
Explanation:
- Each user gets:
reward = (score / totalScore) × rewardPool
Example:
Scores = [60, 30, 10], total = 100
Reward = 1000 $BUSO
User | Score | Reward |
---|---|---|
A | 60 | 600 |
B | 30 | 300 |
C | 10 | 100 |
🟣 4. Balanced
A hybrid method that combines both rank and score, using adjustable weights defined by the DAO.
Used Functions:
Formula:
Example:
Let's say we have a club with 5 members, and the variables are:
- Club's Reward Pool: 1000 $BUSO
- Rank Weight: 40%, Score Weight: 60%
This Club uses the Balanced method to distribute rewards to its members.
Member | Rank Volume | Rank Reward | Score | Score Reward | Total |
---|---|---|---|---|---|
A (1.) | 5 | 133.3 | 50 | 300 | 433.3 |
B (2.) | 4 | 106.6 | 40 | 240 | 346.6 |
C (3.) | 3 | 80.0 | 30 | 180 | 260.0 |
D (4.) | 2 | 53.3 | 20 | 120 | 173.3 |
E (5.) | 1 | 26.6 | 10 | 60 | 86.6 |
⚙️ The Balanced method used in both individual and club rewards is influenced by two DAO-controlled parameters:
individualScoreWeight
: Determines how much of an individual's reward is based on score versus rank.clubScoreWeight
: Determines the same for clubs.
For example, if individualScoreWeight
is set to 60%, then 60% of the reward is calculated from the user’s score and 40% from their rank. These values can be updated at any time through a DAO proposal.
Where the calculation happens?
These calculations are handled fully on-chain inside the BSReward
contract, and depend on real-time snapshot proofs and DAO-configured weights.