Action Module

NFT Governance

The Action Module serves to propose, execute or cancel actions that make use of NFTs with rights that have been fractionalized.


The Action Module makes use of Timers to enforce time constraints on proposals. Timers have identifiers and contain a starting and ending block in between which certain actions are allowed to take place. In the case of the Action Module, Timers enforce the period in which a proposal can be rejected.

The length of the Timer period is governance parameter ACTION_DURATION_KEY .

Proposing an Action

Any wallet that contains fractions may propose an arbitrary function call in the interest of making use of rights baked into an NFT. The wallet must satisfy a minimum balance in order to avoid spam. An example of an Action would be proposing a builder address for a fractionalized Decentraland estate, or an image to update in a fractionalized Async.Art layer.

The minimum balance required for proposing an Action is governance parameter AUTHORIZATION_RATIO .

Executing an Action

An Action may be executed if it hasn't been objected to and the Timer has expired. In standard governance this is known as Unanimous Consent, a simple approach to governance where all proposals pass as long as there are no objections. While this approach makes sense to provide a basic start with NFT governance, other governance solutions can be introduced.

Rejecting an Action

An Action can be rejected if the Timer has not yet expired and the rejecting wallet has the minimum required amount of fractions.

The minimum balance required for rejecting an Action is governance parameter AUTHORIZATION_RATIO .