# Redemption Mechanic

The 🖼️[NFT Index Token](https://docs.fungify.it/tokenomics/nft-index-token) is fully backed by NFTs in the 🔓[MarketVault](https://docs.fungify.it/protocol/marketvault); it can be burned in exchange for the NFTs contained within. This allows for two-way arbitrage of the peg since 🖼️[NFT Index Token](https://docs.fungify.it/tokenomics/nft-index-token) can also be minted by a 👨‍💼[Seller](https://docs.fungify.it/users/seller) depositing NFTs into the MarketVault.

## Redemptions

Each collection contained within the vault has an associated floor price which is frequently updated by the Oracle mechanism. To call the redeem() function, a redeemer must pay a number of 🖼️[NFT Index Token](https://docs.fungify.it/tokenomics/nft-index-token) equal to the highest value floor of any given NFT collection within the 🔓[MarketVault](https://docs.fungify.it/protocol/marketvault). At the end of the redemption process, the redeemer receives the difference between the value of the NFT obtained and the amount input.

Multiple redemptions can be issued in a single batch call if sufficient 🖼️[NFT Index Token](https://docs.fungify.it/tokenomics/nft-index-token) is provided.&#x20;

### Chainlink VRF

The[ Chainlink VRF](https://chain.link/chainlink-vrf) is a provably fair and reliable random number generator. It is funded via LINK tokens provided by the DAO through a subscription account. When redeem() is called, the protocol escrows the 🖼️[NFT Index Token](https://docs.fungify.it/tokenomics/nft-index-token) of the redeemer and makes a call to the[ Chainlink VRF](https://chain.link/chainlink-vrf) contract to provide randomness. This randomness is used to determine which NFT is redeemed from the vault. In a separate transaction,[ Chainlink VRF](https://chain.link/chainlink-vrf) executes the callback function fulfill(), providing the random number and transferring a random NFT to the redeemer.

## Avoiding Value Leaks

### Free Optionality

Random redemption avoids the problem of providing free optionality to arbitrageurs. If participants redeeming 🖼️[NFT Index Token](https://docs.fungify.it/tokenomics/nft-index-token) were allowed to select any NFT for redemption, they could preferentially select those which have increased in value while avoiding those that have decreased relative to $NFT, siphoning value from the 🔒[MarketVault](https://docs.fungify.it/protocol/marketvault).

### Beta Preservation

The beta of an asset is its correlation to the overall market. The volatility of an optimal NFT index will map to the overall NFT market, i.e., (β$$\_𝑖$$=1). By preventing individuals from preferentially removing specific NFTs, this allows the index fund to maintain a collection representative of the overall market, allowing its volatility to track the broader market. Hence, random redemption preserves the beta of the index.

### Pricing

The price for redeeming a particular NFT is the average floor price of NFTs of the same collection at the time they entered the 🔒[MarketVault](https://docs.fungify.it/protocol/marketvault) plus the spread. The the amount of 🖼️[NFT Index Token](https://docs.fungify.it/tokenomics/nft-index-token) required to invoke a redemption is the highest of all such average collection prices with the 2.5% spread and a 2% buffer applied on top. The buffer is meant to mitigate against insufficient funds causing issues as a result of price rises from new NFTs entering the 🔒[MarketVault](https://docs.fungify.it/protocol/marketvault) before [Chainlink VRF](https://chain.link/chainlink-vrf) processes the callback.
