# Celeste integration for the Gitcoin proposal process Is the current proposal created on chain anywhere, eg Ethereum or Polygon? I see a deposit is required to the Polygon multisig in order to initiate an appeal of a proposal and presume this is the only interaction with a chain for an appeal. Seen here: https://discovery-1.gitbook.io/gitcoin-knowledge-base/-MjC5KnuB6HdGrn7Kh8T/gitcoin-policy/policy/appeals/appeal-process-stage-1 What details are necessary to decide whether or not a proposal should be approved? These will need to be uploaded and pinned to IPFS so they can be referenced by Celeste, either via a custom UI or the Gitcoin DAO UI. Eg - Proposal details (is there a web link to this on Gitcoin? Or do we have to upload it separately to ipfs and create a link?) - Proposal requirements eg https://support.gitcoin.co/kb/article/79-why-isn-t-my-grant-active/ - Arguments for and against from proposal creator and assesors as evidence in Celeste Should there be a deposit from the appealer to create an appeal on Celeste which is forfeit if they lose? How much and what currency? The appealer will also have to pay for the Celeste Keepers to adjudicate the round in Honey (roughly $50-$100 for the first round). Should there also be an option for the Gitcoin DAO to pay for this? ## Possible technical process Each bullet point, besides the Celeste process, should require a single transaction calling a function on a deposit contract. The deposit contract will have the proposal requirements hardcoded in it for use within Celeste. - Manual appeal rounds finish and the Gitcoin DAO account authorises the proposers account to create a final appeal using Celeste. - Proposer choses to appeal proposal with Celeste. They deposit the Celeste fees in Honey and specify links/ipfs hashes of the original proposal details. They can also include their side of the argument as evidence. - Gitcoin DAO must also deposit the Celeste fees in Honey. Alternatively they can leave a bunch of Honey in the Gitcoin DAO appeal contract to be used when a proposer creates an appeal. They also specify their side of the argument as evidence. - Celeste does it's thing and decides the outcome. - If the appeal is successful, Gitcoin must allow the proposal, the proposer gets their deposit returned and Gitcoin DAO loses theirs. If the appeal fails, the proposal is removed from Gitcoin, the proposer loses their deposit and the Gitcoin DAO gets theirs returned. The function finalising the appeal can be called by anyone ## Basic UI requirements/flow With the **Gitcoin DAO account** connected there will be: - An "Allow appeal" button opening a modal which includes: - An input field that allows the account to specify a proposer/appellant's account. - A button to submit a transaction with this address. - Within the list of created appeals, those in the "waiting for Gitcoin evidence" state (detailed below for any account connected) there should also be an "Upload Evidence" button opening a modal which includes: - A field to allow the Gitcoin DAO account to include their evidence for why the proposal should not be accepted. - A button which upload's the evidence above to IPFS and call's a function passing its hash to Celeste. With the **proposer's account** connected, that has been authorised to create an appeal, there will be: - A "Submit Appeal" button opening a modal which includes: - A field that allows them to outline the original proposal, including whatever numbers/names that Gitcoin uses to identify the proposal. If this is inaccurate, then the Gitcoin DAO can highlight that when they submit their evidence and Celeste will likely deny the appeal. - A field for specifying evidence/their argument for why it should be accepted. - A button which upload's the fields above to IPFS and call's a function passing their hashes to Celeste. At this point the contract called will have to hold the Honey necessary to pay the Celeste fees, it should have previously been deposited by Gitcoin. With **any account/no account** connected there should be: - A list of appeals that have been created by proposer's that will each include: - The original proposal the proposer uploaded (fetched from IPFS) - The evidence the proposer submitted for why it should be accepted (fetched from IPFS) - If in the "being disputed" state, the evidence from GitcionDAO for why it should be denied (fetched from IPFS) - A link to the Celeste dispute, where the above infomation can also be seen. - A status that can be one of: - waiting for Gitcoin evidence - being disputed - dispute finished - allowed - denied - If the appeal is in the "dispute finished" state there should be a button to finalise the appeal by fetching the outcome from Celeste, moving it to either "allowed" or "denied".