Description

The project aims to make it much more accessible to inspect historical MEV (maximum extractable value). It's written in Javascript, so that it's possible to use it inside web apps or as part of Node.js server. It's doesn't require call traces, so any historical node can be used. It's possible to add a persistence or caching layer of your choice if needed.

MEV Inspect JS showcase

How it's made

The project can be roughly split in 2 parts. First, there are "classifiers" which take event logs from transaction receipts and normalise them into unified "transfer", "swap", "liquidation" objects. Then, there is a "mev" module which takes normalised events and apply various heuristics to extract MEV data. Due to the modularity of the project, it was easy to add multichain support (Polygon and Arbitrum), and add support for Aave and Compound liquidations.