The on-chain contract creation & signing protocol for businesses and individuals, with in-built escrow functionalities where the participants can choose their mediator for the escrow wallet.

The Problem Statement


Often times, humans around the world transact daily through USDC or other tokens to buy or sell goods. Usually, there is no safeguard for buyers, nothing to ensure that the seller won’t run away with the USDC they receive.

In Web2, there's a well-known Escrow service, Escrow.com (I sold my last company there). There are contract signing websites on Web 2.0 like Docusign (and in Web 3.0 there is Ethsign).

However, we have not (yet) found a decentralized protocol on which you can sign contracts, which shall automatically generate an escrow wallet with a mediator of participants’ choice, the one who shall interpret the rules in the contract in case a dispute arises. Web2 services are costly and charge high fees.

How Judiciary.app works


  1. Create a Contract Document

  2. Designate a specialized mediator and the intended signatories for the contract

  3. createContract(string url, address[] participants, address mediator) & get the contract hash with its NFT (it generates an escrow wallet)

    <aside> 📌 Remember

    The "contracts" you create on judiciary.app are not necessarily legally binding and probably cannot be enforced in the court of law. The text in the contracts are only for the purpose of facilitating fair, equitable and just mediation in the escrow process to help mediators resolve disputes fairly.

    </aside>

  4. Share the generated escrow wallet link with others so they can sign the contract

  5. When others sign the contract signContract(address escrowWallet) they too shall receive the NFT as proof of signature.

  6. As per the contract, escrow participants can deposit the funds in Escrow wallet.

  7. After deal completion, payer can approve the transaction to directly pay the receiver, or if deal wasn’t completed, the supposed receiver can refund the money to the payer.

  8. If there’s a dispute, any participant can sue any other participant (raise a dispute) to the mediator. (on-chain or off-chain depending on how respective mediators handle it)

  9. In case of a dispute, The mediator can approve or refund to the participants to resolve dispute based on ground facts and interpretation of the Contract Document that was signed by the participants.

A small overview of the protocol using a diagram… (it’s outdated now though, still relevant enough for understand the gist of how the protocol works overall)

Excalidraw