Background
WhatsABI is a tool for extracting the ABI (and other metadata) from EVM bytecode, even without the original source code.
Goal: Improve decentralization, transparency, and user safety by reducing our dependence on proprietary frontends to EVM contracts.
WhatsABI works by using static analysis techniques, but it's specifically constrained in ways that other static analysis tools are not:
Built in Typescript with minimal dependencies, so that it is runnable in the browser and embeddable in wallets.
Algorithms used are limited to O(instructions) with a small constant factor, so that complex contracts don't cause it to time out or use unbounded memory.
Does not rely on source code, so it works with unverified contracts.