Proposal idea: non-floor vaults with shared vault token

TL;DR

A way to extend NFTX to non-floor NFTs but share liquidity in same vault token by creating multiplier vaults (e.g. 2x, 4x, 10x vaults) for the same collection.

Rationale

  • Most of the value of NFTs is in the long tail of non floor NFTs: the floor items are usually only a small fraction of a collection, and due to their floor price - capture only a small value of the total collection’s value.
  • Due to fungibility of vault operations, NFTX currently is limited to either floor items, or very low liquidity for a non-floor vault.
  • Creating a mechanism to utilise a larger portion of collections will create more value for all participants of NFTX: NFT sellers will be able to sell non-floor items, NFT buyers will be able to buy non-floor items, vault token traders will have more liquidity, vault token stakers will have more rewards, and more protocols will be able to be built on top of NFTX if the vault tokens will have higher liquidity and NFT operations will support rarer NFTs. E.g. making an automated lending and borrowing protocol where a zombie punk can be used as collateral and liquidated into the 10x vault (instead of the 1x current vault) will be possible.

Mechanism

  • Multiple vaults of same NFT collection (e.g. punks) can be set up to share the same ERC20 vault token (e.g. PUNK) but have different multipliers for the mint and redeem operations. For example the current floor punk vault would be 1x vault, but other vaults for 2x, 4x, 10x, etc can be created.
  • The 1x, 2x, etc… vaults will share the same PUNK token, and so will share the same liquidity and rewards. The ERC20 staking will not change, but a larger amount of NFTs will be supported with the same vault token.
  • The governance of the creation of the multiplier vaults and the decision on which items belong to which “class” / multiplier will be controlled by the current vault token holders / LPs / stakers. This will ensure that that class membership is assigned correctly - because the holders / LPs / stakers are the ones that stand to lose value (due to being diluted) by assigning class membership incorrectly. If they allow set the multiplier too high - they will be diluted, if they assign the multipler too low - no one will mint into the added vault.

A possible governance flow:

A vault with some multiplier e.g. 10x of the PUNK and some inclusion rules (e.g. particular token IDs) is created (by anyone) but is not activated until PUNK token holders / stakers / LPs vote to activate it (e.g. at least X:1 in favour with a Y% participation threshold).

UX

The site should be able to group / ungroup vaults per collection in the vaults view, and allow showing / filtering the multipliers in specific collection views.

Note on multiplier: doesn’t have to be an integer of course, perhaps for some collections 1.2x makes more sense than e.g. 2x.

4 Likes

Hey @artdgn this is a great idea and something we will get to.

We think there are huge benefits to reasoning about higher-value Punks in PUNK terms. There are some very interesting use cases that come out of this and what you describe is one of them.

We are not sure if this will be doable as additional items in a vault, but we will definitely research this more. Our original idea was to allow users to list their punk for sale or a punk to buy (smart orders), rather than minting PUNK. However, minting PUNK will add deeper liquidity to the token and would be hugely desirable.

This is an active area of research for us and it will be great to share progress with the community as it happens.

@0xNick Thanks for looking into this :+1:

My idea was not to have them as additional items in a vault, but rather to have multiple vaults that use the same ERC20. The different vaults will differ in the conversion rate between NFT and ERC20 - so 1x, 2x, etc. And the higher multiple vaults (e.g. 2x) will have an exclusion list of IDs that can’t be deposited into it (the lower tier NFTs).

I’ll throw in some written support for this idea too. Having the ability for each “pool” contract have “eligibility criteria” for which tokens are allowed into it is a great option to have, as that allows for creating things like a specifically ZOMBIE-PUNK pool separate from the generic/floor “PUNK” pool. However, the UI for discoverability of the “related” pools (to raise awareness that users could come shopping in a pool for a more rare NFT, and not just “floor” ones), and to prevent mistakes (e.g. someone dropping a Zombie CryptoPunk into the generic PUNK pool instead of the ZOMBIE-PUNK pool. Would be nice to have the UI pop up a “are you sure? There’s another pool with ticker X that this NFT is eligible for, where the X token is more valuable than the Y token you’re about to receive”)

Having the different “pool” contracts that are all for the same collection of NFTs (just with different eligibility criteria) all share the same token would be easier on the end-user for wallet management/investment (less tokens to add to their wallet software to keep track of), but it seems that route would then lock in the ratio (e.g. x1.2 “floor”) permanently, because changing it would throw off the supply of the token.

Perhaps an alternative is just a UI relationship between the two: currently the NFTX UI allows for buying an NFT from a pool with ETH, or using the token that pool is using. What if there was a way to mark two pools as “related” (e.g. ZOMBIE-PUNK and PUNK), and the UI would then add the ability to buy from the PUNK pool using ZOMBIE-PUNK tokens. On the back-end, if a user pays with ETH it currently swaps that ETH on the back-end for the appropriate token and then redeems it. Could it do the same with another token? Redeem a fraction of ZOMBIE-PUNK for PUNK and swap that PUNK for a CryptoPunk out of the pool? Then, if additional liquidity were encouraged on Sushi for ZOMBIE-PUNK/PUNK, the natural price ratios between them could shift over time naturally.

Rather than spin up an ever increasing number or really specific vaults, you could have it so that someone comes along with a Hoodie Punk and say they want 3 PUNK tokens. It would then be up to the market to decide if they want to spend 3 PUNK tokens to buy the Hoodie Punk.

It wouldn’t be instant liquidity like you have with the vaults now, but it is a way to integrate non-floor items.

Yes, that’s an option that NFT20 implements in their NFT pooling setup: instead of just putting an NFT into their pool, they have a Dutch Auction interface alongside it, so an owner who thinks their NFT is worth more can list it for sale that way.

That sort of interface is completely separate from the pool mechanism, so really, any NFT marketplace if they allowed bidding/offering in custom ERC20 tokens could add in the NFTX pool tokens as an allowed token to have that effect. OpenSea has had that option in the past (and a few projects are grandfathered-in, like you can bid/offer MANA for a Decentraland asset), but they’ve stopped offering that option, and I’m not aware of any other NFT marketplaces that offer that.