# vesting

### Abstract <a href="#abstract" id="abstract"></a>

This document specifies the internal `x/vesting` module of the Mnova Chain.

The `x/vesting` module introduces the `ClawbackVestingAccount`, a new vesting account type that implements the Cosmos SDK [`VestingAccount` ](https://docs.cosmos.network/v0.42/modules/auth/05_vesting.html#vesting-account-types)interface. This account is used to allocate tokens that are subject to vesting, lockup, and clawback.

The `ClawbackVestingAccount` allows any two parties to agree on a future rewarding schedule, where tokens are granted permissions over time. The parties can use this account to enforce legal contracts or commit to mutual long-term interests.

In this commitment, vesting is the mechanism for gradually earning permission to transfer and delegate allocated tokens. Additionally, the lockup provides a mechanism to prevent the right to transfer allocated tokens and perform Ethereum transactions from the account. Both vesting and lockup are defined in schedules at account creation. At any time, the funder of a `ClawbackVestingAccount` can perform a clawback to retrieve unvested tokens. The circumstances under which a clawback should be performed can be agreed upon in a contract (e.g. smart contract).

### References <a href="#references" id="references"></a>

* SDK vesting specification: [https://docs.cosmos.network/main/modules/auth/05\_vesting.html ](https://docs.cosmos.network/main/modules/auth/05_vesting.html)
* SDK vesting implementation: [https://github.com/cosmos/cosmos-sdk/tree/master/x/auth/vesting ](https://github.com/cosmos/cosmos-sdk/tree/master/x/auth/vesting)
* Agoric’s Vesting Clawback Account: [https://github.com/Agoric/agoric-sdk/issues/4085 ](https://github.com/Agoric/agoric-sdk/issues/4085)
* Agoric’s `vestcalc` tool: <https://github.com/agoric-labs/cosmos-sdk/tree/Agoric/x/auth/vesting/cmd/vestcalc>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.metanovaverse.com/protocol-developers/modules/vesting.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
