← Protocols
NFTX
01Description

NFT vault protocol on Ethereum. Users deposit NFTs into a per-collection vault and receive fungible vTokens (e.g. `MILADY`, `PUNK`); vTokens are LP-paired against ETH on Uniswap V3 (NFTX V3) to create deep, instant NFT liquidity. Buyers can swap ETH→vToken→specific NFT in one transaction.

02Best for
  • 01instant NFT liquidity (mint/redeem vToken)
  • 02fractional / index exposure to a collection
  • 03yield on idle NFTs (LP fees + inventory staking)
  • 04swap ETH↔NFT via Uniswap V3 routing
  • 05marketplace aggregators sourcing NFTX liquidity
03Install
  • # NFTX V3 has no official npm SDK; integrate via the V3 contracts (NFTXVaultFactoryV3, NFTXRouter) or via subgraph + Uniswap V3 SDK.
  • pnpm add viem @uniswap/v3-sdk
04Environment variables
VariableScopeDescription
NEXT_PUBLIC_NFTX_VAULT_FACTORYClientAddress of NFTXVaultFactoryV3 on Ethereum mainnet (see docs.nftx.io/protocol-overview).
NFTX_SUBGRAPH_URLServerThe Graph endpoint for the NFTX V3 subgraph (used for vault discovery, TVL, and price reads).
05Prompt snippet
NFTX V3 mints a vToken per vault. To buy a specific NFT: call `NFTXRouter.buyNFTs({ vaultId, nftIds, vTokenPremiumLimit, deadline })` which routes ETH→vToken via Uniswap V3 and redeems the vault for the chosen NFTs in one tx. To sell: `NFTXRouter.sellNFTs({ vaultId, nftIds, minOut, deadline })` mints vTokens and swaps them to ETH. To LP, deposit NFTs via `NFTXVaultUpgradeableV3.mint(tokenIds, amounts)` for vTokens, then add Uniswap V3 liquidity to the vToken/WETH pool. Read live vault data from the NFTX V3 subgraph (`vaults`, `pools`, `mints`, `redeems`). For random redeems use `redeem(amount, [], 0)`; for targeted use `redeem(amount, tokenIds, vTokenPremiumLimit)` which pays a curve-priced premium.
06Gotchas
  • Targeted redemptions (picking a specific NFT) pay a `vTokenPremium` that decays over time since the NFT was deposited — without it, redeems are random; surface the live premium to users so the all-in price is correct.
  • NFTX V3 routes through Uniswap V3, so price is set by the V3 pool's tick — thin pools have heavy slippage; always use `vTokenPremiumLimit` and `minOut` to bound execution.
  • Royalty enforcement: NFTX vaults do not pay creator royalties on mints/redeems — when an NFT moves through a vault, EIP-2981 royalties are bypassed; this is a known design tradeoff.
  • Chain coverage is Ethereum mainnet only as of 2026 (V3 launched on mainnet; L2 deployments are not GA).
  • Vault fees are configurable per-vault (mint fee, random/target redeem fee, swap fee) — read them from `INFTXVaultV3.vaultFees(vaultId)` rather than hardcoding the protocol defaults.
  • Inventory staking (V2-style xToken) is replaced in V3 with Uniswap V3 LP positions — old `@nftx/sdk` packages targeting V2 will not work against V3 vaults.
07Alternatives