{"id":"MONAD-FINALITY","name":"Fast Finality","status":"Active","chain":"monad","category":{"id":"infrastructure","name":"Infrastructure","description":"Foundational patterns enabling other standards"},"journeyStages":[{"id":"status","name":"Status & Confirmation","description":"Waiting for and confirming outcomes"}],"uxImpact":"Transactions finalize in 800ms (2 blocks), with speculative finality at 400ms — near-instant confirmation UX. Design implications: show confirmation in under 1 second, remove 'waiting for confirmations' multi-block progress bars, enable real-time trading UIs, display 'Finalized' badge quickly. Design decisions: whether to confirm at speculative finality (400ms, extremely rare reverts) or full finality (800ms, guaranteed) — most apps should use speculative for responsiveness.","hasDetailedContent":true,"content":{"id":"MONAD-FINALITY","summary":"Monad confirms transactions in under 1 second. Where Ethereum takes 12+ seconds for a block and minutes for finality, Monad gives you a confirmation checkmark almost instantly. This transforms UX from \"waiting for blockchain\" to \"feels like Venmo.\" Designers can finally build responsive interfaces without artificial loading states.","applicability":{"whenToUse":["Your product addresses: long wait times for transaction confirmation.","Your users abandon during waiting states.","The flow should deliver: click send → checkmark in <1 second.","You are designing a instant confirmation experience with visible states and recovery paths."],"whenToAvoid":["Inline confirmation, continue the flow.","Redesign flows for instant confirmation.","Show actual speed, it's a feature!.","Protocol plumbing is invisible and never surfaces in user-facing UI."]},"designerTakeaways":["You can design UI that delivers click send → checkmark in <1 second.","You can design UI that delivers instant feedback keeps users engaged.","You can design UI that delivers real-time on-chain interactions possible."],"problemsSolved":[{"problem":"Long wait times for transaction confirmation","oldWay":"Click send → spinner for 15+ seconds → maybe it worked?","newWay":"Click send → checkmark in <1 second","impact":"critical"},{"problem":"Users abandon during waiting states","oldWay":"30% drop-off during \"Confirming...\" screen","newWay":"Instant feedback keeps users engaged","impact":"critical"},{"problem":"Can't build responsive real-time apps","oldWay":"Games, social apps feel sluggish on-chain","newWay":"Real-time on-chain interactions possible","impact":"high"},{"problem":"Uncertainty during pending state","oldWay":"\"Did it work? Should I retry? Is it stuck?\"","newWay":"Know immediately if it succeeded or failed","impact":"high"}],"uxPatterns":[{"name":"Instant Confirmation","description":"Transaction confirmed before user can blink","mockup":"generic/instant-confirm","userFlow":["User confirms transaction","Submit to network","<1 second passes","Show success immediately","Update balance in place"]},{"name":"Real-Time Balance Updates","description":"Balances update instantly as transactions confirm","mockup":"generic/instant-confirm","userFlow":["Transaction submitted","Balance animates to pending state","Confirmation received (<1s)","Balance snaps to new value","Activity feed updates live"]},{"name":"No-Wait Gaming Actions","description":"In-game actions feel instant","mockup":"generic/instant-confirm","userFlow":["Player clicks Attack","Action submitted","Visual feedback immediately","Chain confirms in <1s","State updates, next action ready"]},{"name":"Skip the Loading Screen","description":"Design patterns without artificial waits","mockup":"generic/instant-confirm","userFlow":["User confirms action","Inline success indicator","No separate loading page","Continue flow immediately"]}],"uiComponents":[{"name":"InstantConfirmation","description":"Success state shown immediately on confirmation","states":["sending","confirmed","failed"],"props":["txHash","confirmationTime","onComplete"]},{"name":"AnimatedBalanceUpdate","description":"Balance that animates smoothly between values","states":["stable","updating","updated"],"props":["previousValue","newValue","animationDuration"]},{"name":"LiveActivityFeed","description":"Real-time transaction feed with instant updates","states":["empty","loading","live"],"props":["transactions[]","onNewTransaction"]},{"name":"InlineStatus","description":"Tiny status indicator instead of full-page loading","states":["hidden","pending","success","error"],"props":["message","duration"]}],"antiPatterns":[{"pattern":"Full-page loading screens for transactions","why":"Unnecessary on Monad — confirmation is faster than page load","instead":"Inline confirmation, continue the flow","severity":"high"},{"pattern":"Artificial \"Confirming...\" delays","why":"Some apps add fake delay to seem \"blockchain-y\"","instead":"Show actual speed — it's a feature!","severity":"medium"},{"pattern":"Multiple confirmation stages in UI","why":"\"Pending... Submitted... Confirming...\" overkill for <1s total","instead":"Single transition: action → done","severity":"medium"},{"pattern":"Not showing confirmation time","why":"Users don't realize how fast Monad is","instead":"Show \"Confirmed in 0.4s\" — it's impressive!","severity":"medium"},{"pattern":"Using Ethereum timing expectations","why":"Design for 15s wait doesn't fit <1s reality","instead":"Redesign flows for instant confirmation","severity":"high"}],"onMonad":[{"aspect":"Confirmation Time","ethereum":"12-15 seconds for block, 12+ min for finality","monad":"<1 second to finality","designImplication":"Design for instant, not for waiting"},{"aspect":"Loading States","ethereum":"Essential — user needs to wait","monad":"Often unnecessary — confirmation faster than animation","designImplication":"Use inline indicators, skip loading pages"},{"aspect":"User Expectations","ethereum":"Users expect blockchain to be slow","monad":"Feels like Web2 app","designImplication":"Surprise and delight with speed"},{"aspect":"Real-Time Features","ethereum":"Difficult due to slow blocks","monad":"Viable — games, chat, live updates","designImplication":"Build features impossible on Ethereum"}],"keyTakeaways":["Monad confirms in <1 second — design for instant","Skip full-page loading screens","Use inline success indicators","Show confirmation time to highlight speed","Build real-time features that would be impossible on Ethereum"],"technicalNotes":"Monad achieves fast finality through pipelined execution and optimistic parallelism. Transactions are executed speculatively before consensus is complete, then validated. The result is sub-second confirmation times compared to Ethereum's 12-second block times. Finality on Monad is reached in a single slot, unlike Ethereum's epochs. This enables UX patterns previously impossible on blockchain."},"sources":[],"urls":{"canonical":"https://www.eipsfordesigners.com/standards/MONAD-FINALITY","markdown":"https://www.eipsfordesigners.com/standards/MONAD-FINALITY/content.md","agent":"https://www.eipsfordesigners.com/standards/MONAD-FINALITY/agent.md","api":"https://www.eipsfordesigners.com/api/standards/MONAD-FINALITY"},"freshness":{"lastReviewed":"2026-04-05","lastUpdated":"2026-04-05"}}