In the first Kleros pilot, we want to test the effectiveness of our protocol in building a curated list of doges. Let's take a look at the technologies used to build this dapp.

There are three different bundles to build this dapp:

  • The user interface
  • The smart contract permission list
  • The smart contract of the decentralised court.

The Doge List Dapp

User interface

Enrique created the dogelist interface. It’s a fork from the boilerplate dapper (https://github.com/kleros/dapper). This stack used: react/redux/redux-saga/web3.js.

To store the pictures, he opted to use  AWS serverless instance to facilitate the administration and to avoid maintaining the code of a backend. Sounds like a good compromise compared to IPFS/swarm  for a pilot and the user can check the integrity of the picture with the hash, stored in the smart contract.

User smart contract side: permission list

As a reminder, to build a dapp that can connect to Kleros, it follows the Arbitration Standard proposed as Ethereum Request for Comment (ERC 792) by Clément.

For a contract to be arbitrated, it should extend the Arbitrable interface https://github.com/kleros/kleros-interaction/blob/master/contracts/standard/arbitration/Arbitrable.sol .

With this standard, we must implement the method excutingRuling. This function will redistribute the stake in function the juror ruling. Here is the implementation https://github.com/kleros/kleros-interaction/blob/master/contracts/standard/permission/ArbitrablePermissionList.sol.

Juror smart contract side: Kleros court

The arbitrable permissionList smart contract can be connect with an Arbitrator contract customised for this pilot.

Sam set up and published the smart contract on the mainnet with these parameters:

governor: 0x334f12afb7d8740868be04719639616533075234
rng: 0x1738b62e403090666687243e758b1c29edffc90e
arbitrationFeePerJuror: 0.01 ETH
defaultNumberJuror: 3
timePerPeriod: `24h for activation of tokens, 36h for vote, 24h for appeal and 1h for the repartition of the tokens`
maxAppeals: 5

Other Contributors

Join Kleros!

Join the community chat on Telegram.

Visit our website.

Follow us on Twitter.

Join our Slack for developer conversations.

Contribute on Github.