Ready. Wallet transactions require an explicit button click and wallet confirmation.
Check your previous transaction
Transaction cancelled or replaced in your wallet?
A speed-up or cancellation has a different hash. Verify the final outcome in your wallet and refresh pool data. Dismissing this reminder does not cancel a pending transaction.
Discover Active NFT Pools
View the top pools on Pooled NFT.
Find or create a pool
Enter an ERC-721 collection address to find its V2 pool or create one through the V2 factory. Your wallet will show the gas estimate before you confirm creation.
Directory snapshot · Sep 9, 2026
RankCollection# In Pool
Connect a wallet to discover new V2 pools and load live counts. X means a read failed; the denominator is saved collection supply, or — when unknown.
Select a pool
Pool holdings
Select the NFT IDs to withdraw. IDs below are read from the pool contract.
Filters apply to loaded NFTs only. Use “Load more” to include more NFTs. Saved images or traits may appear when live metadata is unavailable; they may be outdated.
No loaded NFTs match these filters.
Withdraw NFTs
Approve the number of pool tokens needed for these NFTs, then withdraw.
Leave blank to use the selected NFT count. Enter 0 to revoke the token allowance.
Deposit NFTs
Collection approval lets the deposit proxy transfer every NFT you own in this collection until you revoke it in your wallet. Existing approvals for individual NFTs also work. Depositing gives you one pool token per NFT.
Use this Deposit NFTs action. Never transfer an NFT directly to a pool or the deposit proxy: a direct transfer does not mint pool tokens and may be unrecoverable.
Network settings Ethereum Mainnet
Connect a wallet to use its Ethereum provider, or enter a working RPC endpoint.
Pooled NFT documentation
Protocol overview and contract reference.
This local reference covers the five published documentation pages in condensed wording. Function signatures reflect those pages and may differ from the deployed ABI used by this client; for example, the client’s pool ABI uses array-based deposit and withdrawal methods. This page does not change the client’s contract calls.
Home
Pooled NFT converts deposited ERC-721 NFTs into divisible ERC-20 pool tokens. A pool holds NFTs from a particular collection, with one whole pool token backed by one NFT.
The protocol connects collections with DeFi: holders can trade pool tokens or provide liquidity to markets such as Uniswap. The published documentation describes no protocol fees; Ethereum transactions still require gas.
Individual NFTs are distinct and can be difficult to trade. Pooled NFT offers a fungible representation of a collection: users deposit NFTs to mint pool tokens and redeem tokens to receive NFTs.
The architecture has three components:
ERC721PoolFactory creates pools and records their addresses.
ERC721Pool holds a collection’s NFTs and handles minting and burning its ERC-20 tokens.
PeripheralERC721Pool provides batch deposit and withdrawal operations.
Pooled NFT V2 architecture · graphic from the published documentation. Pinch or zoom to inspect the embedded graphic.
These contracts implement the wrapping and unwrapping flow for ERC-721 assets.
The factory deploys and registers pools using CREATE2, allowing deterministic address calculation from deployment inputs. It permits one active pool per collection. Administrative functions manage ENS names and rescue the final NFT.
Read functions
getPool
getPool(address asset) → address pool
Find the pool registered for the ERC-721 collection asset.
allPools
allPools(uint256 index) → address pool
Read a pool address at an index in the registry.
allPoolsLength
allPoolsLength() → uint256
Return the number of registered pools.
assetNonces
assetNonces(address asset) → uint256
Read the collection’s pool-deployment nonce.
State-changing functions
createPool
createPool(address asset)
Create a pool for the collection; only one active pool is permitted. Emits CreatePool.
rescueLastNFT
rescueLastNFT(address asset, address to)
Send an existing pool’s final NFT to to. Owner-only; emits RescueLastNFT.
This helper batches NFT transfers. Depositing multiple NFTs mints corresponding pool tokens for the caller; withdrawals burn corresponding tokens. It also supports withdrawing the available, non-overlapping NFTs from a requested set.
State-changing functions
bulkDeposit
bulkDeposit(IERC721Pool pool, uint256[] ids)
Deposit a nonempty NFT ID list into pool. NFT transfer approval is required. The published page lists a Deposit event.
bulkWithdraw
bulkWithdraw(IERC721Pool pool, uint256[] ids)
Withdraw a nonempty list from pool. First approve sufficient pool-token allowance for the peripheral contract. The published page lists a Withdraw event.
withdrawAvailable
withdrawAvailable(IERC721Pool pool, uint256[] ids)
Withdraw available, non-overlapping IDs from a nonempty list. Requires pool-token transfer approval. Emits WithdrawAvailable.
The published requirements for bulkDeposit and withdrawAvailable mention a nonzero beneficiary, although neither displayed signature includes that parameter. Verify the deployed contract before integrating.