Професійна розробка платформи токенізації активів на ERC-3643
Клієнт з портфелем комерційної нерухомості в Берліні хотів випустити 5000 токенів для фракційного продажу. Перша ідея — ERC-20 з білим списком — розсипалася при першій же перевірці регулятора: відсутність on-chain identity, немає механізму forced transfer для заморозки активів, немає модуля корпоративних дій. Довелося перебудовувати всю архітектуру на ERC-3643. За 7 років ми зробили 15+ таких платформ — для нерухомості, боргових інструментів, товарних запасів. Кожен проєкт проходив повний цикл: юридична структура, смарт-контракти, інтеграція KYC, запуск вторинного ринку.
Технічна частина — лише вершина. 60–70% зусиль йде на compliance: KYC/AML, юрисдикційні обмеження, корпоративні дії. Ми використовуємо стек ERC-3643 (T-REX) з identity-шаром ONCHAINID. Це дає економію до 30% на gas-операціях з compliance порівняно з ERC-1400. Стандарт описаний в EIP-3643.
Типи активів різні — нерухомість, акції SPV, боргові інструменти, витвори мистецтва, інтелектуальна власність — але компоненти платформи універсальні.
Чому ERC-3643 — стандарт для RWA?
Звичайний ERC-20 не підходить для регульованих активів. Потрібні спеціалізовані стандарти. ERC-1400 (Security Token Standard) — розширення ERC-20 з transfer restrictions, forced transfers, document management. Розроблений під вимоги securities регуляторів.
// ERC-1400 ключові інтерфейси
interface IERC1400 is IERC20 {
function canTransferByPartition(
bytes32 partition,
address from,
address to,
uint256 value,
bytes calldata data
) external view returns (byte, bytes32, bytes32);
function transferByPartition(
bytes32 partition,
address to,
uint256 value,
bytes calldata data
) external returns (bytes32);
function operatorTransferByPartition(
bytes32 partition,
address from,
address to,
uint256 value,
bytes calldata data,
bytes calldata operatorData
) external returns (bytes32);
function getDocument(bytes32 name)
external view returns (string memory, bytes32);
}
ERC-3643 (T-REX) — більш сучасний, розроблений Tokeny Solutions. Він у 2 рази простіший в інтеграції за ERC-1400 та вигідніший по газу: до 30% економії на операціях з compliance. Включає identity layer (ONCHAINID) та automated compliance checks. Складання смарт-контрактів у Foundry в 3 рази швидше, ніж у Hardhat — прискорення циклів тестування та деплою.
// T-REX compliance check приклад
contract TokenCompliance {
IIdentityRegistry public identityRegistry;
ICompliance public compliance;
function _beforeTokenTransfer(
address from,
address to,
uint256 amount
) internal {
if (from != address(0) && to != address(0)) {
require(
identityRegistry.isVerified(to),
"Recipient identity not verified"
);
require(
compliance.canTransfer(from, to, amount),
"Transfer not compliant"
);
}
}
}
ERC-1155 підходить для фракційних активів, коли один актив ділиться на кілька видів прав (наприклад, будівля з різними типами приміщень або витвір мистецтва з різними правами використання).
Як працює on-chain KYC/AML?
Кожен власник токенів регульованого активу має бути верифікований. On-chain identity — складніше ніж просто mapping адреса → bool. Використовуємо стандарт ONCHAINID (ERC-734/735). Провайдер KYC (Sumsub, Fractal, Identix) проводить верифікацію, видає claim з підписом. Claim записується в ONCHAINID контракт користувача. При спробі transfer токена — compliance модуль перевіряє наявність потрібних claims.
// Identity контракт (один на користувача)
interface IIdentity {
function getClaim(bytes32 claimId)
external view returns (
uint256 topic,
uint256 scheme,
address issuer,
bytes memory signature,
bytes memory data,
string memory uri
);
function addClaim(
uint256 topic,
uint256 scheme,
address issuer,
bytes memory signature,
bytes memory data,
string memory uri
) external returns (bytes32 claimId);
}
// Claim Topics для securities
uint256 constant KYC_CLAIM = 1;
uint256 constant AML_CLAIM = 2;
uint256 constant ACCREDITED_INVESTOR_CLAIM = 3;
uint256 constant COUNTRY_CLAIM = 4;
uint256 constant PROFESSIONAL_INVESTOR_CLAIM = 5;
Регулятори вимагають обмежити продаж в певних юрисдикціях. Наприклад, не можна продавати US-резидентам без реєстрації в SEC. Реалізуємо модуль перевірки коду країни та лімітів інвесторів. Це дозволило клієнту з Берліна запустити продаж у ЄС без обмежень, а для резидентів США — налаштувати whitelist після реєстрації.
Приклад обмеження за країнами
Контракт перевіряє код країни з ONCHAINID та звіряє з мапінгом дозволених юрисдикцій. Якщо країна не дозволена — transfer відхиляється. Додатково налаштовуються ліміти на кількість інвесторів на країну.
Lifecycle токенізованого активу
Issuance (емісія)
Перед мінтингом токенів:
- Юридична структура: SPV, траст або інша структура, яка тримає реальний актив
- Legal opinion що токени не є незареєстрованими securities (або реєстрація)
- Проспект/offering memorandum (залежить від юрисдикції та об'єму)
- Custody arrangement: хто тримає документи, хто є transfer agent
function mintSecurityTokens(
address investor,
uint256 amount,
bytes32 partition,
bytes calldata data
) external onlyRole(ISSUER_ROLE) {
require(identityRegistry.isVerified(investor), "Not verified");
require(compliance.canTransfer(address(0), investor, amount), "Not compliant");
_issueByPartition(partition, investor, amount, data);
emit TokensIssued(investor, amount, partition, data);
}
Corporate Actions
Токенізовані акції вимагають обробки корпоративних подій: дивіденди, спліти, обернені спліти. Ми реалізуємо модулі для розподілу дивідендів (через snapshots) та сплітів з автоматичним перерахунком балансів. Приклад для дивідендів: контракт отримує USDC, фіксує snapshot власників, кожен власник клеймить свою частку.
Вторинний ринок та ліквідність
Вторинний обіг — окрема проблема. Не можна просто лістинговати на Uniswap: кожен buyer має пройти KYC, покупка має проходити compliance перевірку. Будуємо permissioned DEX з вбудованим compliance-шлюзом або інтегруємося з регульованими платформами (INX, tZERO, STO Global X). Другий варіант дає готову ліквідність без побудови власного торгового майданчика.
Оракули та оцінка активів
Для позик під заставу токенізованих активів потрібна on-chain ціна. На відміну від криптоактивів — немає ліквідного ринку. Рішення: модель верифікованого оцінювача. Акредитований оцінювач підписує оцінку, публікує on-chain. Контракт приймає оцінки від N акредитованих оцінювачів, бере медіану:
contract AssetValuationOracle {
struct Valuation {
uint256 value;
uint256 timestamp;
address appraiser;
bytes signature;
}
mapping(bytes32 => Valuation[]) public valuations;
uint256 public constant MAX_VALUATION_AGE = 90 days;
uint256 public constant MIN_APPRAISERS = 2;
function getAssetValue(bytes32 assetId) external view returns (uint256) {
Valuation[] storage vals = valuations[assetId];
uint256[] memory freshValues = new uint256[](vals.length);
uint256 freshCount = 0;
for (uint i = 0; i < vals.length; i++) {
if (block.timestamp - vals[i].timestamp <= MAX_VALUATION_AGE) {
freshValues[freshCount++] = vals[i].value;
}
}
require(freshCount >= MIN_APPRAISERS, "Insufficient fresh valuations");
return median(freshValues, freshCount);
}
}
Технологічний стек
| Компонент | Вибір | Обґрунтування |
|---|---|---|
| Token standard | ERC-3643 (T-REX) | Широке прийняття в RWA, compliance built-in |
| Identity | ONCHAINID | Стандарт екосистеми T-REX |
| KYC provider | Sumsub / Synaps | API + claim issuance |
| Settlement chain | Polygon PoS / Base | Дешево, EVM, активна RWA екосистема |
| Payment | USDC / EURC | Circle стабільність, regulatory clarity |
| Document storage | IPFS + Filecoin | Довгострокове зберігання юридичних документів |
Зв'яжіться з нами для уточнення стеку під вашу юрисдикцію.
Що входить у розробку платформи
| Фаза | Зміст | Термін |
|---|---|---|
| Legal & structure | Юридична структура, compliance requirements | 4–8 тиж |
| Core contracts | ERC-3643 + identity + compliance модулі | 4–6 тиж |
| Corporate actions | Dividends, splits, forced transfer | 2–3 тиж |
| KYC integration | Identity registry + KYC provider API | 2–3 тиж |
| Secondary market | Order book або DEX з compliance | 3–4 тиж |
| Investor portal | Dashboard, claims, documents | 3–4 тиж |
| Audit | Контракти | 3–4 тиж |
| Issuance pilot | Реальний актив у тестовому середовищі | 2–3 тиж |
Разом: 23–35 тижнів. Юридичний етап — змінна з найбільшим розкидом: залежить від активу, юрисдикції та наявності досвідченого securities-lawyer у команді клієнта. Орієнтовна вартість проєкту — від $80,000 до $150,000 залежно від складності.
Оцінимо ваш проєкт за 2 робочі дні. Гарантуємо якість аудиту та підтримку після запуску. Отримайте консультацію — почніть з обговорення архітектури.







