# Introduction

Time-weighted automated market makers (TWAMM) are a special class of AMMs that execute orders over multiple blocks, a concept introduced by researchers at Paradigm ([Dave White](https://www.paradigm.xyz/team/davewhite), [Dan Robinson](https://www.paradigm.xyz/team/danrobinson)) and the inventor of Uniswap ([Hayden Adams](https://twitter.com/haydenzadams)).

> ...help traders on Ethereum efficiently execute large orders. We call it the time-weighted average market maker, or TWAMM (pronounced "tee-wham"). It works by breaking long-term orders into infinitely many infinitely small pieces and executing them against an embedded constant-product AMM smoothly over time.

{% embed url="<https://www.paradigm.xyz/2021/07/twamm>" %}

{% embed url="<https://twitter.com/WilsonCusack/status/1536748992033222656>" %}

### Prototype

Before developing TWAMMs on-chain, we built an end-to-end simulator with historic market data and arbitrage to showcase how a trade executes on TWAMMs versus a regular AMM like Uniswap V2.

{% embed url="<https://www.youtube.com/watch?v=RkgYAms_Q10>" %}

You can read more details about the simulation in our blog here:

{% embed url="<https://mirror.xyz/0x70626a.eth/SzxME01JrrVRmu_H9q_07kZCBLzzHyxV_fmp1WmZvWo>" %}

### Upgrades

Beyond what was described in the paper, we've upgraded our version of TWAMMs to leverage PFoF, MEV re-investment, virtual order oracles, dynamic fees, granular controls, extreme gas optimizations, and a slew of other features that makes our implementation vastly superior to a standard Uniswap V2 TWAMM.

In the following sections, we delve deeper into the features, incentives, competition, and risks associated with our implementation.


---

# 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://cron-finance.gitbook.io/twamm/overview/introduction.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.
