---
title: "Стандарт токенов ERC-777"
description: "Узнайте об ERC-777, улучшенном стандарте взаимозаменяемых токенов с хуками, хотя для безопасности рекомендуется использовать ERC-20."
lang: ru
---

## Предупреждение {#warning}

**ERC-777 сложно реализовать правильно из-за его [уязвимости к различным формам атак](https://github.com/OpenZeppelin/openzeppelin-contracts/issues/2620). Вместо него рекомендуется использовать [ERC-20](/developers/docs/standards/tokens/erc-20/).** Эта страница сохранена в качестве исторического архива.

## Введение? {#introduction}

ERC-777 — это стандарт взаимозаменяемых токенов, улучшающий существующий стандарт [ERC-20](/developers/docs/standards/tokens/erc-20/).

## Предварительные требования {#prerequisites}

Для лучшего понимания этой страницы мы рекомендуем сначала прочитать об [ERC-20](/developers/docs/standards/tokens/erc-20/).

## Какие улучшения предлагает ERC-777 по сравнению с ERC-20? {#-erc-777-vs-erc-20}

ERC-777 предоставляет следующие улучшения по сравнению с ERC-20.

### Хуки {#hooks}

Хуки — это функции, описанные в коде смарт-контракта. Хуки вызываются, когда токены отправляются или получаются через контракт. Это позволяет смарт-контракту реагировать на входящие или исходящие токены.

Хуки регистрируются и обнаруживаются с использованием стандарта [ERC-1820](https://eips.ethereum.org/EIPS/eip-1820).

#### Чем хороши хуки? {#why-are-hooks-great}

1. Хуки позволяют отправлять токены на контракт и уведомлять его в рамках одной транзакции, в отличие от [ERC-20](https://eips.ethereum.org/EIPS/eip-20), который требует двойного вызова (`approve`/`transferFrom`) для достижения этой цели.
2. Контракты, которые не зарегистрировали хуки, несовместимы с ERC-777. Отправляющий контракт прервет транзакцию, если получающий контракт не зарегистрировал хук. Это предотвращает случайные переводы на смарт-контракты, не поддерживающие ERC-777.
3. Хуки могут отклонять транзакции.

### Десятичные знаки {#decimals}

Стандарт также устраняет путаницу вокруг `decimals`, возникающую в ERC-20. Эта ясность улучшает опыт разработчиков.

### Обратная совместимость с ERC-20 {#backwards-compatibility-with-erc-20}

С контрактами ERC-777 можно взаимодействовать так же, как если бы они были контрактами ERC-20.

## Дополнительная литература {#further-reading}

[EIP-777: Стандарт токенов](https://eips.ethereum.org/EIPS/eip-777)