Measured DeFi research and a live alert bot

Two measured studies on Arbitrum One and one open-source alert bot, by Am0MuK. The study data comes from local on-chain event databases. The bot figures come from the bot's own repository.

What I can do for you
Pull on-chain data from more than one source and check it against an independent one (receipts, balances, statement totals). Turn it into a small analysis you can rerun: a script, a table or chart, and a note on what the number does not show.
How I work
I write the specification, run the checks and review the result. The code is written with AI coding agents, and I say so. Languages: English, German, Romanian, Russian.
Monitoring and alerts
A read-only Telegram bot that watches Aave health factors and stablecoin prices (see Section C). For your own wallets, contracts or data feeds I can build the same kind of watcher and test it against the live source before handing it over.
Good fit and not a fit
Good fit: a one-off data pull or reconciliation, a dashboard built on your own data, checking a calculation you do not trust yet. Not a fit: trading bots, price predictions, or anything where speed decides the result. Write to kontakt@defisteuer.de.

Section A: Aave V3 Liquidations on Arbitrum (12 Months)

Census and valuation of all 11,135 liquidation events on Arbitrum One (chain_id 42161) over 365 days.

The Question
Is there MEV money in Aave V3 liquidations on Arbitrum One, who captures it, and should a newcomer build a liquidation bot?
The Rule Fixed in Advance
Build a bot only for a niche that earns at least 300 EUR net per month in at least two thirds of the months, in a market where the largest single competitor takes at most 50% of the profit.
The Result
The market generated $3.18M net profit (2.77M EUR) across 276 liquidators. Top-1 liquidator captured 26.9% and Top-3 took 45.9%. However, 66.4% of total annual profit came from just 5 days, and 2025-10-10 alone generated 28.8% ($914k). Outside crashes, the entire market shares ~68,100 EUR per month across 87 competitors (median $116 per liquidation). Liquidations under $100 of debt are net negative. Liquidations are a speed race against the 87 active liquidators. Recommendation: do not build.
How It Was Checked
Events decoded from historical logs between block 380,824,910 and 506,580,201. Valued offline with exact Decimal math using Aave Oracle price calls cached from archive RPC. Zero unpriced events. Exactly 23 anomalous events (collateral > debt x 1.2 or zero debt, such as the KelpDAO rsETH recovery at block 460,068,736) were filtered and listed separately. Sampled receipts verified against on-chain gas and ERC-20 transfer logs.
Limits
Observational only: measures whole-market captured profit, not what a newcomer would capture. Newcomer costs modeled: actual receipt gas, 0.3% collateral swap fee, and 0.05% flash loan fee. Does not measure a newcomer's latency against the incumbent bots.
$3.18M
2.77M EUR net profit
276
Distinct liquidators
26.9%
Top-1 share (Top-3: 45.9%)
66.4%
Top 5 days share
Aave V3 Arbitrum: Monthly Net Profit & Event Volume
12 consecutive months ending September 2026. Most of the profit falls in crash periods (Oct/Nov 2025, Jan/Feb 2026).
Aave V3 Arbitrum: Top 10 Days by Net Profit (USD)
Top 5 days (red) represent 66.4% of all annual net revenue. 2025-10-10 alone generated 28.8%.
Month Window Events Net Profit (USD) Net Profit (EUR)
Rank Date (UTC) Net Profit (USD) Net Profit (EUR) Share of Year Events
Metric Published Figure Recomputed from DB Reconciliation

Section B: Stable-Pair LP versus Lending (lp-sim)

Simulation of 1,464 range strategies on 8 Uniswap V3 stable pools on Arbitrum One over 90 days.

The Question
Does an actively managed narrow concentrated-liquidity position on stable pairs beat holding, and beat a static wide position, after all fees, gas, and swap costs?
The Rule Fixed in Advance
Net return of at least 15% per year in at least 2 of 3 consecutive 30-day months, and better than a static +-10% position in at least 2 of 3 months.
The Result
All 1,464 strategy runs failed the 15% threshold (0 PASS across all pools and sizes). Across the 3 decision pools, best annual net APY was 1.76% on USDC/USDT0, 8.93% on GHO/USDC at $50 (falling to 2.78% at $10k), and 2.13% on USDe/USDT0. The tight autobalancer (1 to 5 ticks) lost money: on USDC/USDT0 it executed 403 rebalances in 90 days, losing $93.78 on $1k capital and $628.60 on $10k capital due to pool swap fees and price impact. The binding limit is the total fee pool ($53k/year on USDC/USDT0, $1.7k on GHO/USDC, $340 on USDe/USDT0). Recommendation: do not build.
How It Was Checked
Active liquidity reconstructed tick-by-tick from historical Mint and Burn logs plus initial block state. Replayed liquidity matched swap event liquidity with 0 mismatches across 62,484 swaps in USDC/USDT0, 1,389 in GHO/USDC, and 508 in USDe/USDT0. Fee growth validated against on-chain feeGrowthGlobal (USDC/USDT0: 1.0000 and 0.9992; GHO/USDC: 1.0000 and 1.0000; USDe/USDT0: 0.9971 and 1.0001).
Limits
Window: 90 days (blocks 478,933,740 to 509,690,000). Stable pools on Arbitrum only. Walking through empty uninitialized ticks can over-count fee per unit liquidity by up to 1 wei per tick (at most ~0.1 token over 90 days, zero material dollar effect).
1,464
Strategy runs (8 pools x 3 sizes x 61)
0 / 1,464
Passing kill criterion (0% pass rate)
15% APY
Hurdle threshold (unmet)
8.9%
Best APY (GHO/USDC at $50)
Best Strategy Net APY vs 15% Kill Criterion Threshold
Decision pools shown in dark blue, info-only pools in muted gray. Red dashed line marks the 15% annual threshold. None passes.
Pool Best Strategy Capital Size Avg Net APY Monthly Net APYs Verdict
Tight rebalancing on USDC/USDT0 0.01%

Tight active rebalancing (AUTOBALANCER_1) triggered 403 rebalances in 90 days. Each rebalance paid the pool fee and price impact, and the extra fees earned did not cover them.

Size Strategy Rebalances Total Net USD Annual Net APY Verdict
Decision Pool Sim/Chain Token0 Sim/Chain Token1 Liquidity Mismatches Swaps Replayed Verification Status

Section C: Health factor and stablecoin alerts on Telegram

A read-only Telegram bot for people who borrow on Aave. Open source, running in Docker on a small server.

What it does
You send the bot a wallet address. It checks the address on every supported market, keeps watching the markets where the address has a position, and sends a Telegram message when the health factor falls to one of your alert levels. The default levels are 1.4, 1.2, 1.1 and 1.05, and each chat can set its own. Alerts and /watch also list how far each collateral asset can fall before liquidation, and /whatif shows the health factor after a move you choose, for example /whatif ETH -20. It can also warn when one of 12 stablecoins moves away from 1 dollar. It reads public on-chain data, plus a public price API for the stablecoin alerts. No wallet connection, no keys, no transactions.
-
Aave V3 and V4 markets
1 to 5 min
How often a position is read, more often the closer it is to an alert level
-
Automated tests in the repository, MIT license
Examples with sample numbers, produced by the bot's own message formatter.
What the checks caught before release
  • The price source answers HTTP 200 with an empty result for an unknown token, which a simple parser reads as "no depeg".
  • A freshness limit of 10 minutes dropped 5 of the 12 stablecoins on a live run, because the source refreshes in steps of about 5 minutes; the limit is now 20 minutes and all 12 are used.
  • When sending an alert to Telegram failed, the bot still moved the position to its new state, so the alert was lost; now the state stays and the next poll retries.
  • NaN and infinity were mishandled in two places: the alert-level command crashed on them and the price filter let a NaN confidence through.
  • A depeg confirmation that required the same level twice would have stayed silent during a fast collapse such as 1%, 3%, 7%, 10%; it now uses the lower of the last two data points.
  • A scan in which some markets failed was marked as complete; now it stays due and is retried.
Limits

Public RPC endpoints are used, so a fast move can cross a level between two reads. The depeg alert arrives about 5 to 15 minutes after a move shows up in the price data. Only Aave V3 and V4 are covered, and dollar amounts are shown for V3 only. - markets have a single public endpoint and are marked best effort. The messages are informational and not financial advice.