Replies: 3 comments 5 replies
-
How should the appeal process work? Should we let the implementation details to each type of agreement? |
Beta Was this translation helpful? Give feedback.
1 reply
-
I've updated the proposal with latest changes |
Beta Was this translation helpful? Give feedback.
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:
|
Beta Was this translation helpful? Give feedback.
4 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
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:
termsHash
is 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.criteria
is 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.party
contains an array of addresses that have joined the agreement.position
contains an array of positions that take part in the agreement, where each position consists of the following:partyId
indicates the id of the party in theparty
array that holds that position.balance
indicates the amount of tokens held in the agreement by the party.status
indicates the status of the position in the agreement. Currently idle or terminated (WIP).Agreement Framework
arbitrator
is the account with the power to resolve disputes.arbitrationFee
is 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.agreement
is the array of agreements held in the framework.Methods
Beta Was this translation helpful? Give feedback.
All reactions