Kleros Development Update: April 2020

Kleros brings you the latest quarterly product development update, from existing to new platforms, from bugs to systemic improvements.

Kleros Development Update: April 2020
We've been very busy with the development of all our platforms, from new ones, such as Linguo and Dispute Resolver to improving the foundations through continuous improvements to the Court interface and our Escrow.

Since our last update in December, we've been keeping very busy, polishing our interfaces, tinkering in the background, adding new functionalities and creating an overall better UX experience for our users. Let's have a look below at the full list of what we've built in the last three months!


Kleros Court

Our Court is improved on a rolling basis, as it is our key DApp. Some bug fixes and improvements were made this quarter including:

  • Fixing the responsiveness and some bugs in the Justifications section in case pages.
  • Combining draw emails. If you are drawn more than once for a case, you will only receive one notification email.
  • A simple redesign of the notification emails.
  • Added messages to help users understand when an action may be asynchronous. E.g. When staking/unstaking from a court there may be a delay.

Kleros Governor

The interface of the Kleros Governor, a smart contract to control key parameters in Kleros and decentralize control over the platform has been launched on mainnet, although it is still in beta phase. Enforcements are being added to the interface every session to test functionality.

  • The Governor smart contract went through reviews by the team and is currently going through bug bounties.
  • Interface was created and launched to allow anyone to easily submit lists and see what lists have been submitted for the current session.

You can see the latest version of the Kleros Governor here.


Kleros Escrow

We've been working and succeeded at fully integrating ERC20 token payments through our Escrow - in the last quarter, we polished some bugs and introduced certain improvements, including:

  • Added a message informing users that two transactions are necessary for escrow transactions involving ERC20 tokens (approve and transfer).
  • Check current allowance for ERC20 tokens. If allowance is enough for the current transaction it will not ask for the approve transaction.
  • Bugfix on the interface recognizing non-checksum addresses as invalid when creating a custom token.

Generalized Token Curated Registries

In the first quarter of 2020, the Generalized TCR app received a couple of new features, but most of the focus was on stabilizing the software, finding and fixing bugs.

EthCC live demo: TCR of Dapps

The whole team reviewed the smart contract and we put a bug bounty on the code. New features include:

  • Implemented a factory contract to keep track of all deployed TCRs
  • Added support for TCRs of TCRs to enable TCR browser functionality;
  • Added support for image field types;
  • Allowed connecting items on different TCRs (also known as “badges”);
  • Support setting a TCR Logo for display in badges;
  • Improved UX on crowdfunding fee rewards withdrawal.
  • Implemented in-app and email notifications for users of the GTCR.
  • Implemented a Twitter bot to let the community know when new submissions are made more efficiently.
  • Implemented community suggestions such as event timestamps and more arbitrator-side information such as the dispute ID (if any).
TCR Item details view showing a badge

Overall, the Generalized TCR is much more mature and production ready. The new additions make it look better in general and allow for a new class of TCRs. If you want to get more details on the recent updates, please read the change log file in the repository here.

You can check out the testnet deployment here.


Linguo

Linguo is our new decentralized platform in which anyone can submit a document for translation and have it done by freelancers in a trustless environment.

The development of the Linguo DApp is well on the way and we are using it as a UX lab, experimenting with a different way of onboarding users. Instead of requiring a Metamask connection as soon as users visit the app, we let them freely navigate through it and will only ask for a wallet when needed.

Example of interaction that requires a wallet: creating a new translation task needs to interact with Linguo smart contract.

We also want to start supporting different wallet providers, not only Metamask. Our first DApp to have such functionality is the GTCR. For the first release, we will allow Linguo users to connect through Fortmatic as well. Different wallet providers could be added in future releases with little effort. We will gather feedback from the community to decide which providers we should support.

This is more aligned with what we observe in modern DApps, as we give the users more control over how they interact with the app.

Connecting to a wallet is now opt-in. Users have to deliberately choose to connect. If they don’t, they can still use the DApp, albeit with limited functionalities.

Linguo is still under early-stage development, the first version will be released soon.


Proof of Humanity

We finished writing and testing the smart contract for Proof of Humanity. Proof of humanity is a community led project to create a sybil resistant identity system, which would allow the creation of unique profiles of all users on a network and prevent malicious actors from creating multiple accounts.

Have a look here for more information about the project.


Integration With Alice Protocol

We are in the early phase of building an integration with Alice Protocol. Currently, we are working on smart contracts that will connect Alice with Kleros. Stay tuned for updates.


Dispute Resolver

The Dispute Resolver, a DApp which makes creating disputes easy without having to develop your own arbitrable DApp has been making great strides. We have updated the design, added new functionalities and introduced bug fixes. Here is a complete list of improvements:

  • Fixed a bug that caused crowdfunding display to display the amount required to raise lower than what it should be.
  • Added a missing withdraw funds buttons, which appears in the execution period and lets you withdraw all the amount you've qualified to receive. This includes reimbursing crowdfunding appeal fees in case it fails to get funded fully and rewards in case of successful funding and winning the case.
  • The crowdfunding display’s design changed a bit. Now it displays the return of investment ratio of your contribution. (e.g. You will get 1.60 times of your contribution back if this side wins.)
  • Again in the crowdfunding section, the progress bar turns to green when a side is fully funded.
  • Crowdfunding warning notice changed: If one side is fully funded, the other side should also be fully funded in order to not to lose the dispute.
  • New evidence timeline component: Now Dispute Resolver lists submitted evidence as well. The evidence submission form is moved inside of the evidence timeline component. The interact page now displays a countdown for the next period, so you can track how much time is left. When the deadline passes, you can manually pass the period by calling the arbitrator contract using the 'pass the period' button. These buttons are only visible when the deadline is due.
  • Now we have a page listing open disputes, which has also became the landing page.
  • Various improvements for narrow screens.
  • Now you don't need a web3 browser to view the application, you can connect and display disputes with a non-web3 browser.

We also had to update the smart contract as well, and those were breaking changes. So with this update, you won’t be able to see old disputes. To access the legacy version, click here.

For the latest version of the Dispute Resolver, see here.


Great things are on the way, with the Governor, GTCR, Linguo and more platforms coming out soon and integrations following as well. We continue our work confidently, knowing that with every line of code we come a bit closer to creating a more accessible dispute resolution mechanism for the modern age.

Join the Justice Revolution! kleros.io

Where Can I Find Out More?

Join the community chat on Telegram.

Visit our website.

Follow us on Twitter.

Join our Slack for developer conversations.

Contribute on Github.

Download our Book.