
ERC-777 — це стандарт токенів у мережі Ethereum, який визначає правила передачі, отримання й авторизації токенів. Його реалізують через смартконтракти, щоб забезпечити уніфіковану обробку токенів у гаманцях, DApps та на біржах.
Стандарт токенів — це набір правил, подібний до правил дорожнього руху: різні застосунки — різні транспортні засоби, які можуть безперешкодно взаємодіяти в одній блокчейн-мережі, якщо дотримуються однакових правил. ERC-777 зберігає знайомі способи переказу, але пропонує гнучкіші інтерфейси взаємодії.
ERC-777 створили для подолання обмежень попередніх стандартів: деякі адреси контрактів не могли отримувати токени, і відновити їх після помилкового переказу було неможливо. Крім того, застосунки прагнули автоматично отримувати сповіщення про надходження коштів для запуску додаткових процесів, чого не підтримував ERC-20.
У ERC-20 перекази токенів відбуваються як «тиха доставка»: отримувач не отримує сповіщення, а контракти не можуть повідомити, чи можуть вони безпечно отримати токени. ERC-777 підвищує безпеку та програмованість.
ERC-777 використовує два основні механізми: зворотні виклики (callbacks) та операторів. Зворотні виклики — це сповіщення про доставку. Оператори — це уповноважені агенти, які діють від імені користувача. Обидва механізми реалізовані через стандартизовані інтерфейси контрактів.
Крок 1. Відправник може ініціювати зворотний виклик перед переказом. Якщо зареєстровано send callback, контракт сповіщає його перед списанням токенів, дозволяючи виконати перевірку білого списку або лімітів.
Крок 2. Контракт оновлює баланси. Після перевірок контракт списує токени з балансу відправника, зараховує їх на баланс отримувача та фіксує подію для блокчейн-експлорерів і DApps.
Крок 3. Одержувач може ініціювати зворотний виклик на отримання. Якщо отримувач — контракт із підтримкою відповідного інтерфейсу, він отримує сповіщення про надходження коштів, що дозволяє вести облік, видавати квитанції або відхиляти підозрілі перекази.
Оператор — це третя сторона, якій акаунт дозволяє надсилати токени від свого імені: це зручно для кастодіальних рішень, масових платежів чи корпоративних процесів. Виявлення зворотних викликів і операторів здійснюється через реєстр контрактів ERC-1820, який фіксує, які інтерфейси реалізує певна адреса.
Головна відмінність — у способі взаємодії. ERC-20 простіший і працює як «сліпий депозит»: отримувач пасивний. ERC-777 вводить зворотні виклики на отримання, що дозволяє отримувачам приймати рішення щодо токенів і знижує ризик помилкових переказів і блокування коштів.
Ще одна важлива відмінність — оператори. ERC-20 використовує approve→transferFrom для делегованих переказів, ERC-777 має вбудовану підтримку операторів, що спрощує дії кастодіанів чи масових процесорів.
Для сумісності багато реалізацій ERC-777 підтримують функції ERC-20 для роботи з існуючими гаманцями та DeFi-протоколами. Якщо використовуються лише функції зворотних викликів ERC-777, для інтеграції зі старими протоколами потрібна додаткова адаптація.
У гаманцях перекази токенів ERC-777 схожі на інші токени. Основна різниця: деякі адреси контрактів автоматично перевіряються — якщо вони не заявили підтримку отримання токенів, переказ буде відхилено, що запобігає втратам у «чорних дірах».
Крок 1. Перевірте підтримку гаманцем або застосунком. Перегляньте документацію контракту токена чи деталі активу у гаманці, щоб з’ясувати, чи підтримує він ERC-777.
Крок 2. Протестуйте на невеликій сумі. Спочатку надішліть невеликий переказ, щоб перевірити, чи цільова адреса може отримати токени або чітко їх відхиляє — це допоможе уникнути помилок.
Крок 3. Переказуйте більші суми. Для бірж або контрактних адрес використовуйте визначені канали депозиту, якщо це можливо.
На торгових платформах на кшталт Gate на сторінках депозиту вказані вимоги до мережі та контракту. Якщо токен ERC-777, а платформа підтримує лише депозити ERC-20, дотримуйтесь інструкцій платформи: спробуйте тестовий депозит і переконайтеся в надходженні коштів перед більшими переказами.
У DeFi зворотні виклики ERC-777 дають змогу реалізувати «обробку при надходженні», наприклад, автоматичний облік або видачу балів і сертифікатів. У DApps це допомагає уникати помилкових переказів, запускати бізнес-логіку при надходженні коштів або автоматично списувати комісії.
Наприклад, контракт може перевіряти статус замовлення та підпис у tokensReceived, автоматично виконувати замовлення чи надавати права після отримання; або здійснювати контроль ризиків у tokensToSend, блокуючи виведення на підозрілі адреси. Вбудована бізнес-логіка у зворотні виклики створює більш компактні робочі процеси та зменшує кількість транзакцій.
Станом на 2025 рік більшість основних кредитних протоколів та агрегаторів підтримують ERC-20. Деякі гаманці та контракти вже підтримують зворотні виклики ERC-777 та операторів. Нові застосунки зі зворотними викликами можуть зменшити кількість ручних підтверджень і дій користувача.
Зворотні виклики підвищують програмованість, але створюють ризики реентерабельності ("reentrancy" — повторний виклик зовнішньої функції під час зворотного виклику при переказі токенів), що може порушити баланси, якщо контракт-одержувач не захищено належним чином.
Для сумісності деякі старі протоколи підтримують лише процеси approve і transfer ERC-20 та не розуміють зворотних викликів чи ролей операторів ERC-777; частина контрактних адрес не зареєстровані як одержувачі в ERC-1820, що призводить до відхилення переказів або потреби у резервних шляхах.
Користувачам варто спершу тестувати невеликі транзакції. Розробникам потрібно впроваджувати захист від реентерабельності у критичних функціях і ретельно перевіряти сумісність у гаманцях, на біржах і в маршрутизаторах.
Якщо ваша мета — широке впровадження у DeFi та на біржах без потреби у зворотних викликах чи функціях операторів, доцільніше залишатися у перевіреній екосистемі ERC-20.
Якщо ваш DApp потребує миттєвого виконання бізнес-логіки при надходженні коштів, детального управління ризиками чи масових делегованих операцій, ERC-777 оптимізує транзакції та зменшить втрати від помилкових переказів, але потребує ретельного тестування та адаптації.
Практичний підхід — гібридна стратегія: реалізуйте функції ERC-20 у контракті ERC-777, чітко документуйте інструкції та забезпечте альтернативні сценарії без залежності від зворотних викликів для критичних операцій.
Крок 1. Правильно інтегруйте з ERC-1820. Після розгортання зареєструйте реалізатори у реєстрі 1820, щоб інтерфейси tokensSender і tokensRecipient були доступні для виявлення.
Крок 2. Додавайте захист від реентерабельності. Використовуйте захист або патерн Checks-Effects-Interactions у функціях callback, які можуть викликати зовнішні контракти.
Крок 3. Забезпечуйте подвійні інтерфейси. Окрім методів ERC-777, залишайте поширені функції ERC-20, такі як transfer і approve, для ширшої сумісності.
Крок 4. Явно обробляйте контракти-одержувачі. Для адрес контрактів без інтерфейсу отримання або відхиляйте перекази, або пропонуйте безпечний шлях пониження, щоб уникнути блокування коштів.
Крок 5. Тестуйте у різних екосистемах. Проводьте наскрізні тести з популярними гаманцями, маршрутизаторами й торговими платформами — охоплюйте тестові перекази, масові списання, невдалі відкати — і забезпечте чіткі інструкції для користувачів.
ERC-777 — це вдосконалений стандарт токенів Ethereum, орієнтований на інтерактивні функції. Зворотні виклики та оператори підвищують безпеку й оптимізують транзакційні процеси, але створюють ризики реентерабельності та питання сумісності. Для автоматизації й детального контролю ризиків ERC-777 варто розглянути; для максимальної сумісності доцільно залишатися на ERC-20 або використовувати обидва стандарти. Користувачам і командам слід завжди перевіряти функціонал на невеликих сумах і уважно стежити за сумісністю платформи.
Головна перевага ERC-777 — механізм hook: контракти можуть автоматично виконувати логіку при переказі токенів без додаткових етапів схвалення. Це дозволяє здійснювати переказ токенів і взаємодію з контрактом в одній транзакції, що значно спрощує DeFi-процеси. Порівняно з approve-and-transfer у ERC-20, ERC-777 ефективніший і забезпечує кращий користувацький досвід.
Найчастіша причина — гаманець чи контракт отримувача не підтримує hook-механізм ERC-777. Якщо переказ викликає hook-функцію, але вона реалізована неправильно, транзакцію буде відхилено. Щоб вирішити проблему, переконайтеся, що отримувач підтримує ERC-777, або скористайтеся сумісним гаманцем чи біржею.
Повна заміна малоймовірна. ERC-777 має ширший функціонал, але обмеження сумісності й інерція екосистеми забезпечують домінування ERC-20. ERC-777 впроваджують нові проекти чи вузькопрофільні сценарії; обидва стандарти, ймовірно, співіснуватимуть. Обирайте стандарт під потреби проекту: для простоти — ERC-777, для сумісності — ERC-20.
Gate підтримує торгівлю токенами ERC-777; перед операціями переконайтесь, що токен додано до лістингу. Деякі старі гаманці не підтримують ERC-777 — використовуйте актуальні версії гаманців або Web3-гаманці, такі як MetaMask, для депозитів і виведення. Якщо виведення не вдається, зверніться до служби підтримки для перевірки сумісності токена.
Глибокі технічні знання не обов’язкові, але базове розуміння корисне. Як користувач: ERC-777 спрощує перекази; не всі гаманці сумісні; у разі проблем не панікуйте. Якщо ви працюєте через біржі на кшталт Gate, питання сумісності вирішує платформа — користуйтесь впевнено.


