Разработка платформы токенизации реальных активов

Проектируем и разрабатываем блокчейн-решения полного цикла: от архитектуры смарт-контрактов до запуска DeFi-протоколов, NFT-маркетплейсов и криптобирж. Аудит безопасности, токеномика, интеграция с существующей инфраструктурой.
Показано 1 из 1Все 1305 услуг
Разработка платформы токенизации реальных активов
Сложный
от 2 недель до 3 месяцев
Часто задаваемые вопросы

Направления блокчейн-разработки

Этапы блокчейн-разработки

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1358
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1251
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    956
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1188
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    646
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    929

Разработка платформы токенизации активов

Клиент с портфелем коммерческой недвижимости в Берлине хотел выпустить 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. Он выгоднее 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 (эмиссия)

Перед минтингом токенов:

  1. Юридическая структура: SPV, траст или другая структура, которая держит реальный актив
  2. Legal opinion что токены не являются незарегистрированными securities (или регистрация)
  3. Проспект/offering memorandum (зависит от юрисдикции и объёма)
  4. 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 в команде клиента.

Оценим ваш проект за 2 рабочих дня. Гарантируем качество аудита и поддержку после запуска. Получите консультацию — начните с обсуждения архитектуры.

Разработка токенов: ERC-20, токеномика, вестинг

«ERC-20 — это просто» — фраза, после которой начинаются проблемы. Базовый transfer написать несложно. Но токен, у которого через шесть месяцев не происходит инфляционный коллапс, governance работает как задумано, а вестинг нельзя обойти через хитрую схему с делегированием — это уже проектирование.

ERC-20: что под капотом

Стандарт ERC-20 — девять функций. Сложность начинается с расширений:

ERC-20Permit (EIP-2612) — gasless approve через подпись. Пользователь подписывает permit(owner, spender, value, deadline, v, r, s) off-chain, spender вызывает permit() + transferFrom() в одной транзакции. Это убирает отдельный approve step. Но: подпись можно перехватить и использовать — нужен deadline и проверка nonce.

ERC-20Votes (EIP-5805) — snapshot балансов для governance. Checkpoint-система хранит историю балансов по номеру блока. getPastVotes(address, blockNumber) — баланс на момент создания proposal, а не текущий. Это предотвращает flash loan governance attack: нельзя занять токены и проголосовать ими в одной транзакции.

Rebasing токены (stETH, Ampleforth) — balanceOf меняется автоматически через изменение internal shares ratio. Высокая сложность интеграции: большинство DeFi протоколов не работают корректно с rebasing без wrapping в non-rebasing версию.

Fee-on-transfer токены — при каждом transfer снимается процент. Ломают AMM расчёты: пул получает меньше, чем ожидал. Uniswap v2/v3 не поддерживают fee-on-transfer нативно — нужны специальные pair/router.

Tokenomics: где математика превращается в экономику

Токеномика — это не таблица в Excel с суммой 100%. Это модель инцентивов, которая либо работает в долгосрочной перспективе, либо создаёт давление продаж которое убьёт проект.

Emission schedule и инфляция

Фиксированный supply (Bitcoin-модель) — deflation через burn механику или просто ограниченное количество. Подходит для store-of-value или utility токенов с ограниченным спросом на новые токены.

Инфляционная модель (Ethereum post-Merge, Curve) — новые токены выпускаются для стимулирования участников. Нужен баланс: emission должен быть ниже или равен value capture протоколом. Если протокол зарабатывает $100k/месяц, а эмиссия в рыночной стоимости $500k/месяц — постоянное давление продаж неизбежно.

Halving schedules (Bitcoin-style) — уменьшение emission со временем. Создаёт предсказуемость, но требует что утилити токена росла чтобы компенсировать падающие rewards для stakers/validators.

Supply distribution

Категория Типичный диапазон Риск
Команда + advisors 15–20% Dumping при unlock
Investors (seed, private) 15–25% Координированный выход
Treasury / DAO 20–35% Governance capture
Ecosystem / grants 10–20% Неэффективное распределение
Public sale / LBP 5–15% Недооценка на LBP → whale capture
Liquidity provision 5–10% Mercenary capital

Нет универсальной формулы. Есть принцип: никакой одной сущности не должно принадлежать >33% voting power при запуске. Иначе governance — фикция.

Vesting контракты: детали имеют значение

Linear vesting с cliff — стандарт для команды и инвесторов. cliff — период после TGE, в течение которого ничего не доступно. После cliff: линейный unlock до duration.

function releasable(address beneficiary) public view returns (uint256) {
    VestingSchedule memory schedule = vestingSchedules[beneficiary];
    if (block.timestamp < schedule.cliff) return 0;

    uint256 elapsed = block.timestamp - schedule.cliff;
    uint256 vestingDuration = schedule.duration - (schedule.cliff - schedule.start);
    uint256 vested = schedule.totalAmount * elapsed / vestingDuration;

    return vested - schedule.released;
}

Типичные ошибки при реализации:

Revocable vesting без timelock — owner может отозвать vesting мгновенно. Если owner key скомпрометирован или команда недобросовестна — все unvested токены могут быть отозваны. Решение: revocation через multisig + governance vote.

Cliff не блокирует governance права — если используется ERC-20Votes, recipient может делегировать voting power с первого дня, даже если токены ещё не unlocked. Нужно явно разделить voting power и claim logic.

Отсутствие emergency pause — если обнаружена уязвимость в vesting контракте, нужна возможность приостановить claim. Pausable + timelock на unpause.

Liquidity Bootstrapping

Запуск ликвидности — критический момент. Три основных подхода:

Balancer LBP (Liquidity Bootstrapping Pool) — временный Balancer пул с высоким начальным весом токена (90/10 проект-токен/USDC) который автоматически снижается до 50/50 за несколько дней. Создаёт нисходящее ценовое давление, препятствуя ботам скупить всё по одной цене. После LBP ликвидность переносится в постоянный пул.

Fjord Foundry — специализированная платформа для LBP и fair launches. Меньше операционного overhead чем прямая интеграция с Balancer.

Uniswap v3 с ограниченным range — добавить ликвидность в узкий диапазон вокруг начальной цены. Высокая capital efficiency, но требует активного управления range.

TWAMM (Time-Weighted AMM) — механика для постепенной продажи/покупки больших объёмов без slippage. Paradigm предложил, реализован в FraxSwap.

Governance токены и voting механики

OpenZeppelin Governor — стандартная реализация on-chain governance. Модульная архитектура: GovernorVotes для counting, GovernorTimelockControl для timelock execution, GovernorSettings для изменяемых параметров.

Quorum — минимальный процент supply для валидности голосования. Слишком высокий quorum = apathy failure (не набирается голосов). Слишком низкий = whale capture. Compound установил quorum 400k COMP (4% supply) — на практике достигается редко без координации крупных holders.

Flash loan governance attack — атакующий занимает токены через flash loan, делегирует их себе, создаёт proposal или голосует, возвращает токены. ERC-20Votes с snapshot по номеру блока полностью блокирует это: нужно иметь токены на момент создания snapshot, который берётся в момент создания proposal.

Delegation — пользователи с малыми балансами часто не голосуют. Liquid delegation (как в Optimism) позволяет делегировать voting power конкретным addresses (delegates) без передачи ownership токенов.

Стек для токен-разработки

Контракты: Solidity 0.8.x, OpenZeppelin Contracts 5.x (ERC20, ERC20Permit, ERC20Votes, Governor, TimelockController, TokenVesting)

Аудит токеномики: Python модели с симуляцией emission/demand, cadCAD для complex systems modeling

Деплой и управление: Foundry scripts, Gnosis Safe для treasury, OpenZeppelin Defender для автоматизации

Аналитика: Dune Analytics для on-chain метрик, Token Terminal для protocol revenue

Процесс

Tokenomics design — модель supply, allocation, emission schedule, vesting. Стресс-тестирование сценариев (bear market, whale exit, governance capture attempt).

Контракт разработка — ERC-20 + extensions, vesting, governance. Foundry fuzz тесты на vesting calculations, governance thresholds.

Аудит — особое внимание на governance attack vectors, vesting bypass, permit replay attacks.

LBP / launch — выбор механики, настройка параметров, мониторинг первых 24 часов.

Post-launch — мониторинг supply distribution через Dune, governance participation metrics, treasury management.

Сроки

  • ERC-20 с permit и basic governance: 2–3 недели
  • Vesting контракт с revocation и cliff: 2–4 недели
  • Полный governance (Governor + Timelock + Token): 4–7 недель
  • Токен + LBP + governance + vesting: 8–14 недель