What the chain actually said.
At every block.
Point-in-time DeFi data: Aave rates, Uniswap prices, Lido supply as the contracts returned them, block by block. Indexed live and aligned into one pandas DataFrame, built for quants and the agents they run.
Point-in-time state
Events tell you what happened.
State is what the contract would have said.
Every other vendor builds from event logs: things protocols emit when something happens. But utilization, oracle answers, and exchange rates never emit anything; they just are, block by block. defipipe samples the read functions themselves, so your backtest sees exactly what a call would have returned at that moment.
Every series aligns by block timestamp into a single DataFrame. No resampling gymnastics, no look-ahead bias.
Coverage
Request a pool, get its full history
Coverage is a registry row, not a code change. Approved requests ship with complete backfilled history since the pool's first block.
Request coverage →Data quality
Gaps and staleness are alerts, not surprises
Gap detection, staleness monitoring, and sanity bounds run continuously. The freshness badge on every dataset is measured, not promised.
How it works →For humans and agents
One call, or one MCP tool
pip install defipipe for notebooks; machine-readable limits, honest 429s, and no-signup snippets for agents. Nothing here bounces off an auth wall.
Read the docs →@aave/v3 · usdc
supply rate · borrow rate · liquidity index
@aave/v3 · usdt
supply rate · borrow rate · liquidity index
@aave/v3 · wbtc
supply rate · borrow rate · liquidity index
@aave/v3 · weth
supply rate · borrow rate · liquidity index
@aave/v3 · wsteth
supply rate · borrow rate · liquidity index
@lido/v2 · steth
total pooled ETH · total shares
Start free. No signup.
Every dataset page previews real per-block data. Pay only when you need history.