This explainer article is a detailed guide into the Kleros x Ethfinex token curated listing Dapp. Decentralizing justice isn't easy. Strap in and brace yourself, we're going in...
For those of you who just want to get in and try here's a brief overview. To straight to the TCR Dapp open https://tokens.kleros.io/tokens in a new tab.
(Disclaimer: We recommend reading the whole post but if you have any questions just join our Telegram.)
Submit a token
Click 'Submit Token' fill in the required information, attach a transparent PNG logo and pay the 0.7250 ETH deposit / stake fee.
The token will then be added to the list, assuming it is not challenged and ruled against by Kleros jurors.
After submitting a token, there is a Two Day Challenge Period in which other users have the ability to check the listing details and challenge if necessary.
You would challenge in the case of a submission having the wrong information or logo attached.
As a challenger you will receive an ETH award for a correct challenge.
After juror arbitration fees are covered, the remaining ETH used by the submitter (to make the submission) will be sent to the challenger. In the event of an incorrect challenge your ETH deposit fee is lost.
Very simply, click the token listing you feel needs challenge and click 'Challenge', paying the 0.39 ETH challenge deposit fee. The token submission will then be sent to arbitration by Kleros jurors who will review any evidence attached and rule on the status and validity of the submission.
Stake as a Juror
Jurors are the key element to the integrity of the whole system. Challenged disputes will end up in the Kleros Athena court to be ruled upon by our crowdsourced jurors. To become a juror, you will need PNK (the Kleros native token) and to then stake in the Kleros Court. You'll find a full explanation of how to do that further down this post.
Add a Badge
Badges are the key element of whether a token is compliant for listing on the Ethfinex exchange. Badges require a large ETH deposit fee to deter scams and malicious submitters (feel free to try though) and also a very large juror deposit for the chance to rule on disputed badges.
Projects that successfully receive the Ethfinex Badge are then able to make it to the Ethfinex NEC holders community vote. Those that do not receive this badge will not have any possibility of listing.
We'll go into this further in a follow up post.
The Token Curated List is built on the back of a cryptoeconomic incentive system designed to provide sufficient motivation to jurors, submitters and challengers to create a list that fits within the criterion of the subject. In this case, a curated list of tokens which are not scams, incorrectly labeled or malicious.
To interact with this list you must deposit (or stake) which acts as your financial incentive not to submit tokens with the aforementioned characteristics. Want to list a malicious contract address? Feel free, but you're likely to be challenged and lose the ETH you deposited listing it. Challenge a legitimate listing and you're likely to lose your ETH deposit too.
The Cryptoeconomics are in some respect 'Law' here.
Becoming part of the token curated list is simple.
Click the blue ‘Submit Token’ button in the top right corner and fill in the required information including Token name, Token Contract address and Ticker.
Add a slick PNG image with transparent background for the logo.
** The PNG format of this image is an essential factor. Please don't upload JPEGS / SVG's or any other format. You will likely lose your deposit.
Each submission requires a 0.7250 ETH deposit fee in order to submit to the list.
This is a necessary step in regards to the cryptoeconomics within the Kleros platform.
This submissions status is now ‘Pending’ meaning other users can check the information including contract address, logo, ticker and name. There is a 2 day challenge period in which it is possible to challenge the submission. If no challenge comes forward at this point, the token will be verified on the list.
Challenge (If Necessary)
If a submitted token is found to have incorrect or malicious information, they should be challenged. Users can do this by challenging the submission and depositing the 0.39 ETH stake as shown in the image below.
This will now send the challenged token to trial to be arbitrated on by Kleros jurors. Pending their decision and any potential appeals, (we'll get to that) the token will either be accepted onto or rejected from the final list.
After juror arbitration fees are covered, the remaining ETH used by the submitter (to make the submission) will be sent to the challenger. In the event of an incorrect challenge your ETH deposit fee is lost. To clarify, the deposit goes to the other side on a round by round level. So the submitter for the initial deposit and appellants in favor of the submitter proportionally to their contribution in the appeal.
Challengers are rewarded with ETH for successful challenges.
Stake Your PNK for Juror Duty
Both listings and badges which have been challenged will go to trial.
Token listing disputes will go to the 'Blockchain Non-Technical Court' and badge disputes will go to the 'Exchange Token Listing Court'.
These courts consist of Kleros crowdsourced jurors reviewing the provided evidence and deciding on that basis whether the token listing or badge application is valid or not.
To become a juror, you must own PNK and have staked in the respective court. Jurors, although picked at random, have a higher chance of doing so relative to the amount of PNK they have staked.
Jurors are asked to vote 'coherently', which means reviewing the evidence and voting 'honestly' by thinking about how the other jurors will vote. By staking a monetary fee, jurors are incentivized to act honestly or lose money by not adhering to this.
Each juror has a minimum PNK amount to stake and a maximum amount they can lose depending on the outcome of the case.
Let's take a look at how that works.
- Click the 'Courts' tab in the menu bar and then 'Browse' to open the court hierarchy.
2. You will then be presented with the screen below. Here, you can select which courts you would like to stake in. By staking in a specific court, you have the chance to be drawn as a juror in that court.
By default, the 'General Court' is selected, but by clicking through the tree, more courts become available. In this example we will stake in the 'Blockchain > Non Technical court' which is where disputed and challenged token listings will be adjudicated on.
Each court has a description and court policies section which we recommend you read for more information on the court.
3. Once you've selected the 'Non-technical' court, click the blue 'Stake' button seen in the middle of the image below.
We're staking in the 'Non-Technical Court' because that's where the token listing cases live. By staking in the 'Non-Technical Court', we're also automatically staking in every higher court which in this case would be, the 'Blockchain Court' and the 'General Court'.
4. You will then be presented with the screen below. This is where you can decide how much PNK you want to stake. Each court has a minimum stake which corresponds to the 'difficulty level' of the court. Simpler courts have lower minimum stakes and more complicated courts higher stakes.
Below, the minimum stake is 15000 PNK. By depositing more, you have a higher chance of being drawn as a juror.
Should you rule 'incoherently' (not with the majority) you lose a percentage of this stake (not all!) and once you have been drawn as a juror, the PNK will then become locked until the end of the dispute in question.
5. Simply pay the gas fee to confirm your stake in the court and confirm in Metamask.
6. Once the fee is paid and the transaction confirmed you can return to the 'Courts' page and will see your staked PNK in the court you have chosen. Below, we can see a user has staked a far larger amount of PNK than the court minimum. This gives that juror a far higher chance of being drawn on cases in this court.
In the below image, you get an overview of the reward each juror will receive by voting 'coherently' along with the Min Stake of the court, and amount of PNK locked in active cases. In the below example, the juror has been drawn as a juror and has 3750 PNK locked meaning they are unavailable until the end of the dispute.
7. If you are successfully drawn as a juror you will see something similar to the below in your 'cases' page. Users can be notified to any cases, challenges or changes in state of a dispute by signing up using the email icon in the menu header.
If you have been selected as a juror, you will see the information presented below. By clicking 'See Details' you can then review the case, evidence and make your vote.
8. Once the case details are open, you will be able to see the dispute in question (in this case an incorrectly uploaded token submission on the Token Curated List) which presents the evidence from both parties.
On the left side, we see the evidence of the submitter and on the right, the evidence of the challenger. Here we can also see a broken image link where the token logo should be. The challenger has specified this in their evidence as seen in the popup below.
9. After the evidence period of two days passes (this is the period in which both challenger and submitter can submit evidence) you will be able to vote on the case.
Before you vote, review the policies carefully.
Jurors can also refuse to arbitrate in the case of illegal, immoral or similar content in the case or evidence.
10. At this stage, there is the potential for appeals. For more info on appeals read this post.
General Note: Partly funded crowd appeals are not valid. If one side is fully funded and the other is not, jurors are not drawn for a subsequent round, and the fully funded side wins the dispute. If neither side is fully funded, the previous ruling stands. Particularly, ETH paid towards appeal fees for a side that loses because it is only partially funded is lost, being awarded to those that paid the appeal fees in the last round for the winning side.
Why would you want to be a juror?
Well, all jurors will have staked Pinakion (PNK) Kleros’ native token in order to both potentially be drawn as a juror and gain a share of the deposited stake from voting coherently.
Jurors who vote coherently will receive both ETH in arbitration fees and a redistribution of PNK from jurors who did not vote coherently. The ETH arbitration fees are taken from either the submitter who erroneously or maliciously uploaded an invalid submission, or, the challenger who wrongfully challenged a valid submission.
Basically, you can make money by becoming a juror and voting honestly whilst also adding to the overall quality and security of the whole ecosystem.
For more details on exactly how this works see our explainer post and our whitepaper.
'WTF are these?' I hear you say.
Badges are where it gets real, but don't be too alarmed, let's look at a comfy flow chart (which by coincidence looks VERY much like our first juror flow) to get acquainted.
Essentially, this is a two tiered system with the first being a simple verification of contract address, image, ticker, token name and the second a far more time consuming and complicated process which requires a deep investigation of a projects credentials, team, github, legality, etc.
The Ethfinex badge is the key element to verifying if a token submission is compliant and possible to go forward to the NEC holder community vote. Attributing to this important point, the ETH deposit amounts for requesting or challenging a badge are much higher.
Note: To be eligible for listing on Ethfinex, the token in question MUST have a badge before the voting process.
To Request badge a deposit of 25 ETH will be required.
This helps to ensure proper due diligence is done before submitting. Rememeber: You will get it back if the Badge is either unchallenged, or if it is disputed, ruled as valid by Kleros jurors.
Below we can see how that would look. Tokens which have made it through stage one (the initial token listing which verified address, ticker, name and logo) are eligible for badge request.
To Challenge a badge request, a deposit of 5.5 ETH will be required.
This ensures only correctly validated challenges should be placed. It is possible that compliant badges will be challenged but the final process of dispute and juror decision will be key to whether the badge is given to a token listing or not.
As shown below, you can select the project you want to challenge, pay the deposit fee and it will then be sent to trial. Give a reason and any supporting evidence which Kleros jurors will then evaluate and make their ruling.
As already mentioned, the process is very much like the token submission listing but with far larger ETH deposits and PNK stakes. These higher stakes are a reflection of the importance of the Ethfinex Community Badge.
The first stage is the token listing process already described above. Successfully listed tokens are then eligible for badge request.
If the badge is not challenged or ruled as 'legit' by our jurors, the token is available for the Ethfinex voting process. If the badge is challeged successfully, the token will not be put forward to the voting process.
The difficulty curve is reflected in the larger ETH and PNK deposit fees.
Token Curated List Parameters Key Info
Submission Fee For Token Submission = 0.7250ETH
Challenge Fee For Token Submission = 0.39ETH
Court to stake in
Payment for Coherent Ruling >= .065 ETH
Stake Lost for Incoherent Ruling = 3750 PNK
Minimum Stake to Participate = 15000 PNK
Token Challenge Period = 5.25 days
Evidence Period in Disputes = 1.5 days
Vote Period = 3.5 days
Appeal Period = 3.5 days
Badge Request Key Info
Submission Fee = 25 ETH
Challenge Fee = 5.5 ETH
Court to Stake in
Payment for Coherent Ruling = >= .55 ETH
Stake Lost for Incoherent Ruling = 40000 PNK
Minimum Stake to Participate = 80000 PNK
Token Challenge Period = 7.25 days
Evidence Period in Disputes = 4 days
Vote Period = 7 Days
Appeal Period = 7 days
YOU MADE IT.
Keep track of those notifications, rule, challenge, submit and enjoy!
Join the community chat on Telegram.
Visit our website.
Follow us on Twitter.
Join our Slack for developer conversations.
Contribute on Github.