This approach, if adopted, would be implemented via modifications to the FIO Chain system contracts.
Register a FIO Address/Domain and you get a lifetime residual portion of all the future income to the FIO Protocol. The earlier you do so, the greater your share will be. If you register now, you'll get an X% greater allocation than a year from now. You can also choose to lock FIO tokens for a duration of time to receive an additional portion of the future income to the FIO Protocol.
For an explanation of this document in video format, see:
Changes to Fee Distribution
Fee distribution would be changed as follows:
User Co-op Pool
Lock Token Co-op Pool
Entity facilitating transaction (TPID) or, if not provided, block producers.
*Block Producer Reserves would be re-initiated (see below). The presumption of this program is that over time the volume of fees generated by the protocol will greatly increase versus if this program were not run.
Changes to Block Producer Reserves
20M tokens would be enabled for re-initiation of Block Producer reserves. This would be accomplished in a token balance neutral manner by the Foundation either supplying the tokens for this new reserve or burning an equivalent number of tokens from its general treasury or from the FIO Address giveaway pool. A minimum of 50,000 FIO tokens would be paid out daily to block producers in a manner identical to the original block producer reserves and on a schedule identical to that used previously for BP reserves up to a maximum of 20M tokens.
FIO Co-op Points (FIOPs)
FIOPs are an internal accounting mechanism for keeping track of the share of fees in FIO tokens a user will receive. We may or may not show them to the user via a FIO dApp depending on if they introduce unnecessary complexity.
When a FIO Address/FIO Domain is registered it accrues FIOPs. FIOPs are not awarded for renewals, as it is deemed that the ongoing fee share is incentive enough to keep renewing the FIO Address/Domain.
FIOPs are permanently attached to the FIO Address/Domain and cannot be transferred. However, when the FIO Address/Domain itself is transferred to a new owner, attached FIOPs get transferred as well.
When the FIO Address/Domain is burned, attached FIOPs are permanently destroyed and number of FIOPs in existence is reduced.
If a different key is provided as the owner of FIO Address/Domain during registration, the FIOPs still get awarded to the owner of the FIO Address/Domain unless registered using a new call which will not award FIOPs at all. That new call will be used primarily by the Foundation to inhibit FIOPs accrual for Free FIO Addresses.
FIOPs are accrued only for the first X blocks. For example, the initial thought would be until block 250,000,000, or about 4 years.
Type A FIOPs for Users
Are accrued as follows: At a rate of 1 FIOP per register_fio_address fee amount (currently 12.78 FIO) spent and further reducing that using a decay rate formula so that each subsequent block receives slightly less allocation than the prior block per fees spent. The decay rate formula is:
f=Current register_fio_address fee
F=total fees expended by a specific FIO key in a specific block
r=percent decay per block
x=number of blocks
Y = (F/f)(1 - r)x
If register_fio_address is set to 12.78 FIO and a FIO Address is registered in block 1, that FIO Address would accrue 1 FIOP
If register_fio_domain is set to 255.65 and a FIO Domain is registered in block 1, that FIO Domain would accrue 20 FIOPs
If register_fio_address is set to 12.78 FIO, a FIO Address is registered in block 10,000,000 with a decay rate of .000001% that FIO Address would accrue 0.9048 FIOP
FIO is a DPoS (Delegated Proof of Stake) network secured by the network validators (block producers) voted for by the token holders. In order to incentivize voter participation, voting for block producers or setting a proxy that is voting is a requirement for earning Type B FIOPs.
Tokens owned by an associated FIO Address and locked by a user who is also voting for block producers (directly or through a proxy) would earn FIOPs. If tokens are locked for a specified time Lock Period (P) then they would receive FIOPs in a number equal to the amount they would have received if they actually spent that amount of FIO tokens on blockchain fees. It is envisioned that such a time period (P) would be long like 5 or 10 years.
For lock periods shorter than P, the user receives a lessor credit. The amount of credit received would follow a curve similar to a bond yield curve which will create incentive for longer term lockups.
Separate pools for fee expenditures and token locking are proposed so that it is not possible for large token holders to consume so much of the Co-op pool so as to disincentivize users from engaging simply by registering FIO Addresses and domains.
FIO Addresses/Domains that were not flagged as FIOP eligible at registration to do not participate (e.g., this could apply to FIO Addresses given away to a user and paid for by another party).
Users participating in the token lock pool must be voting (directly or via proxy) for block producers at the time they lock tokens and at the time fees are paid out to be eligible.
For every qualifying FIO Address/Domain registered:
The Type A and B FIOP accrual is computed and allocated to that FIO Address/Domain.
Total number of Type A and Type B FIOPs in existence is incremented.
25% of the fee paid is transferred to treasury and tracking is updated in the current Co-op Pool
Co-op Pool tracks fees collected in a specified period (the Accumulation Period). The Accumulation Period will be made as short as computationally and economically possible in order to have regular payouts which will create the greatest incentive for users.
After the Accumulation Period passes, new pool is created to collect funds and last pool is updated with Total number of Type A and Type B FIOPs in existence
The distribution would occur on the shortest time frame that is computationally and economically viable and would be done as follows
Each FIO Address/Domain would be evaluated and their share computed as follows:
Share of User Co-op Pool = Type A FIOPs Attached to Account / Total number of Type A FIOPs in existence at the end of pool * FIO tokens in Type A Co-op Pool.
Share of Token Lock Co-op Pool = Type B FIOPs Attached to Account / Total number of Type B FIOPs in existence at the end of pool * FIO tokens in Type B Co-op Pool. This can be done over many maintenance (payout calls), as the data is static and will not change.
FIO Address/Domain will store FIO tokens which were supposed to be paid, but fall below a minimum amount for transfer as Accrued FIO value.
If number of FIO tokens to distribute (Share of Co-op Pool + Accrued FIO) is less than register_fio_address fee amount, the Accrued FIO will be incremented by Share of Co-op Pool, but the token transfer will not occur.
If number of FIO tokens to distribute (Share of Co-op Pool + Accrued FIO) is more than register_fio_address fee amount, the Accrued FIO will be set to 0 and Share of Co-op Pool + Accrued FIO will be transferred to account which owns FIO Address/Domain.
Variables Open to Adjustment
It is impossible to understand a priori exactly how this incentive program will impact adoption and it is likely that adjustments will need to be made on a prospective basis. It will be communicated to the market that it is possible that the Block Producers will need to make adjustments prospectively to the following factors to fine tune the program:
The decay rate per block
The designated Lock Period for full locking credit
The termination block of the program
Other Concepts Not Currently Being Considered for Inclusion in First Launch
This concept could be considered in the future but is not currently included in this proposal:
Domain bonus of FIO Addresses. A differential award of FIOPs based on how many FIO Addresses are registered on the Domain owners FIO Domain.