Replies: 3 comments 5 replies
|
How should the appeal process work? Should we let the implementation details to each type of agreement? |
1 reply
|
I've updated the proposal with latest changes |
0 replies
|
Question that emerged when I started designing: We need a way for users to identify agreements easily from the UI, without having to open the file with the terms. I see two ways:
|
4 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment

Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
My proposal for the Agreement entity in the Court system is based on @luisivan draft.
Consider the arbitrator as the Court.
Overview
An agreement can be defined as an arbitrated escrow contract between two or more parties.
Agreements allow reliable relationships between non-trusted parties using a trusted arbitrator with the capacity to punish breaches and misbehaviour from the parties.
Creation
When users create an agreement, they define some parameters that will be held public:
Agreements can be created open for any party that provides the required collateral to join, or restricted specifying the expected parties and which amount is expected from each party.
Participation
Once the agreement is created, the parties can join by depositing the required colateral.
When joining the agreement, the parties commit to comply to the terms & conditions of the agreement itself and the agreement framework in which is held. They acknowledge the power of the arbitrator to mediate & resolve disputes between the parties.
Termination
An agreement is terminated by the consensus of the parties involved, or in the case of a dispute, when the arbitrator resolves.
Once the agreement is terminated, all parties can withdrawn their position from the agreement. When withdraw the parties recover the colateral they deposited in the case of an optimistic settlement or what is left in case of a dispute.
Dispute
If the parties do not achieve needed consensus to settle an agreement they can raise a dispute for the arbitrator to mediate.
The arbitration fee will be discounted from the deposited capital only when the arbitrator resolves a dispute successfully.
Dispute resolution
When an agreement is in dispute the arbitrator can resolve providing the needed adjustment to the agreements positions.
This adjustments will be made in a single transaction together with the agreement termination. Ideally this transaction will have a delay that would allow the parties to appeal the resolution before is settled.
Technical Specs
Agreement
An agreement is composed by 5 key components:
termsHashis a hash of the detailed terms & conditions that all parties agree to when joining an agreement. This terms can be held privately until a dispute is raised, in which case, this hash will be used to verify the allegations submitted to the arbitrator by both parties.criteriais the requirement to join an agreement. Indicates the amount of tokens required to join an agreement, or in the case of an advanced criteria, the root of a Merkle tree composed of the allowed accounts and amount of tokens per account to join.partycontains an array of addresses that have joined the agreement.positioncontains an array of positions that take part in the agreement, where each position consists of the following:partyIdindicates the id of the party in thepartyarray that holds that position.balanceindicates the amount of tokens held in the agreement by the party.statusindicates the status of the position in the agreement. Currently idle or terminated (WIP).Agreement Framework
arbitratoris the account with the power to resolve disputes.arbitrationFeeis the amount of tokens required by party to pay for the arbitration services. This will only be discounted from parties positions on a successful arbitration.agreementis the array of agreements held in the framework.Methods
All reactions