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 сети |
|---|---|---|---|
| ethereum | Ethereum | ETH | 1 |
| bsc | BNB Chain | BNB | 56 |
| base | Base | ETH | 8453 |
| arbitrum | Arbitrum One | ETH | 42161 |
| polygon | Polygon | POL | 137 |
| optimism | Optimism | ETH | 10 |
| avalanche | Avalanche C | AVAX | 43114 |
| zksync | zkSync Era | ETH | 324 |
Подводные камни
- Бесплатный тариф 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