{"name":"io.github.zvmzaretsky/onchain-decode","slug":"zvmzaretsky-onchain-decode","title":"FabTally Decode","description":"Decode EVM bytes to JSON: event-log decoder, calldata explainer, selector lookup, ABI fetch.","url":"https://mcp.market/server/zvmzaretsky-onchain-decode","rating":null,"grade":"A","score":87,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":18,"stars":0,"forks":0,"downloads_week":null,"last_push_at":"2026-08-01T05:14:04.000Z","license":"MIT"},"uptime":{"percent":100,"checks":28,"ok":28,"last_checked_at":"2026-11-04T10:30:35.848Z","last_ok_at":"2026-11-04T10:30:35.848Z","latency_ms":72},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/zvmzaretsky/onchain-decode-mcp","website":"https://decode.fabtally.com","version":"1.0.0","remotes":[{"type":"streamable-http","url":"https://decode.fabtally.com/mcp"}],"packages":[],"tools":[{"name":"abi_fetch","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"chain":{"type":"string","enum":["ethereum","base","arbitrum","optimism","polygon","bsc"],"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."}},"required":["chain","address"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"decode_calldata","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"chain":{"type":"string","enum":["ethereum","base","arbitrum","optimism","polygon","bsc"],"description":"EVM chain: ethereum | base | arbitrum | optimism | polygon | bsc."},"to":{"type":"string","description":"Contract address the call targets (optional; enables verified-ABI resolution)."},"data":{"type":"string","description":"Calldata (0x hex, at least the 4-byte selector)."},"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."},"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."}},"required":["chain","data"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"decode_log","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"chain":{"type":"string","enum":["ethereum","base","arbitrum","optimism","polygon","bsc"],"description":"EVM chain: ethereum | base | arbitrum | optimism | polygon | bsc."},"tx_hash":{"type":"string","description":"Transaction hash (0x + 64 hex) — decodes every event log in the tx."},"address":{"type":"string","description":"Contract address of a single log (used with topics + data)."},"topics":{"type":"array","items":{"type":"string"},"description":"Log topics array (topic0 is the event signature hash for non-anonymous events)."},"data":{"type":"string","description":"Log data field (0x hex) holding the non-indexed args."},"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."},"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."}},"required":["chain"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"selector_lookup","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","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."}},"required":["selector"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}],"scan":{"score":87,"grade":"A","scanned_at":"2026-09-24T12:02:35.009Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-24T12:02:34.954Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 1121ms"]},"poisoning":{"score":15,"max":15,"notes":["4 tool descriptions checked"]},"auth":{"score":10,"max":15,"notes":["open endpoint, read-only tools"]},"maintenance":{"score":12,"max":15,"notes":["last push 54 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"probes":[{"url":"https://decode.fabtally.com/mcp","reachable":true,"authRequired":false,"latencyMs":1121,"serverInfo":{"name":"fabtally-decode","version":"1.0.0"}}],"packages":[],"repo":{"found":true,"owner":"zvmzaretsky","repo":"onchain-decode-mcp","archived":false,"pushedAt":"2026-08-01T05:14:04Z","stars":0,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/70215062?v=4","ownerCreatedAt":"2020-08-25T14:39:27Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/70215062?v=4&s=128","source":"github"},"presence":{"stars":0,"forks":0,"downloadsWeek":null,"license":"MIT","lastPushAt":"2026-08-01T05:14:04.000Z","score":18}}}},"grade_history":[],"reviews":[]}