ERC-1400 — это семейство интерфейсов для токенов, которые отражают право собственности на реальный или бумажный актив (ценные бумаги, доли SPV, паи фондов и пр.). В отличие от «чистых» ERC-20, здесь важнее не только баланс, но и правила оборота: кому разрешено держать токен, при каких условиях можно перевести, как оформлять корпоративные действия, где хранится регламент выпуска.
Стандарт не один: под «зонтиком» ERC-1400 живут четыре ключевых EIP:
- ERC-1594 (Core Security Token) — ядро правил выпуска/погашения и _pre-transfer_ проверок.
- ERC-1410 (Partially Fungible) — партиции: классы одного токена (по юрисдикции/категории/lock-up).
- ERC-1643 (Document Management) — крепление документов выпуска к контракту (PPM/IM/Terms) с хэшами.
- ERC-1644 (Controller Transfers) — управляемые переводы по решению эмитента/агента для правоприменения.
База по теме: RWA на блокчейне: что это, как устроено, риски и хранение. Доступ/оборот — Доступ и оборот RWA: whitelist, категории инвесторов, гео-ограничения и вторичный рынок (ATS/DEX/OTC), выкуп — Редемпшн RWA: как вывести деньги или получить актив — пошаговый гид, комиссии, сроки и риски, трансфер-агент — Трансфер-агент и реестр держателей RWA: как устроены корпоративные действия, выкуп и синхронизация с блокчейном, админ-ключи — Админ-ключи и апгрейды в RWA: pause/freeze/wipe, прокси-контракты, timelock и мультисиг — полный гид. Связанные стандарты: Erc 3643, Erc 4626. Термины: KYC — идентификация клиента на биржах и в криптосервисах, AML в крипте: что проверяют и зачем это нужно, Whitelist в RWA: что это, как попасть в список, как работают ограничения и что проверять инвестору.
Зачем RWA нужен именно ERC-1400
RWA-токен — это не просто «жетон». Он закрепляет право, а значит:
- Нужна идентификация держателя (KYC/KYB), гео-правила, категории инвесторов — см. Доступ и оборот RWA: whitelist, категории инвесторов, гео-ограничения и вторичный рынок (ATS/DEX/OTC).
- Требуются управляемые трансферы в особых случаях: фрод, судебный запрет, утрата доступа — см. Админ-ключи и апгрейды в RWA: pause/freeze/wipe, прокси-контракты, timelock и мультисиг — полный гид.
- Важно различать классы прав одного выпуска (А/В, регионы, lock-up) — делают партиции (ERC-1410).
- Регламенты и раскрытие должны быть доступны и проверяемы — документы (ERC-1643).
ERC-1400 решает всё это модульно и при этом может оставаться совместимым с ERC-20 для базовых операций/интеграций.
Карта семейства ERC-1400
| Подстандарт | За что отвечает | Ключевые вызовы/события | На заметку |
|---|---|---|---|
| ERC-1594 (Core) | Выпуск/погашение, ограничения оборота, _pre-transfer_ проверки | canTransfer, issue, redeem, коды причин отказа | Основа «правил» токена |
| ERC-1410 (Partitions) | Классы/партиции внутри одного токена | transferByPartition, balanceOfByPartition, события ChangedPartition | Чётко размечает права по категориям |
| ERC-1643 (Docs) | Документы выпуска с хэшами и метаданными | setDocument, getDocument, события DocumentUpdated | Привязывает PPM/IM/Terms к контракту |
| ERC-1644 (Controller) | Управляемые переводы/отзыв по решению контролёра | controllerTransfer, controllerRedeem | Для правоприменения в исключениях |
На практике конкретная реализация может включать не все подстандарты, но ядро 1594 и партиции 1410 — самые частые.
Как выглядят процессы на ERC-1400
1) Подписка (выпуск). Инвестор проходит KYC/KYB; его адрес вносят в Whitelist в RWA: что это, как попасть в список, как работают ограничения и что проверять инвестору. Эмитент/агент вызывает issue/issueByPartition — токены появляются у инвестора в нужной партиции (напр., PARTITION_US_QUALIFIED).
2) Перевод (вторичка/P2P). Перед transfer/transferByPartition вызывается логика проверки: canTransfer(from, to, amount, data) → OK или reason code. Проверяются whitelist, гео/категории, lock-up, лимиты.
3) Корпоративные действия. Купоны/дивиденды/амортизация/конверсии — через учёт по партициям и списки держателей на *record date*. Документы/анонсы крепят через ERC-1643. Детали — Трансфер-агент и реестр держателей RWA: как устроены корпоративные действия, выкуп и синхронизация с блокчейном, Как читать отчёты по RWA: NAV, резервы, аудиты и корпоративные действия — полный гид для инвестора.
4) Погашение/выкуп. redeem/redeemByPartition: токены списываются, дальше — расчёт денег/поставки по регламенту, см. Редемпшн RWA: как вывести деньги или получить актив — пошаговый гид, комиссии, сроки и риски.
5) Инциденты. При фроде/суде/санкциях — *freeze*, затем controllerTransfer/controllerRedeem (ERC-1644) по документам TA. Политики и роли — Админ-ключи и апгрейды в RWA: pause/freeze/wipe, прокси-контракты, timelock и мультисиг — полный гид.
Партиции (ERC-1410): зачем и как их проектировать
Партиция — это «карман» внутри одного токена. Баланс хранится по множеству партиций, а не одним числом.
Типовые схемы:
- Юрисдикции: EU_PRO, US_QIB, ROW_RETAIL_LIMITED.
- Категории инвесторов: QUALIFIED, ACCREDITED, RETAIL_LOCKED.
- Статусы/окна: LOCKUP_6M, FREELY_TRANSFERABLE.
- Сети/каналы: при мультичейне и мостах (подробнее — Мосты и мультичейн для RWA: официальные маршруты, модели перевыпуска, реестр прав и риски).
Что решить заранее:
- Правила конверсии между партициями (сняли lock-up → перенос баланса).
- Разделение прав на выплаты по классам (A/B shares).
- Согласование партиций с реестром TA (offchain-истина).
Плюсы: гибкость комплаенса без выпуска десятков токенов. Минусы: усложнение UX/отчётности; нужно учить фронт-энд читать balanceOfByPartition.
Проверки перед переводом: canTransfer и reason codes
ERC-1594 вводит предварительную проверку. Вместо того чтобы «ловить» ошибку в середине транзакции, контракт может вернуть код причины отказа, объясняющий, что не так:
- 0x50 (Transfer Verified) — ок.
- 0x51 (Insufficient Balance) — не хватает токенов (или неверная партиция).
- 0x52 (Insufficient Allowance) — оператору не выдано право.
- 0x53 (Transfer Blocked) — нарушены правила (нет в whitelist, запрещённая гео/категория, lock-up).
- 0x54 (Identity Restriction) — идентичность/статус не подходит.
- 0x55 (Partition Restriction) — перевод невозможен между партициями без конверсии.
Точные коды и названия зависят от реализации, но идея одна: объяснять отказ, чтобы инвестор и интеграторы понимали, что исправлять (KYC, партиция, окно).
Документы выпуска на контракте (ERC-1643)
Чтобы не спорить о версиях условий, стандарт позволяет «прикрепить» документ в контракт:
- setDocument(name, uri, documentHash) — добавляет/обновляет документ (например, PPM_v1.2, URI на хостинг/IPFS и хэш).
- getDocument(name) — возвращает актуальную версию.
- События DocumentUpdated → фронт-энд и аудиторы видят историю.
Зачем это в ончейне:
- Прозрачность: любой может проверить, «той ли версии» вы следуете.
- Снижение споров: у реестра и контракта одинаковая ссылка на регламент.
- Удобно для due diligence — см. Due Diligence RWA: большой чек-лист проверки эмитента, актива и смарт-контрактов.
Управляемые трансферы (ERC-1644): границы и безопасность
controllerTransfer/controllerRedeem дают контролёру (эмитент/TA) возможность принудительного перевода/погашения, когда этого требует закон или защита прав инвесторов:
- Восстановление права при краже/утрате доступа (после *freeze* и проверки документов).
- Исполнение судебного акта/санкционного предписания.
- Техническая коррекция при сбое мостов/миграции.
Требуйте:
- Политику применения (когда/кто/как журналирует).
- Мультисиг + timelock для критических ролей — см. Админ-ключи и апгрейды в RWA: pause/freeze/wipe, прокси-контракты, timelock и мультисиг — полный гид.
- Публичные анонсы и логи в обозревателе.
Совместимость с ERC-20 и влияние на UX
Большинство реализаций ERC-1400 реализуют и интерфейс ERC-20, чтобы не ломать кошельки/обменники/обозреватели. Но:
- Баланс на экране кошелька может не учитывать партиции. Для точности фронт-энд должен читать partitionsOf(holder) и суммировать balanceOfByPartition.
- transfer может фейлиться из-за правил (даже при «достаточном» балансе). UX должен уметь показать причину (reason code).
- Для whitelisted-DEX/ATS добавляются _off-chain_ проверки адресов.
ERC-1400 vs ERC-3643: что выбрать под проект
ERC-3643 (T-REX) — более «современный» стандарт, в котором подчёркнута реестр идентичностей и модуль соответствия (Identity Registry, Compliance). В нём многие практики, «размазанные» по 1400-семейству, сведены в цельную архитектуру.
| Критерий | ERC-1400 | ERC-3643 |
|---|---|---|
| Подход | Модульная «семья» (1594/1410/1643/1644) | Композит с явной Identity Registry/Compliance |
| Миграция старых выпусков | Проще «докрутить» к ERC-20 | Часто «переезд» на готовый стек |
| Партиции | Сильная сторона (1410) | Есть классы/правила соответствия |
| Документы | 1643 в стандарте | Есть механизмы метаданных/ссылок |
| Контролируемые трансферы | 1644 | Аналог в Compliance/Controller |
| Экосистема инструментов | Разнородная | Богатые готовые SDK/реестры |
Практичный совет: Если у вас исторический выпуск/кастомный стек — расширяйте ERC-20 до ERC-1400 (минимум 1594+1410). Если строите с нуля и хотите «из коробки» реестр идентичностей, — смотрите Erc 3643. Оба подходят для RWA, важнее процессы TA и комплаенса.
ERC-1400 и ERC-4626: когда комбинировать
Для пулов/фондов часто используют Erc 4626, который описывает «сейф» (доли ↔ активы, totalAssets, convertToShares). Сочетание:
- 4626 отвечает за экономику долей,
- 1400 — за доступ/партиции/правоприменение.
Такой гибрид удобен для приватного кредита/портфелей: deposit/mint с проверкой адреса и партиции; выплаты купонов/амортизации учитывают классы.
Мультичейн и мосты: как не потерять право
Партиции удобны для маркировки «сетевых» классов, но право определяется реестром держателей у TA. При переносе:
- Только официальные мосты и маршруты — Мосты и мультичейн для RWA: официальные маршруты, модели перевыпуска, реестр прав и риски.
- Адрес в целевой сети должен быть в Whitelist в RWA: что это, как попасть в список, как работают ограничения и что проверять инвестору.
- Логи burn/mint и конверсии партиций должны сходиться с оффчейн-реестром.
- На *record date* TA агрегирует держателей по сетям/партициям — см. Трансфер-агент и реестр держателей RWA: как устроены корпоративные действия, выкуп и синхронизация с блокчейном.
Роли, паузы и апгрейды: операционная дисциплина
ERC-1400 не навязывает конкретную «схему ключей», но практика RWA требует:
- Разделить роли: owner/upgrader, pauser, freezer, controller, documentAdmin.
- Повесить timelock на апгрейды/критические смены конфигураций.
- Держать ключи на мультисиге (M-of-N), хранение — кастоди/MPC.
- Вести публичные логи Upgraded, RoleGranted, Paused — Админ-ключи и апгрейды в RWA: pause/freeze/wipe, прокси-контракты, timelock и мультисиг — полный гид.
Паттерны интеграции (для разработчиков)
Шлюз подписки. Фронт-энд «узнаёт» партицию инвестора по его профилю (регион, категория) и вызывает issueByPartition. Перед транзакцией — canTransfer на «сухую» проверку.
Whitelisted-DEX. Пулы проверяют isWhitelisted(msg.sender) на вход/выход; для разных партиций — разные пулы/рынки или «конверсия перед свопом».
ATS/OTC. Сделка проходит у брокера/TA, затем OTC-сервис вызывает controllerTransfer/transferByPartition и обновляет реестр.
Документы и анонсы. Новый отчёт/регламент → setDocument с URI и хэшем → событие DocumentUpdated → лента анонсов на сайте/в блок-обозревателе.
Частые ошибки внедрения
- Сумбур с партициями. Не определили правила конверсий — инвесторы «залипают» в LOCKUP_*. Решение: описать переходы и тесты.
- Отсутствие reason codes. Пользователь видит «ошибка», но не понимает, почему. Решение: полноценная реализация canTransfer и фронт-энд-подсказки.
- Документы вне ончейна. Споры «какая версия PPM». Решение: setDocument + хэши и чейнджлог.
- Один ключ управляет всем. Риск злоупотребления/взлома. Решение: мультисиг+timelock — Админ-ключи и апгрейды в RWA: pause/freeze/wipe, прокси-контракты, timelock и мультисиг — полный гид.
- Мост «мимо» официального. Партиции не спасут, если реестр не признаёт перенос. Решение: Мосты и мультичейн для RWA: официальные маршруты, модели перевыпуска, реестр прав и риски, Bridge Risks.
- Игнор TA. Ончейн «пустил», реестр — нет. Решение: процесс через Трансфер-агент и реестр держателей RWA: как устроены корпоративные действия, выкуп и синхронизация с блокчейном.
FAQ
Можно ли обойтись без партиций и просто «чёрно-белым» списком? Можно, но вы потеряете гибкость: юрисдикции/категории/lock-up лучше размечать партициями, иначе быстро придёте к «зоопарку» токенов.
Зачем хранить документы на контракте, если есть сайт? Ончейн-ссылка и хэш — способ доказать, какая версия действовала в момент операции. Сайт можно поменять, ончейн-событие — нет.
ERC-1644 — это «централизация»? Это инструмент правоприменения для security-подобных RWA. Риском станет только при отсутствии прозрачной политики и ограничений ролей. Требуйте мультисиг и timelock.
ERC-1400 конфликтует с ERC-20? Нет. Реализация обычно включает ERC-20 API. Но UX должен учитывать партиции и отказ по правилам.
Чем 1400 отличается от 3643 в повседневной работе? 3643 предлагает готовый фреймворк идентичностей/комплаенса; 1400 — более «конструктор». Выбирайте, исходя из требуемой степени готовности и экосистемы инструментов.
