<p>Expanding on Andrew's excellent answer with some examples.</p>
<p>The lowest amount of transactions that could be in a block is <code>maxBlockBodySize / maxTxSize</code>, currently equal to <strong>4</strong>.</p>
<p>It might be more practical to consider the minimum &amp; average transaction sizes on the network. Using <a href="https://github.com/input-output-hk/cardano-graphql" rel="noreferrer">cardano-graphql</a> to query these numbers for transactions in epochs &gt;= 250 gives 2 months of history and a sample of 2.2m transactions.</p>
<ul>
<li>Minimum real-world TX size: <em>190</em></li>
<li>Average real-world TX size: <em>613</em></li>
</ul>
<p>Applying these numbers to the formula, we can calculate that at most <strong>344</strong> minimum size transactions would fit in a block, and on average <strong>107</strong> transactions can fit in a block.</p>
<p>Using this average and the current value for <em>activeSlotsCoefficient</em>, now we find how many transactions could be included in blocks per day:</p>
<p><code>107 tx/block * 0.05 blocks/slot * 86400 slots/day</code> = <strong>462,240 tx/day</strong></p>

CC BY-SA 4.0
2021-05-04T03:15:20.013Z
2021-05-04T03:15:20.013Z
Ben NOBLE
<p>Both the block size and the transaction size are defined as protocol parameters. These can be changed at any time by IOG, or voted on once we have Voltaire. Blocks come on average every 20 seconds, but the closest blocks can be currently is every second.</p>
<p><em>maxBlockBodySize</em> is 65536 bytes and <em>maxTxSize</em> is 16384 bytes. As the network becomes more useful and congested, these parameters can be changed to accommodate the additional traffic.</p>
<p>We can also modify the <em>activeSlotsCoefficient</em> which is currently 0.05. By modifying this we can make blocks appear more frequently on average instead of 20 seconds.</p>
<p>Cardano has a verify flexible protocol so it can adjust quite a bit on its own before we need to worry about implementing hydra for additional scalability.</p>
<pre><code>{
  &quot;txFeePerByte&quot;: 44,
  &quot;minUTxOValue&quot;: 1000000,
  &quot;stakePoolDeposit&quot;: 500000000,
  &quot;decentralization&quot;: 0,
  &quot;poolRetireMaxEpoch&quot;: 18,
  &quot;extraPraosEntropy&quot;: null,
  &quot;stakePoolTargetNum&quot;: 500,
  &quot;maxBlockBodySize&quot;: 65536,
  &quot;maxTxSize&quot;: 16384,
  &quot;treasuryCut&quot;: 0.2,
  &quot;minPoolCost&quot;: 340000000,
  &quot;maxBlockHeaderSize&quot;: 1100,
  &quot;protocolVersion&quot;: {
      &quot;minor&quot;: 0,
      &quot;major&quot;: 4
  },
  &quot;txFeeFixed&quot;: 155381,
  &quot;stakeAddressDeposit&quot;: 2000000,
  &quot;monetaryExpansion&quot;: 3.0e-3,
  &quot;poolPledgeInfluence&quot;: 0.3
}
</code></pre>

CC BY-SA 4.0
2021-06-05T12:05:54.950Z
Why have these numbers been set to fairly conservative amounts, when the protocol should be capable of more.  Transaction size makes sense, but transactions per block seems fairly limited considering smart contracts will need more space.
Scalextrix
CC BY-SA 4.0
2021-07-07T15:00:11.317Z
@Scalextrix It is possible these parameters will be adjusted with the Alonzo HFC event to accommodate for a projected increase in transactions. However, there just does not appear to be any need at the moment as the max TPS Cardano has ever had to achieve at this point 0.7 TPS while the current parameters allow for ~10x of that.
EGMSSE
CC BY-SA 4.0
2021-05-04T20:37:16.463Z
So an an activeSlotsCoefficient of .07 would be a block time of about 14.29 seconds?.07*14.29 = 1.003
Isaac Padberg
CC BY-SA 4.0
2021-05-06T22:58:14.030Z
@IsaacPadberg Yes. An epoch is 5 days or 432000 seconds which makes 432000 slots per epoch. 0.07 * 432000 means that on average 30240 slots will be filled with a block. 432000 / 30240 would give us about 14.29 seconds between blocks.
Andrew Westberg - BCSH
CC BY-SA 4.0
2021-05-01T01:46:42.183Z
2021-05-01T01:46:42.183Z
Andrew Westberg - BCSH
<p>If the network is under heavy use and transactions are being recorded in these blocks faster than normal, is there a cap on the size of the block?</p>
<p>Perhaps the rule is 20 second slot time, or a full block?</p>
<p>If this is the case, wouldn't a flooded network lead to decreased epoch time because of shortened slots?</p>

<blocksize><slottime><time>
Is there a maximum number of transactions a block can hold?
# Is there a maximum number of transactions a block can hold?

(Asked by: username_0 on 2021-04-30)

If the network is under heavy use and transactions are being recorded in these blocks faster than normal, is there a cap on the size of the block?

Perhaps the rule is 20 second slot time, or a full block?

If this is the case, wouldn't a flooded network lead to decreased epoch time because of shortened slots?

**Tags:** blocksize, slottime, time

---

## 2 answers

### Answer by username_2 on 2021-05-01. Score: 20 | Accepted answer

Both the block size and the transaction size are defined as protocol parameters. These can be changed at any time by IOG, or voted on once we have Voltaire. Blocks come on average every 20 seconds, but the closest blocks can be currently is every second.
maxBlockBodySize is 65536 bytes and maxTxSize is 16384 bytes. As the network becomes more useful and congested, these parameters can be changed to accommodate the additional traffic.
We can also modify the activeSlotsCoefficient which is currently 0.05. By modifying this we can make blocks appear more frequently on average instead of 20 seconds.
Cardano has a verify flexible protocol so it can adjust quite a bit on its own before we need to worry about implementing hydra for additional scalability.
{
  "txFeePerByte": 44,
  "minUTxOValue": 1000000,
  "stakePoolDeposit": 500000000,
  "decentralization": 0,
  "poolRetireMaxEpoch": 18,
  "extraPraosEntropy": null,
  "stakePoolTargetNum": 500,
  "maxBlockBodySize": 65536,
  "maxTxSize": 16384,
  "treasuryCut": 0.2,
  "minPoolCost": 340000000,
  "maxBlockHeaderSize": 1100,
  "protocolVersion": {
      "minor": 0,
      "major": 4
  },
  "txFeeFixed": 155381,
  "stakeAddressDeposit": 2000000,
  "monetaryExpansion": 3.0e-3,
  "poolPledgeInfluence": 0.3
}

> **Comments:**
> **username_0**: So an an activeSlotsCoefficient of .07 would be a block time of about 14.29 seconds?.07*14.29 = 1.003  
> **username_2**: @IsaacPadberg Yes. An epoch is 5 days or 432000 seconds which makes 432000 slots per epoch. 0.07 * 432000 means that on average 30240 slots will be filled with a block. 432000 / 30240 would give us about 14.29 seconds between blocks.  
> **username_3**: Why have these numbers been set to fairly conservative amounts, when the protocol should be capable of more.  Transaction size makes sense, but transactions per block seems fairly limited considering smart contracts will need more space.  
> **username_4**: @Scalextrix It is possible these parameters will be adjusted with the Alonzo HFC event to accommodate for a projected increase in transactions. However, there just does not appear to be any need at the moment as the max TPS Cardano has ever had to achieve at this point 0.7 TPS while the current parameters allow for ~10x of that.  

---

### Answer by username_1 on 2021-05-04. Score: 5

Expanding on Andrew's excellent answer with some examples.

The lowest amount of transactions that could be in a block is `maxBlockBodySize / maxTxSize`, currently equal to **4**.

It might be more practical to consider the minimum & average transaction sizes on the network. Using [cardano-graphql](https://github.com/input-output-hk/cardano-graphql) to query these numbers for transactions in epochs >= 250 gives 2 months of history and a sample of 2.2m transactions.

* Minimum real-world TX size: *190*
* Average real-world TX size: *613*

Applying these numbers to the formula, we can calculate that at most **344** minimum size transactions would fit in a block, and on average **107** transactions can fit in a block.

Using this average and the current value for *activeSlotsCoefficient*, now we find how many transactions could be included in blocks per day:

`107 tx/block * 0.05 blocks/slot * 86400 slots/day` = **462,240 tx/day**


---

