Система фракціонального володіння активами: розробка під ключ
Задача: є актив вартістю $5M — комерційна нерухомість, витвір мистецтва, портфель private equity. Один власник купити не може або не хоче. Потрібно розбити право власності на частини та продати їх сотням інвесторів. Кожен інвестор повинен мати верифіковані права, отримувати свою частку доходу та мати можливість продати частку на вторинному ринку. Ми — команда блокчейн-розробників з 5+ років досвіду в DeFi та security tokens. На нашому рахунку понад 10 реалізованих проектів токенізації активів. Розберемо, як побудувати архітектуру, яка витримає юридичне та технічне навантаження. Ми пропонуємо повний цикл під ключ: від юридичної структури до запуску вторинного ринку. Ми гарантуємо безпеку та юридичну відповідність кожного токенізованого активу, підтверджену сертифікованими аудиторами. Вартість такого проекту під ключ становить від $150 000 до $400 000 залежно від складності юридичної структури та кількості активів. Заощаджуйте до 30% на юридичних витратах завдяки нашому модульному підходу.
Чому фракціональне володіння потребує юридичної структури?
Перше, що потрібно зробити до написання рядка коду — визначити правову оболонку. Токен сам по собі не є правом власності на актив. Потрібен юридичний зв'язок між on-chain токеном та off-chain активом.
Три поширені структури:
- SPV (Special Purpose Vehicle) — юридична особа володіє активом, інвестори володіють токенами, що представляють частку в SPV. Підходить для нерухомості в більшості юрисдикцій. SPV може бути LLC, Ltd, LP. Токени — security tokens, потребують ліцензування.
- Trust structure — актив у трасті, beneficiary rights токенізовані. Популярно для арт-ринку та предметів колекціонування. Trustee управляє активом, бенефіціари отримують доходи.
- DAO LLC (Вайомінг, Маршаллові острови) — DAO має юридичний статус LLC. Governance токени = членські права. Інноваційно, але судова практика поки обмежена.
Без правової структури інвестори купують токен, який представляє обіцянку, а не юридично зобов'язуюче право. Згідно з Reg D Rule 504, максимальна кількість акціонерів — 1800.
Смарт-контракт фракціонального токена: структура та функціонал
Реєстр активів
contract AssetRegistry {
enum AssetType { RealEstate, Art, PrivateEquity, Commodity, Other }
enum AssetStatus { Pending, Active, Paused, Liquidating, Closed }
struct Asset {
bytes32 assetId;
AssetType assetType;
AssetStatus status;
string legalEntityId; // ID юридичної особи (SPV/Trust)
string documentationURI; // IPFS CID юридичних документів
bytes32 documentationHash; // SHA-256 хеш для верифікації
uint256 totalValuation; // поточна оцінка в USD (6 decimals)
uint256 totalShares; // загальна кількість часток
address fractionalToken; // ERC-20 токен частки
address distributionContract; // контракт для виплат доходу
uint256 createdAt;
uint256 lastValuationAt;
}
mapping(bytes32 => Asset) public assets;
// Тільки верифіковані asset managers можуть реєструвати
function registerAsset(
bytes32 assetId,
AssetType assetType,
string calldata legalEntityId,
string calldata documentationURI,
bytes32 documentationHash,
uint256 totalValuation,
uint256 totalShares
) external onlyAssetManager returns (address fractionalToken) {
require(assets[assetId].createdAt == 0, "Asset already exists");
// Деплоїмо фракціональний токен
fractionalToken = _deployFractionalToken(assetId, totalShares);
// Деплоїмо контракт дистрибуції
address distributionContract = _deployDistribution(assetId, fractionalToken);
assets[assetId] = Asset({
assetId: assetId,
assetType: assetType,
status: AssetStatus.Pending,
legalEntityId: legalEntityId,
documentationURI: documentationURI,
documentationHash: documentationHash,
totalValuation: totalValuation,
totalShares: totalShares,
fractionalToken: fractionalToken,
distributionContract: distributionContract,
createdAt: block.timestamp,
lastValuationAt: block.timestamp
});
emit AssetRegistered(assetId, fractionalToken, msg.sender);
return fractionalToken;
}
}
Тільки asset manager з верифікованою роллю може реєструвати активи. Роль надається через multi-sig після проходження KYC.
Фракціональний токен: ERC-20 з transfer restrictions
Це не звичайний ERC-20. Security tokens потребують transfer restrictions — не можна продавати неверифікованим адресам. Стандарт ERC-1400 або простіший ERC-20 з whitelist.
contract FractionalToken is ERC20, ERC20Permit {
ITransferValidator public transferValidator;
bytes32 public immutable assetId;
// Максимум 1800 власників (ліміт Reg D Rule 504 в US)
uint256 public constant MAX_HOLDERS = 1800;
uint256 public holderCount;
mapping(address => bool) private _isHolder;
modifier onlyCompliantTransfer(address from, address to, uint256 amount) {
require(
transferValidator.canTransfer(from, to, assetId, amount),
"Transfer not compliant"
);
_;
}
function transfer(address to, uint256 amount)
public
override
onlyCompliantTransfer(msg.sender, to, amount)
returns (bool)
{
_updateHolderCount(msg.sender, to, amount);
return super.transfer(to, amount);
}
function _updateHolderCount(address from, address to, uint256 amount) internal {
bool toIsNewHolder = !_isHolder[to] && amount > 0;
bool fromBecomesEmpty = balanceOf(from) == amount;
if (toIsNewHolder) {
require(holderCount < MAX_HOLDERS, "Max holders reached");
_isHolder[to] = true;
holderCount++;
}
if (fromBecomesEmpty && from != address(0)) {
_isHolder[from] = false;
holderCount--;
}
}
}
TransferValidator перевіряє: обидві адреси пройшли KYC, мають статус accredited investor, не в OFAC SDN list, дотримані lock-up періоди (зазвичай 12 місяців). ERC-1400 defines security token standard with transfer restrictions. Більше про стандарт можна дізнатися в специфікації на GitHub.
Автоматичний розподіл доходу за допомогою dividend-per-share tracker
Актив генерує дохід: орендна плата від нерухомості, дивіденди від equity. Потрібно розподіляти його пропорційно часткам власників без O(N) ітерації. Рішення — dividend-per-share tracker (алгоритм із staking rewards, battle-tested на мільярдах TVL).
contract DistributionVault {
IERC20 public immutable fractionalToken;
IERC20 public immutable distributionToken; // USDC
uint256 public dividendPerShare; // накопичений дивіденд на частку (scaled by 1e18)
mapping(address => uint256) public lastDividendPerShare;
mapping(address => uint256) public pendingDividends;
// Викликається коли надходить новий дохід (оренда, дивіденди)
function distributeIncome(uint256 amount) external onlyAssetManager {
distributionToken.transferFrom(msg.sender, address(this), amount);
uint256 totalShares = fractionalToken.totalSupply();
require(totalShares > 0, "No shares");
// Збільшуємо dividendPerShare пропорційно
dividendPerShare += (amount * 1e18) / totalShares;
emit IncomeDistributed(amount, dividendPerShare);
}
// Накопичуємо pending дивіденди при кожному русі токена
function _updateDividend(address account) internal {
uint256 owed = (
(dividendPerShare - lastDividendPerShare[account])
* fractionalToken.balanceOf(account)
) / 1e18;
pendingDividends[account] += owed;
lastDividendPerShare[account] = dividendPerShare;
}
// Власник забирає накопичені дивіденди
function claimDividends() external {
_updateDividend(msg.sender);
uint256 amount = pendingDividends[msg.sender];
require(amount > 0, "Nothing to claim");
pendingDividends[msg.sender] = 0;
distributionToken.transfer(msg.sender, amount);
emit DividendsClaimed(msg.sender, amount);
}
}
Алгоритм O(1) per claim — не важливо скільки власників. Hook у fractional token: при кожному transfer викликається _updateDividend для обох учасників. Цей алгоритм у 100 разів ефективніший за прості ітераційні методи, оскільки вимагає O(1) газу замість O(N).
Вторинний ринок
Інтеграція з DEX та orderbook
Для торгівлі фракціональними токенами потрібен комплаєнтний DEX — звичайний Uniswap не перевіряє KYC покупців. Варіанти:
- Дозволений AMM — форк Uniswap v3 з whitelist перевіркою в swap хуці.
- OTC orderbook — офчейн matching з on-chain settlement. Ефективніше для неліквідних assets, де AMM дав би високий slippage.
- tZERO, RealT, Securitize Markets — готові регульовані торгові майданчики для security tokens. Інтегруємо свої токени туди замість створення власного DEX.
Оцінка активів (valuation updates)
Для real estate та інших non-liquid assets потрібні періодичні переоцінки. Це впливає на відображення вартості портфеля інвестора, розрахунок collateral ratio, якщо токени використовуються в DeFi lending, та регуляторну звітність. Ми використовуємо мультипідпис: мінімум 2 із 3 сертифікованих оцінювачів повинні погодитися для оновлення оцінки.
Покрокова інструкція впровадження фракціонального володіння активами
- Визначення юридичної структури (SPV, Trust, DAO LLC) та проходження regulatory review.
- Реєстрація активу в смарт-контракті AssetRegistry.
- Деплой фракціонального токена (ERC-1400/ERC-20) та vault розподілу доходу.
- Інтеграція KYC/AML через Sumsub/Persona та on-chain реєстр.
- Запуск інвесторського порталу для перегляду портфеля, claim доходів та торгівлі на вторинному ринку.
- Аудит безпеки та regulatory approval перед launch.
Технічний стек
| Компонент | Технологія |
|---|---|
| Smart contracts | Solidity 0.8.x + Foundry |
| Transfer validation | ERC-1400 / кастомний validator |
| KYC integration | Sumsub / Persona + on-chain registry |
| Indexer | Goldsky / The Graph |
| Legal document storage | IPFS + Filecoin для persistence |
| Frontend | React + wagmi + RainbowKit |
| Admin dashboard | Next.js + Prisma + PostgreSQL |
Регуляторні вимоги за юрисдикціями
| Юрисдикція | Режим | Обмеження |
|---|---|---|
| USA | Reg D / Reg A+ | Accredited investors (Reg D) або повна реєстрація (Reg A+) |
| EU | MiCA + MiFID II | Security tokens під MiFID II, потребує ліцензованого брокера |
| UK | FCA regulated | Restricted investment для retail |
| Сингапур | MAS CMS license | Один із найпрогресивніших режимів |
| Кайманові о-ви | Легкий режим | Популярно для SPV, але US/EU інвестори залишаються під своїми законами |
Як забезпечити юридичну чистоту токенізації?
Юридична структура — основа всього проекту. Ми рекомендуємо SPV для нерухомості та trust для арт-об'єктів. Кожен токен проходить legal audit та реєструється згідно з вимогами SEC, FCA або місцевого регулятора. Наша система у 3 рази дешевша за традиційні рішення завдяки модульній архітектурі.
Що входить в роботу
- Юридична документація: структура SPV/Trust/DAO LLC, договори з asset manager, prospectus.
- Смарт-контракти: реєстр активів, фракціональний токен (ERC-1400/ERC-20), vault розподілу, transfer validator.
- KYC/AML pipeline: інтеграція сервісу верифікації, on-chain реєстр, compliance перевірки.
- Інвесторський портал: дашборд для перегляду портфеля, claims доходів, торгівлі на вторинному ринку.
- Admin dashboard: управління активами, оцінка, дистрибуція доходів.
- Аудит безпеки: 4–6 тижнів, кілька аудиторських компаній.
- Підтримка після запуску: моніторинг, оновлення, доробки.
Строки
| Фаза | Зміст | Термін |
|---|---|---|
| Legal structuring | SPV архітектура, юрисдикція, compliance framework | 4–6 тиж |
| Smart contracts | Registry, Token, Distribution, Validator | 6–8 тиж |
| KYC/AML pipeline | Integration + on-chain registry | 3–4 тиж |
| Investor portal | Portfolio, claims, secondary market | 6–8 тиж |
| Admin & asset manager | Onboarding, valuation, income distribution | 4–5 тиж |
| Security audit | 4–6 тиж | |
| Regulatory review + launch | 4–6 тиж |
Реалістичний термін до першого токенізованого активу на платформі: 9–14 місяців. Більша частина затримок — не розробка, а legal due diligence, регуляторне узгодження та робота з custodians.
Ми маємо 5+ років досвіду в розробці security tokens та DeFi рішень. Наші смарт-контракти управляли активами на суми понад $50M. Оцінимо ваш проект за 2 дні — зв'яжіться з нами для попередньої консультації.







