Migrate your Flashblocks integration to 200ms blocks.
200ms native blocks are live on Vibenet for experimental developer testing. This deployment may change, and you should not rely on it for production decisions.Denim activated on Base Sepolia on October 21, 2026 at 18:00 UTC, so 200ms native blocks are also live there. Base Mainnet is targeting November 2026. That date is a planning target, not an activation timestamp, and may change. The base-reth-node and base-consensus versions required for Base Mainnet are not yet published. Check the Upgrades overview for the latest schedule.
Use this guide if your application consumes Flashblocks. Denim replaces Flashblocks with canonical 200ms blocks, so Flashblocks subscriptions and pending state are unavailable after activation.
Inventory every Flashblocks subscription and RPC request that uses the "pending" block tag before Denim. Replace each integration using the table below.
Use eth_subscribe("newHeads"), then fetch transactions for each canonical block.
eth_getBlockByNumber("pending", ...)
Use normal RPC calls to read the latest canonical blocks.
eth_getBalance(..., "pending")
Use normal RPC calls to read the latest canonical state.
eth_getTransactionCount(..., "pending", ...)
Use normal RPC calls to read the latest canonical state.
eth_call(..., "pending")
Use normal RPC calls to read the latest canonical state.
eth_estimateGas(..., "pending")
Use normal RPC calls to read the latest canonical state.
eth_simulateV1(..., "pending")
Use normal RPC calls to read the latest canonical state.
eth_getLogs with a range ending at "pending"
Use normal RPC calls to query logs from canonical blocks.
eth_getBlockTransactionCountByNumber("pending")
Use normal RPC calls to read the latest canonical block.
Bridge or proof flow that reads historical block hashes or beacon roots
Review its history assumptions. The retained number of values is unchanged, but 200ms blocks mean that history covers less elapsed time.
The "pending" block tag and Flashblocks preconfirmation state have no direct equivalent after Denim. The replacements above return canonical data from 200ms blocks, not preconfirmed or pending data.
Test your migrated integration on Vibenet. For the protocol design and RPC behavior, see 200ms Native Blocks.
Was this page helpful?
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"Base Documentation","colors":{"primary":"#0000ff","light":"#578BFA","dark":"#0000ff"},"logo":{"light":"https://mintcdn.com/base-a060aa97/9LdNiQhE-qTXRlrp/logo/logo_light.svg?fit=max\u0026auto=format\u0026n=9LdNiQhE-qTXRlrp\u0026q=85\u0026s=346ebfbc4cbad6fa96a3466bb7f5aa3a","dark":"https://mintcdn.com/base-a060aa97/9LdNiQhE-qTXRlrp/logo/logo_dark.svg?fit=max\u0026auto=format\u0026n=9LdNiQhE-qTXRlrp\u0026q=85\u0026s=ad62d6e6969ec9fee460b89cf51033d0"},"favicon":"https://mintcdn.com/base-a060aa97/nnaK9UEOgZ1ZSTpu/logo/favicon.png?fit=max\u0026auto=format\u0026n=nnaK9UEOgZ1ZSTpu\u0026q=85\u0026s=bc2c7662bd6c9526efc8526eebaa3c5c","api":{"playground":{"display":"simple"},"examples":{"languages":["javascript"]}},"navbar":{"links":[{"icon":"github","href":"https://github.com/base","label":"GitHub"},{"icon":"discord","href":"https://discord.com/invite/buildonbase","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://dashboard.base.org/"}},"footer":{"socials":{"x":"https://x.com/base","github":"https://github.com/base","reddit":"https://www.reddit.com/r/BASE","linkedin":"https://linkedin.com/company/coinbase"},"links":[{"header":"Base","items":[{"label":"Base.org","href":"https://base.org"},{"label":"Blog","href":"https://blog.base.dev/"},{"label":"Privacy Policy","href":"https://docs.base.org/privacy-policy"},{"label":"Terms of Service","href":"https://docs.base.org/terms-of-service"},{"label":"Cookie Policy","href":"https://docs.base.org/cookie-policy"}]}]},"seo":{"metatags":{"og:type":"website","og:site_name":"Base documentation"}},"integrations":{"ga4":{"measurementId":"G-TKCM02YFWN"}},"contextual":{"options":["copy","view","claude","chatgpt"],"display":"header"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"base-a060aa97","hasAudioNarration":false,"actualSubdomain":"base-a060aa97","customDomains":["docs.base.org"],"gitSource":{"type":"github","owner":"base","repo":"docs","deployBranch":"master","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae3abcdb1f14135ddcddb54","collectionId":"5a3e9138-1a53-4603-aae8-ae666e6acb0b","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae3abcdb1f14135ddcddb54"},"feedback":{"thumbs":true,"edits":false,"issues":false},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"ENABLED"},"CONTEXTUAL_FEEDBACK":{"status":"ENABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae3abcdb1f14135ddcddb54","clientVersion":"0.0.4045","searchFilterCounts":[{"language":"default","tag":"Specifications","count":114},{"language":"default","tag":"SDKs \u0026 APIs","count":52},{"language":"default","tag":"Upgrades","count":51},{"language":"default","tag":"Build on Base","count":44},{"language":"default","tag":"Base Chain API","count":37},{"language":"default","tag":"Optimism","count":28},{"language":"default","tag":"Ethereum JSON-RPC API","count":27},{"language":"default","tag":"Base Protocol","count":23},{"language":"default","tag":"Get Started","count":20},{"language":"default","tag":"Accept Payments","count":16}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"@font-face{font-family:'Base Sans';src:url(/fonts/base-sans/BaseSans-Thin.woff2) format('woff2');font-weight:100;font-style:normal;font-display:swap}@font-face{font-family:'Base Sans';src:url(/fonts/base-sans/BaseSans-ThinItalic.woff2) format('woff2');font-weight:100;font-style:italic;font-display:swap}@font-face{font-family:'Base Sans';src:url(/fonts/base-sans/BaseSans-Light.woff2) format('woff2');font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:'Base Sans';src:url(/fonts/base-sans/BaseSans-LightItalic.woff2) format('woff2');font-weight:300;font-style:italic;font-display:swap}@font-face{font-family:'Base Sans';src:url(/fonts/base-sans/BaseSans-Regular.woff2) format('woff2');font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:'Base Sans';src:url(/fonts/base-sans/BaseSans-Italic.woff2) format('woff2');font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:'Base Sans';src:url(/fonts/base-sans/BaseSans-Medium.woff2) format('woff2');font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:'Base Sans';src:url(/fonts/base-sans/BaseSans-MediumItalic.woff2) format('woff2');font-weight:500;font-style:italic;font-display:swap}@font-face{font-family:'Base Sans';src:url(/fonts/base-sans/BaseSans-Bold.woff2) format('woff2');font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:'Base Sans';src:url(/fonts/base-sans/BaseSans-BoldItalic.woff2) format('woff2');font-weight:700;font-style:italic;font-display:swap}@font-face{font-family:'Base Sans';src:url(/fonts/base-sans/BaseSans-Black.woff2) format('woff2');font-weight:900;font-style:normal;font-display:swap}@font-face{font-family:'Base Sans';src:url(/fonts/base-sans/BaseSans-BlackItalic.woff2) format('woff2');font-weight:900;font-style:italic;font-display:swap}body,body *{font-family:'Base Sans',sans-serif!important}.mono,[class*=mono],code,code *,pre,pre *{font-family:ui-monospace,SFMono-Regular,'SF Mono',Menlo,Consolas,'Liberation Mono',monospace!important}a,b,body,button,h1,h2,h3,h4,h5,h6,label,li,p,span,strong,td,th{font-weight:400!important}body{font-size:15px;line-height:1.7;color:#374151}.dark body,body:is(.dark *){color:#d1d5db}#content-area h1{font-size:2rem;margin-bottom:.75rem;letter-spacing:-.03em}#content-area h2,#content-area h3{font-size:1.5rem;margin-top:2rem;margin-bottom:.5rem}#content-area h3{font-size:1.25rem;margin-top:1.5rem}#content-area h4,#content-area h5,#content-area h6{font-size:1.1rem;margin-top:1.25rem;margin-bottom:.5rem}#content{margin-top:1rem}#content>h2:first-child{margin-top:0}p{margin-bottom:1.25rem}[data-component-part=accordion-title]{font-weight:500!important}summary[data-component-part=accordion-button] p{margin-bottom:0!important}#content-area a{color:#00f}.dark #content-area a{color:#578bfa}[class*=Card] h2,[class*=Card] h3,[class*=card] h2,[class*=card] h3,h2[data-component-part=card-title]{font-size:1rem!important}#sidebar a,#sidebar button{font-size:.875rem!important;color:#6b7280!important}#sidebar a:hover,#sidebar button:hover{color:#111827!important}.dark #sidebar a,.dark #sidebar button{color:#9ca3af!important}.dark #sidebar a:hover,.dark #sidebar button:hover{color:#f9fafb!important}#sidebar a[aria-current=page],#sidebar a[data-active=true]{color:#111827!important;background:rgba(0,0,0,.03)!important;border-radius:6px}.dark #sidebar a[aria-current=page],.dark #sidebar a[data-active=true]{color:#f9fafb!important;background:rgba(255,255,255,.05)!important}#sidebar [class*=group]>button,#sidebar [class*=group]>button>span,#sidebar [class*=group]>div,#sidebar [class*=group]>div>button,#sidebar [class*=group]>div>span,#sidebar [class*=group]>span,#sidebar div[class*=heading],#sidebar h2,#sidebar h3,#sidebar h4,#sidebar h5,#sidebar p[class*=heading],#sidebar span[class*=heading]{font-size:.875rem!important;font-weight:500!important;letter-spacing:normal!important;text-transform:none!important;color:#9ca3af!important}.dark #sidebar [class*=group]>button>span,.dark #sidebar [class*=group]>span,.dark #sidebar h3,.dark #sidebar h4{color:#6b7280!important}#navbar a{color:#374151!important}#navbar a:hover,#navbar a[aria-current=page],#navbar a[data-active=true]{color:#111827!important}.dark #navbar a{color:#9ca3af!important}.dark #navbar a:hover,.dark #navbar a[aria-current=page],.dark #navbar a[data-active=true]{color:#f9fafb!important}#content-area [class*=breadcrumb],#content-area [class*=eyebrow],#content-area [class*=section-label],#content-area nav[aria-label=Breadcrumb],#content-area nav[aria-label=Breadcrumb] *{font-size:.875rem!important;font-weight:500!important;color:#00f!important;text-transform:none!important}.dark #content-area [class*=breadcrumb],.dark #content-area [class*=eyebrow],.dark #content-area [class*=section-label],.dark #content-area nav[aria-label=Breadcrumb],.dark #content-area nav[aria-label=Breadcrumb] *{color:#578bfa!important}#content-area{max-width:100%;padding-left:4rem;padding-right:4rem}#content-area ol{padding-left:2rem}body>div,main{padding-left:1rem;padding-right:1rem}@media (max-width:768px){#content-area{padding-left:1rem;padding-right:1rem}body>div,main{padding-left:0;padding-right:0}}#navbar,#sidebar{box-shadow:none!important}#navbar{border-bottom:1px solid rgba(0,0,0,.06)!important}.dark #navbar{border-bottom-color:rgba(255,255,255,.08)!important}#sidebar{border-right:1px solid rgba(0,0,0,.06)!important}.dark #sidebar{border-right-color:rgba(255,255,255,.08)!important}.danger-admonition{border:1px solid rgba(239,68,68,.2);background-color:rgba(254,242,242,.5)}.dark\\:danger-admonition:is(.dark *){border-color:rgba(239,68,68,.3);background-color:rgba(239,68,68,.1)}.dark .callout :is(h1, h2, h3, h4, h5, h6){color:inherit}.assistant-entry{background-color:#00f!important;color:#fff!important;border:1px solid rgba(0,0,0,.15)!important;box-shadow:none!important;font-weight:600!important}.assistant-entry:focus-visible{outline:2px solid rgba(0,0,0,.25)!important;outline-offset:2px!important}.dark .assistant-entry{background-color:#578bfa!important;border-color:rgba(0,0,0,.55)!important}.dark .assistant-entry:focus-visible{outline:2px solid rgba(87,139,250,.5)!important}.dark .chat-assistant-send-button{background-color:rgba(87,139,250,.3)!important}.chat-assistant-floating-input{display:none!important}.dark #topbar-cta-button a span.bg-primary-dark,.dark #topbar-cta-button span[class*=bg-primary-dark]{background-color:#578bfa!important}#navbar a[href=\"https://dashboard.base.org\"],#navbar a[href=\"https://dashboard.base.org\"]>span.absolute,#navbar a[href=\"https://dashboard.base.org/\"],#navbar a[href=\"https://dashboard.base.org/\"]>span.absolute,#navbar a[href=\"https://discord.com/invite/buildonbase\"],#navbar a[href=\"https://github.com/base\"]{border-radius:1rem!important}.base_header_img{margin:auto}.nav-logo{height:1.25rem}.homepage_wrapper{width:75%;max-width:1376px;margin:auto auto 50px}.home_header{padding-bottom:0!important}.home_header h1{margin-bottom:24px}.home_header div p{margin-top:10px}.use-cases{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem;padding-bottom:2rem}.resource-link a,.use-cases-links a{text-decoration:none;border-bottom:none}.use-cases-links a{display:block;width:fit-content;margin-bottom:.25rem}.resource-link a:hover,.use-cases-links a:hover{color:#000}.dark .resource-link a:hover,.dark .use-cases-links a:hover{color:#fff}.resources-section{padding-top:2rem}.resources-section h3{margin-bottom:0}.resources-row{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem}.resources-row h4{margin-top:.75rem;margin-bottom:.5rem;opacity:.7}.resource-link{display:block;margin-bottom:.25rem}.resource-link a{margin-left:.25rem}[data-component-part=update-label]{background:0 0!important;color:#9ca3af!important}.dark [data-component-part=update-label]{color:#6b7280!important}[data-component-part=update-tag]{background:rgba(0,0,255,.1)!important;color:#00f!important;padding:.125rem .5rem!important;border-radius:.5rem!important;font-weight:400!important}.dark [data-component-part=update-tag]{background:rgba(87,139,250,.1)!important;color:#578bfa!important}[data-component-part=update-content] h2:first-child{margin-top:0!important}#content-area a.view-features-btn{display:inline-flex;align-items:center;gap:.25rem;padding:.375rem .75rem;font-size:.875rem;font-weight:400!important;color:#374151!important;background:rgba(0,0,0,.06);border-radius:.75rem;border:0!important;box-shadow:none!important;text-decoration:none!important}#content-area a.view-features-btn:hover{background:rgba(0,0,0,.1)}.dark #content-area a.view-features-btn{color:#9ca3af!important;background:rgba(255,255,255,.08)}.dark #content-area a.view-features-btn:hover{background:rgba(255,255,255,.12)}#content-area a.view-features-btn.button-white{color:#000!important}.dark #content-area a.view-features-btn.button-white{color:#fff!important}"}],"page":{"pagePath":"upgrades/denim/migrate-from-flashblocks","slug":"/upgrades/denim/migrate-from-flashblocks","pageMetadata":{"title":"Migrate From Flashblocks","description":"Migrate your Flashblocks integration to 200ms blocks.","href":"/upgrades/denim/migrate-from-flashblocks"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Migrate your Flashblocks integration to 200ms blocks.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,p:`p`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{Heading,Table,Warning}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(Warning,{children:[_jsxs(_components.p,{children:[`200ms native blocks are live on `,_jsx(_components.a,{href:`/build-on-base/test-on-vibenet`,children:`Vibenet`}),` for experimental developer testing. This deployment may change, and you should not rely on it for production decisions.`]}),_jsxs(_components.p,{children:[`Denim activated on Base Sepolia on October 21, 2026 at 18:00 UTC, so 200ms native blocks are also live there. Base Mainnet is targeting November 2026. That date is a planning target, not an activation timestamp, and may change. The `,_jsx(_components.code,{children:`base-reth-node`}),` and `,_jsx(_components.code,{children:`base-consensus`}),` versions required for Base Mainnet are not yet published. Check the `,_jsx(_components.a,{href:`/upgrades/overview`,children:`Upgrades overview`}),` for the latest schedule.`]})]}),`\n`,_jsx(Heading,{level:`2`,id:`summary`,children:`Summary`}),`\n`,_jsx(_components.p,{children:`Use this guide if your application consumes Flashblocks. Denim replaces Flashblocks with canonical 200ms blocks, so Flashblocks subscriptions and pending state are unavailable after activation.`}),`\n`,_jsx(Heading,{level:`2`,id:`recommended-action`,children:`Recommended Action`}),`\n`,_jsxs(_components.p,{children:[`Inventory every Flashblocks subscription and RPC request that uses the `,_jsx(_components.code,{children:`\"pending\"`}),` block tag before Denim. Replace each integration using the table below.`]}),`\n`,_jsx(Heading,{level:`2`,id:`update-integrations-for-denim`,children:`Update Integrations for Denim`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Integration to review`}),_jsx(_components.th,{children:`Action for Denim`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`eth_subscribe(\"newFlashblocks\")`})}),_jsxs(_components.td,{children:[`Use `,_jsx(_components.code,{children:`eth_subscribe(\"newHeads\")`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`eth_subscribe(\"pendingLogs\")`})}),_jsxs(_components.td,{children:[`Use `,_jsx(_components.code,{children:`eth_subscribe(\"logs\")`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`eth_subscribe(\"newFlashblockTransactions\")`})}),_jsxs(_components.td,{children:[`Use `,_jsx(_components.code,{children:`eth_subscribe(\"newHeads\")`}),`, then fetch transactions for each canonical block.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`eth_getBlockByNumber(\"pending\", ...)`})}),_jsx(_components.td,{children:`Use normal RPC calls to read the latest canonical blocks.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`eth_getBalance(..., \"pending\")`})}),_jsx(_components.td,{children:`Use normal RPC calls to read the latest canonical state.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`eth_getTransactionCount(..., \"pending\", ...)`})}),_jsx(_components.td,{children:`Use normal RPC calls to read the latest canonical state.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`eth_call(..., \"pending\")`})}),_jsx(_components.td,{children:`Use normal RPC calls to read the latest canonical state.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`eth_estimateGas(..., \"pending\")`})}),_jsx(_components.td,{children:`Use normal RPC calls to read the latest canonical state.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`eth_simulateV1(..., \"pending\")`})}),_jsx(_components.td,{children:`Use normal RPC calls to read the latest canonical state.`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`eth_getLogs`}),` with a range ending at `,_jsx(_components.code,{children:`\"pending\"`})]}),_jsx(_components.td,{children:`Use normal RPC calls to query logs from canonical blocks.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`eth_getBlockTransactionCountByNumber(\"pending\")`})}),_jsx(_components.td,{children:`Use normal RPC calls to read the latest canonical block.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Bridge or proof flow that reads historical block hashes or beacon roots`}),_jsx(_components.td,{children:`Review its history assumptions. The retained number of values is unchanged, but 200ms blocks mean that history covers less elapsed time.`})]})]})]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`\"pending\"`}),` block tag and Flashblocks preconfirmation state have no direct equivalent after Denim. The replacements above return canonical data from 200ms blocks, not preconfirmed or pending data.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`test-on-vibenet`,children:`Test on Vibenet`}),`\n`,_jsxs(_components.p,{children:[`Test your migrated integration on `,_jsx(_components.a,{href:`/build-on-base/test-on-vibenet`,children:`Vibenet`}),`. For the protocol design and RPC behavior, see `,_jsx(_components.a,{href:`/upgrades/denim/200ms-blocks`,children:`200ms Native Blocks`}),`.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Migrate From Flashblocks","description":"Migrate your Flashblocks integration to 200ms blocks.","href":"/upgrades/denim/migrate-from-flashblocks"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Summary","slug":"summary","depth":2,"children":[]},{"title":"Recommended Action","slug":"recommended-action","depth":2,"children":[]},{"title":"Update Integrations for Denim","slug":"update-integrations-for-denim","depth":2,"children":[]},{"title":"Test on Vibenet","slug":"test-on-vibenet","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"base-a060aa97","siteName":"Base Documentation","title":"Migrate From Flashblocks - Base Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-22T12:08:52.392Z","originalFileLocation":"upgrades/denim/migrate-from-flashblocks.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Migrate your Flashblocks integration to 200ms blocks.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Base Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/base-a060aa97/j9xtk5UEjYZZf8JS/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/base-a060aa97/j9xtk5UEjYZZf8JS/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/base-a060aa97/j9xtk5UEjYZZf8JS/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/base-a060aa97/j9xtk5UEjYZZf8JS/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/base-a060aa97/j9xtk5UEjYZZf8JS/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/base-a060aa97/j9xtk5UEjYZZf8JS/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/base-a060aa97/j9xtk5UEjYZZf8JS/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/base-a060aa97/j9xtk5UEjYZZf8JS/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/base-a060aa97/j9xtk5UEjYZZf8JS/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Migrate From Flashblocks - Base Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Migrate your Flashblocks integration to 200ms blocks.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Base documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.base.org/upgrades/denim/migrate-from-flashblocks\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://base-a060aa97.mintlify.app/_mintlify/api/og/v2?division=Denim\u0026amp;title=Migrate+From+Flashblocks\u0026amp;description=Migrate+your+Flashblocks+integration+to+200ms+blocks.\u0026amp;theme=8a176d4711cdfbc76f243dff\u0026amp;signature=f73ef4530bf4edc11699387681e4fb229078ec97c7002a981f8e9e1511e72f64\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Migrate From Flashblocks - Base Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Migrate your Flashblocks integration to 200ms blocks.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://base-a060aa97.mintlify.app/_mintlify/api/og/v2?division=Denim\u0026amp;title=Migrate+From+Flashblocks\u0026amp;description=Migrate+your+Flashblocks+integration+to+200ms+blocks.\u0026amp;theme=8a176d4711cdfbc76f243dff\u0026amp;signature=f73ef4530bf4edc11699387681e4fb229078ec97c7002a981f8e9e1511e72f64\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/base-a060aa97/j9xtk5UEjYZZf8JS/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Base Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0000ff\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.base.org/upgrades/denim/migrate-from-flashblocks\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/upgrades/denim/migrate-from-flashblocks.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.base.org/#organization\",\"name\":\"Base Documentation\",\"url\":\"https://docs.base.org\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/base-a060aa97/9LdNiQhE-qTXRlrp/logo/logo_light.svg?fit=max\u0026auto=format\u0026n=9LdNiQhE-qTXRlrp\u0026q=85\u0026s=346ebfbc4cbad6fa96a3466bb7f5aa3a\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.base.org#website\",\"name\":\"Base Documentation\",\"url\":\"https://docs.base.org\",\"publisher\":{\"@id\":\"https://docs.base.org/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.base.org/upgrades/denim/migrate-from-flashblocks#webpage\",\"url\":\"https://docs.base.org/upgrades/denim/migrate-from-flashblocks\",\"name\":\"Migrate From Flashblocks\",\"description\":\"Migrate your Flashblocks integration to 200ms blocks.\",\"dateModified\":\"2026-10-22T12:08:52.392Z\",\"isPartOf\":{\"@id\":\"https://docs.base.org#website\"},\"breadcrumb\":{\"@id\":\"https://docs.base.org/upgrades/denim/migrate-from-flashblocks#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.base.org/upgrades/denim/migrate-from-flashblocks#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Denim\",\"item\":\"https://docs.base.org/upgrades/denim/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Migrate From Flashblocks\",\"item\":\"https://docs.base.org/upgrades/denim/migrate-from-flashblocks\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.base.org/upgrades/denim/migrate-from-flashblocks#article\",\"headline\":\"Migrate From Flashblocks\",\"name\":\"Migrate From Flashblocks\",\"description\":\"Migrate your Flashblocks integration to 200ms blocks.\",\"url\":\"https://docs.base.org/upgrades/denim/migrate-from-flashblocks\",\"mainEntityOfPage\":{\"@id\":\"https://docs.base.org/upgrades/denim/migrate-from-flashblocks#webpage\"},\"dateModified\":\"2026-10-22T12:08:52.392Z\",\"publisher\":{\"@id\":\"https://docs.base.org/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.base.org#website\"}}]}\u003c/script>","siteName":"Base Documentation","nav":{"global":null,"tabs":[{"tab":"Get Started","pages":[{"title":"Get Started","href":"/get-started/base"}]},{"tab":"Build on Base","pages":[{"title":"Build on Base","href":"/build-on-base/overview"}]},{"tab":"Specifications","pages":[{"title":"Specifications","href":"/specifications/overview"}]},{"tab":"SDKs \u0026 APIs","pages":[{"title":"SDKs \u0026 APIs","href":"/sdks/overview"}]},{"tab":"Upgrades","groups":[{"group":"Overview","pages":[{"title":"Upgrades","href":"/upgrades/overview"},{"title":"Configuration Changelog","href":"/base-chain/network-information/configuration-changelog"}]},{"group":"Everest","pages":[{"title":"Overview","href":"/upgrades/everest/overview"}]},{"group":"Denim","pages":[{"title":"Overview","href":"/upgrades/denim/overview"},{"title":"200ms Native Blocks","description":"Specification for Denim's canonical 200ms blocks, including BaseTime, derivation, validation, and RPC behavior.","tag":"Vibenet","href":"/upgrades/denim/200ms-blocks"},{"title":"Migrate From Flashblocks","href":"/upgrades/denim/migrate-from-flashblocks"},{"title":"B20: Reject the Token Itself as a Credit Recipient","description":"Denim reverts InvalidReceiver when a transfer, mint, or seize credits the B20 token's own address, so a mistyped recipient fails instead of locking funds.","href":"/base-chain/specs/reference/b20/changelog/03-denim-b20-token-receiver"},{"title":"B20: Transfer Executor Policy Enforcement","href":"/base-chain/specs/reference/b20/changelog/03-denim-b20-transfer-executor-enforcement"},{"title":"PolicyRegistry: NOT / Invert Policies","href":"/base-chain/specs/reference/b20/changelog/03-denim-policyregistry-not-policy"}]},{"group":"Cobalt","pages":[{"title":"Overview","href":"/upgrades/cobalt/overview"},{"title":"Dynamic Upgrades","href":"/upgrades/cobalt/dynamic-upgrades"},{"title":"B20: ERC-8056 Conformant Multiplier","href":"/base-chain/specs/reference/b20/changelog/02-cobalt-b20asset-multiplier"},{"title":"B20: Seize Functionality","href":"/base-chain/specs/reference/b20/changelog/02-cobalt-b20-seize"},{"title":"PolicyRegistry: Composite Policies (UNION / INTERSECT)","href":"/base-chain/specs/reference/b20/changelog/02-cobalt-policyregistry-composite-policy"},{"title":"Validity Transactions","href":"/upgrades/cobalt/validity-transactions"}]},{"group":"Beryl","pages":[{"title":"Overview","href":"/upgrades/beryl/overview"},{"title":"Reth V2","href":"/upgrades/beryl/reth-v2"},{"title":"Faster Withdrawals","href":"/upgrades/beryl/reducing-canonical-withdrawal-delay"},{"title":"B20 Native Token Standard","href":"/upgrades/beryl/b20"}]},{"group":"Azul","pages":[{"title":"Overview","href":"/upgrades/azul/overview"},{"title":"Node Upgrade Guide","sidebarTitle":"Node Upgrade Guide","href":"/upgrades/azul/node-upgrade"},{"title":"Execution Engine","href":"/upgrades/azul/exec-engine"},{"title":"Proof System","href":"/upgrades/azul/proofs"}]},{"group":"Optimism","pages":[{"group":"Jovian","pages":[{"title":"Jovian","sidebarTitle":"Overview","href":"/upgrades/jovian/overview"},{"title":"Jovian: Execution Engine","href":"/upgrades/jovian/exec-engine"},{"title":"Derivation","href":"/upgrades/jovian/derivation"},{"title":"L1 Block Attributes","href":"/upgrades/jovian/l1-attributes"},{"title":"Jovian: System Config","href":"/upgrades/jovian/system-config"}]},{"group":"Isthmus","pages":[{"title":"Isthmus","sidebarTitle":"Overview","href":"/upgrades/isthmus/overview"},{"title":"L2 Execution Engine","href":"/upgrades/isthmus/exec-engine"},{"title":"Isthmus L2 Chain Derivation Changes","href":"/upgrades/isthmus/derivation"},{"title":"L1 Block Attributes","href":"/upgrades/isthmus/l1-attributes"},{"title":"Predeploys","href":"/upgrades/isthmus/predeploys"},{"title":"Isthmus: System Config","href":"/upgrades/isthmus/system-config"}]},{"group":"Holocene","pages":[{"title":"Holocene","sidebarTitle":"Overview","href":"/upgrades/holocene/overview"},{"title":"L2 Execution Engine","href":"/upgrades/holocene/exec-engine"},{"title":"Holocene L2 Chain Derivation Changes","href":"/upgrades/holocene/derivation"},{"title":"System Config","href":"/upgrades/holocene/system-config"}]},{"group":"Granite","pages":[{"title":"Granite","sidebarTitle":"Overview","href":"/upgrades/granite/overview"},{"title":"L2 Execution Engine","href":"/upgrades/granite/exec-engine"},{"title":"Granite L2 Chain Derivation Changes","href":"/upgrades/granite/derivation"}]},{"group":"Fjord","pages":[{"title":"Fjord","sidebarTitle":"Overview","href":"/upgrades/fjord/overview"},{"title":"L2 Execution Engine","href":"/upgrades/fjord/exec-engine"},{"title":"Fjord L2 Chain Derivation Changes","href":"/upgrades/fjord/derivation"},{"title":"Predeploys","href":"/upgrades/fjord/predeploys"}]},{"group":"Ecotone","pages":[{"title":"Ecotone","sidebarTitle":"Overview","href":"/upgrades/ecotone/overview"},{"title":"Derivation","href":"/upgrades/ecotone/derivation"},{"title":"Ecotone L1 Attributes","href":"/upgrades/ecotone/l1-attributes"}]},{"group":"Delta","pages":[{"title":"Delta","sidebarTitle":"Overview","href":"/upgrades/delta/overview"},{"title":"Span-Batches","href":"/upgrades/delta/span-batches"}]},{"title":"Canyon","href":"/upgrades/canyon/overview"}]}]}]},"basePath":"","title":"Migrate From Flashblocks - Base Documentation","buildId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","deploymentId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","dynamics":[],"chunks":[]}