<p>This should not be thought of as a scalability problem, but more as a design parameter for whatever smart contract you are building.</p>
<p>There are many creative ways in which projects are trying to make the liquidity pools work. SundaeSwap is using the Scooper model, which you can read about <a href="https://sundaeswap-finance.medium.com/sundaeswap-labs-presents-the-scooper-model-678d6054318d" rel="nofollow noreferrer">here</a>. It goes over the tradeoffs for each popular type of DEX, and why they chose the Scooper model. Definitely worth a read.</p>
<p>I think that Cardano's eUTxO architecture is uniquely suited for orderbook DEXes. Since there is no global state to worry about (unlike EVM L1's), it also eliminates several design constraints that you have to worry about in designing EVM apps.</p>
<p>Each project is taking a unique approach, and it's worth looking at all of the major ones as a developer I think. Some of the most interesting DEXes so far are:</p>
<ul>
<li>SundaeSwap (Scooper model + AMM)</li>
<li>Minswap (another AMM)</li>
<li>Genius Yield (this one is really interesting because it is orderbook-based and Lars himself is the CTO).</li>
</ul>
<p>So I guess the short answer is, there are definitely ways to get around the issue of many transactions trying to consume the same output, and that isn't necessarily a roadblock for scalability. However, building with UTxO in mind is always better than trying to build a 1-to-1 replica of EVM dApps.</p>

CC BY-SA 4.0
2022-01-24T07:37:38.607Z
2022-01-24T22:56:36.197Z
2022-01-24T22:56:36.197Z
Sean Ishan
<p>In other discussion, Lars said a real implementation of something like this or the Oracle could use - instead of an NFT - its own currencySymbol, and then have multiple UTxOs which could be grabbed concurrently at one time.</p>
<p>Here there is talk of &quot;read-only&quot; inputs :
<a href="https://github.com/Emurgo/Emurgo-Research/blob/master/smart-contracts/Unlocking%20The%20Potential%20Of%20The%20UTXO%20Model.md" rel="nofollow noreferrer">https://github.com/Emurgo/Emurgo-Research/blob/master/smart-contracts/Unlocking%20The%20Potential%20Of%20The%20UTXO%20Model.md</a></p>

CC BY-SA 4.0
2021-08-26T23:51:57.077Z
2021-08-26T23:51:57.077Z
ZachSweet
<p>This issue is one that'll plague projects trying to build on Cardano.</p>
<p>Let's consider Lecture 10 of the first iteration of the Plutus Pioneers Program (<a href="https://www.youtube.com/watch?v=Dg36h9YPMz4&amp;feature=youtu.be&amp;ab_channel=LarsBr%C3%BCnjes" rel="nofollow noreferrer">https://www.youtube.com/watch?v=Dg36h9YPMz4&amp;feature=youtu.be&amp;ab_channel=LarsBr%C3%BCnjes</a>), if I want to send a swap transaction, I have to consume the latest pool state (containing the token balances owned by the pool). Does it mean in any block there can be only one transaction per pool? If two or more users are trying to consume the latest UTXO, only one transaction will be successful and other users have to change their transactions to reference the new UTXO.</p>
<p>Here are some links where it's mentioned:- <a href="https://twitter.com/LarsBrunjes/status/1390331642103877633?s=19-" rel="nofollow noreferrer">https://twitter.com/LarsBrunjes/status/1390331642103877633?s=19-</a> <a href="https://cardano.stackexchange.com/questions/722/general-approach-for-allowing-multiple-smart-contract-transactions-per-block">General approach for allowing multiple smart contract transactions per block</a></p>

<plutus><plutus-pioneer-program><scalability>
How to solve the Plutus scalability issue?
# How to solve the Plutus scalability issue?

(Asked by: username_0 on 2021-08-26)

This issue is one that'll plague projects trying to build on Cardano.

Let's consider Lecture 10 of the first iteration of the Plutus Pioneers Program (<https://www.youtube.com/watch?v=Dg36h9YPMz4&feature=youtu.be&ab_channel=LarsBr%C3%BCnjes>), if I want to send a swap transaction, I have to consume the latest pool state (containing the token balances owned by the pool). Does it mean in any block there can be only one transaction per pool? If two or more users are trying to consume the latest UTXO, only one transaction will be successful and other users have to change their transactions to reference the new UTXO.

Here are some links where it's mentioned:- <https://twitter.com/LarsBrunjes/status/1390331642103877633?s=19-> [General approach for allowing multiple smart contract transactions per block](https://cardano.stackexchange.com/questions/722/general-approach-for-allowing-multiple-smart-contract-transactions-per-block)

**Tags:** plutus, plutus-pioneer-program, scalability

---

## 2 answers

### Answer by username_1 on 2022-01-24. Score: 2

This should not be thought of as a scalability problem, but more as a design parameter for whatever smart contract you are building.

There are many creative ways in which projects are trying to make the liquidity pools work. SundaeSwap is using the Scooper model, which you can read about [here](https://sundaeswap-finance.medium.com/sundaeswap-labs-presents-the-scooper-model-678d6054318d). It goes over the tradeoffs for each popular type of DEX, and why they chose the Scooper model. Definitely worth a read.

I think that Cardano's eUTxO architecture is uniquely suited for orderbook DEXes. Since there is no global state to worry about (unlike EVM L1's), it also eliminates several design constraints that you have to worry about in designing EVM apps.

Each project is taking a unique approach, and it's worth looking at all of the major ones as a developer I think. Some of the most interesting DEXes so far are:

* SundaeSwap (Scooper model + AMM)
* Minswap (another AMM)
* Genius Yield (this one is really interesting because it is orderbook-based and Lars himself is the CTO).

So I guess the short answer is, there are definitely ways to get around the issue of many transactions trying to consume the same output, and that isn't necessarily a roadblock for scalability. However, building with UTxO in mind is always better than trying to build a 1-to-1 replica of EVM dApps.


---

### Answer by username_2 on 2021-08-26. Score: 0

In other discussion, Lars said a real implementation of something like this or the Oracle could use - instead of an NFT - its own currencySymbol, and then have multiple UTxOs which could be grabbed concurrently at one time.

Here there is talk of "read-only" inputs :
<https://github.com/Emurgo/Emurgo-Research/blob/master/smart-contracts/Unlocking%20The%20Potential%20Of%20The%20UTXO%20Model.md>


---

