Desk

Canon

Monad finality for people who move money: inclusion, one slot, two slots

The architecture pages explain MonadBFT. A person with a hash in the clipboard needs a shorter page: what is already true, what reverts only if a leader equivocates, and what is finished.

MONAF Blog · 27 October 2026 · 22 min

Public mainnet opened on 24 November 2025. Through the first half of 2026 the public parameters were a 400 millisecond block and finality about 800 milliseconds later. MIP-12, in July 2026, cut the block to 300 milliseconds. Finality of block N now lands when block N+2 is proposed, which is 600 milliseconds. Speculative finality is one slot, and it reverts only in the rare case of a leader equivocating. Those sentences are the current-facts page, paraphrased into the order a payment cares about. Cadence, at 100 milliseconds and 200 milliseconds of finality, is a proposal. It is not the chain your wallet is talking to.

Three moments, and only one of them is a receipt

The first moment is acceptance. The node returns a hash. The transaction is in the mempool or already in a block. You have not been told which. The second moment is inclusion. The receipt exists, the status is success or reverted, and the block number is known. On a healthy leader that is the next slot or the one after, a third of a second to two thirds. The third moment is finality. Two slots after the block that included you, the vote that would have to be rewritten is itself committed. For a 50 MON close, the gap between inclusion and finality is smaller than the time it takes to read the explorer. For a payment you cannot reverse, the gap is the whole point, and it is still under a second.

A public RPC that says it timed out waiting for the receipt has not told you the transaction reverted. It has told you the RPC stopped looking. The hash is the thing to keep. MonadVision will show the receipt when the block is available to it, which can be later than the leader’s own view and is still not a reversal. Treating the timeout as a failure, and sending the sell again, is how a close becomes two closes. The nonce makes the second one a replacement only if you used the same nonce. A wallet that picked the next nonce sells twice.

Hash, then inclusion, then two slots. A timeout is a property of the RPC, not of your coin.

What asynchronous execution changes about the receipt

Monad agrees an order and executes that order on a delayed clock. The Foundation’s account calls this asynchronous execution. The receipt you eventually read is still the receipt of your transaction. It is not born in the same instant as the vote that ordered it. For a swap, the practical consequence is small: the state your swap touched is the state at execution, and the sqrt price you marked was the state at your read. They differ by the trades that landed between those two moments, which is slippage, not a failure of finality. For an indexer, the consequence is large. A head that follows consensus can be ahead of the state root a query needs. If your balance “did not move” in the same second as the hash, read it again one block later before you call the close a lie.

What you wait for, by the kind of money

A close you can see on a card: wait for the hash, then stop tapping. Check the receipt when the explorer has it. A transfer to an exchange: wait for inclusion and for the exchange’s own confirmation count, because the exchange is a second machine with a second policy, and Monad’s 600 milliseconds does not bind it. A contract you are deploying: wait for the receipt, because you need the address, and the address is in the receipt. A vault unwrap that follows a sell: the sell can be broadcast without its receipt, and the unwrap should follow once WMON is actually there. Broadcasting the unwrap before the sell has executed is a revert, and it is not a finality problem. It is an ordering problem. Consecutive nonces solve it if both transactions are already signed. A blind delay does not.

Numbers worth memorising, and the ones that are not

Memorise 143, 300 milliseconds, two slots, MON. Do not memorise a TPS figure. The design target of 10,000 transactions a second is a capacity claim. A quiet block is not a broken block. Do not memorise a gas price. The base fee moves, and the bill is gas used times that price, which the gas page states and which a blog’s dollar conversion will get wrong by the afternoon. Do not memorise a client revision. The network information page is the revision. When this desk disagrees with that page, the page wins.

Sources

  1. 1Monad docs — current facts
  2. 2Monad docs — MonadBFT
  3. 3Monad — How Monad Works
  4. 4Monad docs — gas pricing
  5. 5MONAF Blog — when 600 milliseconds is final
  6. 6MONAF Blog — four clocks