---
# System prepended metadata

title: OpenGov Treasury Proposals

---

# OpenGov Treasury Proposals

Basic Units for Kusama:
https://github.com/paritytech/polkadot/blob/3fbf6e4698e6abcc621095c8bbeefe37f70568be/runtime/kusama/constants/src/lib.rs#L26-L32

CENTS: 333uKSM (was 33.3 uKSM)
QUID: 33.3mKSM (was 3.33 mKSM)
GRAND: 33.3 KSM (was 3.33 KSM)

# Treasury Spend Origins

Origins
https://github.com/paritytech/polkadot/blob/b984c40cc5217eda68f630e329320dc26578a0bc/runtime/kusama/src/governance/origins.rs#L55-L60

Limits:
https://github.com/paritytech/polkadot/blob/b984c40cc5217eda68f630e329320dc26578a0bc/runtime/kusama/src/governance/origins.rs#L173-L175

SmallSpender: 10 GRAND = 333 KSM
MediumSpender: 100 GRAND = 3333 KSM
BigSpender: 1000 GRAND = 33.3 kKSM
Treasurer: 10'000 GRAND = 333.3 kKSM

# Referenda Curves

https://github.com/paritytech/polkadot/blob/b984c40cc5217eda68f630e329320dc26578a0bc/runtime/kusama/src/governance/tracks.rs#L55-L62

## whitelisted caller (for Encointer runtime upgrade)

SubmissionDeposit = 100KSM, soon: 1 QUID = 33.3mKSM
decision_deposit = 100 GRAND = 3'333 KSM

DecisionPeriod = 14 days
ConfirmationPeriod = 3 hours
MinEnactmentPeriod = 3h
min support: 5%

## treasury

### BigSpender

SubmissionDeposit = 100KSM, soon: 1 QUID = 33.3mKSM
decision_deposit = 5 GRAND = 166 KSM
decision_period: 14 * DAYS,
confirm_period: 48 * HOURS,
min_enactment_period: 24 * HOURS,

### curves
`cargo test -- --nocapture` output for referenda pallet:
```
Curve Small Spend Approval := Linear[(0%, 100%) -> (60.7142857%, 50%) -> (100%, 50%)]:
   t + 0h:   100%
   t + 1h:   99.877451%
   t + 2h:   99.754902%
   t + 3h:   99.632353%
   t + 6h:   99.264706%
   t + 12h:  98.5294119%
   t + 24h:  97.0588236%
   t + 2d:   94.1176471%
   t + 3d:   91.1764706%
   t + 7d:   79.4117648%
   t + 14d:   58.8235295%
   t + 21d:   50%
   t + 26d:   50%
   t + 28d:   50%
   99.9% threshold: 49 minutes
   99% threshold:   8 hours
   95% threshold:   40 hours
   90% threshold:   3 days 9 hours
   75% threshold:   8 days 12 hours
   60% threshold:   13 days 14 hours
Curve Small Spend Support := Reciprocal[factor of FixedI64(0.007892829), x_offset of FixedI64(0.015544040), y_offset of FixedI64(-0.007772020)]:
   t + 0h:   50.0000026%
   t + 1h:   45.5636061%
   t + 2h:   41.8401359%
   t + 3h:   38.6705228%
   t + 6h:   31.4744813%
   t + 12h:  22.8531862%
   t + 24h:  14.6209386%
   t + 2d:   8.2978722%
   t + 3d:   5.6561084%
   t + 7d:   2.1951219%
   t + 14d:   0.7537688%
   t + 21d:   0.2538071%
   t + 26d:   0.0588005%
   t + 28d:   0%
   30% threshold:   6 hours 47 minutes
   10% threshold:   38 hours
   3% threshold:    5 days 9 hours
   1% threshold:    12 days
   0.1% threshold:  24 days 18 hours
   0.01% threshold: 27 days 15 hours
Curve Mid Spend Approval := Linear[(0%, 100%) -> (82.1428571%, 50%) -> (100%, 50%)]:
   t + 0h:   100%
   t + 1h:   99.9094204%
   t + 2h:   99.8188407%
   t + 3h:   99.728261%
   t + 6h:   99.4565218%
   t + 12h:  98.9130436%
   t + 24h:  97.826087%
   t + 2d:   95.652174%
   t + 3d:   93.4782609%
   t + 7d:   84.7826087%
   t + 14d:   69.5652174%
   t + 21d:   54.3478261%
   t + 26d:   50%
   t + 28d:   50%
   99.9% threshold: 1 hours 6 minutes
   99% threshold:   11 hours
   95% threshold:   55 hours
   90% threshold:   4 days 14 hours
   75% threshold:   11 days 12 hours
   60% threshold:   18 days 9 hours
Curve Mid Spend Support := Reciprocal[factor of FixedI64(0.014377233), x_offset of FixedI64(0.027972031), y_offset of FixedI64(-0.013986016)]:
   t + 0h:   50.0000008%
   t + 1h:   47.4037456%
   t + 2h:   45.0571639%
   t + 3h:   42.9258925%
   t + 6h:   37.5634538%
   t + 12h:  29.9727543%
   t + 24h:  21.1764724%
   t + 2d:   13.0653279%
   t + 3d:   9.2421451%
   t + 7d:   3.7735853%
   t + 14d:   1.3245034%
   t + 21d:   0.4494382%
   t + 26d:   0.1044386%
Agenda #6: [Some(ScheduledV3 { maybe_id: None, priority: 128, call: MaybeHashed::Value(Call::Referenda(Call::nudge_referendum { index: 1 })), maybe_periodic: None, origin: OriginCaller::system(RawOrigin::Root), _phantom: PhantomData }), Some(ScheduledV3 { maybe_id: None, priority: 128, call: MaybeHashed::Value(Call::Referenda(Call::nudge_referendum { index: 2 })), maybe_periodic: None, origin: OriginCaller::system(RawOrigin::Root), _phantom: PhantomData }), Some(ScheduledV3 { maybe_id: None, priority: 128, call: MaybeHashed::Value(Call::Referenda(Call::nudge_referendum { index: 3 })), maybe_periodic: None, origin: OriginCaller::system(RawOrigin::Root), _phantom: PhantomData }), Some(ScheduledV3 { maybe_id: None, priority: 128, call: MaybeHashed::Value(Call::Referenda(Call::nudge_referendum { index: 4 })), maybe_periodic: None, origin: OriginCaller::system(RawOrigin::Root), _phantom: PhantomData })]
   t + 28d:   0%
   30% threshold:   11 hours
   10% threshold:   65 hours
   3% threshold:    8 days 8 hours
   1% threshold:    16 days
   0.1% threshold:  26 days 1 hours
   0.01% threshold: 27 days 19 hours
Curve Big Spend Approval := Linear[(0%, 100%) -> (100%, 50%) -> (100%, 50%)]:
   t + 0h:   100%
   t + 1h:   99.9255953%
   t + 2h:   99.8511905%
   t + 3h:   99.7767858%
   t + 6h:   99.5535715%
   t + 12h:  99.1071429%
   t + 24h:  98.2142858%
   t + 2d:   96.4285715%
   t + 3d:   94.6428572%
   t + 7d:   87.5%
   t + 14d:   75%
   t + 21d:   62.5%
   t + 26d:   53.5714286%
   t + 28d:   50%
   99.9% threshold: 1 hours 21 minutes
   99% threshold:   13 hours
   95% threshold:   67 hours
   90% threshold:   5 days 14 hours
   75% threshold:   14 days
   60% threshold:   22 days 9 hours
Curve Big Spend Support := Reciprocal[factor of FixedI64(0.028326977), x_offset of FixedI64(0.053763445), y_offset of FixedI64(-0.026881723)]:
   t + 0h:   50.0000008%
test tests::instaconfirm_then_reconfirm_with_elapsed_trigger_works ... ok
   t + 1h:   48.5809452%
   t + 2h:   47.236324%
   t + 3h:   45.9604303%
   t + 6h:   42.496173%
   t + 12h:  36.8632725%
   t + 24h:  28.9699587%
   t + 2d:   19.9386516%
   t + 3d:   14.9164688%
   t + 7d:   6.6371686%
   t + 14d:   2.4271846%
   t + 21d:   0.8361204%
   t + 26d:   0.1954652%
   t + 28d:   0%
   30% threshold:   22 hours
   10% threshold:   4 days 17 hours
   3% threshold:    12 days 10 hours
   1% threshold:    20 days
   0.1% threshold:  26 days 22 hours
   0.01% threshold: 27 days 21 hours```
```

So, for big spend (max 3'333 KSM):

BigSpender:
Approval:
start with 100%, decrease to 50% over (small: 17,mid: 23, big: 28) days

Support:
Reciprocal curve that goes down from 50% to ~=0% support within (12,16,20) days. Because of the decision period of 48h, a passing threshold must be reached and kept after 26d at the latest

So we always need 0.2% support (pure KSM, ignoring conviction) for BigSpend

at current money supply of 13M KSM, we need 26kKSM tournout (currently, 650k$).
Our common good vote yielded >30kKSM, so it may be possible

But: Gav expects some whales to cast a default *Nay* vote on every referendum to make sure that no referendum can pass just by accident. 

Still, I would expect that turnout is our biggest challenge, and there, these default-Nay could even help us

Check curves visualized here:
https://docs.google.com/spreadsheets/d/1V5o-VYVT2C0B1zj_9VnWjti6USwig1v1ND-96otA1Ug/edit#gid=310803467

As our treasury proposal will likely by >> 3'333 KSM, we need the `Treasurer` Origin:
Treasurer has a linear support curve which reaches 0.22% 3h (confirmation time) before end of decision period



Currently, 480kKSM are available in KSM treasury. 
A proposal of 1M$ would be asking for 8% of the entire treasury, or entire 3 weeks of the year of inflation income

A 1M$ proposal will probably not pass


## update for runtime 9035

```
Curve Big Spend Support := Reciprocal[factor of FixedI64(0.028326977), x_offset of FixedI64(0.053763445), y_offset of FixedI64(-0.026881723)]:
   t + 0h:   50.0000008%
   t + 1h:   47.236324%
   t + 2h:   44.7481262%
   t + 3h:   42.496173%
   t + 6h:   36.8632725%
   t + 12h:  28.9699587%
   t + 24h:  19.9386516%
   t + 1d:   19.9386516%
   t + 3d:   7.8796567%
   t + 7d:   2.4271846%
   t + 10d:   1%
   t + 12d:   0.4215851%
   t + 14d:   0%
   30% threshold:   11 hours
   10% threshold:   56 hours
   3% threshold:    6 days 5 hours
   1% threshold:    10 days
   0.1% threshold:  13 days 11 hours
   0.01% threshold: 13 days 22 hours
```
This means we need to reach 0.4215851% after 12d!!!!

active supply is 12.78MKSM, therefore, support has to reach 53.878kKSM


