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 8 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
15 changes: 14 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,16 @@ 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 way
filippoweb3 marked this conversation as resolved.
Show resolved Hide resolved
to explain the proposal through for example [Polkassembly](https://polkadot.polkassembly.io/opengov)
filippoweb3 marked this conversation as resolved.
Show resolved Hide resolved
or [Subsquare](https://polkadot.subsquare.io/).
[This template](https://docs.google.com/document/d/1-IBz_owspV5OcvezWXpksWDQReWowschD0TFuaVKKcU/edit?usp=sharing)
can help as a checklist of all needed information for OpenGov voters to make an informed decision.
filippoweb3 marked this conversation as resolved.
Show resolved Hide resolved

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 +92,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 @@ -116,3 +116,71 @@ requires a decision deposit of {{ polkadot: 10 DOT :polkadot }}{{ kusama: 0.33
This track can be used for treasury spending requests up to
{{ polkadot: 100 DOT :polkadot }}{{ kusama: 8.25 KSM :kusama }} per referendum. Each referendum
requires a decision deposit of {{ polkadot: 1 DOT :polkadot }}{{ kusama: 0.033 KSM :kusama }}.

## 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 can be unideal, for example, for events'
filippoweb3 marked this conversation as resolved.
Show resolved Hide resolved
organizers needing to pay costs upfront or close to the event's date. Bounties solve this problem by
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) (that is why bounties are also called _parent_ bounties).
filippoweb3 marked this conversation as resolved.
Show resolved Hide resolved

Parent bounty proposals aim to access treasury funds once to fund multiple smaller proposals later
filippoweb3 marked this conversation as resolved.
Show resolved Hide resolved
on without creating OpenGov referenda for each one of them. Bounties are managed by curators, where
filippoweb3 marked this conversation as resolved.
Show resolved Hide resolved
usually a curator is a [multi-signature account](./learn-account-multisig.md). Bounties can access a
filippoweb3 marked this conversation as resolved.
Show resolved Hide resolved
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 includes a fee paid to curators willing to
filippoweb3 marked this conversation as resolved.
Show resolved Hide resolved
invest their time and expertise in the task: this amount is included in the total value of the
filippoweb3 marked this conversation as resolved.
Show resolved Hide resolved
bounty. In this sense, the curator's fee can be defined as subtracting the value paid to the bounty
filippoweb3 marked this conversation as resolved.
Show resolved Hide resolved
rewardee from the total value of the bounty.
filippoweb3 marked this conversation as resolved.
Show resolved Hide resolved

Curators are selected through OpenGov referendum after the bounty proposal passes and need to add an
filippoweb3 marked this conversation as resolved.
Show resolved Hide resolved
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 them if they act maliciously. However, if they are successful in
filippoweb3 marked this conversation as resolved.
Show resolved Hide resolved
their task of getting someone to complete the bounty work, they will receive their deposit back and
filippoweb3 marked this conversation as resolved.
Show resolved Hide resolved
part of the bounty reward as a fee payment for their job.
filippoweb3 marked this conversation as resolved.
Show resolved Hide resolved

Curators are expected to have a well-balanced track record related to the issues the bounty tries to
filippoweb3 marked this conversation as resolved.
Show resolved Hide resolved
resolve: they should be at least knowledgeable on the topics the bounty touches and show project
filippoweb3 marked this conversation as resolved.
Show resolved Hide resolved
management skills or experience. These recommendations ensure an effective use of the mechanism. A
filippoweb3 marked this conversation as resolved.
Show resolved Hide resolved
Bounty is a reward for a specified body of work - or specified set of objectives - that needs to be
filippoweb3 marked this conversation as resolved.
Show resolved Hide resolved
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 the possibility of being extended by the curator. Aiming to maintain flexibility on the
filippoweb3 marked this conversation as resolved.
Show resolved Hide resolved
tasks’ curation, the curator will be able to create child bounties for more granularity and
filippoweb3 marked this conversation as resolved.
Show resolved Hide resolved
allocation in the next iteration of the mechanism.
filippoweb3 marked this conversation as resolved.
Show resolved Hide resolved

### Child Bounties

Child bounties are spawned from [parent bounties](#parent-bounties). Child bounties access funds
filippoweb3 marked this conversation as resolved.
Show resolved Hide resolved
directly from the parent bounty without going through an OpenGov referendum.
Loading