#
Linear, Time Dependent Distribution Mechanism
Any object represented by an ID can issue a distribution in any currency to the token holders of any other object. This is distributed to all holders of the token of that ID at the time of distribution. Owners that acquire the token after the time of distribution do not receive a portion.
This is the mechanism that is used for an entity to issue distributions to it's participation token holders.
It is also important to note that the distribution mechanism does not require iterating through token holders, and instead leverages a formulaic approach. This method is efficient and scalable, avoiding the need for costly iterations over all token holders.
#
Overview of distribution mechanism:
#
Dividend Calculation Formula:
The dividend for a token holder is calculated based on their token balance, the total dividends for the token, and the amount of dividend already withdrawn. The formula used is:
Withdrawable Dividend = \left(\frac{Total Token Supply × Token Balance}{Total Dividend} \right) − Withdrawn Dividend
This formula calculates the proportionate share of the total dividends for the token holder, subtracting any amount they have already withdrawn.
When a user acquires the token, their Withdrawd Dividend is set to the total portion they would be allocated if they held the token from the beginning. This way, they are only allocated future distributions.
#
Efficiency of the Approach:
Scalability: Since the calculation is formula-based and does not require iterating over all token holders, it scales efficiently regardless of the number of token holders.
Cost-Effectiveness: Reduces transaction costs and computational overhead, as it avoids the need for looping through potentially large numbers of token holders.
Real-Time Calculation: Allows for real-time calculation of withdrawable dividends whenever a token holder wishes to withdraw their dividends.
#
Event-Driven Updates:
The contract updates the relevant data (like totalDividends, tokenBalances, and withdrawnDividendPerOwner) in response to events such as token transfers, minting, burning, and dividend distributions.
These updates ensure that the formula always uses the latest data for calculating the withdrawable dividend.
#
Conclusion
This distribution mechanism is a key feature in the tokenized vault. It provides an efficient, scalable, and cost-effective method for calculating dividends due to each token holder without the need for iterating through the entire list of token holders.