Aragon Court Subscription Module upgrade

August 28, 2020

Introduction

Aragon Court includes multiple economic incentives for jurors to motivate their rulings and secure the system.

These incentives can be categorized into dispute-based rewards and subscription-based rewards. Dispute-based rewards come from the submitter's fees each time a dispute is submitted, and from the jurors' stake when they are drafted for these disputes. Subscription-based rewards come from the subscription fees paid in-advance by dispute submitters to have the right to raise future disputes to Aragon Court.

A specific and isolated module of Aragon Court, called Subscriptions, handles users' fees of Aragon Court. The Subscriptions module is where the subscription fees are paid, stored, and redistributed among the jurors.

When Aragon Court initially launched (v1.0), Aragon Court used a simple, flat recurring fee model per dispute submitter of (X). The flat fee model's idea was that dispute submitters are continually provided security by Aragon Court, but may only rarely escalate disputes. Like insurance, paying for coverage on an ongoing basis helps create more stable costs for users and more predictable revenue for service providers. However, the flat subscription model doesn't scale based on usage, risk, or value secured. Flat subscription fees are difficult to price over a diverse set of subscribers with varying needs and budgets.

Given this difficulty, we proposed a new mechanism based on per-action transaction fees last month. The idea is for potential dispute submitters to pay a fee each time they make a disputable action. For example, a Voting app integrated with Aragon Court would pay a transaction fee each time a vote is created. The mechanism will allow Aragon Court to define and continue refining over time, transaction fees for each Aragon app integrated with the Court. 

The new mechanism ensures:

  • The more an organization's members use an integration, the more they pay to Aragon Court
  • The burden of fee payments moves from the organizational level to the member level

Finally, this new transaction fee mechanism requires an off-chain trust verification model where disputes can still be raised to the Court even if fees are not paid. However, information about whether an organization has paid its fees will be visible to jurors in the Court Dashboard. Jurors can choose to rule or not at their discretion based on this information.

Technical details

The motivation for this new mechanism came from our work on Aragon Agreements, the bridge between Aragon organizations and Aragon Court. 

A new Subscriptions module has been implemented through a fee-oracle that determines the fee required based on the Aragon app a user is interacting with. For example, Voting (10 DAI), Delay (2 ANT), etc. These fee amounts will be managed by the Aragon Court's governor and adjusted over time based on usage patterns.

contract AragonAppFeesOracle {
function setFee(bytes32 appId, ERC20 token, uint256 amount) external onlyGovernor;
function getFee(bytes32 appId) external returns (ERC20, uint256);
}

Action plan

After notifying the Aragon community about the proposed change on the Aragon forum, Twitter, and juror email notifications, the feedback received, while sparse, has been favorable towards the upgrade. If anyone has lingering questions or doubts, please comment on this forum thread as soon as possible. Unless clear objections are raised and cannot be reasonably resolved or addressed, the upgrade will continue moving forward as planned.

To date, Aragon One is complete with its internal audit of the new Subscriptions module. The implementation is also currently under external audit by Coinspect. See here for the specific scope of upgrade audits.

If everything goes as expected, the Aragon Network interim Governor Council will execute the upgrade as part of the Aragon Network DAO Phoenix transition.