Декодер сырых транзакций Ethereum

Вставьте подписанный или неподписанный RLP hex любой EVM-транзакции. Отправитель восстанавливается из подписи, calldata сопоставляется с распространёнными функциями ERC-20 и DeFi, а хеш вычисляется, чтобы вы могли найти её в обозревателе.

Подписанная или неподписанная. Декодирование выполняется в вашем браузере; никуда ничего не отправляется, поэтому это безопасно для неподписанных транзакций, которые вы собираетесь подписать.
Примеры:

Декодируется в вашем браузере на JavaScript. Адреса никогда не загружаются на сервер и не сохраняются.

Что такое сырая транзакция Ethereum?

Сырая транзакция Ethereum — это RLP-кодированная байтовая строка, которую кошелёк создаёт при подписании: для типизированных транзакций однобайтный префикс типа (0x01–0x04), за которым следует RLP-список из nonce, полей комиссии, лимита газа, to, value, data и подписи ECDSA (v, r, s). Адрес отправителя не хранится; узлы восстанавливают его из подписи, а хеш транзакции — это Keccak-256 именно этих байт.

Где взять сырую транзакцию

Пояснение полей

Максимальная суммарная комиссия — это лимит газа × максимальная плата за газ: самое большее, во что может обойтись транзакция; реальная комиссия обычно ниже. Неподписанный хеш — дайджест, который подписывает приватный ключ. Access list заранее объявляет ключи хранилища, чтобы снизить расход газа. Для blob-транзакций сами данные blob не входят в показанный здесь RLP — только их версионированные хеши.

Типы транзакций вкратце

ТипEIPПоля комиссииДополнительные поля
0 (legacy)chain ID по EIP-155 в vgasPriceнет
1EIP-2930gasPriceaccessList
2EIP-1559maxPriorityFeePerGas, maxFeePerGasaccessList
3EIP-4844как тип 2 плюс maxFeePerBlobGasblobVersionedHashes
4EIP-7702как тип 2authorizationList

Наглядный пример

Транзакция типа 2 с лимитом газа 21 000, maxFeePerGas 30 gwei и maxPriorityFeePerGas 2 gwei показывает максимальную суммарную комиссию 21 000 × 30 gwei = 630 000 gwei = 0,00063 ETH. Если базовая комиссия блока 12 gwei, эффективная цена — 12 + 2 = 14 gwei, а реальная комиссия — 294 000 gwei = 0,000294 ETH; оставшиеся 0,000336 ETH никогда не списываются. to, равный контракту USDT, с calldata, начинающейся с a9059cbb, — это перевод токена, и его поле value равно 0.

Нужно закодировать calldata или декодировать неизвестную функцию? Используйте ABI-кодировщик / декодер и поиск селекторов.

Часто задаваемые вопросы

Как восстанавливается отправитель?

Транзакция Ethereum не хранит адрес from. Декодер хеширует подписанные данные через Keccak-256 и использует значения r, s и v для восстановления публичного ключа, а затем выводит адрес — ровно так, как это делает каждый узел. Поэтому у неподписанных транзакций отправитель не показывается.

Что означают типы транзакций?

Тип 0 — исходный формат с единой ценой газа. Тип 1 (EIP-2930) добавляет access list. Тип 2 (EIP-1559) заменяет цену газа на максимальную комиссию и приоритетную комиссию. Тип 3 (EIP-4844) несёт blob-коммитменты для роллапов. Тип 4 (EIP-7702) позволяет EOA делегировать выполнение коду контракта через список авторизаций.

Почему в 'to' показан адрес контракта, на который я не отправлял?

Если у транзакции нет получателя, она создаёт контракт, и декодер показывает адрес, который получит этот контракт, вычисленный из отправителя и nonce.

Как читать value для токенов?

У перевода ERC-20 value равен 0 ETH; сумма находится внутри calldata. Декодер показывает аргументы transfer(address,uint256) в сырых единицах; разделите на decimals токена в конвертере.

В чём разница между неподписанным хешем и хешем транзакции?

Неподписанный хеш — это Keccak-256 транзакции без подписи (для legacy-транзакций с chain ID вместо v, r, s согласно EIP-155); именно его подписывает приватный ключ. Хеш транзакции — это Keccak-256 полностью подписанной кодировки, и это тот ID, который показывают обозреватели.

Работает ли для BNB Chain, Polygon и L2?

Да. Все EVM-сети используют одну и ту же кодировку. Chain ID показывается вместе с названием для распространённых сетей.