Skip to main content

Polkadot-JS Guides about Bounties

Polkadot-JS is for developers and power users only. If you need help using the Polkadot-JS UI, you can contact the Polkadot Support Team. For more user-friendly tools see the wallets, apps and dashboard pages.

See this page to learn about Bounties.

Notify the Polkadot Direction Channel

Remember always to notify the Polkadot Direction Element Channel about OpenGov referenda so that the community can start reviewing them and voting on them.

Submit a Bounty Proposal

Step-by-step written tutorial

See this written tutorial to learn more about how to submit a bounty proposal.

See the video tutorial below to learn how you can create a bounty and submit it for approval through an OpenGov referendum.

When you add a bounty, this will show as "proposed" in the main Bounties page. Once the community approves your bounty proposal as an OpenGov referendum, the bounty will show as "funded" at the end of the spending period on the main Bounties page. You can then proceed with assigning curators to the bounty.

To minimize storage on chain in the same way as any proposal, bounties don't contain contextual information. When a user submits a bounty spending proposal, they will need to find an off-chain medium to explain the proposal, for example a bounty proposal document on Polkassembly or Subsquare. This template can be used to submit all the information needed by OpenGov voters to make an informed decision.

Submitting a bounty proposal will require a deposit.

Assign a Curator to a Bounty

Step-by-step written tutorial

See this written tutorial to learn more about how to assign a curator to a bounty.

Once your bounty is shown as "funded" on the main Bounties page, you can propose a bounty curator. The referendum must be submitted on the same track used for proposing the bounty or a track with a higher spending limit (see the code snippet). For example, if the bounty was submitted to the Medium Spender Track, the curator must be proposed using the same track or the Big Spender or Treasurer tracks. See the video tutorial below to learn how you can add a curator to a bounty and submit it for approval through an OpenGov referendum.

Once your OpenGov referendum has been approved by the community and served the required spending period, the bounty will still show as "funded" on the main Bounties page and await the curator's acceptance. The curator must formally accept the curator role by signing a bounties.acceptCurator extrinsic. More information about when to do this can be found on the main Bounties page. Only after the curators claim their candidacy the bounty will show as "active" on the main Bounty page.

Curator assignment call must be executed after bounty is funded

Curator assignment must take place after the bounty has been funded, and approved bounties are funded after a spend period has been completed. A curator assignment referendum cannot be executed during the same spend period when the bounty is funded.

If your bounty has been awarded but is not funded yet, you need to make sure that the curator assignment referendum gets enacted in the subsequent spending period (you can set a delay in Polkadot-JS when you submit the proposal during the current spend period).

Create and Award Child Bounties

Step-by-step written tutorial

See this written tutorial to learn more about how to create and award child bounties.

Remember to add contextual information about child bounties

When you add child bounties, please add contextual information on the governance forums Polkassembly or Subsquare.

See the video tutorial below to learn how to create a child bounty, assign a curator, and award a child bounty.

The video will show how to create and award a child bounty using a batch call. We will also include proposing and approving curator candidacy for the child bounty. The calls can be executed separately, depending on the process curators consider appropriate for their bounty.

Once a child bounty is awarded, awardees can claim the child bounty.

Claim a Child Bounty Reward

Step-by-step written tutorial

See this written tutorial to learn more about how to claim a child bounty reward.

The status of child bounties can be viewed on the Polkassembly Bounty page under the specific parent bounty. A child bounty status can be "Added", "Awarded", or "Claimed". For example, the parent bounty 17 refers to the Community Events Bounty, which has 183 child bounties.

polkassembly-child-bounties

After the child bounty has been rewarded, follow the guidelines in the video tutorial below to learn how to claim a child bounty reward. Note that the extrinsic to claim the child bounty reward is permissionless, and anyone can initiate the claim on behalf of the beneficiary.

Close Child Bounties

Child bounties can be closed without awarding them. To close a child bounty, you must submit a childBounties.closeChild.Bounty extrinsic, specifying the parent bounty and child bounty IDs. Only the parent bounty curator can sign this transaction, resulting in the child bounty’s curator deposit being returned.

See the video tutorial below to learn how to close a child bounty.

If the child bounty curator acts maliciously, the parent bounty curator can submit a childBounties.unassignCurator that slashes the curator's deposit.

Refill Parent Bounties

To refill a parent bounty, an OpenGov referendum must be submitted.

The preimage must contain a treasury.spendLocal extrinsic specifying the amount of tokens to be sent from the treasury to the receiver's address, in this case the system account of the parent bounty.

To get the bounty system account of a parent bounty, go to Subsquare, search for the bounty name, and the address will be shown under Metadata.