The central element of every cryptocurrency is a public ledger called the blockchain, which links blocks together.

Since the blocks in the chain are ordered, the complete transaction history is held on the blockchain. Subsequent blocks have increasing heights that differ by one. Each block can contain up to 1,000 transactions (public network), being this value configurable per network.

Blocks are stored in a database as permanent medium. Catapult calls the first block in the chain the nemesis block.

Catapult blocks complete every 15 seconds, making transactions confirm quickly enough for everyday use.

Block creation

Blocks are created by accounts. The process of creating new blocks is called harvesting. The harvesting account—called the harvester— gets the fees for the transactions in the block and inflation. This gives the harvester an incentive to add as many transactions to the block as possible.

Block header

Serialization of the block header.


Property Type Description
height Height Height of the blockchain. Each block has a unique height. Subsequent blocks differ in height by 1.
timestamp Timestamp Number of milliseconds elapsed since the creation of the nemesis block.
difficulty Difficulty Determines how difficult is to find a new block, based on previous blocks.
previousBlockHash Hash256 Hash of the previous block.
transactionsHash Hash256 Hash of the transactions in this block.
receiptsHash Hash256 Hash of the receipts generated by this block.
stateHash Hash256 Hash of the global chain state at this block.
beneficiaryPublicKey Key Public key of the optional beneficiary designated by harvester.
feeMultiplier BlockFeeMultiplier Fee multiplier applied to block transactions.
blockHeader_Reserved1 uint32 Reserved padding to align end of BlockHeader on 8-byte boundary.


Continue: Transaction.