Kappa Sigma Mu is a membership club using the Substrate Society pallet. It is an economic game to incentivize users to join a society that coordinates around whatever the rules are decided to be. The members of the society are incentivized to participate in the society via the rewards paid by the treasury. Currently, there is only one society on Kusama but it is possible to have multiple societies in the future through a runtime upgrade.
Members: The number of members in the society. Currently, the maximum number of members is set to
150. It can be changed by using governance to increase the number.
Rotation: The duration between each time the membership rotates.
Challenge: The time period to randomly select one of the members to defend his membership in the society.
Pot: Resource that is used to support the member of society.
Bids: A list of users who submitted a bid to join the society.
Below are the various types of users at different stages.
Bidder- A token holder who intends to join the society by placing a bid.
Candidate- The selected bidders that will be voted on by members of the society.
Suspended Candidate- The candidates that failed to join the society.
Member- Member of the society.
Suspender Member- A member of the society who has accumulated too many strikes or failed their membership challenge.
Head- One winning candidate will be randomly chosen as head of the members, weighted by the number of approvals the winning candidates accumulated.
Defender- In every challenge period, one of the members will be randomly selected to defend their membership in the society. The rules for defending the membership are documented in the rules.
1. Bid Phase
Note: If you want to bid to join the society, you will need to be on the Extrinsics page for the following functions. The page is found under "Developer" > "Extrinsics" in Polkadot-JS UI navigation. Ensure that you are on the Kusama network by clicking on the network in the top-left corner
Anyone can submit a bid to join the society by reserving a deposit or finding an existing member to create a bid on their behalf by vouching for them. At every rotation period, as many bids the society pot can support will be selected. The selected bids will be moved to the candidate phase, whereas bids that were not selected will stay in the bidder pool until they are selected or a user chooses to unbid.
Anyone who wants to join the society is required to deposit 10 KSM for reserve on Kusama and place the bid amount (1 KSM in this case) that they want to get when joining the society.
Once you have submitted the transaction, your bid will be shown on the
Society page under the bids section. You can cancel the
bidding if you changed your mind about joining the society by calling
pos - The index of the bid.
If you are not sure what your position is, you can check that by going to the Society -> bids chain state in the Polkadot-JS apps.
You can find an existing member to place a bid on your behalf if you do not have KSM and you are
willing to give them a tip. An existing member can submit a
who - The user you are vouching for
value - The value that the user would like to get when joining the society
tip - Fees you get
Note: The final value that the candidate will get = (value - tip)
2. Candidate Phase
candidate - Select the candidate you would like to vote
approve - Yes / No
Bids selected in this phase will be voted on by the existing members to decide whether or not you will be approved to join the society. Members will vote for all the candidates and the final outcome will be randomly selected by one of the votes. Let's take a look the example shown below:
Note: If the randomly selected member does not vote, it will be treated as a rejection. For each rotation period, the maximum number of members that can be accepted is set as 10.
A - Accept, R - Reject, S - Skeptic
In this example, a candidate will be approved to join the society since member 3 was selected as a final voting outcome. A number of members will also be randomly chosen as "skeptics" to vote for the candidates during the rotation period. Since member 5 was chosen as a skeptic, they are required to participate in the voting process. If they do not participate in voting, they will be punished with one strike per missing vote. If one accumulates too many strikes, one's membership is suspended which means they may need to re-apply and their unclaimed payouts will be slashed. Moreover, each member who voted opposite to the randomly selected vote will have their unclaimed payouts slashed and strikes increased. In this case, member 4 will be punished.
Note: The maximum number of strikes you can have is on Kusama is 10.
The slashed funds (2 KSM currently) will be given to a random member who voted the same as the selected vote as a reward for participating in the vote. The reward is escrowed for some period of time - see below.
It would take the number of members of the society as the variable to determine how many blocks you have to wait in order to get the payout. The longest lock-up time is closer to 3 years. The formula is defined in the society pallet if you would like to have a look.
Let's assume we have 5 members in the society. lock_duration = 100 - 50,000 / (5 + 500) lock_duration * MAX_LOCK_DURATION_IN_BLOCKS Result = 1% * 15,552,000 ~ 11 days
Based on the above calculation, it is required to wait close to 11 days to get the slashed funds.
If the candidate wins the vote, they receive their bid reward as a future payout. If the bid was placed by a voucher, they will get back the reward that was set during vouching with the remainder given to the candidate - both escrowed for some time.
If the candidate loses the vote, they are suspended and it is up to the founder of the society (the
Suspension Judgement Origin) to determine if the candidate should go through the bidding process
again, should be accepted into the membership society, or rejected and their deposit slashed.
3. Member Phase
Once you become a member of the society, you will get back the deposit that you have reserved during the bidding. A few things you need to be aware of. First, you should vote on candidates who applied for the membership in every rotation period.
approve - Yes / No
Second, you will need to claim your payout manually by calling
payout after the lock-up time. It
is the same as the above mentioned lock-up formula.
Third, there will be a membership challenge every seven days on Kusama. So one of the members will be randomly selected as a defender. Then, other members can vote whether this defender should stay in society or not. A simple majority wins the vote. You can take a look here and search for "Existing Members (Challenges)". Besides that, you can earn extra KSM by helping a user apply for the membership and requesting a tip. This is useful when a user does not have enough balance to reserve a deposit. The tip will be given when a user successfully joins the society.
Note: Each member can only vouch for one user at a time. A member is not required to reserve the deposit when vouching for a user.
If a member accumulates too many strikes or fails their membership challenge, they will become suspended. While a member is suspended, they are unable to claim matured payouts. It is up to the suspension judgment origin to determine if the member should re-enter society or be removed from society with all their future payouts slashed.
Convention of Approval of Membership - Rules about joining the Kusama society