# PropAMMs

### Currently live in Titan blocks:

<table><thead><tr><th width="146">Maker</th><th width="590">Contract</th></tr></thead><tbody><tr><td>Fermi</td><td>Oracle: <code>0x0bA5665583A4593A86cdC935ea2c8FF378c11317</code><br>Router: <code>0xb1076fE3AB5e28005C7c323Bac5AC06a680d452e</code></td></tr><tr><td>Kipseli</td><td>Oracle: <code>0x8051C111cD6978396E4f81cd81D21b1ae8Be5A08</code><br>Router: <code>0x342b8458161137d0203605Fa51E4363c1445ADCD</code></td></tr><tr><td>Bebop</td><td>Oracle: <code>0x160141a205f5ddcf096ba3f48b7ed21eb52c62ea</code></td></tr></tbody></table>

### Overview

A Proprietary AMM (PropAMM \[pAMM]) is an onchain pool in which prices are continuously updated by a market maker. Instead of relying on a passive inventory curve, makers stream signed quote updates to the builder ensuring prices are updated in real-time.

The pool is a passive Ethereum contract, enabling anyone to swap against it directly without an offchain matching layer. Once a maker update is included, taker interactions settle onchain like any other AMM interaction, and can be composed into normal swap paths, solver transactions, arbitrage bundles, and aggregator routes. This is the key difference to current Ethereum RFQ-style institutional liquidity: pAMM liquidity sits directly inside an onchain venue rather than behind a separate offchain matching layer.

Titan enables pAMMs on Ethereum through a mechanism that grants power over transaction sequencing to applications also known as Application-Controlled Execution (ACE). Makers stream quote updates directly to the builder and receive deterministic priority relating to their own pool updates. Takers submit bundles routing through pAMM liquidity, and the builder automatically matches them against current pAMM state, re-simulating submissions on every quote update to ensure orders are filled at the latest available price.

### Why pAMMs

A large share of Ethereum DEX volume trades at prices that are stale (12 seconds old) relative to centralised markets. Whenever onchain prices update more slowly than what market makers deem fair value, a divergence is created showing up as value leakage for routers, solvers, end users, and atomic searchers routing through stale intermediary liquidity.

To quantify the impact we analysed 4.77M swaps across 25 ETH/BTC pools on Ethereum between Feb–Mar 2026. The results showed that 84% of router volume, 73% of non-cex-dex-contract volume, and 66% of atomic-searcher volume executed below Binance mid. Users swapping greater than $10k can expect negative markouts of \~6bps on average and double digit negative markouts for p25.

The value proposition of a pAMM lies in its ability to compete for flow with more competitive pricing. A maker can quote closer to the live market because the builder constantly re-evaluates the latest price updates and matches taker flow against the latest applicable state, all before the block lands. For makers, this collapses the adverse-selection window that makes onchain quoting more costly on slower chains. For takers, this raises execution quality on the routes that consistently leak the most value.

The pAMM model has been validated on faster, lower-cost chains, such as Solana where pAMMs now make up the majority of major-pair spot volume. Ethereum's slot time and gas cost make a naive port of this approach unworkable as by the time the next taker arrives, the last onchain update is already stale.

Builder level ACE enables Ethereum to offer pAMM pricing without sacrificing guarantees around economic security, decentralization, liveness and censorship resistance.

### What Titan offers with ACE

Historically, If a maker posts a quote too early the price may be stale by the time the taker flow lands, allowing takers to benefit from any mispricing. Alternatively, if takers are forced to choose a route before the final block state is known they would have to route against a stale price, leaking value to makers.

Titan solves this at the builder layer:

* Makers stream low-latency quote updates to the builder
* Stale quote updates are replaced, so only the latest applicable quote is considered
* When a taker trades against a pAMM, the latest quote update is guaranteed to be ranked before it in the block
* Makers can configure freshness protection so takers are only eligible for inclusion against sufficiently recent quote state
* Takers can submit multiple candidate routes through pAMM and constant-function market makers (CFMM) liquidity
* The builder evaluates candidates against live state at build time and re-evaluates on every pAMM quote update right up until the point of inclusion

This gives pAMMs on Ethereum a new set of advantages. Rather than relying on public propagation and protocol level ordering behaviour, the maker gets an explicit builder-enforced priority rule around its own pool. That priority applies both to rank in the block and to the timing relationship between quote and taker receipts. For takers, the builder becomes the place where pAMM and CFMM pricing can be compared against the latest available state.&#x20;

The result is a more deterministic execution environment for active liquidity, that has the potential to offer tighter quotes than any CEX or propAMM chain. For this reason, we soon expect Ethereum to offer the industry’s most competitive prices on major pairs.

### Integration paths

There are three main integration surfaces:

1. Makers stream quote updates to Titan through the pAMM quote WebSocket. Quotes can land every block, or only when matched by taker flow, depending on the maker session configuration.
2. Takers submit candidate bundles through the normal bundle path. A candidate can route through existing CFMM liquidity, pAMM liquidity, or both. The builder evaluates all candidates against the freshest available pAMM state.
3. Takers can also consume the pAMM state stream when makers opt in. The stream publishes flattened Ethereum state override objects, making it easier for searchers, solvers, and aggregators to simulate pAMM routes locally before submission.

The following pages describe the maker and taker interfaces in more detail.

<br>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.titanbuilder.xyz/propamms.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
