Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Bounty Context to Treasury Page #5307

Merged
merged 45 commits into from
Nov 3, 2023
Merged
Show file tree
Hide file tree
Changes from 35 commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
4521c7f
moved old treasury paragraph
filippoweb3 Oct 26, 2023
2dacc51
modified text
filippoweb3 Oct 26, 2023
057c83a
added on-chain info
filippoweb3 Oct 27, 2023
d10559f
fetched on-chain data
filippoweb3 Oct 27, 2023
55f1947
added info about deposit
filippoweb3 Oct 27, 2023
4011f31
grammar check
filippoweb3 Oct 27, 2023
6172ddd
minor edits
filippoweb3 Oct 27, 2023
62de997
grammar check
filippoweb3 Oct 27, 2023
20a9229
Update docs/learn/learn-guides-bounties.md
filippoweb3 Oct 31, 2023
fa24e02
Update docs/learn/learn-guides-bounties.md
filippoweb3 Oct 31, 2023
d128818
Update docs/learn/learn-guides-bounties.md
filippoweb3 Oct 31, 2023
6598f01
Update docs/learn/learn-polkadot-opengov-treasury.md
filippoweb3 Oct 31, 2023
fc96611
Update docs/learn/learn-polkadot-opengov-treasury.md
filippoweb3 Oct 31, 2023
71e6de5
Update docs/learn/learn-polkadot-opengov-treasury.md
filippoweb3 Oct 31, 2023
f315561
Update docs/learn/learn-polkadot-opengov-treasury.md
filippoweb3 Oct 31, 2023
188240e
Update docs/learn/learn-polkadot-opengov-treasury.md
filippoweb3 Oct 31, 2023
51b76f2
Update docs/learn/learn-polkadot-opengov-treasury.md
filippoweb3 Oct 31, 2023
d9a046d
Update docs/learn/learn-polkadot-opengov-treasury.md
filippoweb3 Oct 31, 2023
7e42d7d
Update docs/learn/learn-polkadot-opengov-treasury.md
filippoweb3 Oct 31, 2023
4044a8d
Update docs/learn/learn-polkadot-opengov-treasury.md
filippoweb3 Oct 31, 2023
3100b85
Update docs/learn/learn-polkadot-opengov-treasury.md
filippoweb3 Oct 31, 2023
895372e
Update docs/learn/learn-polkadot-opengov-treasury.md
filippoweb3 Oct 31, 2023
bba8deb
Update docs/learn/learn-polkadot-opengov-treasury.md
filippoweb3 Oct 31, 2023
4d08886
Update docs/learn/learn-polkadot-opengov-treasury.md
filippoweb3 Oct 31, 2023
bdb5df9
Update docs/learn/learn-polkadot-opengov-treasury.md
filippoweb3 Oct 31, 2023
b541fcc
Update docs/learn/learn-polkadot-opengov-treasury.md
filippoweb3 Oct 31, 2023
5c22479
Update docs/learn/learn-polkadot-opengov-treasury.md
filippoweb3 Oct 31, 2023
59e4bb6
Update docs/learn/learn-polkadot-opengov-treasury.md
filippoweb3 Oct 31, 2023
9272f3f
Update docs/learn/learn-polkadot-opengov-treasury.md
filippoweb3 Oct 31, 2023
80a111d
Update docs/learn/learn-polkadot-opengov-treasury.md
filippoweb3 Oct 31, 2023
f9f6307
Update docs/learn/learn-polkadot-opengov-treasury.md
filippoweb3 Oct 31, 2023
456922e
Update docs/learn/learn-polkadot-opengov-treasury.md
filippoweb3 Oct 31, 2023
99af7bd
Merge branch 'master' into add-bounty-info
filippoweb3 Oct 31, 2023
ddb3b2a
Merge branch 'master' into add-bounty-info
filippoweb3 Oct 31, 2023
dd511ae
minor edit
filippoweb3 Oct 31, 2023
b441245
Update docs/learn/learn-polkadot-opengov-treasury.md
filippoweb3 Nov 3, 2023
e5e7d2b
Update docs/learn/learn-polkadot-opengov-treasury.md
filippoweb3 Nov 3, 2023
bdf553f
Update docs/learn/learn-polkadot-opengov-treasury.md
filippoweb3 Nov 3, 2023
33a9192
Update docs/learn/learn-polkadot-opengov-treasury.md
filippoweb3 Nov 3, 2023
996bb6a
Update docs/learn/learn-polkadot-opengov-treasury.md
filippoweb3 Nov 3, 2023
5a29a40
Update docs/learn/learn-polkadot-opengov-treasury.md
filippoweb3 Nov 3, 2023
fad1a40
grammar chack
filippoweb3 Nov 3, 2023
48a9414
Merge branch 'add-bounty-info' of https://github.com/w3f/polkadot-wik…
filippoweb3 Nov 3, 2023
6b4a938
grammar check
filippoweb3 Nov 3, 2023
dbb3137
Merge branch 'master' into add-bounty-info
filippoweb3 Nov 3, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 15 additions & 1 deletion docs/learn/learn-guides-bounties.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ keyword: [treasury, bounties, guides, child bounty]
slug: ../learn-guides-bounties
---

import RPC from "./../../components/RPC-Connection";

For these guides, you will use the [Polkadot-JS UI](https://polkadot.js.org/apps/#/explorer).

:::info Notify the Polkadot Direction Channel
Expand All @@ -32,6 +34,17 @@ proposal as an OpenGov referendum, the bounty will show as "funded" at the end o
[Bounties page](https://polkadot.js.org/apps/#/bounties). 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](https://polkadot.polkassembly.io/opengov) or
[Subsquare](https://polkadot.subsquare.io/).
[This template](https://docs.google.com/document/d/1-IBz_owspV5OcvezWXpksWDQReWowschD0TFuaVKKcU/edit?usp=sharing)
can be used to submit all the information needed by OpenGov voters to make an informed decision.

Submitting a bounty proposal will reserve
{{ polkadot: <RPC network="polkadot" path="consts.bounties.bountyDepositBase" defaultValue={10000000000} filter="humanReadable"/> :polkadot }}{{ kusama: <RPC network="kusama" path="consts.bounties.bountyDepositBase" defaultValue={33333333300} filter="humanReadable"/> :kusama }}.

## Assign a Curator to a Bounty

Once your bounty is shown as "funded" on the main
Expand Down Expand Up @@ -80,7 +93,8 @@ bounty 17 refers to the Community Events Bounty, which has 183 child bounties.

![polkassembly-child-bounties](../assets/polkassembly-child-bounties.png)

After a child bounty has been awarded and the {{ polkadot: 8 :polkadot }}{{ kusama: 4 :kusama }}-day
After a child bounty has been awarded and the
{{ polkadot: <RPC network="polkadot" path="consts.bounties.bountyDepositPayoutDelay" defaultValue={115200} filter="blocksToDays"/> :polkadot }}{{ kusama: <RPC network="kusama" path="consts.bounties.bountyDepositPayoutDelay" defaultValue={57600} filter="blocksToDays"/> :kusama }}-day
delay elapsed, 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.
Expand Down
68 changes: 68 additions & 0 deletions docs/learn/learn-polkadot-opengov-treasury.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,3 +78,71 @@ track on-chain. Learn how to submit a treasury proposal for referendum
[here](./learn-guides-treasury#creating-a-treasury-proposal).

:::

## Bounties

:::info Bounty Guides

See the [bounty guides](./learn-guides-bounties.md) to learn about how to
[create a bounty](./learn-guides-bounties.md#submit-a-bounty-proposal),
[assign a curator](./learn-guides-bounties.md#assign-a-curator-to-a-bounty) to a bounty, as well as
[creating and awarding child bounties](./learn-guides-bounties.md#create-and-award-child-bounties)
and [claiming child bounties rewards](./learn-guides-bounties.md#claim-a-child-bounty-reward).

:::

### Parent Bounties

Getting treasury funding through OpenGov, depending on which treasury track you submit your
referendum, can be a long and uncertain process. This is not always a suitable option, for example, for events'
organizers needing to pay costs upfront or close to the event's date. Bounties solve this problem by
filippoweb3 marked this conversation as resolved.
Show resolved Hide resolved
allowing access to treasury funds once to fund multiple events later on through
filippoweb3 marked this conversation as resolved.
Show resolved Hide resolved
[child bounties](#child-bounties). This is why bounties are also called _parent_ bounties.

Parent bounty proposals aim to reserve a portion of treasury funds once that will be used later on.
They save proponents the time needed to create and obtain approval for several OpenGov referenda. Bounties are managed by curators, where
the curator is usually a [multi-signature account](./learn-account-multisig.md). Bounties can access a
large amount of funds, so managing those funds with a multisig is a good practice to enhance
security. Essentially, curators are multisig addresses with agency over a portion of the treasury to
promote events, fix a bug or vulnerability, develop a strategy, or monitor a set of tasks related to
a specific topic: all for the benefit of the
{{ polkadot: Polkadot :polkadot }}{{ kusama: Kusama :kusama }} ecosystem.

A proposer can [submit a bounty proposal](./learn-guides-bounties.md#submit-a-bounty-proposal) to
OpenGov,
[with a curator to be defined later](./learn-guides-bounties.md#assign-a-curator-to-a-bounty), whose
background and expertise is such that they can determine when the task is complete.

When submitting the value of the bounty, the proposer can specify a fee that will be paid to curators willing to
invest their time and expertise in the task: this amount will be included in the total value of the
bounty. In this sense, the curator's fee can be defined as the difference between the amounts paid to child bounty
awardees and the total value of the bounty.

Curators are selected through OpenGov referendum after the bounty proposal passes; and they need to pay an
upfront deposit to take the position. The deposit is calculated by multiplying the curator fee by
{{ polkadot: <RPC network="polkadot" path="consts.bounties.curatorDepositMultiplier" defaultValue={500000} filter="permillToPercent"/> :polkadot }}{{ kusama: <RPC network="kusama" path="consts.bounties.curatorDepositMultiplier" defaultValue={500000} filter="permillToPercent"/> :kusama }}%,
and it can range between a minimum of
{{ polkadot: <RPC network="polkadot" path="consts.bounties.curatorDepositMin" defaultValue={100000000000} filter="humanReadable"/> :polkadot }}{{ kusama: <RPC network="kusama" path="consts.bounties.curatorDepositMin" defaultValue={3333333330} filter="humanReadable"/> :kusama }}
and a maximum of
{{ polkadot: <RPC network="polkadot" path="consts.bounties.curatorDepositMax" defaultValue={2000000000000} filter="humanReadable"/> :polkadot }}{{ kusama: <RPC network="kusama" path="consts.bounties.curatorDepositMax" defaultValue={166666666500} filter="humanReadable"/> :kusama }}.
This deposit can be used to punish curators if they act maliciously. However, if they are successful in
managing the bounty to completion, they will receive their deposit back and
part of the bounty funding as a payment for their job.
filippoweb3 marked this conversation as resolved.
Show resolved Hide resolved

Curators are expected to have a well-balanced track record in addressing the issues that the bounty wants to
filippoweb3 marked this conversation as resolved.
Show resolved Hide resolved
solve. At the very least, they should be very knowledgeable on the topics covered by the bounty and have proven project
management skills or experience. These recommendations help ensure an effective use of the bounty mechanism.
filippoweb3 marked this conversation as resolved.
Show resolved Hide resolved
A Bounty is a reward for a specified body of work - or specified set of objectives - that needs to be
executed for a predefined treasury amount to be paid out. The responsibility of assigning a payout
filippoweb3 marked this conversation as resolved.
Show resolved Hide resolved
address once the specified set of objectives is completed is delegated to the curator.

The bounty has a predetermined duration of
{{ polkadot: <RPC network="polkadot" path="consts.bounties.bountyUpdatePeriod" defaultValue={1296000} filter="blocksToDays"/> :polkadot }}{{ kusama: <RPC network="kusama" path="consts.bounties.bountyUpdatePeriod" defaultValue={1296000} filter="blocksToDays"/> :kusama }}
days, with possible extension(s) to be requested by the curator. To maintain flexibility during the
tasks’ curation, the curator will also be able to create child bounties for more granularity in the allocation of funds and
as part of a nested iteration of the bounty mechanism.

### Child Bounties

Child bounties are spawned from [parent bounties](#parent-bounties). Child bounties are used to access funds
directly from the parent bounty without going through an OpenGov referendum.
Loading