MCPサーバー

FabTally Decode

io.github.zvmzaretsky/onchain-decode
暗号資産・Web3 開発者向けツール 公開・接続可能 MCP 2025-11-25

このMCPでできること

Fetches verified EVM contract ABIs and decodes calldata, event logs, selectors, and topics into human-readable structured data.

abi_fetch
Fetch a contract's verified ABI + proxy resolution (paid $0.002)
PAID $0.002 (x402, USDC on Base). Fetch the verified ABI + metadata for a contract. Give {address, chain}; get the ABI JSON, verification status/source (Sourcify or Blockscout), the callable function/event signatures, and full proxy-implementation resolution (EIP-1967/1822/OZ-legacy/beacon) — returning the implementation's ABI when it's a proxy. Without payment returns the x402 challenge; pass x_payment to settle.
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['chain', 'address'], 'properties': {'chain': {'enum': ['ethereum', 'base', 'arbitrum', 'optimism', 'polygon', 'bsc'], 'type': 'string', 'description': 'EVM chain: ethereum | base | arbitrum | optimism | polygon | bsc.'}, 'address': {'type': 'string', 'description': 'Contract address (0x + 40 hex).'}, 'x_payment': {'type': 'string', 'description': 'x402 payment payload (base64) for this PAID decode. If supplied it is forwarded as the X-PAYMENT header to settle the call and return the real result instead of a 402 challenge. Omit to get the price challenge first.'}}, 'additionalProperties': False}
decode_calldata
Decode a function call's calldata (paid $0.002)
PAID $0.002 (x402, USDC on Base). Decode a contract function call. Give {chain, to?, data, abi?}; get the 4-byte selector resolved to a function signature (via provided ABI, the verified contract source, or 4byte.directory) plus fully decoded, typed arguments (tuples/arrays/nested included). Without payment returns the x402 challenge.
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['chain', 'data'], 'properties': {'to': {'type': 'string', 'description': 'Contract address the call targets (optional; enables verified-ABI resolution).'}, 'abi': {'anyOf': [{'type': 'array'}, {'type': 'string'}], 'description': 'Optional contract ABI (JSON array or JSON string). If omitted, the ABI is resolved from the verified source (Sourcify/Blockscout) or 4byte.directory.'}, 'data': {'type': 'string', 'description': 'Calldata (0x hex, at least the 4-byte selector).'}, 'chain': {'enum': ['ethereum', 'base', 'arbitrum', 'optimism', 'polygon', 'bsc'], 'type': 'string', 'description': 'EVM chain: ethereum | base | arbitrum | optimism | polygon | bsc.'}, 'x_payment': {'type': 'string', 'description': 'x402 payment payload (base64) for this PAID decode. If supplied it is forwarded as the X-PAYMENT header to settle the call and return the real result instead of a 402 challenge. Omit to get the price challenge first.'}}, 'additionalProperties': False}
decode_log
Decode event logs to typed JSON (paid $0.003)
PAID $0.003 (x402, USDC on Base). FLAGSHIP: decode EVM event LOGS to human-readable JSON. Give {chain, tx_hash} to decode every log in a transaction, OR {chain, address, topics[], data} for a single log; optional {abi}. Returns each event's name, canonical signature and named/typed args — correctly handling tuple/array/nested params, anonymous events, and indexed vs non-indexed. Resolves the ABI via Sourcify/Blockscout + 4byte event signatures when none is supplied. Without payment returns the x402 challenge; pass x_payment to settle.
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['chain'], 'properties': {'abi': {'anyOf': [{'type': 'array'}, {'type': 'string'}], 'description': 'Optional contract ABI (JSON array or JSON string). If omitted, the ABI is resolved from the verified source (Sourcify/Blockscout) or 4byte.directory.'}, 'data': {'type': 'string', 'description': 'Log data field (0x hex) holding the non-indexed args.'}, 'chain': {'enum': ['ethereum', 'base', 'arbitrum', 'optimism', 'polygon', 'bsc'], 'type': 'string', 'description': 'EVM chain: ethereum | base | arbitrum | optimism | polygon | bsc.'}, 'topics': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Log topics array (topic0 is the event signature hash for non-anonymous events).'}, 'address': {'type': 'string', 'description': 'Contract address of a single log (used with topics + data).'}, 'tx_hash': {'type': 'string', 'description': 'Transaction hash (0x + 64 hex) â\x80\x94 decodes every event log in the tx.'}, 'x_payment': {'type': 'string', 'description': 'x402 payment payload (base64) for this PAID decode. If supplied it is forwarded as the X-PAYMENT header to settle the call and return the real result instead of a 402 challenge. Omit to get the price challenge first.'}}, 'additionalProperties': False}
selector_lookup
Resolve a selector or event topic to a signature (paid $0.001)
PAID $0.001 (x402, USDC on Base). Resolve a 4-byte function selector (0x + 8 hex) OR a 32-byte event topic hash (0x + 64 hex) to its human-readable signature(s) via 4byte.directory + openchain.xyz. Returns all matches (selectors can collide) with a verified flag. Without payment returns the x402 challenge; pass x_payment to settle.
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['selector'], 'properties': {'selector': {'type': 'string', 'description': 'A 4-byte function selector (0x + 8 hex) or a 32-byte event topic hash (0x + 64 hex).'}, 'x_payment': {'type': 'string', 'description': 'x402 payment payload (base64) for this PAID decode. If supplied it is forwarded as the X-PAYMENT header to settle the call and return the real result instead of a 402 challenge. Omit to get the price challenge first.'}}, 'additionalProperties': False}
追加
abi_fetch
2026年9月17日12:53
追加
selector_lookup
2026年9月17日12:53
追加
decode_calldata
2026年9月17日12:53
追加
decode_log
2026年9月17日12:53