Paint Swap Finance
Published in

Paint Swap Finance

NFT Vaults for custodial sales on PaintSwap

We would like to introduce you to a unique idea included in our upcoming 3.0 release. NFT Vaults. The new way to take custody of NFT’s while on sale. The marketplace will no longer hold the NFT’s directly but instead the user holds a “vault” in which the NFT resides. The benefit of this approach is each address owns its vault and projects will be able to airdrop to these vaults for users to claim. All while maintaining sale security.

The Paintswap 2.0 NFT marketplace (current version) and 1.0 both took full custody of all NFTs for sales & auctions. This was done to simplify and prevent lots of issues seen on other network’s NFT marketplaces from lost NFTs to stolen NFTs. We are moving forward in version 3.0 to a new hybrid model combining custodial and non-custodial contracts mostly due to the fact custodial is vital for fNFTS (financial NFTs), but it comes at a UX cost.

We will still also need custodial contracts for auctions but weren’t fully happy with the current system we have, where all NFTs are sent to a single contract and unique owners, for instance, would be misleading for collections. With this in mind, we have developed a new solution from scratch where each user is given their own vault which in turn escrows auctions, fNFTs as well as the option to still put normal sales into the vault.

What Are Vaults?

A vault is a contract each user generates for their wallet address. This contract can hold NFTs and fNFTs in a custodial state for both sales and auctions. This individual vault allows users to sell their NFTs from if they wish and withdraw any NFTs/tokens received from airdrops at any time as well as making things simpler to grab information like the number of unique holders & true owners of NFTs.

Paintswap 2.0


  • No issues with forgetting to cancel non-custodial listings like seen with OpenSea very recently.
  • fNFTs require custody as the underlying assets would be at risk of changing without it, this is already provided on the current version of the marketplace.


  • Unique owners get condensed down a lot as one contract owns all listed NFTs.
  • Airdrops get sent to the marketplace contract and are effectively lost.
  • Finding true owners becomes more difficult for things like whitelists for new project mints. We developed a script for projects to use, but it was still not very user friendly.
  • Cannot list NFTs on multiple marketplaces.
  • During high gas usage, our auto-completion bot does not run and users get confused when they can’t find their NFTs easily or they aren’t automatically returned as usual. (A fun fact is that we’ve spent 3,300+ FTM automatically completing sales for users!)

Using the NFT Vaults with PaintSwap 3.0


  • Any airdrops sent to the NFTVault can be withdrawn by the user.
  • Don’t need to worry about future listing issues.
  • Unique Owners becomes more accurate, instead of all being on a single contract.
  • Auctions are always escrowed in vaults to make sure that they can be finished.
  • fNFT guarantees, PaintSwap will show warnings for financial nfts if they are listed and not custodial. This is due to the fact the underlying assets can be changed by the user if they are not in custody.
  • Offers can be tied to a listing instead of to the NFT itself, so that they expire when the sale is finished. Similar to above, the offer or can be certain that the underlying assets will not change when the seller accepts the offer.
  • In cases where a sale may fail to complete, such as a contract being paused, the owner can retrieve their NFTs at a later date.


  • You will need to complete any sales in vaults during high gas to get access to your NFT again (similar to 2.0)
  • Whitelists for NFT owners will go to the vault. This can’t be used directly, but it’s much easier for projects to find the true owner by calling INFTVault(address).owner().
  • Each user must create their vault contract, this requires gas but is done through the EIP-1167 minimal proxy to be as cheap as possible.

As mentioned vault usage is optional for any non-auction NFTs, but is recommended for fNFTs like Solidly veNFTs, Revest Finance & Liquid Driver NFTs. They can also be used for peace of mind knowing that you will not be susceptible when transferring a listed NFT without cancelling it and then receiving it again later down the road where it could be snapped up if the old listing has not expired.

More details coming very soon. Keep painting!



Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store