Evm

EVM-клиент только для чтения: кошельки, токены, газ на 8 сетях.

Метаданные навыка

ИсточникOptional — hermes skills install official/blockchain/evm
Путьoptional-skills/blockchain/evm
Версия1.0.0
АвторMibayy (@Mibayy), youssefea (@youssefea), ethernet8023 (@ethernet8023), Hermes Agent
ЛицензияMIT
Платформыlinux, macos, windows
ТегиEVM, Ethereum, BNB, BSC, Base, Arbitrum, Polygon, Optimism, Avalanche, zkSync, Blockchain, Crypto, Web3, DeFi, NFT, ENS, Whale, Security
Связанные навыкиsolana

Справочник: полный SKILL.md

инфо

Ниже — полное определение навыка, которое Hermes загружает при его активации. Именно это агент видит как инструкции, когда навык включён.

EVM Blockchain Skill

Запрос данных EVM-совместимых блокчейнов на 8 сетях с ценами в USD. 14 команд: портфолио кошелька, информация о токене, транзакции, история активности, трекер газа, статистика сети, поиск цены, мультичейн-скан, обнаружение китов, разрешение ENS, проверка аппрувов, инспектор контрактов и декодирование транзакций.

Поддерживает 8 сетей: Ethereum, BNB Chain (BSC), Base, Arbitrum One, Polygon, Optimism, Avalanche (C-Chain), zkSync Era.

API-ключ не нужен. Никаких внешних зависимостей — только стандартная библиотека Python (urllib, json, argparse, threading).

Заменяет отдельный навык base. Токены, специфичные для Base (AERO, DEGEN, TOSHI, BRETT, WELL, cbETH, cbBTC, wstETH, rETH), и весь RPC-функционал Base, ранее находившийся в optional-skills/blockchain/base/, теперь включены в этот навык. Для работы с Base передавайте --chain base в любую команду.


Когда использовать

  • Пользователь запрашивает баланс или портфолио кошелька на любой EVM-сети
  • Пользователь хочет проверить один и тот же кошелёк сразу на всех сетях
  • Пользователь хочет изучить транзакцию по хешу (или декодировать, что она сделала)
  • Пользователь хочет получить метаданные ERC-20 токена, цену, общее предложение или рыночную капитализацию
  • Пользователь хочет посмотреть историю последних транзакций для адреса
  • Пользователь хочет узнать текущие цены на газ или сравнить комиссии по сетям
  • Пользователь хочет найти крупные переводы китов в последних блоках
  • Пользователь хочет разрешить ENS-имя (vitalik.eth) или обратно найти имя по адресу
  • Пользователь хочет проверить, есть ли у контракта опасные разрешения на токены
  • Пользователь хочет изучить смарт-контракт (прокси? ERC-20? ERC-721? размер байткода?)
  • Пользователь хочет сравнить стоимость газа по сетям перед транзакцией

Требования

Только стандартная библиотека Python 3.8+. Установка через pip не нужна. Котировки: бесплатный API CoinGecko (ограничение запросов ~10–30 в минуту). ENS: публичный API ensideas.com. Декодирование транзакций: публичный API 4byte.directory.

Переопределение RPC-эндпоинта: export EVM_RPC_URL=https://your-rpc.com

Путь к вспомогательному скрипту: ~/.hermes/skills/blockchain/evm/scripts/evm_client.py


Быстрый справочник

SCRIPT=~/.hermes/skills/blockchain/evm/scripts/evm_client.py

# Network & prices
python $SCRIPT stats                            # Ethereum stats
python $SCRIPT stats --chain arbitrum           # Arbitrum stats
python $SCRIPT compare                          # Gas + prices ALL 8 chains

# Wallet
python $SCRIPT wallet 0xd8dA...96045            # Portfolio (ETH + ERC-20)
python $SCRIPT wallet 0xd8dA...96045 --chain bsc
python $SCRIPT multichain 0xd8dA...96045        # Same wallet on ALL chains

# Tokens & prices
python $SCRIPT price ETH
python $SCRIPT price 0xdAC1...1ec7              # By contract address
python $SCRIPT token 0xdAC1...1ec7              # ERC-20 metadata + market cap

# Transactions
python $SCRIPT tx 0x5c50...f060                 # Transaction details
python $SCRIPT decode 0x5c50...f060             # Decode input data (4byte.directory)
python $SCRIPT activity 0xd8dA...96045          # Recent transactions

# Gas
python $SCRIPT gas                              # Gas prices + cost estimates
python $SCRIPT gas --chain optimism

# Security
python $SCRIPT allowance 0xd8dA...96045         # Dangerous ERC-20 approvals
python $SCRIPT contract 0xdAC1...1ec7           # Contract inspection (proxy? standards?)

# ENS
python $SCRIPT ens vitalik.eth                  # Name -> address + profile
python $SCRIPT ens 0xd8dA...96045               # Address -> ENS name

# Whale detection
python $SCRIPT whale                            # Large transfers (last 20 blocks, >$10k)
python $SCRIPT whale --blocks 50 --min-usd 100000 --chain arbitrum

Порядок работы

0. Проверка установки

python --version   # 3.8+ required
python ~/.hermes/skills/blockchain/evm/scripts/evm_client.py stats

1. Портфолио кошелька

Нативный баланс + известные ERC-20 токены, отсортированные по стоимости в USD.

python $SCRIPT wallet 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045
python $SCRIPT wallet 0xd8dA... --chain bsc --no-prices   # faster

2. Мультичейн-скан

Сканирует все 8 сетей одновременно для одного адреса — параллельно, в потоках.

python $SCRIPT multichain 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045

Вывод: нативный баланс + токены по каждой сети + итоговая сумма в USD.

3. Сравнение (газ + цены)

Все 8 сетей запрашиваются параллельно. Показывает самую дешёвую и самую дорогую сеть.

python $SCRIPT compare

4. Детали и декодирование транзакций

python $SCRIPT tx 0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060
python $SCRIPT decode 0x5c504ed...   # Выводит сигнатуру функции в читаемом виде

Декодирование использует 4byte.directory для перевода 0xa9059cbb -> transfer(address,uint256).

5. Разрешение ENS

python $SCRIPT ens vitalik.eth          # -> 0xd8dA... + avatar + social links
python $SCRIPT ens 0xd8dA...96045       # -> vitalik.eth

6. Проверка аппрувов (безопасность)

Проверяет ERC-20 аппрувы, выданные известным контрактам DEX и мостов.

python $SCRIPT allowance 0xYourWallet

Неограниченные аппрувы помечаются как HIGH risk.

7. Инспектор контрактов

python $SCRIPT contract 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48   # USDC (proxy)
python $SCRIPT contract 0xdAC17F958D2ee523a2206206994597C13D831ec7   # USDT (ERC-20)

Определяет: прокси (EIP-1967/EIP-1167), ERC-20, ERC-721, ERC-165. Выводит размер байткода и адрес реализации для прокси.

8. Обнаружение китов

python $SCRIPT whale                                    # ETH, last 20 blocks, >$10k
python $SCRIPT whale --blocks 50 --min-usd 50000 --chain bsc

9. Трекер газа

python $SCRIPT gas
python $SCRIPT gas --chain polygon

Показывает цену в gwei + стоимость в USD для: обычного перевода, перевода ERC-20, approve, swap, минта NFT, перевода NFT.


Поддерживаемые сети

КлючНазваниеНативныйChain ID
ethereumEthereumETH1
bscBNB ChainBNB56
baseBaseETH8453
arbitrumArbitrum OneETH42161
polygonPolygonPOL137
optimismOptimismETH10
avalancheAvalanche CAVAX43114
zksynczkSync EraETH324

Подводные камни

  • Бесплатный тариф CoinGecko: ~10–30 запросов в минуту. Используйте --no-prices для ускорения сканирования кошельков.
  • Публичные RPC могут ограничивать частоту запросов. Для продакшена задайте EVM_RPC_URL с приватным эндпоинтом.
  • wallet и allowance проверяют только известный список токенов (~30 на сеть). Для полного обнаружения токенов используйте блок-эксплорер.
  • activity сканирует только последние блоки (максимум 200). Для полной истории нужен Etherscan API.
  • multichain запускает 8 параллельных потоков — на публичных RPC это может вызвать ограничение частоты запросов.
  • Разрешение ENS зависит от единственного публичного эндпоинта (ensideas.com / ens.vitalik.ca) без запасного варианта. Если он недоступен, команда ens завершится ошибкой — попробуйте позже или воспользуйтесь блок-эксплорером.
  • Декодирование транзакций зависит от единственного публичного эндпоинта (4byte.directory) без запасного варианта. Селекторы, которых нет в их базе, отображаются как unknown.
  • Оценки газа для L2 — только L2-выполнение. На роллапах Base, Arbitrum, Optimism и zkSync реальная стоимость транзакции включает также комиссию за публикацию данных на L1, которая зависит от размера calldata и текущей цены газа на L1. Команда gas не учитывает эту L1-составляющую. Для Base конкретно смотрите оракул комиссий L1 (контракт 0x420000000000000000000000000000000000000F).
  • Адреса и хеши транзакций проверяются на наличие префикса 0x, правильную длину и hex-символы, однако соответствие контрольной сумме EIP-55 не проверяется (RPC-эндпоинты принимают hex в любом регистре).

Проверка работоспособности

# Должно вывести текущий блок, цену газа и цену ETH
python ~/.hermes/skills/blockchain/evm/scripts/evm_client.py stats

# Должно разрешить vitalik.eth в 0xd8dA...
python ~/.hermes/skills/blockchain/evm/scripts/evm_client.py ens vitalik.eth
перевод и редактура:

обновлено

⌕ ESC