Message Blocks

What is a Message Block?

A message block is a special block type that stores signed data blobs instead of executing transactions. It contains:

  • Messages — Array of signed payloads

  • Messages Root — Merkle root for consensus verification

  • No Transactions — Empty transaction list

  • Minimal State Change — Only PMQ fee deductions

Message Structure

Every message contains these fields:

Field
Size
Purpose

sender

20 bytes

Who signed the message

payload

Variable (max 8 KB)

Your data (opaque bytes)

timestamp

8 bytes

When included in block

signature

65 bytes

ECDSA proof of authorship

nonce

8 bytes

Replay protection (same-chain)

chainId

8 bytes

Replay protection (cross-chain)

bid

Variable

Priority fee in wei (0 for standard)

Payload Content

The payload field is opaque bytes. The protocol doesn't interpret it. Your application decides the format:

  • Plain text

  • JSON

  • Protocol Buffers

  • Encrypted data

  • Any binary format

Maximum size: 8 KB per message (configurable per network).

Block Structure

Block Capacity

Each message block has reserved slots for each queue type:

Key Property: Slots are independent. If PMQ only fills 2 MB, the unused 3 MB is not given to SMQ. This guarantees block space for both message types.

Capacity Numbers

Metric
Value

Max block size

10 MB

Priority slot

5 MB

Standard slot

5 MB

Max message size

8 KB

Max messages/block

~1,280

Messages per slot

~640 each

Block Assembly

When it's time to build a message block:

Verification Layers

Messages are verified at multiple points:

Layer
What's Checked

RPC

Signature, chainId, nonce format, payload size

Queue

Duplicate detection, bid validation

Block Build

Final signature verification

P2P

Signature before gossip

Consensus

messages_root matches content

If any check fails, the message is rejected.

State Changes

Message blocks are unique: they're mostly stateless, but PMQ bids do affect state:

Standard messages (bid = 0) cause no state changes.


Next: Dual-Lane Queues — Understanding PMQ and SMQ

Last updated