It is not currently possible to deploy chains using tagged contract locators (i.e., those starting with tag://)
anywhere except Sepolia and Ethereum mainnet. If you try to, you’ll see an error like this:
####################### WARNING! WARNING WARNING! #######################You are deploying a tagged release to a chain with no pre-deployed OPCM.Due to a quirk of our contract version system, this can lead to deployingcontracts containing unaudited or untested code. As a result, thisfunctionality is currently disabled.We will fix this in an upcoming release.This process will now exit.####################### WARNING! WARNING WARNING! #######################
Like the error says, this is due to a quirk of how we version our smart contracts. We currently follow a process
like this:
We tag a release, like op-contracts/v1.8.0.
We update the release notes to reference which contracts are updated in that release.
We manually deploy the updated contract implementations.
We manually deploy a new OPCM to reference the newly-deployed implementations, as well as existing implementations
for any contracts that have not been updated.
There’s a flaw in this strategy, however. The release only includes the contracts that explicitly changed during
that release. This means that any contract not referenced as “updated” in the release notes is “in-development,” and
has not been audited or approved by governance. Deploying all contracts from the release tag will therefore deploy a
combination of prod-ready and in-development code. To get the version of the contract that will actually run in prod,
OP Deployer would have to reference all previous releases to get the correct combination of contracts.For example, to deploy on Holesky you will need to deploy contracts from versions op-contracts/v1.8.0, op-contracts/v1.6.0, and op-contracts/v1.3.0. On
Sepolia and mainnet, we’ve been incrementally deploying implementation contracts so we just use the existing
implementations to work around this issue.We plan on addressing this in our next release. In the meantime, as a workaround you can use a non-tagged locator for
development chains, or use Sepolia or Ethereum mainnet as your L1.
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Optimism Documentation","colors":{"primary":"#FF0420","light":"#FF0420","dark":"#FF0420"},"logo":{"light":"https://mintcdn.com/optimism-373f39ad/Vw5vY8zA-CRjBsUF/public/logos/Lockup_docs_dark.svg?fit=max\u0026auto=format\u0026n=Vw5vY8zA-CRjBsUF\u0026q=85\u0026s=a1ab18aecbec09fe5ad40222ce76f00c","dark":"https://mintcdn.com/optimism-373f39ad/Vw5vY8zA-CRjBsUF/public/logos/Lockup_docs_light.svg?fit=max\u0026auto=format\u0026n=Vw5vY8zA-CRjBsUF\u0026q=85\u0026s=edf965cc513f1a46b1897e2a6494b43b"},"favicon":"https://mintcdn.com/optimism-373f39ad/x8TXRvd2PF-Wx1yv/public/favicon.png?fit=max\u0026auto=format\u0026n=x8TXRvd2PF-Wx1yv\u0026q=85\u0026s=7b7a602bd267ee638c0167179f41737c","navbar":{"links":[{"href":"https://www.optimism.io/blog","label":"Blog"},{"href":"https://github.com/ethereum-optimism/optimism/tree/develop/docs/public-docs","label":"GitHub"}]},"footer":{"socials":{"twitter":"https://twitter.com/optimism","github":"https://github.com/ethereum-optimism"}},"seo":{"metatags":{"canonical":"https://docs.optimism.io/","og:title":"Optimism Documentation","og:type":"website","twitter:card":"summary_large_image"}},"integrations":{"mixpanel":{"projectToken":"807e42c62989ff12427a35baa12b6218"}},"contextual":{"options":["copy","chatgpt","claude","mcp"],"display":"header"},"thumbnails":{"preset":"classic","appearance":"dark","surface":"neutral","background":"https://mintcdn.com/optimism-373f39ad/ZyL9bbNrDzMQhMLM/public/img/thumbnail-bg.png?fit=max\u0026auto=format\u0026n=ZyL9bbNrDzMQhMLM\u0026q=85\u0026s=5baf50afc7e4f4e6288de49b3df19d52","fonts":{"family":"Riforma LL","source":"public/fonts/RiformaLL-Regular.woff","format":"woff"},"eyebrow":{"source":"none"}},"interaction":{"drilldown":false},"metadata":{"timestamp":false},"styling":{"latex":true},"navigation":{"global":{"anchors":[{"anchor":"Status","icon":"signal-bars","href":"https://status.optimism.io"},{"anchor":"Faucet","icon":"gas-pump","href":"https://console.optimism.io/faucet"},{"anchor":"Bridge","icon":"bridge-water","href":"https://app.optimism.io/bridge/deposit"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"optimism-373f39ad","hasAudioNarration":false,"actualSubdomain":"optimism-373f39ad","customDomains":["docs.optimism.io"],"gitSource":{"type":"github","owner":"ethereum-optimism","repo":"optimism","deployBranch":"develop","contentDirectory":"docs/public-docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae370aa878abd4f8baed6ff","collectionId":"a046324a-d997-4a23-995f-cab51ecc8ad4","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae370aa878abd4f8baed6ff"},"feedback":{"thumbs":true,"issues":false,"edits":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":"6ae370aa878abd4f8baed6ff","clientVersion":"0.0.4021","searchFilterCounts":[{"language":"default","tag":"Reference","count":136},{"language":"default","tag":"Node Operators","count":119},{"language":"default","tag":"Protocol","count":98},{"language":"default","tag":"Chain Operators","count":75},{"language":"default","tag":"op-reth","count":74},{"language":"default","tag":"op-reth CLI reference","count":73},{"language":"default","tag":"App Developers","count":68},{"language":"default","tag":"Guides","count":52},{"language":"default","tag":"Tutorials","count":42},{"language":"default","tag":"How the protocol works","count":41}]},"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":"pause-universal-search-reconcile","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":"per-site-search-delta","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":"editor-private-page-search","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":"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":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"styles/homepage.css","content":"@font-face{font-family:'Riforma LL';src:url(/fonts/RiformaLL-Regular.woff2) format('woff2');font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:'Riforma LL';src:url(/fonts/RiformaLL-Italic.woff2) format('woff2');font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:'Riforma LL';src:url(/fonts/RiformaLL-Medium.woff2) format('woff2');font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:'Riforma LL';src:url(/fonts/RiformaLL-MediumItalic.woff2) format('woff2');font-weight:500;font-style:italic;font-display:swap}@font-face{font-family:'Riforma LL';src:url(/fonts/RiformaLL-Bold.woff2) format('woff2');font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:'Riforma LL';src:url(/fonts/RiformaLL-BoldItalic.woff2) format('woff2');font-weight:700;font-style:italic;font-display:swap}@font-face{font-family:'Riforma LL';src:url(/fonts/RiformaLL-Heavy.woff2) format('woff2');font-weight:900;font-style:normal;font-display:swap}@font-face{font-family:'Riforma LL';src:url(/fonts/RiformaLL-HeavyItalic.woff2) format('woff2');font-weight:900;font-style:italic;font-display:swap}@font-face{font-family:'Riforma LL';src:url(/fonts/RiformaLL-Light.woff2) format('woff2');font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:'Riforma LL';src:url(/fonts/RiformaLL-LightItalic.woff2) format('woff2');font-weight:300;font-style:italic;font-display:swap}.nx-prose,.nx-prose h1,.nx-prose h2,.nx-prose h3,.nx-prose h4,.nx-prose h5,.nx-prose h6,.nx-prose p,[data-page-id=index] h1,body{font-family:'Riforma LL',-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,sans-serif!important}[data-page-id=index] h1+p,[data-page-id=index]>p:first-of-type{font-family:'Riforma LL',-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,sans-serif!important;font-family:var(--font-riforma)!important;font-size:1.25rem!important;line-height:1.6!important;color:#6b7280!important;margin-bottom:2rem!important;margin-top:0!important;max-width:100%!important}html[class*=dark] [data-page-id=index] h1+p,html[class*=dark] [data-page-id=index]>p:first-of-type{color:#9ca3af!important}body{font-family:var(--font-riforma)!important}html[class*=dark] body{background:#0f172a!important}.btn-primary,.btn-secondary,.hero-content h1,.hero-content p{font-family:'Riforma LL',-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,sans-serif}html[class*=dark] .hero-content p{color:#9ca3af}.btn-primary,.btn-secondary{border-radius:6px}@media (max-width:768px){.hero-section{flex-direction:column;text-align:center;min-height:auto;padding:2rem 0}.hero-content{padding-right:0;margin-bottom:2rem}.hero-content h1{font-size:1.75rem}.hero-buttons{justify-content:center}}.home-card .home-card__title{font-family:'Riforma LL',-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,sans-serif!important}.card-list-item__description,.card-list-item__title{font-family:'Riforma LL',-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,sans-serif}@media (max-width:768px){.hero-section{padding:4rem 2rem;flex-direction:column;text-align:center;min-height:auto}.hero-content{margin-bottom:2rem;max-width:none}.home-cards{grid-template-columns:1fr!important;padding:0 2rem}.nx-prose{padding-left:2rem!important;padding-right:2rem!important}.card-list-item__header{flex-direction:column;align-items:flex-start;gap:.5rem}}@font-face{font-family:'Riforma LL';src:url(/fonts/RiformaLL-Regular.woff2) format('woff2');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'Riforma LL';src:url(/fonts/RiformaLL-Regular.woff2) format('woff2');font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:'Riforma LL';src:url(/fonts/RiformaLL-Italic.woff2) format('woff2');font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:'Riforma LL';src:url(/fonts/RiformaLL-Medium.woff2) format('woff2');font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:'Riforma LL';src:url(/fonts/RiformaLL-MediumItalic.woff2) format('woff2');font-weight:500;font-style:italic;font-display:swap}@font-face{font-family:'Riforma LL';src:url(/fonts/RiformaLL-Bold.woff2) format('woff2');font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:'Riforma LL';src:url(/fonts/RiformaLL-BoldItalic.woff2) format('woff2');font-weight:700;font-style:italic;font-display:swap}@font-face{font-family:'Riforma LL';src:url(/fonts/RiformaLL-Heavy.woff2) format('woff2');font-weight:900;font-style:normal;font-display:swap}@font-face{font-family:'Riforma LL';src:url(/fonts/RiformaLL-HeavyItalic.woff2) format('woff2');font-weight:900;font-style:italic;font-display:swap}@font-face{font-family:'Riforma LL';src:url(/fonts/RiformaLL-Light.woff2) format('woff2');font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:'Riforma LL';src:url(/fonts/RiformaLL-LightItalic.woff2) format('woff2');font-weight:300;font-style:italic;font-display:swap}.nx-logo img,a[href=\"/\"] img,header img[src*=logo],img[alt*=logo],nav img{max-height:13px!important;width:auto!important;height:13px!important}:root{--font-riforma:'Riforma LL', -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif;--font-mono:'Roboto Mono', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace}.nx-prose,.nx-prose blockquote,.nx-prose h1,.nx-prose h2,.nx-prose h3,.nx-prose h4,.nx-prose h5,.nx-prose h6,.nx-prose li,.nx-prose p,.nx-prose td,.nx-prose th,a:not(pre a):not(code a),body,button,div:not([class*=language-]):not(pre):not(code),html,span:not([class*=language-]):not([class*=token]){font-family:var(--font-riforma)!important}.boolean,.cdata,.class-name,.comment,.constant,.deleted,.doctype,.function,.important,.keyword,.language-bash,.language-javascript,.language-json,.language-python,.language-sh,.language-shell,.language-solidity,.language-typescript,.language-yaml,.language-yml,.number,.nx-bg-primary-700\\/5,.nx-code-block,.nx-code-block *,.nx-code-block span,.nx-font-mono,.operator,.prolog,.property,.punctuation,.regex,.symbol,.tag,.token,.variable,[class*=language-],[class*=language-] *,[class*=language-] span,code,code *,code span,div[data-language],div[data-language] *,div[data-language] span,div[data-theme*=dark],div[data-theme*=light],pre,pre *,pre span,span[class*=token]{font-family:var(--font-mono)!important;font-feature-settings:normal!important}.nx-prose h1,.nx-prose h2,.nx-prose h3,h1,h2,h3{font-family:var(--font-riforma)!important;font-weight:400!important}[data-page-id=index]{max-width:1400px!important;margin-left:auto!important;margin-right:auto!important;padding-left:2rem!important;padding-right:2rem!important}[data-page-id=index] h1{font-size:3rem!important;font-weight:400!important;line-height:1.1!important;margin-bottom:1rem!important;margin-top:0!important;padding-top:0!important;color:#111827!important;letter-spacing:-.02em!important}html[class*=dark] [data-page-id=index] h1{color:#f9fafb!important}[data-page-id=index] .nx-prose{padding-top:0!important;padding-left:0!important;padding-right:0!important;max-width:100%!important}.nx-container{max-width:none!important;padding:0!important}[data-page-id=index] h1,[data-page-id=index]>div>div{max-width:100%!important}body{background:#fff!important}.nx-bg-gradient-to-b,.nx-bg-gradient-to-bl,.nx-bg-gradient-to-br,.nx-bg-gradient-to-l,.nx-bg-gradient-to-r,.nx-bg-gradient-to-t,.nx-bg-gradient-to-tl,.nx-bg-gradient-to-tr,.nx-container{background:0 0!important}.hero-section{display:flex;align-items:center;justify-content:space-between;min-height:auto;padding:0;margin-bottom:2.5rem;max-width:100%;margin-left:0;margin-right:0;background:0 0}.hero-content{flex:1;max-width:505px}.hero-content h1,.hero-content p,[data-page-id=index] h1{font-family:var(--font-riforma)!important}.hero-content h1{font-size:2.5rem;font-weight:600;line-height:1.2;margin-bottom:.75rem;color:#111827;letter-spacing:-.025em}html[class*=dark] .hero-content h1{color:#f9fafb}.hero-content p{font-size:1.125rem;font-weight:400;line-height:1.6;margin-bottom:1rem;color:#6b7280}.hero-visual{flex:1;display:flex;justify-content:center;align-items:center}.hero-visual img{max-width:100%;height:auto}.hero-buttons{display:flex;gap:1rem}.btn-primary{font-family:var(--font-riforma)!important;background-color:#ff0420;color:#fff;padding:.75rem 1.5rem;border:0;border-radius:.75rem;font-weight:500;cursor:pointer;transition:background-color .2s;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;text-align:center}.btn-primary:hover,.btn-secondary{background-color:#e00320;color:#fff;text-decoration:none}.btn-secondary{font-family:var(--font-riforma)!important;background-color:transparent;color:#1f2937;padding:.75rem 1.5rem;border:1px solid #d1d5db;border-radius:.75rem;font-weight:500;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;justify-content:center;text-align:center}.btn-secondary:hover{background-color:#f9fafb;border-color:#9ca3af;color:#1f2937;text-decoration:none}html[class*=dark] .btn-secondary{color:#f9fafb;border-color:#4b5563}html[class*=dark] .btn-secondary:hover{background-color:#374151;border-color:#6b7280;color:#f9fafb}@media (max-width:768px){.hero-section{flex-direction:column;text-align:center;min-height:auto;padding:2rem 0}.hero-content{padding-right:0;margin-bottom:2rem}.hero-content h1{font-size:1.75rem}.hero-buttons{justify-content:center}}.home-cards{width:100%;margin-bottom:2.5rem;margin-top:0;max-width:100%;margin-left:0;margin-right:0;padding:0}.home-card{display:flex;flex-direction:column;padding:1.75rem;background:0 0;border:1px solid #e2e8f0;border-radius:12px;transition:all .2s ease}html[class*=dark] .home-card{background:#1e293b;border-color:#334155}.home-card .home-card__title{font-family:var(--font-riforma)!important;font-size:1.5rem!important;font-weight:400!important;margin:0 0 1.5rem;color:#0f172a;letter-spacing:-.01em}html[class*=dark] .home-card .home-card__title{color:#f1f5f9}.home-card__footer{margin-top:auto;padding-top:1.5rem}.home-card__footer-link{color:#64748b;text-decoration:none;font-size:.875rem;font-weight:500;transition:color .2s ease}.home-card__footer-link:hover{color:#475569;text-decoration:none}html[class*=dark] .home-card__footer-link{color:#94a3b8}html[class*=dark] .card-list-item:hover .card-list-item__description,html[class*=dark] .home-card__footer-link:hover{color:#cbd5e1}.card-list{display:flex;flex-direction:column;gap:0}.card-list-item{display:flex;align-items:flex-start;gap:1rem;padding:.875rem 0;border-radius:6px;text-decoration:none;color:inherit;transition:all .2s ease;border-bottom:1px solid #f1f5f9}.card-list-item:last-child{border-bottom:none}html[class*=dark] .card-list-item{border-bottom-color:#334155}.card-list-item:hover .card-list-item__title,html[class*=dark] .card-list-item:hover .card-list-item__arrow{color:#ef4444}.card-list-item:hover .card-list-item__description{color:#475569}.card-list-item__number{width:2rem;height:2rem;border-radius:50%;background:#f1f5f9;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.875rem;flex-shrink:0;color:#475569}html[class*=dark] .card-list-item__number{background:#334155;color:#cbd5e1}.card-list-item__content{flex:1}.card-list-item__header{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem}.card-list-item__description,.card-list-item__title{font-family:var(--font-riforma)!important;margin:0;transition:color .2s ease}.card-list-item__title{font-size:1rem;font-weight:400;color:#0f172a;letter-spacing:-.01em}html[class*=dark] .card-list-item__title{color:#f1f5f9}.card-list-item__description{font-size:.875rem;color:#64748b;line-height:1.5}html[class*=dark] .card-list-item__description{color:#94a3b8}.card-list-item__badge{padding:.25rem .75rem;border-radius:16px;font-size:.75rem;font-weight:600;text-transform:capitalize}.card-list-item__badge--easy{background:#dcfce7;color:#166534}.card-list-item__badge--medium{background:#fef3c7;color:#92400e}.card-list-item__badge--hard{background:#fee2e2;color:#991b1b}html[class*=dark] .card-list-item__badge--easy{background:#14532d;color:#bbf7d0}html[class*=dark] .card-list-item__badge--medium{background:#92400e;color:#fef3c7}html[class*=dark] .card-list-item__badge--hard{background:#991b1b;color:#fecaca}.card-list-item__arrow{color:#cbd5e1;font-size:1.25rem;transition:all .2s ease;display:flex;align-items:center;justify-content:center;margin-top:.25rem}.card-list-item:hover .card-list-item__arrow{transform:translateX(4px);color:#ef4444}html[class*=dark] .card-list-item__arrow{color:#64748b}.nx-prose:not([data-page-id=index] .nx-prose){max-width:1400px!important;margin-left:auto!important;margin-right:auto!important;padding-left:2rem!important;padding-right:2rem!important}@media (max-width:768px){.hero-section{padding:4rem 2rem;flex-direction:column;text-align:center;min-height:auto}.hero-content{margin-bottom:2rem;max-width:none}.home-cards{grid-template-columns:1fr!important;padding:0 2rem}.nx-prose{padding-left:2rem!important;padding-right:2rem!important}.card-list-item__header{flex-direction:column;align-items:flex-start;gap:.5rem}}.nx-card img,[class*=card] img[src*=\"/public/img/\"]{background:0 0!important}"}],"page":{"pagePath":"chain-operators/tools/op-deployer/known-limitations","slug":"/chain-operators/tools/op-deployer/known-limitations","pageMetadata":{"title":"Known Limitations","description":"Known limitations and workarounds for OP Deployer.","diataxis":"reference","href":"/chain-operators/tools/op-deployer/known-limitations"},"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: \"Known limitations and workarounds for OP Deployer.\"\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`,em:`em`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,..._provideComponents(),...props.components},{CodeBlock,Heading,Info}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`OP Deployer is subject to some known limitations which we’re working on addressing in future releases.`}),`\n`,_jsx(Heading,{level:`2`,id:`tagged-releases-on-new-chains`,children:`Tagged Releases on New Chains`}),`\n`,_jsx(Info,{children:_jsx(_components.p,{children:_jsx(_components.strong,{children:`Fixed in all versions after v0.0.11.`})})}),`\n`,_jsxs(_components.p,{children:[`It is not currently possible to deploy chains using tagged contract locators (i.e., those starting with `,_jsx(_components.code,{children:`tag://`}),`)\nanywhere except Sepolia and Ethereum mainnet. If you try to, you’ll see an error like this:`]}),`\n`,_jsx(CodeBlock,{numberOfLines:`13`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`13`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`####################### WARNING! WARNING WARNING! #######################`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`You are deploying a tagged release to a chain with no pre-deployed OPCM.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Due to a quirk of our contract version system, this can lead to deploying`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`contracts containing unaudited or untested code. As a result, this`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`functionality is currently disabled.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`We will fix this in an upcoming release.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`This process will now exit.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`####################### WARNING! WARNING WARNING! #######################`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`Like the error says, this is due to a quirk of how we version our smart contracts. We currently follow a process\nlike this:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`We tag a release, like op-contracts/v1.8.0.`}),`\n`,_jsxs(_components.li,{children:[`We update the `,_jsx(_components.a,{href:`https://github.com/ethereum-optimism/optimism/releases/tag/op-contracts%2Fv1.8.0`,children:`release notes`}),` to reference which contracts are updated in that release.`]}),`\n`,_jsx(_components.li,{children:`We manually deploy the updated contract implementations.`}),`\n`,_jsx(_components.li,{children:`We manually deploy a new OPCM to reference the newly-deployed implementations, as well as existing implementations\nfor any contracts that have not been updated.`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`There’s a flaw in this strategy, however. The release only includes the contracts that explicitly changed during\nthat release. `,_jsx(_components.strong,{children:`This means that any contract not referenced as “updated” in the release notes is “in-development,” and\nhas not been audited or approved by governance.`}),` Deploying all contracts from the release tag will therefore deploy a\ncombination of prod-ready and in-development code. To get the version of the contract that will `,_jsx(_components.em,{children:`actually`}),` run in prod,\nOP Deployer would have to reference all previous releases to get the correct combination of contracts.`]}),`\n`,_jsxs(_components.p,{children:[`For example, to deploy on Holesky you will need to deploy contracts from versions `,_jsx(_components.code,{children:`op-contracts/v1.8.0`}),`, `,_jsx(_components.code,{children:`op-contracts/v1.6.0`}),`, and `,_jsx(_components.code,{children:`op-contracts/v1.3.0`}),`. On\nSepolia and mainnet, we’ve been incrementally deploying implementation contracts so we just use the existing\nimplementations to work around this issue.`]}),`\n`,_jsx(_components.p,{children:`We plan on addressing this in our next release. In the meantime, as a workaround you can use a non-tagged locator for\ndevelopment chains, or use Sepolia or Ethereum mainnet as your L1.`})]})}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":"Known Limitations","description":"Known limitations and workarounds for OP Deployer.","diataxis":"reference","href":"/chain-operators/tools/op-deployer/known-limitations"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Tagged Releases on New Chains","slug":"tagged-releases-on-new-chains","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/optimism-373f39ad/6b11b6c32a46a09b/public/mixpanel-custom.js"],"subdomain":"optimism-373f39ad","siteName":"Optimism Documentation","title":"Optimism Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-01-23T18:56:06.076Z","originalFileLocation":"chain-operators/tools/op-deployer/known-limitations.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=\"Known limitations and workarounds for OP Deployer.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Optimism 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/optimism-373f39ad/v3BpzhmZ-un_k_ZG/_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/optimism-373f39ad/v3BpzhmZ-un_k_ZG/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/optimism-373f39ad/v3BpzhmZ-un_k_ZG/_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/optimism-373f39ad/v3BpzhmZ-un_k_ZG/_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/optimism-373f39ad/v3BpzhmZ-un_k_ZG/_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/optimism-373f39ad/v3BpzhmZ-un_k_ZG/_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/optimism-373f39ad/v3BpzhmZ-un_k_ZG/_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/optimism-373f39ad/v3BpzhmZ-un_k_ZG/_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/optimism-373f39ad/v3BpzhmZ-un_k_ZG/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Optimism Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Known limitations and workarounds for OP Deployer.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Optimism Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.optimism.io//chain-operators/tools/op-deployer/known-limitations\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://optimism-373f39ad.mintlify.app/_mintlify/api/og/v2?title=Known+Limitations\u0026amp;description=Known+limitations+and+workarounds+for+OP+Deployer.\u0026amp;theme=f64aba71940449e3ce8f3efe\u0026amp;signature=409126cb80366b877c9276e290289373c4c8b802cf9f22ca20b2aacc71092c52\">\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=\"Optimism Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Known limitations and workarounds for OP Deployer.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://optimism-373f39ad.mintlify.app/_mintlify/api/og/v2?title=Known+Limitations\u0026amp;description=Known+limitations+and+workarounds+for+OP+Deployer.\u0026amp;theme=f64aba71940449e3ce8f3efe\u0026amp;signature=409126cb80366b877c9276e290289373c4c8b802cf9f22ca20b2aacc71092c52\">\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/optimism-373f39ad/v3BpzhmZ-un_k_ZG/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Optimism Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#FF0420\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.optimism.io//chain-operators/tools/op-deployer/known-limitations\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/chain-operators/tools/op-deployer/known-limitations.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.optimism.io/#organization\",\"name\":\"Optimism Documentation\",\"url\":\"https://docs.optimism.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/optimism-373f39ad/Vw5vY8zA-CRjBsUF/public/logos/Lockup_docs_dark.svg?fit=max\u0026auto=format\u0026n=Vw5vY8zA-CRjBsUF\u0026q=85\u0026s=a1ab18aecbec09fe5ad40222ce76f00c\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.optimism.io#website\",\"name\":\"Optimism Documentation\",\"url\":\"https://docs.optimism.io\",\"publisher\":{\"@id\":\"https://docs.optimism.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.optimism.io//chain-operators/tools/op-deployer/known-limitations#webpage\",\"url\":\"https://docs.optimism.io//chain-operators/tools/op-deployer/known-limitations\",\"name\":\"Known Limitations\",\"description\":\"Known limitations and workarounds for OP Deployer.\",\"dateModified\":\"2026-01-23T18:56:06.076Z\",\"isPartOf\":{\"@id\":\"https://docs.optimism.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.optimism.io//chain-operators/tools/op-deployer/known-limitations#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.optimism.io//chain-operators/tools/op-deployer/known-limitations#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Tools\",\"item\":\"https://docs.optimism.io/chain-operators/tools/chain-monitoring\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"OP Deployer\",\"item\":\"https://docs.optimism.io/chain-operators/tools/op-deployer/overview\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Known Limitations\",\"item\":\"https://docs.optimism.io//chain-operators/tools/op-deployer/known-limitations\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.optimism.io//chain-operators/tools/op-deployer/known-limitations#article\",\"headline\":\"Known Limitations\",\"name\":\"Known Limitations\",\"description\":\"Known limitations and workarounds for OP Deployer.\",\"url\":\"https://docs.optimism.io//chain-operators/tools/op-deployer/known-limitations\",\"mainEntityOfPage\":{\"@id\":\"https://docs.optimism.io//chain-operators/tools/op-deployer/known-limitations#webpage\"},\"dateModified\":\"2026-01-23T18:56:06.076Z\",\"publisher\":{\"@id\":\"https://docs.optimism.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.optimism.io#website\"}}]}\u003c/script>","siteName":"Optimism Documentation","nav":{"global":{"anchors":[{"anchor":"Status","icon":"signal-bars","href":"https://status.optimism.io"},{"anchor":"Faucet","icon":"gas-pump","href":"https://console.optimism.io/faucet"},{"anchor":"Bridge","icon":"bridge-water","href":"https://app.optimism.io/bridge/deposit"}]},"tabs":[{"tab":"Get Started","pages":[{"title":"Get Started","href":""}]},{"tab":"Chain Operators","groups":[{"group":"Launch a chain","pages":[{"title":"Chain operators","sidebarTitle":"Overview","href":"/chain-operators"}]},{"group":"Guides","pages":[{"group":"Configuration","pages":[{"title":"Chain Operator Configurations","href":"/chain-operators/guides/configuration/getting-started"},{"title":"Configure the batcher","href":"/chain-operators/guides/configuration/batcher"},{"title":"Proposer Configuration","href":"/chain-operators/guides/configuration/proposer"},{"title":"How to configure challenger for your chain","href":"/chain-operators/guides/configuration/op-challenger-config-guide"}]},{"group":"Features","pages":[{"title":"Deploy a Custom Gas Token chain","href":"/chain-operators/guides/features/custom-gas-token-guide"},{"title":"Switch to Kona Proofs","href":"/chain-operators/guides/features/switching-to-kona-proofs"},{"title":"Set the Minimum Base Fee","href":"/chain-operators/guides/features/setting-min-base-fee"},{"title":"Set the Operator Fee","href":"/chain-operators/guides/features/setting-operator-fee"},{"title":"Set the DA Footprint Gas Scalar","href":"/chain-operators/guides/features/setting-da-footprint"},{"title":"Enabling Subblocks","href":"/chain-operators/guides/features/subblocks-guide"},{"title":"Enabling Sequencer Defined Metering","href":"/chain-operators/guides/features/sequencer-defined-metering"},{"title":"How to run an Alt-DA mode chain","href":"/chain-operators/guides/features/alt-da-mode-guide"},{"title":"Post batch data as blobs","href":"/chain-operators/guides/features/blobs"},{"title":"Enable span batches","href":"/chain-operators/guides/features/enable-span-batches"},{"title":"Using snap sync for chain operators","href":"/chain-operators/guides/features/snap-sync"}]},{"group":"Management","pages":[{"title":"Chain operator best practices","href":"/chain-operators/guides/management/best-practices"},{"title":"Network Design Example","href":"/chain-operators/guides/management/network-architecture"},{"title":"Changing gas target/limit","href":"/chain-operators/guides/management/gas-target-limit"},{"title":"Key management","href":"/chain-operators/guides/management/key-management"},{"title":"Rollup operations","href":"/chain-operators/guides/management/operations"},{"title":"Transaction Fees 101","href":"/chain-operators/guides/management/transaction-fees-101"},{"title":"Fee vault operations","href":"/chain-operators/guides/management/fee-vaults"},{"title":"Troubleshooting chain operations","href":"/chain-operators/guides/management/troubleshooting"}]},{"title":"Join the Superchain Registry","href":"/chain-operators/guides/join-superchain-registry"}]},{"group":"Tutorials","pages":[{"group":"Create L2 Rollup","pages":[{"title":"Creating your own L2 rollup testnet","href":"/chain-operators/tutorials/create-l2-rollup/index"},{"title":"Deploy L1 contracts with op-deployer","href":"/chain-operators/tutorials/create-l2-rollup/op-deployer-setup"},{"title":"Spin up sequencer","href":"/chain-operators/tutorials/create-l2-rollup/op-reth-setup"},{"title":"Spin up batcher","href":"/chain-operators/tutorials/create-l2-rollup/op-batcher-setup"},{"title":"Spin up proposer","href":"/chain-operators/tutorials/create-l2-rollup/op-proposer-setup"},{"title":"Spin up challenger","href":"/chain-operators/tutorials/create-l2-rollup/op-challenger-setup"},{"title":"L2 Rollup Code Examples","href":"/chain-operators/tutorials/create-l2-rollup/code-setup"}]},{"group":"L1 contract upgrades","pages":[{"title":"Upgrade L1 contracts using op-deployer","href":"/chain-operators/tutorials/l1-contract-upgrades/op-deployer-upgrade"},{"title":"Upgrade using superchain-ops","href":"/chain-operators/tutorials/l1-contract-upgrades/superchain-ops-guide"},{"title":"Upgrading Smart Contracts from v1.3.0 to v1.8.0","href":"/chain-operators/tutorials/l1-contract-upgrades/upgrade-op-contracts-1-3-1-8"}]},{"group":"Customize your chain","pages":[{"title":"Adding a precompile","href":"/chain-operators/tutorials/adding-precompiles"},{"title":"Modifying predeployed contracts","href":"/chain-operators/tutorials/modifying-predeploys"},{"title":"Adding attributes to the derivation function","href":"/chain-operators/tutorials/adding-derivation-attributes"},{"title":"Integrating a new DA layer with Alt-DA","href":"/chain-operators/tutorials/integrating-da-layer"}]},{"group":"Proofs \u0026 disputes","pages":[{"title":"Generating absolute prestate and preimage files","href":"/chain-operators/tutorials/absolute-prestate"},{"title":"Generating a custom kona-client absolute prestate","href":"/chain-operators/tutorials/kona-custom-prestate"},{"title":"Deploying new dispute games with OPCM","href":"/chain-operators/tutorials/dispute-games"},{"title":"Migrating to permissionless fault proofs on OP Stack","href":"/chain-operators/tutorials/migrating-permissionless"},{"title":"Merging Two Chains Into a Shared Dispute Game","href":"/chain-operators/tutorials/merge-shared-dispute-game"}]},{"group":"Operations","pages":[{"title":"How to rewind op-geth","href":"/chain-operators/tutorials/rewind-op-geth"},{"title":"Upgrading a Chain From Output Roots to Super Roots","href":"/chain-operators/tutorials/upgrade-chain-to-super-roots"}]}]},{"group":"Tools","pages":[{"title":"Chain monitoring options","href":"/chain-operators/tools/chain-monitoring"},{"title":"Blockscout block explorer","href":"/chain-operators/tools/explorer"},{"group":"OP Conductor","pages":[{"title":"OP Conductor","href":"/chain-operators/tools/op-conductor"},{"title":"Setup","href":"/chain-operators/tools/op-conductor/setup"},{"title":"Configuration and RPCs","href":"/chain-operators/tools/op-conductor/reference"}]},{"group":"OP Deployer","pages":[{"title":"OP Deployer","href":"/chain-operators/tools/op-deployer/overview"},{"title":"Install op-deployer","href":"/chain-operators/tools/op-deployer/installation"},{"group":"Usage","pages":[{"title":"Bootstrap Commands","href":"/chain-operators/tools/op-deployer/usage/bootstrap"},{"title":"Init Command","href":"/chain-operators/tools/op-deployer/usage/init"},{"title":"Apply Command","href":"/chain-operators/tools/op-deployer/usage/apply"},{"title":"Verify Command","href":"/chain-operators/tools/op-deployer/usage/verify"},{"title":"Custom Deployments","href":"/chain-operators/tools/op-deployer/usage/custom-deployments"},{"title":"Release Workflows","description":"Learn how to backport fixes onto earlier OP Deployer versions and add support for new contract versions.","href":"/chain-operators/tools/op-deployer/usage/release-workflows"}]},{"title":"Known Limitations","href":"/chain-operators/tools/op-deployer/known-limitations"},{"group":"Reference","pages":[{"group":"Architecture","pages":[{"title":"Architecture","description":"Understand OP Deployer's architecture and internals.","href":"/chain-operators/tools/op-deployer/reference/architecture/overview"},{"title":"Deployment Pipeline","href":"/chain-operators/tools/op-deployer/reference/architecture/pipeline"},{"title":"Scripting Engine","href":"/chain-operators/tools/op-deployer/reference/architecture/engine"}]},{"title":"Artifacts Locators","href":"/chain-operators/tools/op-deployer/reference/artifacts-locators"},{"title":"op-deployer versioning and releases","href":"/chain-operators/tools/op-deployer/reference/releases"}]}]},{"title":"OP Interop Filter","href":"/chain-operators/tools/op-interop-filter"},{"title":"OP Txproxy","href":"/chain-operators/tools/op-txproxy"},{"title":"Run proxyd","href":"/chain-operators/tools/proxyd"}]},{"group":"Reference","pages":[{"title":"Batcher configuration reference","href":"/chain-operators/reference/batcher-configuration"},{"title":"Challenger configuration reference","href":"/chain-operators/reference/challenger-configuration"},{"title":"OP Contracts Manager","href":"/chain-operators/reference/opcm"},{"title":"Rollup deployment configuration","href":"/chain-operators/reference/rollup-deployment-configuration"},{"title":"Fee parameters","href":"/chain-operators/reference/fee-parameters"},{"title":"How the DA footprint block limit works","href":"/chain-operators/reference/da-footprint"}]},{"group":"Archive","pages":[{"title":"Generating an op-program absolute prestate (archived)","href":"/chain-operators/tutorials/archive/op-program-prestate"}]}]},{"tab":"Node Operators","pages":[{"title":"Node Operators","href":"/node-operators/overview"}]},{"tab":"App Developers","pages":[{"title":"App Developers","href":"/app-developers"}]},{"tab":"Protocol","pages":[{"title":"Protocol","href":"/op-stack/introduction/op-stack"}]},{"tab":"OP Mainnet","pages":[{"title":"OP Mainnet","href":"/op-mainnet"}]},{"tab":"Governance","pages":[{"title":"Governance","href":"/governance/protocol-upgrades"}]},{"tab":"Notices","pages":[{"title":"Notices","href":"/notices"}]}]},"title":"Optimism Documentation","buildId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","deploymentId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","dynamics":[],"chunks":[]}