> For the complete documentation index, see [llms.txt](https://docs.delphirhc.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.delphirhc.com/readme.md).

# Overview

Delphi is a token launchpad on Robinhood Chain. Every token launched on it trades in a Uniswap v4 pool with a Delphi hook attached, and that hook records a time-weighted average price on every swap. The result is an oracle that exists from the token's first trade and that any contract can read with one call.

This documentation covers three things: how to launch and trade a token, how the oracle works and how to read it from a contract, and the addresses and interfaces of the deployed contracts.

## Why the oracle matters

A token that only has a pool only has a spot price, and a spot price can be moved to any value by a single swap. That is why nothing serious gets built on launchpad tokens: a lending market cannot liquidate against a price that can be faked in one block, and a perp cannot settle on it.

Delphi solves this at the launch itself. Because the hook is part of the pool, the price history is written by the pool as it trades, and the average over any window is available on-chain the moment someone asks for it. The design is the one Uniswap v3 pools have used since 2021, with an extra rule that bounds how far the recorded price can move per second.

## What Delphi adds to a Uniswap pool

The averaging maths is Uniswap v3's, and this documentation says so wherever it applies. What Delphi adds is what makes the average safe to build on.

* **The recorded price is rate-limited.** The tick the oracle stores can only move a bounded amount per second, so a single swap, however large, cannot push the average the way it can in a plain pool. This needs a v4 hook, and it is the part no existing pool can be given after the fact.
* **The oracle is on from the first trade.** A v3 pool has the same machinery but records one observation until someone pays to expand it, which in practice nobody does. On Delphi every token has a working oracle the moment it launches.
* **It is readable in one call.** `consult` returns a price in the quote asset, with `quote`, `maturity`, `depth` and a Chainlink-shaped feed beside it. A raw pool returns tick sums and leaves the maths, the buffer sizing and the safety checks to every integrator.
* **The liquidity behind it cannot be pulled.** The launch position is locked in the pool for good, so the depth an integrator measures at launch is the depth that will still be there when it matters.

## Where things are

Delphi runs on Robinhood Chain testnet today. The app is at [delphirhc.com](https://delphirhc.com), the contracts are source-verified on the testnet explorer, and their addresses are listed under [Addresses](/contracts/addresses.md).
