nuthatch

Liquidations · Ethereum mainnet

connecting Run it yourself

Be your own indexer.

Every liquidation on Ethereum. One binary.

Aave, Spark, Compound, Morpho, Sky and Liquity since 2023, indexed by nuthatch, the AI-native blockchain indexer, from a single RPC on one machine. Live to the block, filterable, and yours to reproduce.

Run this page yourself

Debt repaid

priced at the hour

Liquidations

across six protocols

Borrowers

distinct, liquidated

Largest

a single liquidation

The engine room, live

What it takes to run, right now.

The nest's own counters, read from its /metrics every ten seconds. One process on a ThinkPad, one Ethereum endpoint, following every block.

Memory

·MB

resident, the whole process

CPU

·%

of one core

RPC calls

·/min

to one endpoint

Tip

·

blocks behind

Last poll

·s ago

asks for the tip every block

On disk

·MB

sealed Parquet and the hot store

Requests

·

answered since start

Up

·

since the last restart

Explore

Slice it any way you like.

The page loads every liquidation once, then filters in your browser. Nothing you click goes back to a server, so the ten-thousandth slice is as quick as the first.

Protocol
Period
Size

Over time

Debt repaid per week

By protocol

Where it happened

By collateral

What was seized

Liquidators

Who did the liquidating

Rhythm

Hour of the week, UTC

The ledger

The largest liquidations in this slice

How it works

One process, from RPC to this page.

No subgraph, no Postgres, no data vendor. A nest is a directory: seventeen contracts in a nuthatch.toml, six hand-written event ABIs, and a few SQL views that put six protocols into one table.

  1. 01 · RPCFetchAny Ethereum endpoint. eth_getLogs over block ranges, timestamps from the logs.
  2. 02 · DecodeDeterministicRust, keyed by topic0. Same logs in, same rows out, on any machine.
  3. 03 · SealParquetPast finality, rows are sealed into content-addressed segments. The tip lives in redb.
  4. 04 · QueryBurrmillOur DataFusion engine answers SQL over sealed and hot rows as one table.
  5. 05 · ServeDeclared queriesNo free-form SQL in public. This page reads them, and a snapshot of the same view.
A fresh copy of this nest, thirty days of history, on a MacBook
$ nuthatch dev --dir liquidations --rpc $RPC --backfill 216000 --window 9999
17:37:45 INFO indexing nest 'liquidations' on mainnet: 17 contract(s), 26 table(s), 0 anonymous skipped, finality Depth(64), window 9999, registry 2ac7a4517ddb…
17:37:45 INFO API live on http://127.0.0.1:8302  (try GET /  and  /metrics)
17:37:45 INFO cold start: backfilling from block 26155698 (tip 26371698)
17:38:02 INFO backfilling 9.3% - block 26175695 of 26371698, 150 events, 8 ev/s
17:38:55 INFO backfilling 32.4% - block 26225690 of 26371698, 739 events, 10 ev/s
17:39:47 INFO backfilling 64.8% - block 26295683 of 26371698, 1474 events, 12 ev/s
17:40:20 INFO backfilling 97.2% - block 26365676 of 26371698, 2388 events, 15 ev/s

# the full copy behind this page, 2023 to today
$ nuthatch sql "SELECT protocol, count(*) AS n, round(sum(debt_usd)) AS usd FROM liquidations GROUP BY 1 ORDER BY 3 DESC"
 protocol | n     | usd
----------+-------+--------------
 Aave     | 28051 | 2087995082.0
 Compound | 1449  | 426968670.0
 Morpho   | 6591  | 338260091.0
 Sky      | 428   | 228195622.0
 Spark    | 2607  | 103791183.0
 Liquity  | 60    | 6967644.0
(6 rows)

Why nuthatch

The AI-native blockchain indexer.

Runs anywhere

A laptop, a small VPS, a browser tab.

One static binary for macOS and Linux, with nothing else to install. The same engine compiles to WebAssembly and runs a nest in a tab at /play, sealing the same bytes as a server.

Blocks
10.06M
On disk
143MB
Resident
515MB
Processes
1

This nest, measured on the MacBook that built it, while serving this page.

macOSLinuxDocker ComposeWebAssembly

AI-native

An MCP server in the binary.

Schema discovery, SQL and entity lookup for your coding agent, offline against your own data. Every nest ships an llms.txt and a skill.

No one to ask

No key, no account, no vendor.

Point it at any RPC. MIT or Apache-2.0. It makes no network call about you that you did not turn on.

Verifiable

Content-addressed history.

Sealed segments are named by their hash. Index the same nest anywhere and you seal the same bytes.

Plain SQL

Views, not mappings.

Joining six protocols into one table is a SQL view, not a codebase. Every view behind this page is in the nest.

Run it yourself

Same nest, your machine, same numbers.

Everything on this page comes from one nest. Fetch it, point it at your own RPC, and you have this dataset locally, with a SQL prompt and an MCP server on top.

three commands
# install the binary
$ curl -fsSL https://nuthatch-indexer.com/install.sh | sh
# fetch the nest and index 2023 to today
$ nuthatch init --from https://github.com/nuthatch-org/liquidations-nest
$ nuthatch dev --dir liquidations-nest --rpc $YOUR_RPC
# ask it anything
$ nuthatch sql "SELECT protocol, count(*), sum(debt_usd) FROM liquidations GROUP BY 1"

What this page covers

  • Aave v3 Core, Prime and EtherFi markets, and Spark
  • Compound v3 USDC, WETH, USDS and wstETH markets
  • Morpho Blue, every market
  • Sky (Maker) liquidations through the Dog
  • Liquity v1 troves
  • Ethereum mainnet, from 1 January 2023 to the tip

What it does not

  • Prices only what Chainlink ETH/USD and BTC/USD, or a dollar peg, can price
  • Liquid staking tokens and long-tail assets are counted, not priced
  • A Sky row is an auction opened by Bark; its debt is what the auction set out to cover
  • No Euler, Fluid, Liquity v2 or Compound v2, yet
  • No L2s here; each chain would be its own cursor
  • Tip rows appear within about half a minute of their block

Be your own indexer.

The query