NFTX v1 was a protocol for wrapping NFTs into fungible ERC20 "index" tokens. The index tokens could be minted by putting NFTs into a holding contract (1 NFT for 1 token), and random NFTs could be redeemed from the holding contract by burning index tokens. For example, you could mint 2 PUNK-BASIC tokens by putting 2 CryptoPunks into the holding contract, and redeem 2 CryptoPunks by burning 2 PUNK-BASIC.
Since each NFT equalled 1 index token, index tokens were built to attract the cheapest "floor" NFTs from a collection, and also to track the floor price of that collection.
Every index token on NFTX v1 was linked to one NFT contract which it accepted NFTs from. Index tokens on V1 could also have "eligibility modules" that contained custom rules for which NFT token IDs were allowed in the vault and which weren't. Later versions of NFTX have this feature as well.
NFTX v1 users tended to use Sushiswap for liquidity pools and to pair index tokens with WETH.
We noticed that most NFTX v1 users were using index tokens (and Sushi liquidity) as an NFT liquidity endpoint, rather than out of interest in the actual index tokens. Essentially, when a user wanted to buy a random floor NFT from the holding contract they would buy 1 index token from Sushi and burn it for the NFT. And when a user wanted to sell a floor NFT they would mint 1 index token and then sell it on Sushi.
In NFTX v1, the focus was on turning non-fungible assets into fungible assets. In NFTX v2, the focus is on incentivizing liquidity (and inventory) for NFTs by capturing fees from buyers, sellers, and swappers. NFTX v2 still works like NFTX v1 by wrapping NFTs into ERC20s, however in V2 there are also fees paid by users that are then claimed as earnings by stakers.
NFTX v2 (2021 - Present)
In NFTX v2, index tokens are renamed to vTokens that also act as "vaults" to hold NFTs. Instead of a central holding contract like in V1, every vToken/vault contract holds its own NFTs in V2. And, like with index tokens in V1, vTokens in V2 are backed 1:1 by NFTs.
In V1, it was only possible to mint and to redeem randomly. In NFTX v2, it is possible to mint, random redeem, target redeem, random swap, and target swap. Target redeeming and target swapping means having the ability to pick which NFT(s) you receive. Swapping means exchanging one NFT that is eligible to enter a vault with another NFT from inside the vault. No vTokens are minted or burned during a swap.
NFTX v2 includes vault fees, which are not possible in V1. Every vault in V2 can set fees for each of the five vault operations (minting, random redeeming, target redeeming, random swapping, and target swapping). Vault fees are paid in vToken, and there are default/global fee settings which apply if a vault has not customized its own fees.
Currently, at the time of this writing, the default V2 vault fees are 5% mint, 2% random redeem, 3% target redeem, 2% random swap, and 5% target swap. This fee structure is written as 5/2/3/2/5. Fees are paid in vToken, so a 5% fee means 0.05 vToken and implies that minting a vToken by sending an NFT to the vault will net the user 0.95 vToken in return.
When a user sells an NFT on NFTX v2, what actually happens is that the NFT is used to mint 1 vToken, of which 5% (i.e. 0.05 vToken) goes to stakers for that vault. The other 95% gets traded for WETH and returned to the seller. When a user buys an NFT on NFTX v2, what happens is that the user buys 1.03 vToken from the Sushi pool, then 0.03 vToken goes to vault stakers, 1 vToken gets burned, and the NFT is sent to the buyer.
In V2, you can stake SLP tokens (Sushi Liquidity Provision tokens) to earn vault fees. Every time a vault is created in V2 there is also a Sushi liquidity pool deployed for the new vToken, paired with WETH. When a user liquidity stakes on NFTX, they send vToken & WETH which goes to the Sushi pool and returns an ERC20 SLP token, then that SLP gets deposited on NFTX and an ERC20 xSLP token is minted and sent to the staker. As vaults earn fees (in vToken), xSLP holders can claim their portion of those fees.
NFTX v2 also has inventory staking (rolled out as part of v2.1), which is when a user deposits vToken and receives xToken (e.g. deposits PUNK and receives xPUNK). Inventory stakers receive 20% of vault fees, and liquidity stakers receive the other 80%. The purpose of inventory staking is to increase the number of NFTs in the vault for buyers (and swappers) to choose from. Vault fees for inventory staking are sent to the xToken pools. This means that inventory stakers (i.e. xToken holders) don't have to claim their vToken earnings. Those earnings just get sent to the xToken pool so that the vToken backing increases.