Vesting
This specification outlines the implementation of a vesting account for use within the Areon. The stipulations for this vesting account mandate its genesis initialization with a starting balance (X) and a vesting end time (ET). Optionally, a vesting account may also be configured with a vesting start time (ST) and a specified number of vesting periods (P). If a vesting start time is provided, the vesting period will commence only upon reaching the specified start time. In the case of included vesting periods, the vesting process unfolds over the defined number of periods.
For all vesting accounts, the account owner retains the ability to delegate and undelegate from validators. However, the transfer of coins to another account is restricted until these coins have undergone the vesting process. This specification accommodates three distinct types of vesting:
-
Delayed Vesting: All coins vest once ET is attained.
-
Continuous Vesting: Coins initiate vesting at ST, progressing linearly with time until reaching ET.
-
Periodic Vesting: Coins commence vesting at ST and follow periodic vesting based on the configured number of periods, length per period, and amount per period. A periodic vesting account differs from a continuous vesting account in that coins can be released in staggered tranches. For instance, a periodic vesting account might be employed for arrangements where coins are released quarterly, annually, or following any other temporal distribution of tokens.
Vesting Account Specification
Given a vesting account, we define the following in the proceeding operations:
- OV: The original vesting coin amount. It is a constant value.
- V: The number of OV coins that are still vesting. It is derived by OV, StartTime and EndTime. This value is computed on demand and not on a per-block basis.
- V': The number of OV coins that are vested (unlocked). This value is computed on demand and not a per-block basis.
- DV: The number of delegated vesting coins. It is a variable value. It is stored and modified directly in the vesting account.
- DF: The number of delegated vested (unlocked) coins. It is a variable value. It is stored and modified directly in the vesting account.
- BC: The number of OV coins less any coins that are transferred (which can be negative or delegated). It is considered to be balance of the embedded base account. It is stored and modified directly in the vesting account.
Permanent Locked Accounts
Permanent Locked Accounts refer to accounts within the blockchain ecosystem that are subject to an irreversible locking mechanism. Once an account is designated as permanently locked, it implies that specific conditions or criteria have been met, resulting in a sustained and unrecoverable restriction on the account's functionality. This measure is often implemented for various purposes, such as security, compliance, or contractual agreements.
The permanence of the lock implies that the account will remain inaccessible or restricted indefinitely, and the associated assets or functionalities within that account are effectively frozen. The criteria for triggering permanent lock status may vary and could include security breaches, violation of terms, or adherence to specific smart contract conditions.
It's essential for users and participants in the blockchain network to be aware of the implications and conditions leading to permanent locked accounts, as this mechanism plays a crucial role in maintaining the integrity and trustworthiness of the decentralized ecosystem.
Example:
{
"@type": "/vesting.PermanentLockedAccount",
"base_vesting_account": {
"base_account": {
"address": "areon1rapp8staxr6nc5v8u9ljfe5acwd4ux5uz30383",
"pub_key": null,
"account_number": "20",
"sequence": "0"
},
"original_vesting": [
{
"denom": "area",
"amount": "1000"
}
],
"delegated_free": [],
"delegated_vesting": [],
"end_time": "0"
}
}
Periodic Vesting Accounts
Periodic Vesting Accounts:
Periodic Vesting Accounts are a specialized type of financial instrument within the context of blockchain and cryptocurrency. These accounts are structured to facilitate the controlled release of assets over predefined intervals, offering a systematic approach to distributing vested funds.
Key Features:
-
Vesting Commencement: Periodic vesting accounts initiate their vesting process at a specified start time (ST). This feature allows for a predetermined delay before the vesting begins, aligning with project milestones or contractual obligations.
-
Configurable Parameters: These accounts are highly configurable, allowing users to define the number of vesting periods (P), the duration of each period, and the amount of assets vested per period. This flexibility accommodates various token release strategies tailored to the project's needs.
-
Staggered Release: A distinctive feature of periodic vesting is the ability to release vested assets in staggered tranches. This enables project teams to implement structured and phased token releases, ensuring a steady and controlled distribution over time.
-
Use Cases: Periodic vesting accounts find application in scenarios where a gradual release of funds aligns with project development milestones, partnership agreements, or compliance requirements. For example, funds might be released quarterly, annually, or according to other predefined schedules.
-
Transparency and Predictability: By providing a transparent and predictable schedule for asset releases, periodic vesting accounts contribute to enhanced accountability and trust within the blockchain ecosystem. Users can anticipate and plan for upcoming releases with confidence.
Understanding and effectively utilizing periodic vesting accounts play a pivotal role in managing token economies, fostering responsible financial practices, and building trust among stakeholders in blockchain projects.
Example:
{
"@type": "/vesting.PeriodicVestingAccount",
"base_vesting_account": {
"base_account": {
"address": "areon1r7usj8a5qmyswfves2hzqetyf4p5ln7tn2tkhe",
"pub_key": null,
"account_number": "16",
"sequence": "1"
},
"original_vesting": [
{
"denom": "area",
"amount": "100000000000000000000000000"
}
],
"delegated_free": [],
"delegated_vesting": [],
"end_time": "1702063952"
},
"start_time": "1702032952",
"vesting_periods": [
{
"length": "1000",
"amount": [
{
"denom": "area",
"amount": "25000000000000000000000000"
}
]
},
{
"length": "5000",
"amount": [
{
"denom": "area",
"amount": "25000000000000000000000000"
}
]
},
{
"length": "10000",
"amount": [
{
"denom": "area",
"amount": "25000000000000000000000000"
}
]
},
{
"length": "15000",
"amount": [
{
"denom": "area",
"amount": "25000000000000000000000000"
}
]
}
]
}
Delayed/Discrete Vesting Accounts
Delayed vesting accounts are easier to reason about as they only have the full amount vesting up until a certain time, then all the coins become vested (unlocked). This does not include any unlocked coins the account may have initially.
Transferring/Sending
At any given time, a vesting account may transfer: min((BC + DV) - V, BC).
In other words, a vesting account may transfer the minimum of the base account balance and the base account balance plus the number of currently delegated vesting coins less the number of coins vested so far.