Разработка security-токена (STO)

Проектируем и разрабатываем блокчейн-решения полного цикла: от архитектуры смарт-контрактов до запуска DeFi-протоколов, NFT-маркетплейсов и криптобирж. Аудит безопасности, токеномика, интеграция с существующей инфраструктурой.
Показано 1 из 1 услугВсе 1306 услуг
Разработка security-токена (STO)
Сложная
от 2 недель до 3 месяцев
Часто задаваемые вопросы
Направления блокчейн-разработки
Этапы блокчейн-разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1221
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1163
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    855
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1056
  • image_logo-advance_0.png
    Разработка логотипа компании B2B Advance
    561
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    828

Разработка security-токена (STO)

Security token — это токен, который является ценной бумагой по законодательству применимой юрисдикции. Не по экономической сути («наш токен даёт право на прибыль»), а именно по юридической классификации. Это меняет всё: эмиссия, обращение, хранение — всё регулируется securities law. Игнорировать это означает работать с регуляторным риском, который рано или поздно материализуется.

Тест Хауи (Howey Test, США) классифицирует как security: вложение денег, в общее предприятие, с ожиданием прибыли, от усилий других. Большинство токенов, которые позиционируются как «utility», фактически проходят этот тест. Регулятор это знает.

Регуляторные режимы

США: Regulation D, S, A+

Reg D 506(b) — наиболее используемый. Продажа только аккредитованным инвесторам (net worth > $1M или годовой доход > $200K), без general solicitation, до 35 неаккредитованных. Не нужна регистрация в SEC, только Form D filing. Lock-up период: 12 месяцев до перепродажи (Rule 144).

Reg D 506(c) — разрешает general solicitation, но только аккредитованные инвесторы, и эмитент обязан верифицировать статус (через certified letter от CPA/attorney или финансовые документы).

Reg S — продажа за пределами США. Распространённая комбинация: Reg D для US investors + Reg S для остальных.

Reg A+ — мини-IPO. До $75M, публичное размещение, упрощённая регистрация SEC. Открывает доступ к неаккредитованным инвесторам, но требует аудированной отчётности.

ЕС: MiCA и Prospectus Regulation

MiCA (Markets in Crypto-Assets Regulation) — вступил в силу полностью в 2024. Security tokens под MiCA классифицируются как Asset-Referenced Tokens или подпадают под существующее securities legislation (MiFID II). Требования: проспект эмиссии (или исключение при < €8M), лицензированный эмитент или агент.

Liechtenstein Blockchain Act (TVTG) — наиболее прогрессивное законодательство в Европе. Прямое юридическое признание токенов как инструментов. Ряд STO проектов регистрируется через Liechtenstein SP (Service Provider).

Альтернативные юрисдикции

Cayman Islands + BVI — SPV структуры для non-US, non-EU эмиссий. Меньше ограничений, но меньше доступа к институциональным инвесторам из регулируемых юрисдикций.

Abu Dhabi (ADGM) / Dubai (VARA) — активно развивают regulatory sandbox для STO. Реальные лицензии, но рынок меньше.

Технический стандарт: ERC-3643 (T-REX)

ERC-3643 (Token for Regulated EXchanges) — де-факто стандарт для STO в Европе. Разработан Tokeny (спонсирован EY и другими). Open source, широко аудирован.

Архитектура T-REX состоит из пяти on-chain компонентов:

1. Identity Registry — реестр верифицированных инвесторов:

Wallet Address → ONCHAINID Contract Address

2. Identity Registry Storage — отделённое хранилище для upgradability

3. Claim Topics Registry — какие claims требуются (KYC_APPROVED = 1, INVESTOR_ACCREDITED = 2, JURISDICTION_ALLOWED = 3...)

4. Trusted Issuers Registry — кто может выпускать claims (KYC провайдер, брокер, сам эмитент)

5. ERC-3643 Token — сам токен, проверяет Identity Registry при каждом transfer

// Упрощённая логика transfer в ERC-3643
function transfer(address _to, uint256 _amount) public override returns (bool) {
    require(
        _tokenIdentityRegistry.isVerified(_to),
        "Transfer to unverified identity"
    );
    require(
        !_frozenTokens[msg.sender] && !_frozenTokens[_to],
        "Wallet frozen"
    );
    
    // Проверка через Compliance контракт (лимиты, юрисдикции, etc.)
    require(
        _tokenCompliance.canTransfer(msg.sender, _to, _amount),
        "Compliance check failed"
    );
    
    return super.transfer(_to, _amount);
}

ONCHAINID (ERC-734/735)

Каждый верифицированный инвестор имеет ONCHAINID — смарт-контракт, который:

  • Хранит ключи (управление, исполнение, claim)
  • Хранит claims — подписанные утверждения от trusted issuers
  • Позволяет верифицировать identity без раскрытия личных данных
// Claim structure (ERC-735)
struct Claim {
    uint256 topic;       // тип утверждения (KYC = 1, ACCREDITED = 2...)
    uint256 scheme;      // схема подписи
    address issuer;      // кто выдал
    bytes signature;     // подпись issuer
    bytes data;          // данные (хеш документа)
    string uri;          // ссылка на оффчейн документ
}

KYC/AML интеграция

STO требует обязательного KYC каждого инвестора. Типичный flow:

  1. Инвестор проходит KYC через провайдера (Sumsub, Veriff, Fractal)
  2. Провайдер деплоит ONCHAINID для инвестора (или использует существующий)
  3. Провайдер как Trusted Issuer добавляет claim KYC_APPROVED в ONCHAINID
  4. Эмитент проверяет наличие claim в Identity Registry — инвестор допущен к токену
  5. При каждом трансфере контракт проверяет оба адреса

AML screening — непрерывный процесс. Chainalysis/Elliptic интегрируются для мониторинга транзакций. При высоком risk score — wallet может быть заморожен через freezeAddress().

Cap table management

On-chain cap table — один из аргументов для STO vs. традиционных ценных бумаг:

// ERC-3643 предоставляет точные данные для cap table
function getCapTable() external view returns (
    address[] memory shareholders,
    uint256[] memory balances,
    uint256 totalSupply
) {
    // shareholders — все holder-адреса из Identity Registry
    // balances — через stандартный balanceOf
    // totalSupply — полный supply
}

Вторичный реестр (off-chain база) синхронизируется через события Transfer, Frozen, Unfrozen. Это нужно для регуляторной отчётности: кто держит, сколько, с какого момента.

Lifecycle событий токена

Событие On-chain действие Off-chain действие
Первичное размещение mint → верифицированным адресам Form D filing, эскроу
Вторичный трансфер transfer + compliance check AML мониторинг, CAP table update
Дивиденды/купон distributeReturns в stablecoin Налоговая отчётность
Принудительный трансфер forcedTransfer (суд/регулятор) Судебный документ on-IPFS
Восстановление recoveryAddress Affidavit от инвестора
Burn/redemption burn Выплата выкупной цены

Комплаенс-контракт: кастомная логика

Отдельный Compliance контракт содержит бизнес-правила, не связанные с identity:

contract STOCompliance {
    uint256 public maxInvestors = 2000;       // Reg D лимит
    uint256 public maxBalancePerHolder;        // anti-concentration
    mapping(string => bool) public allowedCountries; // ISO 3166-1
    
    function canTransfer(address from, address to, uint256 amount) 
        external view returns (bool) 
    {
        // 1. Проверка юрисдикции получателя
        string memory country = identityRegistry.getCountry(to);
        if (!allowedCountries[country]) return false;
        
        // 2. Максимальное количество держателей
        if (token.balanceOf(to) == 0 && token.holderCount() >= maxInvestors) 
            return false;
        
        // 3. Лимит концентрации
        if (token.balanceOf(to) + amount > maxBalancePerHolder) return false;
        
        return true;
    }
}

Вторичный рынок

Для Reg D токенов вторичный рынок открывается через 12 месяцев (Rule 144). Платформы: tZERO, INX, MERJ Exchange — ATS (Alternative Trading Systems) с лицензиями для security token trading.

On-chain вторичный рынок: permissioned orderbook или AMM. Uniswap v4 hooks позволяют добавить KYC check в beforeSwap:

function beforeSwap(address sender, PoolKey calldata key, IPoolManager.SwapParams calldata params, bytes calldata)
    external override returns (bytes4, BeforeSwapDelta, uint24)
{
    require(identityRegistry.isVerified(sender), "KYC required for trading");
    return (this.beforeSwap.selector, toBeforeSwapDelta(0, 0), 0);
}

Разработка STO — это месяцы юридической и технической работы одновременно. Технический стек без правовой структуры не работает. Но правильно построенный STO — это токен с реальным правовым статусом и доступом к институциональным инвесторам.