Creating a Decision Deposit referendum track

There are regularly issues with the size of the root track deposit on Kusama (and I assume on Polkadot), meaning that people who legitimately need to use the track who do not have the funds have to beg others to supply them.

Noting that there have been previous discussions about funding decision deposits collectively, for example here:

And there’s an open referendum about it on Kusama here:

I would like to suggest an alternative - the ultimate collective for providing the deposit is the chain treasury (but see note *).

Could you have a Decision Deposit track which can only call referenda->placeDecisionDeposit()? That way, someone could raise their root referendum and then a decision deposit track referendum to place the deposit and, at the end of the root referendum, the deposit would return to the treasury automatically - no need to mess about with special pallets or multi-sigs.

The track would need to be quicker than the root referendum. On Kusama, something like:
7 day decision period
6 hour confirmation
Linear reduction of threshold curves to 50% / 0 support. (Or even quicker than linear.)
DD significantly less than the root referendum track - perhaps 33KSM.

14 day decision period might be more appropriate on Polkadot.

And indeed, a perfect candidate for using this track would be this referendum:

Note *: I think this doesn’t work because the origin isn’t the treasury. We might, in fact, need to modify the placeDecisionDeposit function logic so that the track origin (root, I assume) can call the function bypassing the deposit requirement. If that isn’t already part of that function.


If I want to code this and see if I can get it added, is the Fellowship RFC process the place to start, please? I think there’s a change to the runtime (for the extra track) and to the referenda pallet. (And quiet possibly other things I won’t find until I test it or someone says “don’t forget…”)

1 Like

Note - this is now Referendum Deposit Track by JelliedOwl · Pull Request #73 · polkadot-fellows/RFCs · GitHub