ERC20-адрес: формат, balanceOf и создание через API
Как устроены ERC-20-адрес и balanceOf изнутри, как это переносится на Polygon и Arbitrum, и как создавать и отслеживать ERC-20-адреса через REST вместо сырого JSON-RPC.
ERC20-адрес — это тот же самый формат адреса с префиксом 0x и длиной 42 символа, который Ethereum использует для любого аккаунта, — он становится «ERC-20-адресом» в контексте, когда этот аккаунт хранит токены, построенные по стандарту ERC-20. Поскольку формат общий для всех сетей EVM, тот же erc20-адрес, который вы используете в Ethereum, работает без изменений в Polygon и Arbitrum, хотя токены и балансы по этому адресу привязаны к конкретной сети. Эта страница описывает формат, вызов balanceOf, читающий баланс токена, и создание адресов через API.
Стандарт ERC-20 кратко
ERC-20 — это стандарт взаимозаменяемых токенов Ethereum: небольшой набор функций — transfer, approve, balanceOf и ещё несколько, — которые реализует любой совместимый токен-контракт, поэтому кошельки и биржи могут поддерживать новые ERC-20-токены без индивидуальной интеграции для каждого токена. Полная механика описана в статье о стандарте токенов ERC20 в блоге; эта страница сосредоточена на стороне адреса: что такое erc20-адрес и как работать с ним программно.
balanceOf: как на самом деле читается баланс ERC-20
Баланс токена ERC-20 хранится не на самом адресе — он хранится внутри смарт-контракта токена, в маппинге, ключом которого является адрес. balanceOf(address) — это стандартная функция только для чтения, которую предоставляет каждый ERC-20-контракт для получения этого значения. Вызов её напрямую означает кодирование сырого запроса JSON-RPC eth_call к контракту токена и декодирование возвращённого hex. API Chaingateway выполняет это декодирование за вас: эндпоинты баланса и истории транзакций возвращают обычные числа, поэтому «erc20 balanceof» перестаёт быть задачей сырого RPC и становится обычным ответом API.
Тот же адрес в Polygon и Arbitrum
Polygon и Arbitrum совместимы с EVM, поэтому адрес в Polygon и адрес в Arbitrum используют тот же формат 0x, что и адрес Ethereum, и фактически могут быть тем же самым адресом, если он выведен из того же ключа. Именно поэтому токены Polygon являются ERC-20-токенами в любом функциональном смысле — является ли Polygon сетью ERC-20-токенов, а не другим стандартом адресов, — POL и нативные токены Polygon реализуют тот же интерфейс, что и токены Ethereum. Токен-контракты различаются по сетям, даже когда формат адреса не различается; токен, развёрнутый в Ethereum, требует отдельного развёртывания (или моста), чтобы существовать в Polygon.
ERC-721 и ERC-721A: другой стандарт, тот же формат адреса
ERC-721 — это стандарт невзаимозаменяемых токенов (NFT) Ethereum: каждый ID токена уникален, а не взаимозаменяем, в отличие от взаимозаменяемых балансов ERC-20. ERC-721A — широко используемая, оптимизированная по gas реализация того же интерфейса ERC-721, популярная для NFT-коллекций, минтящихся пакетами; она меняет способ внутреннего хранения данных в контракте, а не то, как выглядит адрес владельца. Оба стандарта используют идентичный адрес 0x в стиле erc20 для владения. Статья о стандарте токенов ERC721 подробно описывает сторону NFT.
Создание и чтение ERC-20-адресов через REST
| Эндпоинт | Что он делает |
|---|---|
POST /api/v2/ethereum/addresses | Сгенерировать новый адрес Ethereum |
POST /api/v2/ethereum/addresses/import | Импортировать приватный ключ, чтобы API мог подписывать от имени этого адреса |
POST /api/v2/ethereum/webhooks | Зарегистрировать вебхук для депозитов ERC-20 на адрес |
POST /api/v2/ethereum/transactions/erc20 | Отправить ERC-20-токен с адреса |
Такой же формат запроса применяется с /polygon/ или /arbitrum/ вместо /ethereum/ в пути, поскольку все три сети используют общий формат адреса и общий интерфейс ERC-20.
Нужны балансы ERC-20 без ручного декодирования вызовов balanceOf? Создайте бесплатный аккаунт и запросите тестовый адрес через REST — 7-дневный пробный период, без карты, без KYC.
FAQ: ERC-20-адреса
Готовы разрабатывать на Ethereum, Polygon или Arbitrum?
Создайте аккаунт и запросите тестовый баланс ERC-20 уже сегодня — 7-дневный пробный период, без карты, без KYC. Полный справочник — в документации Ethereum API, либо охватите все семь сетей с помощью multi-chain blockchain API.