Buyout Module
Making sure NFTs can be de-fractionalized
ELI5: Someone who wants the NFT goes "Take my money!" and all the other fraction holders can either accept or go "Take MY money!" themselves.
Someone triggering a Buyout.


It is important for a fractionalized NFT to be recoverable i.e. to be able to undo the fractionalization. Logically this can be done if one owns 100% of all fractions, however this will be hard to achieve once fractions have spread out across the blockchain. In order to ensure continued recoverability, NIFTEX took inspiration from traditional governance and introduced a "buyout" mechanism in NIFTEX v1. The mechanism performed well and has been carried over to v2.
The Buyout ensures that someone who owns less than the full supply of fractions can still recover the NFT by making an offer for all unowned fractions. It is important to note that the Buyout interprets absent fraction holders as agreeing to the offer.
Check out this video walkthrough of a live buyout.

Triggering the Buyout

When triggering a Buyout, the triggerer offers a price per fraction (in ETH) to all other fraction holders. The triggerer is required to send the full amount of ETH required to buy everyone else's fractions to the contract.
  • Mark holds 10 out of 100 total fractions for an NFT. He would like to gain ownership of the NFT. He thinks it is worth about 5 ETH = 0.05 ETH per fraction.
  • In order to trigger the Buyout at a 5 ETH valuation, he is required to send (fraction supply - fractions owned) * (valuation / fraction supply) = 90*0.05 = 4 ETH to the contract to initiate the Buyout.
In some cases, Mark may want to offer a higher price per fraction in order to avoid being bought out. This dynamic is explained below.
A minimum % ownership of the fraction supply is needed in order to trigger a Buyout. This limitation exists to avoid Buyout spamming. The minimum is determined by...

Responding to the Buyout

When receiving a Buyout offer, fraction holders have two choices:
  • Accept the offer. In this case, they don't have to do anything. If everybody accepts, at the end of the Buyout period the NFT will become available to the triggerer and everybody else can claim the ETH committed by the triggerer proportional to the respective fractions owned.
  • Reject the offer. In order to reject the offer, one or more fraction holders must buy out the triggerer at the triggerer's proposed price.
    • In order to buy out a triggerer, enough ETH representing the value of the triggerer's fractions proposed price * triggerer's fraction holdings must be committed to the contract. In Mark's case, other fraction holders would need to commit 0.05*10 = 0.5 ETH in order to buy him out.
    • Fraction holders can pool ETH to reject a Buyout.
    • If rejection succeeds, the triggerer's fractions are transferred to those who participated in the rejection proportional to the ETH committed.
Triggerers cannot avoid being bought out. The rejection mechanism exists to prevent low-ball offers, since triggerers are discouraged from proposing a low price if they can be bought out at that same price.


Given the on-chain nature of the Buyout process, native notifications do not exist. In order to aid users in keeping an eye on Buyout events, diverse options have been made available:
  • Website page dedicated to buyouts
  • Discord #notifications channel
  • Twitter bot
  • Opt-in emailing (May be considered)
  • EPNS (Decentralized notifications service for ethereum addresses)
Last modified 7mo ago