Перейти к основному содержимому

Evm

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

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

ИсточникОпционально — установка через vibeos skills install official/blockchain/evm
Путьoptional-skills/blockchain/evm
Версия1.0.0
АвторMibayy (@Mibayy), youssefea (@youssefea), ethernet8023 (@ethernet8023), VibeOS
Лицензия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​

к сведению

Ниже приведено полное описание навыка, которое VibeOS загружает при его активации. Агент видит эти инструкции, когда навык активен.

Навык EVM Blockchain

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

Поддерживает 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/, включены в этот навык. Передавайте --chain base в любую команду для работы с Base.


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

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

Предварительные требования​

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

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

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


Быстрая справка​

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

# Сеть и цены
python3 $SCRIPT stats # Статистика Ethereum
python3 $SCRIPT stats --chain arbitrum # Статистика Arbitrum
python3 $SCRIPT compare # Газ + цены ВСЕ 8 сетей

# Кошелек
python3 $SCRIPT wallet 0xd8dA...96045 # Портфель (ETH + ERC-20)
python3 $SCRIPT wallet 0xd8dA...96045 --chain bsc
python3 $SCRIPT multichain 0xd8dA...96045 # Тот же кошелек во ВСЕХ сетях

# Токены и цены
python3 $SCRIPT price ETH
python3 $SCRIPT price 0xdAC1...1ec7 # По адресу контракта
python3 $SCRIPT token 0xdAC1...1ec7 # Метаданные ERC-20 + рыночная капитализация

# Транзакции
python3 $SCRIPT tx 0x5c50...f060 # Детали транзакции
python3 $SCRIPT decode 0x5c50...f060 # Декодирование входных данных (4byte.directory)
python3 $SCRIPT activity 0xd8dA...96045 # Недавние транзакции

# Газ
python3 $SCRIPT gas # Цены газа + оценка стоимости
python3 $SCRIPT gas --chain optimism

# Безопасность
python3 $SCRIPT allowance 0xd8dA...96045 # Опасные аппрувы ERC-20
python3 $SCRIPT contract 0xdAC1...1ec7 # Инспекция контракта (прокси? стандарты?)

# ENS
python3 $SCRIPT ens vitalik.eth # Имя -> адрес + профиль
python3 $SCRIPT ens 0xd8dA...96045 # Адрес -> ENS-имя

# Обнаружение китов
python3 $SCRIPT whale # Крупные переводы (последние 20 блоков, >$10k)
python3 $SCRIPT whale --blocks 50 --min-usd 100000 --chain arbitrum

Процедура​

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

python3 --version   # требуется 3.8+
python3 ~/.vibeos/skills/blockchain/evm/scripts/evm_client.py stats

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

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

python3 $SCRIPT wallet 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045
python3 $SCRIPT wallet 0xd8dA... --chain bsc --no-prices # быстрее

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

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

python3 $SCRIPT multichain 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045

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

3. Сравнение (Газ + Цены)​

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

python3 $SCRIPT compare

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

python3 $SCRIPT tx 0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060
python3 $SCRIPT decode 0x5c504ed... # Показывает человекочитаемую сигнатуру функции

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

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

python3 $SCRIPT ens vitalik.eth          # -> 0xd8dA... + аватар + ссылки на соцсети
python3 $SCRIPT ens 0xd8dA...96045 # -> vitalik.eth

6. Проверка allowance (Безопасность)​

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

python3 $SCRIPT allowance 0xYourWallet

Помечает аппрувы UNLIMITED как ВЫСОКИЙ риск.

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

python3 $SCRIPT contract 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48   # USDC (прокси)
python3 $SCRIPT contract 0xdAC17F958D2ee523a2206206994597C13D831ec7 # USDT (ERC-20)

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

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

python3 $SCRIPT whale                                    # ETH, последние 20 блоков, >$10k
python3 $SCRIPT whale --blocks 50 --min-usd 50000 --chain bsc

9. Газовый трекер​

python3 $SCRIPT gas
python3 $SCRIPT gas --chain polygon

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


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

КлючНазваниеНативный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). Для полной истории используйте API Etherscan.
  • multichain запускает 8 параллельных потоков — может вызвать ограничения частоты на публичных RPC.
  • Разрешение ENS зависит от одного публичного эндпоинта (ensideas.com / ens.vitalik.ca) без резерва. Если этот эндпоинт недоступен, ens завершится ошибкой — повторите позже или используйте блокчейн-эксплорер.
  • Декодирование tx зависит от одного публичного эндпоинта (4byte.directory) без резерва. Селекторы, отсутствующие в их базе, отображаются как unknown.
  • Оценки газа L2 — только за исполнение на L2. На роллапах Base, Arbitrum, Optimism и zkSync фактическая стоимость транзакции также включает комиссию за публикацию данных на L1, которая зависит от размера calldata и текущих цен газа L1. Команда gas не оценивает этот L1-компонент. Для Base см. оракул комиссии L1 сети (контракт 0x420000000000000000000000000000000000000F).
  • Входные данные адреса/хеша tx проверяются на префикс 0x + правильную длину + hex, но регистр контрольной суммы EIP-55 не проверяется (RPC-эндпоинты принимают hex в любом регистре).

Верификация​

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

# Должен разрешить vitalik.eth в 0xd8dA...
python3 ~/.vibeos/skills/blockchain/evm/scripts/evm_client.py ens vitalik.eth