New Ethereum talks, every Monday. The week's conference uploads by event, in your inbox.

Loading player…

Robert Paluba - An introduction to propAMMs

ETHCluj MeetupThu, Jul 9, 2026, 12:00 AM

After gaining traction as a core trading primitive, propAMMs have expanded to EVM chains. This session explores how they work, their advantages over RFQ systems, and their role in DEX trading.

Transcript

I'll be talking about prop AMMs. They have been fairly trendy last months. Uh so, brief overview, quick background on 0x. This is where where I work. And uh quick background on DEX aggregation because this is what we do and everyone is using it, whether the people know about this or not.

And then I'll talk about prop AMMs, why they're good, why they're bad, what's ugly about them. They show up in like all three categories here. And uh this is loosely based on an article that we published recently about prop AMM shenanigans. Uh this is this this is work of more people at 0x, so it's like not purely my research. Many people were involved at our company.

We look at this stuff quite regularly, check how transactions settle, what's going on. So, if you if you want to read an in-depth research article about this, I encourage you to look uh at at this blog post. Right. So, uh yeah, quick quick introduction to 0x. We've been building DEX infrastructure since 2017.

It's almost a decade at this point. We were the literally first DEX protocol on Ethereum. Uh before Uniswap or all that stuff existed, there was 0x. Uh it was a mechanism uh of matching off-chain orders and on-chain settlement. This has been retired many years ago now.

Uh we were involved in quite a few major uh EIPs on Ethereum, uh the final WETH design, uh EIP 712, which is type data. You would every everyone uses it these days. And uh, we also designed the NFTs. Uh, we even managed to remove them from our protocol uh, before they gain traction. But yeah, EIP 721, the NFTs is basically a brainchild of 0x engineers.

We're also the first protocol that internalized MEV using priority gas auctions. It was also many years ago, has been retired since. But we kind of always front-run the trends. Many things that are happening right now or have been happening, we already thought about it, implemented it, and uh, yeah, we're all always on the forefront of uh, on-chain innovation. Uh, at 0x we support a vast ecosystem.

I think now it's even more than 19 chains at this point. Hundreds of liquidity sources. Uh, we do DEX aggregation these days, uh, which is basically figuring out how to swap tokens. Someone wants to swap token X to token Y. And uh, we we find you the route.

So we have an API, uh, 0x API. Uh, you can you you can you you can use it. Uh, there are other products like this. Uh, and this is our core offering. We also have cross-chain API.

We have gasless APIs, whole suite of APIs uh, for basically on-chain trading. Whatever you need to do, we have a product for this. Uh, so I mentioned that we do DEX aggregation. So uh, the issue is as follows. Like when you want to trade swap, I don't know, ETH to USDC, there are many venues where you can swap ETH to USDC.

The price is not the same on all of them, but typically the best order or like the best uh, result you'll get not by going to a single venue, but spreading the transaction over over a few pools. So, here is a here is a here is a sample illustration. I mean, that's I just typed it on on our UI on Matcha. There is a bot for Matcha. Uh Check Check out.

This is our swapping product. Like that's a random swap for 1,000 USDC to ETH on base. So, this uses five five liquidity sources. Uh so, what we do is we keep track of that stuff. Uh we need to know about all the tokens tokens that are out there and pools.

Currently, I think on base we index around 100 million pools and even more tokens. Uh this includes uh understanding both traditional AMMs, which are you might heard of a Uniswap, Curve, Balancer. Also on on-chain order books, RFQ. Uh I'll talk a bit about RFQ later. ERC-4626 protocols.

That's just having a holistic understanding of all liquidity that's available on chain. And we need to know how to access it and how the liquidity curve looks for every single pool. Uh in order to produce the best route. And uh yeah, we keep track of that. Our system and uh we we pre-process the inputs and we solve an optimization problem.

The optimization problem is, "Okay, I'm selling 10 ETH. How What's the highest amount of I can get out?" And if you add gas to it, I mean, not all sources consume the same amount of gas. It might happen that one source gives you a better price, but it uses more gas. So, in reality, it's not better.

This creates a very interesting and difficult problem. It's both theoretically difficult and it's practically difficult because you need to index yeah, tens of millions of pools. And uh these routes that that occur, they can get fairly complex. That's a That's a real route. It happened on chain.

It happened on a meta aggregator, meaning we beat all other aggregators with this route. And it jumps through seven intermediate tokens, eight intermediate tokens. It has like 20 swaps in it. And you can produce They show up in real life, even routes that have 50 swaps. It's a It's a very It's a Yeah, it's a very complex environment, and navigating it well is is quite challenging.

So, I wanted to say a few words about RFQ, which is a abbreviation of request for quote. Uh RFQ or or private private uh private market makers, they're the It's known under different names in the in the industry. So, this This is liquidity that's served by professional market makers. And that It's very old concept. First on-chain desks launched in 2020.

We I think we're the second desk. Uh there was one that was before us. But, unlike DEXs, like your Uniswaps and Balancers and Curves, this is not publicly available. Uh this has a pretty complicated off-chain component uh that we need to take care of as the DEX aggregator. So, how this works.

There is a market maker that has funds. And market maker also I mean, someone wants to sell 10 USD Sorry, 10 ETH for USDC, and the market maker wants to participate in the trade. In order to do that, we need a mechanism to ask them for their pricing. So, what makers do typically is they publish we call it levels, but they the the shape of their order book, an approximation of their current understanding of liquidity, they publish it in our on our servers. You don't see that.

And whenever you go Wherever you go, is it 1inch, is it 0x, is it Kyber, is it Velora, they have this Like they have these market makers that are publishing indicative uh approximation of their liquidity. Uh yeah, they live on our service. You don't see them. We do the routing. We solve the problem assuming this liquidity.

And uh if the RF if if a market maker if their pricing was good enough to make it into the mix, we will try to include this market maker in the route. But in order to do that, they need to actually sign the quote. So, the flow is okay, your your quote is good. Now sign it so the user can then execute it. And uh so the market maker signs the quote.

This quote has a fixed price. And it has a deadline for UX purposes. It takes a while to click through the UI, confirm transaction, send transaction, and then get included, especially on a slow chain like Ethereum where it's 12-second blocks. It can easily take three blocks for transaction to land from quote to actual inclusion. So, the market maker signs a firm quote for a fixed price, and they need to block these funds for next minute.

This is not ideal for them, but it's still it's still offers often better pricing than than your normal DEX. And uh yeah, since the since these quotes have deadlines, the maker has to sit on this price for him for a minute. Market can move in a market can move in a second. So, a minute is quite a lot. And uh on on slow chains, yeah, this is ripe for abuse.

There are people who are requesting the quotes, sitting on them, checking whether the price changes on Binance. And if it changes on Binance, they would take the quote from the market maker and trade on Binance. Uh it's very difficult to police this behavior. Like we don't know if someone is asking us if someone wants to sell ETH to USDC, we don't know who that person is. It's it's like it's the beauty of DeFi.

It can be anyone. Uh One way to do this is to give the last look to the market makers. So, market makers will sign, but they will sign first, then the user has to sign, and then the market maker at the last second can reject the quote if the market moved against them, but this is fairly difficult to implement well. And uh for many years RFQ has been the major primitive trading primitive on Ethereum. This is from 2023, and the orange is the how much the how much how much of our ETH/USDC volume that we move through 0x API is through market makers.

So, at peak, it's been like 40 to almost 50%. So, half of the volume is private liquidity. It's It's not It's not DEXes. The time passed, and uh people came up with a new invention, which is called prop AMMs, and this is what I'll be talking about for the rest of of my talk. And this is a hybrid of a DEX and RFQ.

I'll describe in a second how it works. And this is operated by the same market makers that provide RFQ quotes. Uh they're closed source. You don't see the code. You don't know what their contracts do.

And they move a ton of volume. And the variations of these some mechanism some mechanisms which are similar to how prop AMMs work have been around for quite some time, but they really gained popularity on Solana last year. And uh this is a chart of how much vol showing how much volume on Solana on SOL/USDC is uh filled by prop AMMs. And it's in high 80s. Basically, DEXes on Solana are not competitive compared to prop AMMs.

And uh how they work. I will I will come back to EVM in a second, but I mean, they were kind of born on Solana, so uh it's the best to describe them uh using Solana as as an example. So, these proper AMMs are run purely on chain. For RFQ, there was this off-chain component where the market maker has been publishing levels on our servers. This is gone in in proper AMM.

The market makers, they update their quotes on chain. Everything lives on chain. So, the operators the of these proper AMMs, they try to land the trans- the transactions updating the prices on chain on every block sometimes multiple times a block on sometimes multiple times in a block. It depends on how the blocks are are constructed. But like on Solana has I'll explain in a second, but Solana has 400 ms blocks.

So, even if you do it once per block, you have like refresh every 400 ms while we update our levels every 500 ms. So, these are actually quotes you can set. I mean, these are this is liquidity you can settle against. There is no signature. There is no loop to to to to get the signature.

So, this is clearly an improvement for the market maker. Also, market maker doesn't need to sit on the quote. So, one very important component of this is that the price updates, these transactions that update the price for the of of their liquidity, it has to be cheap. And Ethereum for example is not cheap. And Solana in turn is very cheap and use These updates are thousand times cheaper than than actually swapping.

They cost nothing. If you do this 24/7 on multiple markets, it costs some money to run. But in general, on Solana, you can run this very cheaply. If you are swapping a lot, it will offset the cost. And on Solana, you have these chunks, which are emitted every 40 milliseconds.

So, in reality, you can update your prices every 40 milliseconds. This is much better than updating your prices every 12 seconds. And uh in it's like when when the chain gets congested, on Solana, 20% of Solana transactions are Prop AMM updates, which is quite a lot. And they do 200 transactions per second. This is like Oh, again, this 200 per transactions per second, this is only the Prop AMM updates.

While on Ethereum, yeah, we do I don't know how many transactions per second, but not too much. Um And there there are different trade-offs between these models. Uh it's a little uh a high-level overview. The code for Prop AMMs is not open source. The liquidity provision is active.

It's not LP-ing like in your normal DEX, but the market maker moves the price themselves. It's not publicly accessible. Everything is closed source. You need to be whitelisted to use it. You do not get firm quotes from them.

Meaning, if you What you see right now will probably not be at what you see No not be the price you will settle at in 20 seconds or whenever your transaction actually hits the chain. And the source of truth is actually on chain. It's not some off-chain signature and promise that you'll verify later. And why they are so good? Uh yeah, they do not sign anything.

They do not need to commit any funds. They refresh the price as the time progresses. So, uh they don't need to lock the funds. And there is the taker doesn't have the optionality to take or not take a signed order for a minute. They will manage to update the price many times uh from from the quote until settlement.

So, they basically offload the volatility to the user. It's user's problem that they will not settle at the price that they saw, not the maker's problem. They uh they don't need to hedge for these volatilities volatilities, so spreads are getting are much tighter. They are basically at the level of Binance. You know, your typical ETH USDC pool on Ethereum has 10 basis points spread, and they can quote at two basis points.

There's no toxic flow. That's not true, but it's much harder to arb them, so that spreads are tighter. Market maker typically need to widen the spread a bit to accommodate for for toxic flow. The problem is like if you settle at a bad price, like that's the user's problem, not maker's problem. So, there is there is this This is one of the bad sides.

I'll I'll talk about in a second. And this is basically equivalent to routing on indicative quotes. Oh, yeah, there is a crucial component for these prop AMMs. Most of them they quote something, but it might happen that they do not land the update. I don't know, whatever system goes down, they don't want to send updates.

The price then gets worse. So, it's a win-win for the operator. If they manage to update the price at the beginning of the block, it's nice. You you trade against the price that they just posted. They're happy with it.

If you somehow trade before they publish their update, you are getting a price which is one block stale, and there is a penalty for it. So, if the volatility is too high, they just stop quoting. Very convenient and very practical for them. And this is a very good tool for fighting toxic flow. You refresh the price.

Great. I mean, this means you it's a price you're willing to trade at. Uh if someone front runs you, it means they landed before your update, and they get a penal get they get a penalty for this because the time has passed between the updates. Why they're bad. There are many issues with them, and it's not even necessarily malicious stuff.

It's just the design. It poses some challenges. So, they're black boxes. You don't see the code. I mean, it's not in market maker's best interest to show their code and see and so others can see how they quote.

They would instantly get get arb'd. So you can either decompile the the the code or you can try to find out who that is and ask nicely for an SDK. Uh They they all have white lists. Uh so you cannot If you're a random person that tries to make a swap on your own, you're probably not going to succeed. You need to be white listed.

All popular routers are white listed. Uh they can misbehave in various ways. They get paused randomly. Like Uniswap pool cannot get paused. Prop AMMs get paused all the time.

Uh they they give you some data that doesn't match reality. They pop they publish curves which are weird or behave in a way you would not expect. They give you sometimes they give you SDKs that do not match reality. There are some weird gotchas that they will not talk about. Uh there is there is a lot of room for uh for for bad behavior.

And uh Base introduced flash blocks in 2025, effectively cutting the block time from 2 seconds to 200 milliseconds. And while 2 seconds is fairly slow, 200 milliseconds is something one can work with. So uh the fees are cheap on Base. There is priority fee sequencing, so you basically can guarantee uh high positions in the flash block if you raise the priority fee, which is fairly convenient for Prop AMMs and they instantly showed up on Base. Uh there are already around 10 of them and they drive around half of our swap API volume uh on ETH USDC.

So they're definitely picking up steam and uh they are having a good time. Uh we've been researching this execution quality for quite a while. That's me on that photo. That's uh that's Yeah, I didn't choose it. It's uh it just happened.

That's from 4 years ago at Devconnect. We are looking into slippage on slippage on taxes. Nobody Nobody even was looking at these things at the time. Now it's kind of standard. And we also looked at execution quality of our prop AMMs.

And that there are some bad things happening that if you do not stare and analyze the data, you will get hurt. But this behavior this behavior I'm talking about right now, we can more or less get rid of it, but it early it was happening. And core issue is that the aggregator sees the state at the end of the block. And what would your market maker do? They would publish in the last flash block, the the the green one.

They would publish a very good price. Uh you see it, you route on this, and then someone is trying to settle. However, in the first flash block of the next block with higher priority fee, they'll publish a price update which will make the price bad. So, for vast majority of the block, the price is bad. At the very end, they make the price good.

You route on this, you send them flow, and they instantly make the price bad. So, the price you see as the real prices are not really the the prices you will see. You sorry, you will obtain at settlement because they turn off the good price instantly at the beginning of the next block. And you can see that for example, it was an example of a prop AMM that we had to turn off for this behavior in in January, I believe. Uh so, the the price moving between blocks was one basis point, but inside the block it was eight basis points.

This should not be the case because between blocks there is more time than inside the block. Uh Yeah, they were basically spoofing the the the router. Another thing that they do, another example, is that they'll have multiple pools, and the price movements between them will not correlate. So, they'll have four pools, one pool will always have a very good price. They rotate, and uh it's like pool A has a good price right now, but worst price in blocks N plus one and N plus two and N plus three and then it has a good price and a bad price and they just rotate.

So, there's always one pool which has a good price, which is winning the flow. Uh but when the transactions land, most of the time they'll hit hit the bad price. Uh it's very hard to prove that people are doing this on purpose. So, let's call it a working theory. Uh but there there on Solana there are proper AMMs that have pools where price movements are not not not not perfectly correlated.

There are also proper AMMs on Solana which have multiple pools and the price movements are perfectly correlated. So, that's uh that's that's suspicious. And why this phenomenon persists, it's yeah, it's a very it's a it's a dilemma that we have here. So, you have a if you have an aggregator that tolerates these predatory sources, it can show users better quotes. Uh so, their competitors, they have a choice.

Either you lose order flow to someone who shows better prices or you have to do it yourself. So, either all aggregators have to police this bad behavior or the one that that keeps them will win majority unless, you know, there is a movement and some uh for example, social backlash that hey, this aggregator shows fake prices. Nobody is really checking these things. Um and this way bad actors are pricing out good actors. Like, we put in we put effort into policing this stuff, someone else doesn't.

It's still happening on base. There are aggregators which will which will show you prices which are too good. Uh so, it's basically a do-or-die practice at this point. It is policing is good and it's necessary for for the industry. Like, if you're an aggregator, you definitely should look at your proper AMMs and how they are filling How they are feeling.

Their quotes. And just to wrap up, these I think that Prop AMMs are here to stay. They're not going anywhere. Every good market maker we know, every single one at this point, they already have a Prop order launching soon, a Prop AMM on Solana. Competent market makers are launching Prop AMMs on Base.

We are talking to them constantly. We have like even today I had one reaching out about Prop being integrated on Base. They'll continue to exist on on every fast chain. There are Prop AMMs on BSC, on Monad, on Arbitrum. Every chain basic every EVM chain that's not mainnet will have Prop AMMs.

They are trivially composable with traditional AMM liquidity. This literally lives on chain for for transaction settlement it looks like a DEX. It's it's it's very easy to interact with it. And it will progressively render RFQ irrelevant on majority of blue chip pairs since the since the Prop AMMs don't need to sit on a quote, they can they can offer much tighter spreads while RFQ needs to hedge for volatility. They have to widen the spreads immediately worse pricing.

And they are also coming to Ethereum. It's a bit heavier lift. I think Titan just announced that they will be accommodating some of the Prop AMMs in their blocks because it requires the block builders to cooperate. They have to make sure that the price updates from Prop AMMs are at the top of each block. And also there are many builders on Ethereum and you need basically every single one or a vast majority of these builders to engage in this practice in order to have good coverage.

You cannot have the case where 50% of the time your transaction will execute properly and 50% of the time it will not. However, again, I expect this trend to continue and it will be probably in the high 80s or like 90%. It's a matter of months because it's clearly an improvement to our old Dax model. All right, that's it for me. Thank you.

Automatic transcript — names and jargon may be misspelled.