Evm
只讀 EVM 客戶端:支持 8 條鏈上的錢包、代幣和 Gas 查詢。
技能元數據
| 來源 | 可選 — 使用 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 區塊鏈技能
使用 USD 定價查詢 8 條鏈上兼容 EVM 的區塊鏈數據。 14 個命令:錢包投資組合、代幣信息、交易、活動、Gas 追蹤器、 網絡統計、價格查詢、多鏈掃描、巨鯨檢測、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)以及此前位於optional-skills/blockchain/base/下的所有 Base RPC 功能均已合併到此技能中。 向任何命令傳遞--chain base即可覆蓋 Base 鏈。
何時使用
- 用戶詢問任何 EVM 鏈上的錢包餘額或投資組合
- 用戶希望一次性檢查同一錢包在所有鏈上的情況
- 用戶希望通過哈希檢查交易(或解碼其執行的操作)
- 用戶希望獲取 ERC-20 代幣的元數據、價格、供應量或市值
- 用戶希望獲取地址的最近交易歷史
- 用戶希望獲取當前 Gas 價格或比較各鏈之間的費用
- 用戶希望在最近的區塊中查找大型巨鯨轉賬
- 用戶要求解析 ENS 名稱(如 vitalik.eth)或對地址進行反向查找
- 用戶希望檢查合約是否具有危險的代幣授權
- 用戶希望檢查智能合約(是代理合約嗎?ERC-20?ERC-721?字節碼大小?)
- 用戶希望在交易前比較各鏈的 Gas 成本
前置條件
僅需 Python 3.8+ 標準庫。無需 pip 安裝。 定價:CoinGecko 免費 API(有限流,約 10-30 次請求/分鐘)。 ENS:ensideas.com 公共 API。 交易解碼:4byte.directory 公共 API。
覆蓋 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
python3 $SCRIPT stats # Ethereum stats
python3 $SCRIPT stats --chain arbitrum # Arbitrum stats
python3 $SCRIPT compare # Gas + prices ALL 8 chains
# Wallet
python3 $SCRIPT wallet 0xd8dA...96045 # Portfolio (ETH + ERC-20)
python3 $SCRIPT wallet 0xd8dA...96045 --chain bsc
python3 $SCRIPT multichain 0xd8dA...96045 # Same wallet on ALL chains
# Tokens & prices
python3 $SCRIPT price ETH
python3 $SCRIPT price 0xdAC1...1ec7 # By contract address
python3 $SCRIPT token 0xdAC1...1ec7 # ERC-20 metadata + market cap
# Transactions
python3 $SCRIPT tx 0x5c50...f060 # Transaction details
python3 $SCRIPT decode 0x5c50...f060 # Decode input data (4byte.directory)
python3 $SCRIPT activity 0xd8dA...96045 # Recent transactions
# Gas
python3 $SCRIPT gas # Gas prices + cost estimates
python3 $SCRIPT gas --chain optimism
# Security
python3 $SCRIPT allowance 0xd8dA...96045 # Dangerous ERC-20 approvals
python3 $SCRIPT contract 0xdAC1...1ec7 # Contract inspection (proxy? standards?)
# ENS
python3 $SCRIPT ens vitalik.eth # Name -> address + profile
python3 $SCRIPT ens 0xd8dA...96045 # Address -> ENS name
# Whale detection
python3 $SCRIPT whale # Large transfers (last 20 blocks, >$10k)
python3 $SCRIPT whale --blocks 50 --min-usd 100000 --chain arbitrum
流程
0. 設置檢查
python3 --version # 3.8+ required
python3 ~/.hermes/skills/blockchain/evm/scripts/evm_client.py stats
1. 錢包投資組合
原生餘額 + 已知 ERC-20 代幣,按 USD 價值排序。
python3 $SCRIPT wallet 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045
python3 $SCRIPT wallet 0xd8dA... --chain bsc --no-prices # faster
2. 多鏈掃描
使用線程同時掃描所有 8 條鏈上的同一地址。
python3 $SCRIPT multichain 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045
輸出:每條鏈的原生餘額 + 代幣持有量 + 總計 USD 價值。
3. 比較(Gas + 價格)
並行查詢所有 8 條鏈。顯示最便宜/最昂貴的鏈。
python3 $SCRIPT compare
4. 交易詳情與解碼
python3 $SCRIPT tx 0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060
python3 $SCRIPT decode 0x5c504ed... # Shows human-readable function signature
解碼使用 4byte.directory 將 0xa9059cbb 轉換為 transfer(address,uint256)。
5. ENS 解析
python3 $SCRIPT ens vitalik.eth # -> 0xd8dA... + avatar + social links
python3 $SCRIPT ens 0xd8dA...96045 # -> vitalik.eth
6. 授權檢查器(安全)
檢查授予已知 DEX/橋接合約的 ERC-20 授權。
python3 $SCRIPT allowance 0xYourWallet
將無限額(UNLIMITED)授權標記為高風險。
7. 合約檢查器
python3 $SCRIPT contract 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 # USDC (proxy)
python3 $SCRIPT contract 0xdAC17F958D2ee523a2206206994597C13D831ec7 # USDT (ERC-20)
檢測:代理合約(EIP-1967/EIP-1167)、ERC-20、ERC-721、ERC-165。顯示代理合約的字節碼大小和實現地址。
8. 巨鯨檢測
python3 $SCRIPT whale # ETH, last 20 blocks, >$10k
python3 $SCRIPT whale --blocks 50 --min-usd 50000 --chain bsc
9. Gas 追蹤器
python3 $SCRIPT gas
python3 $SCRIPT gas --chain polygon
顯示以下操作的 gwei 價格 + USD 成本:轉賬、ERC-20 轉賬、授權、交換、NFT 鑄造、NFT 轉賬。
支持的鏈
| 鍵 (Key) | 名稱 | 原生代幣 | 鏈 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 個)。如需完整歷史記錄,請使用 Etherscan API。multichain運行 8 個並行線程——可能在公共 RPC 節點上觸發速率限制。- ENS 解析依賴於單個公共端點(ensideas.com / ens.vitalik.ca),且無故障轉移機制。如果該端點宕機,
ens命令將失敗——請稍後重試或使用區塊瀏覽器。 - 交易解碼依賴於單個公共端點(4byte.directory),且無故障轉移機制。其數據庫中未包含的選擇器將顯示為
unknown。 - L2 Gas 估算僅包含 L2 執行部分。 在 Base、Arbitrum、Optimism 和 zkSync 等 Rollup 網絡上,實際交易成本還包括 L1 數據發佈費用,該費用取決於 calldata 大小和當前 L1 Gas 價格。
gas命令不估算該 L1 部分。對於 Base 網絡,請參閱其 L1 費用預言機(合約地址0x420000000000000000000000000000000000000F)。 - 地址/交易哈希輸入會驗證 0x 前綴、正確長度和十六進制格式,但不強制要求 EIP-55 校驗和大小寫(RPC 端點接受任意大小寫的十六進制字符串)。
驗證
# Should print current block, gas price, ETH price
python3 ~/.hermes/skills/blockchain/evm/scripts/evm_client.py stats
# Should resolve vitalik.eth to 0xd8dA...
python3 ~/.hermes/skills/blockchain/evm/scripts/evm_client.py ens vitalik.eth