Розробка фракціоналізації NFT
CryptoPunk #5822 продали за $23.7 мільйона у 2022 році. Середньостатистичний учасник ринку не може дозволити собі таку позицію — але хоче exposure. Фракціоналізація розбиває ownership на тисячі ERC-20 токенів, кожен з яких представляє долю в NFT. Механічно звучить просто. На практиці — потрібно вирішити governance (хто вирішує продавати?), ценообразування (як визначити fair value для buyout?), та ліквідність (куди діти ці ERC-20 токени?).
Як працює фракціоналізація технічно
Vault контракт та custodial модель
Базова схема: NFT локується у vault контракті, контракт мінтить ERC-20 токени в заданій кількості. ERC-20 HOLDERS = совласники NFT. Vault — custodian, NFT нікуди не йде.
contract NFTVault {
IERC721 public nft;
uint256 public tokenId;
IERC20 public fractionToken; // ERC-20 з фіксованою пропозицією
function fractionalize(address _nft, uint256 _tokenId, uint256 _supply) external {
IERC721(_nft).transferFrom(msg.sender, address(this), _tokenId);
FractionToken(fractionToken).mint(msg.sender, _supply);
}
}
Після локування NFT — vault стає його єдиним власником. Оригінальний depositor отримує всі fraction токени та може їх продавати/розподіляти як завгодно.
Buyout механізм — найскладніша частина
Будь-який holder fraction токенів повинен мати шлях до ліквідації — інакше це просто спекулятивний токен без претензії на актив. Buyout механізм дозволяє будь-якому учаснику выкупити всі fraction токени за встановлену ціну та отримати NFT.
Reserve price та auction buyout (Fractional/Tessera модель):
Depositor встановлює reservePrice при фракціоналізації. Будь-хто може ініціювати auction якщо готов платити ≥ reservePrice. Auction тривак N днів. Fraction HOLDERS можуть голосувати за оновлення reserve price (зважене голосування по кількості токенів). Якщо auction завершується — переможець отримує NFT, fraction HOLDERS отримують ETH пропорційно долі.
Тонкий момент: governance атака на reserve price. Великий holder може проголосувати за зниження reserve price, організувати дешевий buyout та вигнати малих HOLDERS по заниженій ціні. Захист: обмеження на зміну reserve price — не більше X% за період Y, timelock на застосування змін.
Instant buyout без auction:
Альтернативний паттерн — будь-хто може выкупити NFT, купивши 100% fraction токенів по поточній ринковій ціні. Контракт перевіряє баланс: if (fractionToken.balanceOf(msg.sender) == fractionToken.totalSupply()) → transferNFT. Вимагає від покупця зібрати всі токени з open market — insider buyout неможливий.
Ценообразування та TWAP oracle
Для протоколів, де fraction токени використовуються як collateral (Aave-style кредитування під долю в NFT), потрібна ціна floor. Два підходи:
AMM TWAP. Fraction токени торгуються в Uniswap v3 пулі проти ETH або USDC. NFT valuation = fraction_price * total_supply. Market-driven оцінка. Проблема: низька ліквідність у малих пулах → легко маніпулювати → flash loan атака на oracle.
Chainlink NFT Floor Price Feed. Chainlink запустив floor price feeds для топових колекцій (BAYC, CryptoPunks, Azuki). Якщо NFT з підтримуваної колекції — використовуємо Chainlink. Якщо ні — складніше завдання.
ERC-721 vs ERC-1155 source токени
ERC-721 фракціоналізується один до одного: один NFT → N fraction токенів. Vault тримає один tokenId.
ERC-1155 — складніше. Якщо source токен уже має amount > 1 (semi-fungible), vault може тримати кількість, та fraction токени представляють долю в цій кількості. Приклад: 100 одиниць edition #5 фракціоналізуються в 1000 ERC-20 токенів — кожен токен = 0.1 одиниці edition.
Фракціоналізація ERC-1155 вимагає додатково трекувати: скільки одиниць source токена у vault, та при buyout — скільки одиниць отримує покупець за 100% fraction токенів.
Ліквідність для fraction токенів
Створення ERC-20 токена — половина роботи. Без ліквідності holder fraction токена не може вийти з позиції. Стандартні підходи:
Uniswap v3 пул при старті. Depositor надає початкову ліквідність: частина fraction токенів + ETH у пул. Початкова ціна = reserve_price / total_supply.
Liquidity Bootstrapping Pool (Balancer LBP). Продаж fraction токенів через LBP з убиваючим вагом — аналог dutch auction. Дозволяє провести price discovery без початкової ліквідності.
Curve стейблкоин пул. Якщо fraction токени привязані до USD-деноміровного активу — Curve пул з USDC дає кращий slippage для великих обсягів.
Процес розробки
Mechanism design (3-5 днів). Визначаємо: buyout механіку, governance модель, oracle для ценообразування, liquidity стратегію. Пишемо формальну специфікацію інваріантів.
Контракти (2-3 тижні). Vault + ERC-20 fraction токен + buyout auction + governance. Foundry з property-based тестами: «сума fraction токенів завжди дорівнює totalSupply», «NFT покидає vault лише через buyout з повною оплатою».
Oracle інтеграція (3-5 днів). Chainlink floor price або Uniswap TWAP з anti-manipulation захистом.
Фронтенд (1-2 тижні). Фракціоналізація UI, marketplace fraction токенів, buyout flow, governance голосування.
Оцінка часу
Базова фракціоналізація з instant buyout — 1-2 тижні. Повний протокол з auction, governance, LP bootstrap та oracle — 4-6 тижнів.
Вартість розраховується після обговорення buyout механіки та вимог до governance.







