Grants Splitter

The DelegationsManager can split the funds in its balance among all Delegations attached to it (and therefore attached to the Organization).

When a Delegation newly attaches itself to the DelegationsManager, a dedicated treasuryManager is cloned from the model address stored in the DelegationsManager and dedicated to the Delegation.

The implication here is that if the Delegation is attached to multiple Organizations, it will have a dedicated treasuryManager for each.

Splitting Funds

The DelegationsManager, via the split function, splits an organization's funds (stored in the DelegationsManager) and distributes them to attached Delegations. The split can be performed every time the DelegationsManager has an amount of ETH greater than zero.

Anyone can call split, and receive a reward (which serves as an economic incentive) for doing so.

function split(address executorRewardReceiver) external;

As input, the function takes the address of the receiver (who can be specified as different from the caller) of the executorReward. The executorReward amount is calculated as (the amount to be split across the Delegations * executorReward percentage).

The split function internally calls the getSplit function to calculate how much of the funds will be sent to each Delegations' treasury, and the funds are sent accordingly immediately afterwards.

(address[] memory receivers, uint256[] memory values) = getSplit(executorRewardReceiver);

Grants Percentages

The amount received from a Delegation is calculated as the percentage of governance tokens staked with respect to the total amount of tokens staked by all delegations associated with that specific organization.

For example:

Governance token supported by the Organization: $VTB

Delegations linked to an Organization: 3

ETH amount in the Delegations Manager to be split: 10 ETH

Tot. amount of $VTB staked by the three Delegations: 1000

Amounts staked by the three Delegations:

-Delegation 1: 200

-Delegation 2: 500

-Delegation 3: 300

ETH amount received by the three Delegations:

-Delegation 1: 2 ETH

-Delegation 2: 5 ETH

-Delegation 3: 3 ETH

Any remaining amount is automatically sent to the flusher. It can be a specific Component set at the time of Delegations Manager initialization (bytes32 flusherKey) or the Organization Treasury Manager if flusherKey was set as bytes32(0).

Last updated