In our last blog, we covered some exciting new poidh developments. One of these was the poidh v2 smart contract:
While poidh v1 focused on 1-on-1 bounties, we've always discussed that the plan with v2 was to introduce "multiplayer" features that allow for anyone to contribute additional funds to a specific bounty.
With poidh v2 this is now a reality. Any user can now create an "open bounty" that allows anyone else to add funds. Doing so gives them voting rights to vote in favor or against any claim that the bounty owner eventually selects as the bounty winner.
We think that this open bounty functionality is a simple, yet powerful, new tool for onchain coordination. With this in mind, we wanted to provide an overview of how these bounties function, their features, and their limitations.
creating an open bounty
To create an open bounty, you will use the toggle switch found within the bounty creation form. By default, this switch will be set to "solo bounty". Fill out your title, description, and reward fields like usual, then turn "solo bounty" off to trigger an open bounty:
Double-check your information, then hit 🔴 to pay your bounty creation transaction fee. After the transaction is confirmed, you will see the bounty card appear within the poidh bounty feed.
the contributor tab
Once you create an open bounty, the bounty page will look largely similar to a solo bounty. The main difference will be that there is a "contributors" tab and a "join bounty" button:
Clicking the "contributors" tab will allow you to see everyone who has added funds to the bounty, as well as how much they have added (this should show only 1 contributor, your address, to start).
Meanwhile, clicking "join bounty" allows users to add a specific amount of DEGEN to the bounty (or, in the future, ETH via our upcoming Arbitrum/Base deployments).
Once your funds are added, your wallet address should display under the contributors tab. From here, you'll want to keep an eye out for whether or not a claim has been selected for vote by the bounty creator. Remember, as a contributor, you will now have voting rights to potentially veto a claim selection you do not agree with.
withdrawing your contribution
Additional contributors to an open bounty (not the bounty owner) will see a button on the bounty page that says "withdraw". If for some reason you have lost faith that the bounty owner will be able to find a suitable claim for the bounty, or you simply need your money back, you can quickly withdraw your contribution:
Clicking this button and confirming the transaction in your wallet will allow you to withdraw the funds you contributed to the bounty. poidh takes no fees on withdrawals (but you will have to pay gas fees for your transaction).
Please note that withdrawals are only allowed when a bounty is not under vote. During voting periods withdrawals are locked. Furthermore, if a bounty claim is confirmed during a voting period, there will be no way for you to withdraw your funds (the resolve vote transaction will automatically send all bounty funds to the winning claim).
The only way to withdraw your funds following a voting period is if the claim is vetoed by a majority of voting bounty contributors. For more information, please read the "what happens when a vote fails?" section further down this page.
canceling an open bounty
If you are the creator of an open bounty, you will see a "cancel" button displayed on the bounty detail page:
Clicking this button and confirming the transaction will fully close out the bounty, with all contributed funds returning to their original addresses. No fees are taken by the poidh protocol on canceled bounties, but you will have to pay gas fees.
Please note that gas fees for canceling an open bounty increase based on the number of contributors that have added funds to the bounty. This is because you are paying for funds to be sent to many different addresses, instead of only one.
Open bounties can be canceled by bounty owners whether or not they have pending claims. All pending claim NFTs for canceled bounties are effectively "burned", as there is no way to unlock them from the poidh contract following cancellation.
Open bounties cannot be canceled during voting periods. They also cannot be canceled following a successful vote in favor of a specific claim. However, if a claim is vetoed during voting, bounties can be canceled. For more information, please read the "what happens when a vote fails?" section further down this page.
approving an open bounty claim with no contributors
If you create an open bounty and someone completes it sufficiently before anyone else adds funds, confirming the claim is as simple as confirming a solo poidh bounty. When you have your wallet connected as bounty owner, hitting the "accept" button on the claim card you want to reward will trigger a transaction confirmation in your wallet, and confirming that tx will transfer the bounty funds to the claim issuer and the NFT to you with no voting period:
Please note, due to our smart contract design, if an open bounty at any point has had contributors it is no longer eligible for automated completion. This means that, if a person adds funds to your bounty, then withdraws them, and you are once again the sole contributor, your bounty will still need to pass through the voting period before funds can be released.
This does not change which claim is rewarded the bounty (as your 100% vote in their favor will mean the vote is non-essential), but it does mean there will be a 48-hour period before the vote can be resolved and the funds released to the winning claim.
approving an open bounty claim with contributors
If your bounty has attracted contributors, accepting a claim will look a bit different. When you have your wallet connected as bounty owner, instead of seeing an "accept" icon over submitted claims, you will see a "submit for vote" button:
Clicking this button and confirming the transaction will start a 48-hour voting period 🗳.
During this voting period, all contributors will have the ability to vote either "yes" or "no" with their share of the funds contributed towards the bounty. Doing so is done by clicking either the "yes" or "no" button on the voting interface that will appear on the page during the voting period:
Voting is only available to contributors to the bounty. To vote, simply connect the wallet that you contributed with, click the corresponding button, and then confirm the voting transaction in your wallet.
Calling these functions will not work for anyone else. The "resolve vote" function will also not work until the 48-hour period has passed.
It's important to know that, as a bounty contributor, you do not need to add your vote after putting a claim up for a vote. Since you chose that claim, your share of the contributor funds will automatically be added to the "yes" count.
what happens when a vote is successful?
A vote is deemed successful for an open bounty if >50% of participating voters vote yes. Votes are weighted based on individual contributions to the bounty. Consider this situation:
There are 5 contributors to a 100 DEGEN bounty
Contributor A provided 40 DEGEN (40% vote share)
Contributor B provided 20 DEGEN (20% vote share)
Contributor C provided 15 DEGEN (15% vote share)
Contributor D provided 15 DEGEN (15% vote share)
Contributor E provided 10 DEGEN (10% vote share)
Contributors A & B vote "yes", while contributors C, D, & E vote "no"
The above voting scenario would result in the claim under vote being confirmed, even though only 2/5 voters voted "yes", because their 60% share would outweigh the 40% from "no" votes.
Remember, voters who do not participate are not counted in the equation. Let's consider a new scenario with the same voting share breakdown where contributors A, B, & C do not vote, while contributor D votes "yes" and contributor E votes "no". In this scenario, the claim being voted on would be approved, even though only 25% of voters participated in the process.
After the 48-hour voting period has passed and a majority consensus has voted "yes" on a specific claim, the "resolve vote" function can be called:
This function can be called by any wallet, not just contributors. This is because the function can only do one thing: execute the choice of the participants that voted. Calling the function in the case above would transfer the claim NFT to the original creator of the bounty, and all funds from the bounty to the winning claimant (minus the poidh contract's automatic 2.5% fee for completed bounties).
Please note, even if a contributor votes "no" on a claim (or refuses to vote at all), their funds in the bounty will still be passed to the winning claimant. There is only one way to keep funds from being sent to a claim, and that is if a vote fails.
what happens when a vote fails?
A vote fails when >50% of participating voters vote "no" during the 48-hour period:
In this situation, hitting "resolve vote" will not reward any bounty funds at all. The bounty will simply be reset to its base state from before the voting period was started.
There will be no change in bounty funds, but at this point, bounty contributors can choose to withdraw their funds (if for some reason they have lost faith in the bounty creator to choose a sufficiently suitable claim).
Bounty creators can also at any time call another claim (or the same claim) up to vote in hopes of a positive outcome. They also can simply cancel the bounty and return all funds to contributors if they no longer believe they will be able to find a suitable claim.
questions?
We believe open/multiplayer bounties via poidh are an exciting new crypto primitive and we can't wait to see the use cases they unlock! If you have any questions, or simply want to discuss your idea for a bounty, please feel free to reach out on Twitter via @kaspotz or @poidhxyz, or hit us up on Farcaster @kenny or in the /poidh channel.