|
| 1 | +--- |
| 2 | +simd: '0232' |
| 3 | +title: Custom Fee Collector Account |
| 4 | +authors: Justin Starry (Anza) |
| 5 | +category: Standard |
| 6 | +type: Core |
| 7 | +status: Review |
| 8 | +created: 2025-01-24 |
| 9 | +feature: (fill in with feature tracking issues once accepted) |
| 10 | +--- |
| 11 | + |
| 12 | +## Summary |
| 13 | + |
| 14 | +Allow validators to specify a custom fee collector account where all earned |
| 15 | +block fees will be deposited. |
| 16 | + |
| 17 | +## Motivation |
| 18 | + |
| 19 | +Validator fee collector accounts must currently be the same as their identity |
| 20 | +hot wallet account. This means that program derived addresses are unable to be |
| 21 | +used for fee collection adding friction to validators distributing their revenue |
| 22 | +in custom ways. By allowing validators to specify a separate custom fee |
| 23 | +collector address, they can use onchain programs to customize how their block |
| 24 | +revenue is distributed. |
| 25 | + |
| 26 | +## Alternatives Considered |
| 27 | + |
| 28 | +NA |
| 29 | + |
| 30 | +## New Terminology |
| 31 | + |
| 32 | +NA |
| 33 | + |
| 34 | +## Prerequisite Proposals |
| 35 | + |
| 36 | +SIMD-0180 adjusts the leader schedule algorithm to make it possible to designate |
| 37 | +a specific vote account for a given leader slot. |
| 38 | + |
| 39 | +SIMD-0185 adds a new fee collector address field to the vote account state. |
| 40 | + |
| 41 | +## Detailed Design |
| 42 | + |
| 43 | +After adoption of SIMD-0180 and SIMD-0185, a given block's fee collector address |
| 44 | +can be looked up via the designated vote account for the leader schedule slot |
| 45 | +that the block was produced in. |
| 46 | + |
| 47 | +In order to eliminate the overhead of tracking the latest fee collector address |
| 48 | +of each vote account, the fee collector address should be fetched from the state |
| 49 | +of the vote account at the beginning of the previous epoch. This is the same |
| 50 | +vote account state used to build the leader schedule for the current epoch. |
| 51 | + |
| 52 | +Note that the fee-collector constraints defined in SIMD-0085 still hold. The |
| 53 | +designated fee collector must be a system program owned account that is |
| 54 | +rent-exempt after receiving collected block fee rewards. If either of these |
| 55 | +constraints is violated, the fees collected for that block will be burned. |
| 56 | + |
| 57 | +## Impact |
| 58 | + |
| 59 | +Validator identity and fee collector accounts no longer need to be the same |
| 60 | +account. This opens up the ability to use PDA accounts for fee collection. |
| 61 | + |
| 62 | +## Security Considerations |
| 63 | + |
| 64 | +NA |
| 65 | + |
| 66 | +## Drawbacks *(Optional)* |
| 67 | + |
| 68 | +NA |
| 69 | + |
| 70 | +## Backwards Compatibility *(Optional)* |
| 71 | + |
| 72 | +This change will require the use of a new feature gate which will enable |
| 73 | +collecting fees into custom fee collector addresses if specified by a validator. |
0 commit comments