Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Type 1

    • Locked tokens cannot be transferred, voted or proxied until unlocked per schedule.

      • Voting/proxying minimum override. When restricted account is voting the unlock schedule is computed and if unlocked tokens are less than 30% of initial grants, the user can still vote 30% of tokens in initial grant or account balance whichever is lower.

    • Restricted calls:

      • /transfer_tokens_pub_key

      • /vote_producer

      • /proxy_vote

    • Locked tokens can be used to pay for FIO Protocol fees

    • Schedule

      • Day 0: 0.00%

      • Day 90: 6.00%

      • Day 270: 18.80%

      • Day 450: 18.80%

      • Day 630: 18.80%

      • Day 810: 18.80%

      • Day 990: 18.80%

    • Application: Founders (Dapix investors, employees, advisors)

  • Type 2

    • Locked tokens cannot be transferred until:

      • Unlocked per schedule

      • Designated by Foundation as having launched FIO Protocol integration

    • Restricted calls:

      • /transfer_tokens_pub_key

    • 100% of locked tokens can be voted and proxied and used to pay for FIO Protocol fees until the following condition is met:

      • 210 days have passed since Mainnet launch and account has not been designated by Foundation as having launched FIO Protocol integration.

    • Schedule

      • Day 0: 0.00%

      • Day 90: 6.00%

      • Day 270: 18.80%

      • Day 450: 18.80%

      • Day 630: 18.80%

      • Day 810: 18.80%

      • Day 990: 18.80%

    • Application: FIO Member incentives

  • Type 3

    • Locked tokens cannot be transferred until unlocked per schedule.

    • 100% of locked tokens can be voted and proxied at all times

    • Restricted calls:

      • /transfer_tokens_pub_key

    • Locked tokens can be used to pay for FIO Protocol fees

    • Schedule

      • Day 0: 0.00%

      • Day 90: 6.00%

      • Day 270: 18.80%

      • Day 450: 18.80%

      • Day 630: 18.80%

      • Day 810: 18.80%

      • Day 990: 18.80%

    • Application: Pre-sale investors

  • Type 4

    • Locked tokens can never be transferred or voted

    • Restricted calls:

      • /transfer_tokens_pub_key

      • /vote_producer

      • /proxy_vote

    • Locked tokens can only be used to pay for FIO Protocol fees

    • Application: FIO Address Giveaways post Mainnet

...

  • Each restricted account will store

    • Total grant amount - recorded once at Genesis

    • Schedule periods unlocked - updated each time schedule is processed for new period

    • Lock type - See above

    • Unlock inhibit flag - if set all funds are considered locked irrespective of schedule (only used for Type 2)

    • Amount locked - amount which remains locked

  • Every time a restricted call is made the signer's account on that call will be checked against list of restricted accounts

    • If account is not restricted, action proceeds uninterupted

    • If account is restricted

      • If Type 4

        • Transaction fails with 400:Insufficient balance

      • If Type 2 and Unlock inhibit flag is set

        • Transaction fails with 400:Insufficient balance

      • Compute unlocked tokens

        • Based on days since Mainnet determine number of schedule periods that should be unlocked

          • Example:

            • Type 1, 180 days after Mainnet

            • 3 periods should be unlocked

        • Based on Schedule periods unlocked determine how many periods should be unlocked

          • Example:

            • Type 1, 180 days after Mainnet, Schedule periods unlocked = 1

            • 2 periods should be unlocked

          • If 0 periods no new tokens should be unlocked

          • If > 0 unlock tokens based on corresponding period percentage

            • Example:

              • Type 1, 180 days after Mainnet, Schedule periods unlocked = 1

              • 12.375% + 12.375% = 24.75‬% should be unlocked

            • Update Schedule periods unlocked and Amount locked

              • Example:

                • BEFORE: Total grant amount = 100, Schedule periods unlocked = 1, Amount locked = 99

                • AFTER: Total grant amount = 100, Schedule periods unlocked = 3, Amount locked = 74.25

      • Determine Unlocked tokens

        • Subtract Amount locked from account balance

          • Example:

            • Amount locked: 74.25

            • Account balance: 100

            • Available tokens: 100 - 74.25 = 25.75

      • Determine Votable Tokens

        • If Type 1

          • If 1 - (Amount locked / Total grant amount) <= 0.3 then Votable Tokens is lesser of Account balance or Total grant amount * 0.3

          • If 1 - (Amount locked) / Total grant amount) > 0.3 then Votable Tokens is Available tokens

        • If Type 2

          • If 210 days have passed since Mainnet and Unlock inhibit flag is set, Votable Tokens = Amount balance - Amount locked; else Votable Tokens = Account balance

        • If Type 3

          • 100% is votable

      • If /transfer_tokens_pub_key

        • If amount is > Available tokens it fails with 400:Insufficient balance

        • If amount is <= Available tokens, action proceeds uninterupted

      • If /vote_producer or /proxy_vote

        • Only Votable Tokens are voted or proxied;

        • If Votable Tokens = 0 transaction fails with 400:Insufficient balance

      • If paying a FIO Protocol fee and fee is > than Available tokens Amount locked should be reduced by the difference between Available tokens and Amount locked

        • Example:

          • Locked tokens: 74.25, Account balance: 100, Available tokens: 25.75

          • Fee: 30

          • Locked tokens updated to: 74.25 - (30 - 25.75) = 70

...