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 all 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
12 changes: 6 additions & 6 deletions docs/learn/learn-bridges.md
Original file line number Diff line number Diff line change
Expand Up @@ -106,11 +106,10 @@ Please read the blog article for fuller descriptions of each one of these option

### Bitcoin Bridge (XCLAIM <-> Substrate <-> Polkadot)

The Interlay team has written a [specification](https://spec.interlay.io/) on a
Bitcoin bridge that is based on the [XCLAIM](https://eprint.iacr.org/2018/643.pdf) design paper. The
protocol enables a two-way bridge between Polkadot and Bitcoin. It allows holders of BTC to
"teleport" their assets to Polkadot as iBTC, and holders of iBTC to burn their assets for
BTC on the Bitcoin chain.
The Interlay team has written a [specification](https://spec.interlay.io/) on a Bitcoin bridge that
is based on the [XCLAIM](https://eprint.iacr.org/2018/643.pdf) design paper. The protocol enables a
two-way bridge between Polkadot and Bitcoin. It allows holders of BTC to "teleport" their assets to
Polkadot as iBTC, and holders of iBTC to burn their assets for BTC on the Bitcoin chain.

The Bitcoin bridge, as documented in the specification, is composed of two logically different
components:
Expand Down Expand Up @@ -152,4 +151,5 @@ There is now a
Edgeware chain (a Substrate-based chain) - now defunct and not maintained, but a good example.
- [XCLAIM](https://eprint.iacr.org/2018/643.pdf) - XCLAIM is a framework for achieving trustless and
efficient cross-chain exchanges using cryptocurrency-backed assets.
- [Celer cBridge](https://github.com/celer-network/cBridge-contracts) - a bridge to transfer assets from Ethereum & Binance Smart Chain to the Astar Polkadot EVM.
- [Celer cBridge](https://github.com/celer-network/cBridge-contracts) - a bridge to transfer assets
from Ethereum & Binance Smart Chain to the Astar Polkadot EVM.
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
70 changes: 70 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,73 @@ 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 event organizers who need to pay costs upfront or close to the event's date. Bounties solve this
problem by procuring access to treasury funds in a single shot and using them to fund multiple
events later on through [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, which will be used later.
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 efforts.

Curators are expected to have a decent track record in addressing the issues the bounty wants to
solve. 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. A Bounty is a reward for a specified body of work or set of objectives that needs to be
executed for a predefined treasury amount designated to be paid out. The responsibility of assigning
a payout 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.
3 changes: 2 additions & 1 deletion docs/maintain/maintain-guides-async-backing.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@ to set the stage.

:::info

For more contextual information about asynchronous backing, see [this page](../learn/learn-async-backing.md).
For more contextual information about asynchronous backing, see
[this page](../learn/learn-async-backing.md).

:::

Expand Down
Loading