On-chain Vote: Recurring Spend for Committee Budgets

Ok, revisiting this a few months later now that on-chain vote power is fully intialized and RPIP-68 is actively being voted on. The aim here is still the same. We’d like to vote in a payment contract so that the committees can claim their budget every reward round without being dependent on a manual disbursement from the team.

These are the updated payment contract details to reflect the remainder of reward periods until the committees are bound to be reelected, each with an accompanying sentiment poll whether we move to an on-chain vote. Note that these polls are contingent on RPIP-68 since the payment details assume a pDAO split of 27.5%.

Another important bit of context for the GMC budget vote specifically is that there is still an ongoing discussion to revisit its 20.5% share of the pDAO budget. There is no agreement or RPIP for it yet, but if that comes to pass before the below contract expires, it would require another on-chain vote to modify the GMC payment contract. There is also a possibility that a revised split would change the budget for both committees, not only the GMC.

In terms of timing, starting a 7 day sentiment poll now allows us to start the onchain vote right after RPIP-68 passes (assuming both are successful). This would make the proposal executable one day after the reward snapshot in April, in time for both committees to claim and use their budgets.

IMC

_contractName: IMC (2025-04)
_recipientAddress: 0xb867EA3bBC909954d737019FEf5AB25dFDb38CB9 
_amountPerPeriod: 11024625079120103834154 (11,024.63 RPL)
_periodLength: 2419200 (28 days)
_startTime: 1741844139 (March 13 05:35am UTC)
_numPeriods: 5
Sentiment Poll
  • Support moving to on-chain vote now
  • Oppose moving to on-chain vote now - wait for stronger consensus on the GMC budget revision
  • Oppose moving to on-chain vote for a different reason
  • Undecided
0 voters

GMC

_contractName: GMC (2025-04)
_recipientAddress: 0x6efD08303F42EDb68F2D6464BCdCA0824e1C813a
_amountPerPeriod: 4562789135567855102050 (4,562.79 RPL)
_periodLength: 2419200 (28 days)
_startTime: 1741844139 (March 13 05:35am UTC)
_numPeriods: 10
Sentiment Poll
  • Support moving to on-chain vote now
  • Oppose moving to on-chain vote now - wait for stronger consensus on the GMC budget revision
  • Oppose moving to on-chain vote for a different reason
  • Undecided
0 voters

For a full explanation of the parameters, see the initial post in this thread.

Updated script for amount per period
def calculate_inflation(initial_supply: int, days: int) -> int:
    supply = initial_supply

    for _ in range(days):
        supply *= 1000133680617113500
        supply //= 10**18

    return supply - initial_supply

def main():
    rpl_supply = 21145902161625010994503424
    rpl_supply += calculate_inflation(rpl_supply, 27)

    imc_periods = 5
    imc_inflation = calculate_inflation(rpl_supply, imc_periods * 28)
    imc_payout = imc_inflation * 275 * 500 // (imc_periods * 10**6)
    print(f"IMC: {imc_payout}")

    gmc_periods = 10
    gmc_inflation = calculate_inflation(rpl_supply, gmc_periods * 28)
    gmc_payout = gmc_inflation * 275 * 205 // (gmc_periods * 10**6)
    print(f"GMC: {gmc_payout}")


if __name__ == '__main__':
    main()
IMC: 11024625079120103834154
GMC: 4562789135567855102050
1 Like