Bounties is a way for a DAO to request work and show prepaid amount.
Bounty usually would contain next information:
description
amount -- amount to be paid out
asset_name -- accountId for asset to be paid (empty for native token?)
repeat -- how many times this bounty can be done
max_deadline -- maximum time from claim that can be spent on this bounty
Bounty life cycle:
Bounties can be added via proposal. When proposal will be voted in, this bounty will be added the bounty list.
Non claimed bounties can be removed via another proposal type.
Claim bounty - any one can call bounty_claim(id, deadline) to identify they want to work on it. Claim requires a bond that will be held for the deadline. Deadline must be less or equal than max_deadline set by bounty maker.
Bounty can be claimed up to repeat times at the same time.
Bounty claimer can give up bounty_giveup(id), receiving back their bond. Within first X days - they receive 100% of their bond. After that, bond size gets linearly reduced to 0 at deadline.
Bounty claimer can indicate that bounty is done via bounty_done(id, details), which marks bounty claim resolved and creates a proposal to payout the bounty reward. Bond is moved from claim to payout proposal. If proposal passes - the bond gets returned in full.
If claim hits deadline, the bond is withheld and another person can claim it.
Proposal by council can be sent to free bounty from (specific) claim as well.
All bounties must be accounted for in the DAO to make sure that DAO can't spent money below outstanding bounties.
Generally, any payout that would withdraw more money than is available should fail at the adding proposal time.
Bounties is a way for a DAO to request work and show prepaid amount.
Bounty usually would contain next information:
description
amount
-- amount to be paid outasset_name
-- accountId for asset to be paid (empty for native token?)repeat
-- how many times this bounty can be donemax_deadline
-- maximum time from claim that can be spent on this bountyBounty life cycle:
bounty_claim(id, deadline)
to identify they want to work on it. Claim requires a bond that will be held for the deadline. Deadline must be less or equal thanmax_deadline
set by bounty maker.repeat
times at the same time.bounty_giveup(id)
, receiving back their bond. Within firstX
days - they receive 100% of their bond. After that, bond size gets linearly reduced to 0 atdeadline
.bounty_done(id, details)
, which marks bounty claim resolved and creates a proposal to payout the bounty reward. Bond is moved from claim to payout proposal. If proposal passes - the bond gets returned in full.deadline
, the bond is withheld and another person can claim it.All bounties must be accounted for in the DAO to make sure that DAO can't spent money below outstanding bounties.
Generally, any payout that would withdraw more money than is available should fail at the adding proposal time.