{"id":745,"date":"2026-11-12T16:04:00","date_gmt":"2026-11-12T21:04:00","guid":{"rendered":"https:\/\/dolanduck.io\/blog\/?p=745"},"modified":"2026-11-10T13:21:36","modified_gmt":"2026-11-10T18:21:36","slug":"solana-sealevel-parallel-execution","status":"publish","type":"post","link":"https:\/\/dolanduck.io\/blog\/solana-sealevel-parallel-execution\/","title":{"rendered":"Solana Sealevel Explained: How Parallel Execution Works"},"content":{"rendered":"\n<p>Sealevel is Solana&#8217;s parallel execution runtime: it runs many transactions at the same time on different CPU cores, because every Solana transaction lists in advance which accounts it will read and which it will write. Transactions that touch different accounts never wait for each other, while two transactions that write the same account run one after the other. On November 10, 2026, Solana&#8217;s public RPC showed about 428 non-vote transactions per slot, every 213 milliseconds on average, all scheduled this way.<\/p>\n\n\n<!--more-->\n\n\n<h2 class=\"wp-block-heading\">Key Facts<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>What it is:<\/strong> the execution layer of Solana validators, described by the Solana team on September 8, 2019 as processing &#8220;thousands of smart contracts&#8221; in parallel.<\/li><li><strong>Core rule:<\/strong> a transaction must declare every account up front, marked as read-only or writable.<\/li><li><strong>Locks:<\/strong> many transactions can read one account at once; only one at a time can write it.<\/li><li><strong>Account limit:<\/strong> up to 64 accounts per transaction (SIMD-0385 table of current limits).<\/li><li><strong>Block budget:<\/strong> about 50M compute units per 200ms block after SIMD-0525, with a separate cap for any single writable account.<\/li><li><strong>Default threads:<\/strong> Agave&#8217;s block-production stage runs 4 worker threads by default (Agave source, banking_stage).<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">How Sealevel Decides What Runs in Parallel<\/h2>\n\n\n\n<p>Ethereum&#8217;s EVM executes transactions one by one, because a contract can touch any storage it likes and nobody knows in advance what it will change. Solana flips this. A Solana program owns no state inside itself; state lives in separate accounts, and the transaction message names each of them. Before execution, the validator already knows the full read and write set.<\/p>\n\n\n\n<p>With that list, the scheduler groups transactions so that no two in the same batch write the same account. A swap on one pool and a transfer between two wallets touch different accounts, so they run side by side. Two swaps on the same pool both write the pool&#8217;s accounts, so they queue. The split between programs and accounts is covered in <a href=\"\/blog\/solana-programs-vs-ethereum-smart-contracts\/\">Solana programs vs Ethereum smart contracts<\/a>.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th><\/th><th>Sealevel (Solana)<\/th><th>EVM (Ethereum)<\/th><\/tr><\/thead><tbody><tr><td>Accounts known before execution<\/td><td>Yes, required<\/td><td>No<\/td><\/tr><tr><td>Default execution<\/td><td>Parallel where accounts do not overlap<\/td><td>Sequential<\/td><\/tr><tr><td>What forces ordering<\/td><td>Two writes to the same account<\/td><td>Every transaction<\/td><\/tr><tr><td>Cost of a busy contract<\/td><td>Its accounts become a queue<\/td><td>Whole block is a queue<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Read Locks, Write Locks and Hot Accounts<\/h2>\n\n\n\n<p>A read lock is shared: a thousand transactions can read the SOL\/USDC price account in the same moment. A write lock is exclusive: while one transaction writes an account, every other writer waits. This is where parallelism breaks down in practice. During a memecoin launch, thousands of buyers write the same bonding curve or pool account, and the runtime has to run those trades in a line.<\/p>\n\n\n\n<p>Solana adds a second guard: a cap on how many compute units any single writable account can use per block, set below the block limit. When a hot pool hits that cap, extra trades on it wait for the next block even if the block still has room. That is why a busy launch can feel slow while the rest of the chain keeps moving. How compute units are counted is explained in <a href=\"\/blog\/solana-compute-units-explained\/\">Solana compute units explained<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Why Sealevel Matters to Traders<\/h2>\n\n\n\n<ol class=\"wp-block-list\"><li><strong>Priority fees are local.<\/strong> Because congestion forms around specific accounts, you mostly compete with other traders on the same pool, not with the whole network. Details in <a href=\"\/blog\/solana-transaction-fees-priority-fee\/\">Solana transaction fees and priority fees<\/a>.<\/li><li><strong>Failed swaps cluster on hot tokens.<\/strong> The first minutes of a launch concentrate writes on a few accounts, so retries and slippage errors pile up there.<\/li><li><strong>Routers split work.<\/strong> Aggregators like <a href=\"https:\/\/jup.ag\" target=\"_blank\" rel=\"nofollow noopener\">Jupiter<\/a> can route through several pools, which spreads writes and helps a large order fill.<\/li><\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Limits of Parallel Execution<\/h2>\n\n\n\n<p>Sealevel only helps when work is spread across accounts. A single popular program that keeps all users in one writable account turns into a sequential bottleneck, and developers have to shard state on purpose. Listing every account up front also makes transactions larger, which is one reason Solana added address lookup tables and, in September 2026, a bigger 4,096-byte transaction format. Finally, parallel execution does not mean unlimited speed: block compute limits, network bandwidth and the 64-account cap still set the ceiling. Real throughput is visible on <a href=\"https:\/\/solscan.io\" target=\"_blank\" rel=\"nofollow noopener\">Solscan<\/a> block pages, where you can see how many transactions each block carried.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Sealevel and a $DOLAN Trade<\/h2>\n\n\n\n<p>DOLAN Duck ($DOLAN) is a fair-launch SPL token with a fixed 98.3M supply and about 10,700 holders. Sending $DOLAN between two wallets writes only those two token accounts, so it runs in parallel with almost everything else on Solana. A swap on a DOLAN pool writes that pool&#8217;s accounts and lines up behind other trades on the same pool. Liquidity spread across more than one pool reduces that queue; how pool depth works is in <a href=\"\/blog\/what-is-liquidity-crypto-dex-solana\/\">what liquidity means on a Solana DEX<\/a>.<\/p>\n\n\n\n<div class=\"schema-faq wp-block-yoast-faq-block\"><div class=\"schema-faq-section\" id=\"faq-question-1794334727067\"><strong class=\"schema-faq-question\">What is Sealevel in Solana?<\/strong> <p class=\"schema-faq-answer\">Sealevel is Solana&#x27;s runtime for executing transactions in parallel. It works because every transaction lists the accounts it will read and write before it runs.<\/p> <\/div><div class=\"schema-faq-section\" id=\"faq-question-1794334727068\"><strong class=\"schema-faq-question\">How does Solana run transactions in parallel?<\/strong> <p class=\"schema-faq-answer\">The scheduler places transactions that do not write the same account into the same batch and runs them on separate threads. Conflicting writers run in sequence.<\/p> <\/div><div class=\"schema-faq-section\" id=\"faq-question-1794334727069\"><strong class=\"schema-faq-question\">Is Solana faster than Ethereum because of Sealevel?<\/strong> <p class=\"schema-faq-answer\">Sealevel is one part of it. Ethereum executes transactions sequentially by default, while Solana executes non-overlapping ones at the same time.<\/p> <\/div><div class=\"schema-faq-section\" id=\"faq-question-1794334727070\"><strong class=\"schema-faq-question\">Why do memecoin launches still get congested?<\/strong> <p class=\"schema-faq-answer\">Thousands of buyers write the same pool or bonding curve account. Write locks on that account force those trades into a single line.<\/p> <\/div><div class=\"schema-faq-section\" id=\"faq-question-1794334727071\"><strong class=\"schema-faq-question\">How many accounts can a Solana transaction use?<\/strong> <p class=\"schema-faq-answer\">Up to 64 accounts per transaction under the current limits listed in SIMD-0385.<\/p> <\/div><div class=\"schema-faq-section\" id=\"faq-question-1794334727072\"><strong class=\"schema-faq-question\">Do developers have to do anything for Sealevel?<\/strong> <p class=\"schema-faq-answer\">Yes. They should spread state across many accounts, because one shared writable account removes the benefit of parallel execution.<\/p> <\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Sealevel is Solana&#8217;s parallel execution runtime: it runs many transactions at the same time on different CPU cores, because every Solana transaction lists in advance&#8230;<\/p>\n","protected":false},"author":2,"featured_media":746,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-745","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blockchain"],"_links":{"self":[{"href":"https:\/\/dolanduck.io\/blog\/wp-json\/wp\/v2\/posts\/745","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dolanduck.io\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dolanduck.io\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dolanduck.io\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/dolanduck.io\/blog\/wp-json\/wp\/v2\/comments?post=745"}],"version-history":[{"count":1,"href":"https:\/\/dolanduck.io\/blog\/wp-json\/wp\/v2\/posts\/745\/revisions"}],"predecessor-version":[{"id":754,"href":"https:\/\/dolanduck.io\/blog\/wp-json\/wp\/v2\/posts\/745\/revisions\/754"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dolanduck.io\/blog\/wp-json\/wp\/v2\/media\/746"}],"wp:attachment":[{"href":"https:\/\/dolanduck.io\/blog\/wp-json\/wp\/v2\/media?parent=745"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dolanduck.io\/blog\/wp-json\/wp\/v2\/categories?post=745"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dolanduck.io\/blog\/wp-json\/wp\/v2\/tags?post=745"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}