3. How Many Transactions Can a Block Hold?
Question
Kaspa currently produces 10 blocks per second. So, how many transaction data can each block carry? What is the theoretical maximum TPS?
(1). Answer to the Question
Kaspa core developer Ori Newman gave a detailed explanation: https://x.com/OriNewman/status/1974829990882553925
Important Concept: mass, which is the unit of data a block can carry. According to KIP-9 and KIP-13 standards, the mass limit per Kaspa block is 500,000 mass.
Different transactions occupy different amounts of mass. There are mainly the following three types of transactions:
Minimum Transaction (1 input, 0 outputs): Generally used for token burning, UTXO consolidation cleanup, etc. Rarely used in practice.
Each transaction occupies 584 mass
Each block can carry 500,000 / 584 = 856 of such transactions.
Common Transaction (1 input, 2 outputs): Typical transfer transaction, spending one input and creating two outputs (sending to two addresses).
Each transaction occupies 2036 mass
Each block can carry 500,000 / 2036 = 245 of such transactions.
Layer 2 Transaction (1 input, 1 output): Suitable for Layer 2 applications (such as state channels or smart contracts), transactions carry payloads.
Each transaction occupies 1452 mass
Each block can carry 500,000 / 1452 = 344 of such transactions.
Summary
Calculating based on minimum transactions, each block can carry 856 transactions, and the transaction volume per second can reach 8560 TPS (10 blocks per second). But this transaction scenario is inherently rare and has no practical significance
Calculating based on common transactions and L2 transactions, the carrying capacity per block is between 245 - 344, and the transaction volume per second ranges between 2450 TPS ~ 3440 TPS. This is a reasonable, meaningful TPS value.
(2). Real-World Scenarios
Real-world transaction scenarios are more complex and may involve more transaction types. On the kas.fyi website, you can view the Mass value of each transaction, such as:
