This guide is aimed at developers willing to build disputable apps. Here you will learn the things you should bear in mind while building a disputable app to make sure it is set up and integrated correctly.

<aside> 🚨 This document has been shared publicly with the community to gather feedback

</aside>

<aside> ⚠️ This guide is written based on the implementation provided here and here

</aside>


1. Architecture

The following diagram shows the architecture built to support disputable apps for Aragon organizations:

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/563f1a5c-9931-46c0-9cc9-8145f49fde96/Untitled.png

As you can see, the disputable apps are connected to an Agreement app installed in the organization. This is how apps become disputable. The disputable apps are not in charge of handling the disputes-related logic, this will be held in the Agreement app, but to interact with the Agreement app to handle the different possible scenarios a dispute can go through in the context of each disputable app.

Additionally, the Agreement will hold the integration with a shared Staking pool. Disputable apps can decide whether to use or not to collateralize the actions that could be disputed.


2. Terminology

To clarify some concepts and make sure you are on the same page, let's be clear about these different terms we will refer continuously along this guide: