Free 30-min Web3 Consultation
Book Now
Smart Contract Security Audits
Learn More
Custom DeFi Protocol Development
Explore
Full-Stack Web3 dApp Development
View Services
Free 30-min Web3 Consultation
Book Now
Smart Contract Security Audits
Learn More
Custom DeFi Protocol Development
Explore
Full-Stack Web3 dApp Development
View Services
Free 30-min Web3 Consultation
Book Now
Smart Contract Security Audits
Learn More
Custom DeFi Protocol Development
Explore
Full-Stack Web3 dApp Development
View Services
Free 30-min Web3 Consultation
Book Now
Smart Contract Security Audits
Learn More
Custom DeFi Protocol Development
Explore
Full-Stack Web3 dApp Development
View Services
LABS
Guides

How to Define Upgrade Success Criteria

A technical guide for developers and protocol engineers on establishing measurable, objective success criteria for blockchain network upgrades and hard forks.
Chainscore © 2026
introduction
INTRODUCTION

How to Define Upgrade Success Criteria

A systematic framework for establishing measurable, objective benchmarks to evaluate the success of a smart contract upgrade before it is deployed.

A successful smart contract upgrade is not defined by the mere execution of a transaction. It is a verifiable outcome measured against predefined, objective criteria established before deployment. Defining these success criteria transforms a high-risk governance event into a controlled, measurable process. This approach is critical for protocols like Uniswap, Compound, or Aave, where a failed upgrade could lock millions in user funds or disrupt core protocol functionality. The goal is to move from subjective debate to data-driven validation.

Effective success criteria are SMART: Specific, Measurable, Achievable, Relevant, and Time-bound. For a governance upgrade, a specific criterion might be "The new Governor contract successfully processes a mock proposal on a testnet fork." Measurability is provided by on-chain verification—checking that the proposal state transitioned from Pending to Succeeded. This contrasts with vague goals like "improve security," which cannot be objectively validated post-upgrade. Criteria should be technical assertions, not aspirational statements.

Criteria should span all critical upgrade dimensions. Functional correctness ensures new logic works as intended (e.g., "The updated swap function calculates fees within a 0.01% tolerance of off-chain simulations"). State integrity verifies data persistence (e.g., "All user balances in the Vault contract are identical pre- and post-upgrade"). Security and access control checks are vital (e.g., "The DEFAULT_ADMIN_ROLE is correctly revoked from the deprecated proxy admin contract"). Each criterion must have a clear pass/fail condition observable on-chain or via tooling like Tenderly or Foundry.

The final, non-negotiable criterion is a rollback readiness check. Before executing the upgrade, the team must confirm that all emergency mechanisms—such as a multisig-controlled upgradeToAndCall back to the previous implementation or a paused state—are functional and have been tested. This creates a known-safe recovery path. Defining success is ultimately about risk mitigation: by agreeing on what "working" looks like in advance, teams can execute upgrades with greater confidence and provide transparent accountability to their community and stakeholders.

prerequisites
PREREQUISITES

How to Define Upgrade Success Criteria

Before executing a smart contract upgrade, you must establish clear, measurable success criteria to verify the deployment's correctness and safety.

Defining upgrade success criteria is a critical governance and operational step that moves beyond simple deployment. It transforms the upgrade from a technical event into a verifiable process with objective pass/fail conditions. These criteria should be agreed upon by stakeholders—including developers, auditors, and governance token holders—before the upgrade proposal is finalized. Common categories include functional correctness (does the new logic work?), state integrity (is user data preserved?), and economic safety (are funds and incentives unchanged?).

Effective criteria are specific and measurable. Avoid vague goals like "the protocol works." Instead, define concrete checks: require(newContract.balanceOf(user) == oldContract.balanceOf(user)) for state integrity, or a specific transaction (e.g., a swap on a DEX upgrade) that must succeed with expected output. For security, criteria might include verifying that all existing access control roles are correctly transferred and that no new, unexpected privileged functions exist. Tools like Etherscan's contract verification and Tenderly's simulation dashboards are often used to validate these checks.

Integrate these criteria into your post-upgrade verification script. This is typically an automated script or a series of manual checks executed immediately after the new contract is activated. For a complex upgrade like migrating to Uniswap V4, your script might verify that all liquidity positions from V3 are correctly mirrored, fee accrual is uninterrupted, and the new hook contracts are callable. Documenting and sharing the success criteria and verification results builds transparency and trust with your protocol's users and is considered a best practice in Web3 development.

key-concepts-text
SMART GOALS FOR SMART CONTRACTS

How to Define Upgrade Success Criteria

Defining clear, measurable success criteria is the critical first step in any smart contract upgrade. This guide outlines a framework for establishing objective benchmarks before deployment.

Successful upgrades are measured by objective outcomes, not just the absence of failure. Before writing a single line of migration code, teams must define success criteria that answer: what specific, measurable changes should this upgrade produce? Common categories include functional correctness (new features work as designed), performance improvements (reduced gas costs, faster execution), and security enhancements (patched vulnerabilities). Without these benchmarks, you cannot determine if an upgrade was truly successful or merely non-breaking.

Adopt a SMART framework tailored for blockchain development. Criteria should be Specific ("reduce transferFrom gas cost by 15%"), Measurable (verifiable on-chain via gas usage logs), Achievable (technically feasible within the protocol's constraints), Relevant (aligns with project roadmap and user needs), and Time-bound (evaluated within a defined period post-upgrade, like one mainnet epoch). For example, a Uniswap V3-style concentrated liquidity upgrade might have a success criterion of "increasing capital efficiency for LPs by 200% within 30 days of activation."

Quantify metrics using on-chain data and monitoring tools. Key Performance Indicators (KPIs) often include: average gas cost per transaction, total value locked (TVL) change, user adoption rate for new functions, oracle price deviation, and slashing events for validator-based systems. Establish a pre-upgrade baseline by snapshotting these metrics from the current contract. Post-upgrade, use services like The Graph for querying historical data or Tenderly for real-time transaction simulation to compare results against your baseline and success thresholds.

Incorporate user-centric and economic indicators beyond technical metrics. Success for a governance upgrade might be measured by voter participation rate or proposal execution speed. A DeFi protocol upgrade could track impermanent loss reduction for LPs or borrow/lending rate stability. These criteria ensure the upgrade delivers tangible ecosystem value. Document all criteria in your upgrade proposal, such as an Ethereum Improvement Proposal (EIP) or a DAO governance forum post, to align community expectations and facilitate transparent post-mortem analysis.

Finally, define explicit rollback triggers as part of your failure criteria. Determine the conditions under which the upgrade would be considered unsuccessful, necessitating a pause or reversion. Examples include: a critical bug causing fund loss, a >5% deviation in oracle prices, or failure to meet >80% of predefined functional tests. By planning for both success and failure scenarios, you create a robust framework for objective upgrade evaluation, turning a high-risk procedure into a measured, data-driven process.

METRICS MATRIX

Success Metrics Framework by Upgrade Type

Key performance indicators and success criteria for different categories of blockchain protocol upgrades.

Metric / KPIConsensus UpgradeExecution UpgradeGovernance Upgrade

Finality Time

< 12 sec

< 1 sec

Node Participation Rate

95%

99%

67%

Client Diversity Index

0.5

Transaction Throughput (TPS)

100,000

Gas Cost Reduction

20%

Proposal Turnout

40%

Voting Power Decentralization (Gini)

< 0.6

< 0.5

Critical Bug Reports Post-Upgrade

0
0
monitoring-tools
IMPLEMENTATION

Tools for Monitoring Success Criteria

After defining your upgrade's success criteria, you need tools to track them. These resources help you monitor on-chain metrics, user adoption, and system health in real-time.

defining-technical-criteria
UPGRADE SUCCESS

Step 1: Define Technical Performance Criteria

Before deploying a protocol upgrade, you must establish quantifiable, objective metrics to measure its technical success. This step moves beyond qualitative goals to define what 'working correctly' means for your specific changes.

Technical performance criteria are the objective benchmarks that determine if an upgrade functions as designed. These are not business goals like "increase TVL" but low-level system checks such as transaction throughput, gas costs, and state synchronization. For a Layer 2 optimistic rollup upgrade, key criteria might include: - A fault proof verification time under 30 seconds. - A state root commitment latency of less than 4 blocks. - Zero increase in the base cost for L1 data availability. Defining these upfront creates a shared, unambiguous standard for your team and community.

Start by mapping your upgrade's core changes to their expected impact on the protocol's state machine. If you're modifying a consensus mechanism, define criteria for finality time and validator participation rates. For a smart contract vault upgrade, specify maximum allowable slippage for new withdrawal logic and bounds for interest rate calculations. Use the upgrade's testnet deployment to gather baseline metrics. Tools like Tenderly for transaction simulation and Blocknative for mempool analysis can provide the data needed to set realistic, data-informed targets.

Document each criterion with a clear measurement method and threshold. Instead of "improve performance," write: "The median swap() transaction gas cost on Uniswap V3 PoolFactory 0x... must not exceed 250,000 gas when processing 100 sequential swaps in a benchmark test." Incorporate these criteria into your continuous integration (CI) pipeline using frameworks like Foundry's forge for smart contracts or benchmarking suites for client software. This automates regression testing and ensures the mainnet deployment matches testnet performance, providing concrete evidence of upgrade success before and after the governance vote.

defining-network-criteria
UPGRADE SUCCESS CRITERIA

Step 2: Define Network Health Criteria

Establishing objective, measurable criteria is essential for determining if a network upgrade is successful. This step moves beyond theoretical planning into concrete validation.

Network health criteria are quantifiable metrics that serve as the objective benchmarks for upgrade success. These are not subjective opinions but data-driven signals derived from the network's state before and after the upgrade event. Common categories include consensus stability (e.g., block production rate, finality time), node participation (e.g., validator set health, peer count), and transactional integrity (e.g., transaction success rate, gas usage patterns). Defining these upfront aligns all stakeholders on what 'success' looks like.

To define effective criteria, start by analyzing the upgrade's primary objectives. For a consensus mechanism change, key performance indicators (KPIs) might be epoch completion time or attestation participation rates. For an execution layer upgrade like an Ethereum hard fork, you might track precompile activation status and gas cost changes for specific operations. Use historical chain data from a stable period to establish a performance baseline. For instance, calculate the 7-day rolling average for block time and set a success threshold as 'block time remains within ±5% of the 12.0-second baseline.'

Implementing these checks requires tooling. Use a monitoring stack like Prometheus with the network's client metrics, or leverage specialized services like Chainscore's Upgrade Monitoring Suite. The criteria should be programmed as automated alerts. For example, a criterion stating 'No more than 2% of validator nodes are offline for >2 epochs post-upgrade' can be configured as a Prometheus alert rule that queries the validator_active metric. This automation removes human bias from the initial assessment.

It is critical to define criteria for both immediate post-upgrade stability (first 24-48 hours) and long-term network health (first 2 weeks). Immediate criteria catch catastrophic failures, such as a chain halt. Long-term criteria monitor for subtle issues like gradual memory leaks or increased orphaned blocks. Always include a criterion for functional correctness, such as verifying that a new EVM opcode (e.g., BLOBHASH after EIP-4844) returns the expected output when called by a test contract.

Finally, document each criterion with its metric source, calculation method, threshold, and evaluation timeframe. This creates a clear rubric for your post-mortem analysis. For example: Criterion: Transaction Success Rate. Source: Internal load-balancer logs. Calculation: (Successful TXs / Total TXs) * 100. Threshold: >99.5% success rate. Window: First 10,000 blocks post-upgrade. This precision turns a successful upgrade from a feeling into a verified fact.

defining-ecosystem-criteria
MEASURING IMPACT

Step 3: Define Ecosystem & Adoption Criteria

After establishing technical and economic goals, the final step is to define how the upgrade's success will be measured by its adoption and impact on the broader ecosystem.

Ecosystem adoption criteria move beyond internal protocol metrics to assess how the upgrade is received and utilized by users, developers, and other protocols. This measures the real-world impact and network effects of the changes. Key questions to answer include: Will the upgrade attract new developers? Will it enable new types of applications (dApps)? How will it affect the protocol's market position relative to competitors like Solana, Arbitrum, or Polygon?

Quantifiable metrics are essential for objective evaluation. For a Layer 2 scaling upgrade, you might track: - The number of new smart contracts deployed post-upgrade - The total value locked (TVL) in native DeFi applications - The transaction fee savings for end-users, measured in aggregate ETH or USD - The growth in monthly active addresses (MAUs) - The volume of cross-chain assets bridged in, indicating new capital inflows. These metrics should be compared against pre-upgrade baselines and projected targets.

Developer adoption is a leading indicator of long-term health. Success can be measured by: an increase in GitHub commits to the core repository and major ecosystem projects, growth in documentation page views and API key issuances, and the number of projects featured in ecosystem grant programs. For example, after Optimism's Bedrock upgrade, tracking the integration of its new fault-proof system by major wallets and oracles was a critical adoption metric.

Finally, define qualitative and governance-based criteria. These include sentiment analysis from community forums and social media, successful execution of governance proposals that leverage new upgrade features (e.g., a DAO using a new contract module), and ecosystem expansion into new verticals like Real-World Assets (RWA) or gaming. Setting these criteria upfront aligns the entire community on what upgrade success looks like, creating a clear framework for retrospective analysis and guiding future development priorities.

DEFINING SUCCESS

Implementation Examples from Live Upgrades

Learn how to define and measure success for smart contract upgrades by examining real-world examples from major protocols.

Successful upgrades are measured by a combination of technical, economic, and community metrics.

Technical Metrics:

  • Zero Critical Bugs: No vulnerabilities that compromise funds or core logic post-upgrade.
  • Backward Compatibility: Seamless interaction for all existing users, contracts, and front-ends.
  • Gas Efficiency: No significant, unexpected increase in transaction costs for common operations.

Economic & Community Metrics:

  • TVL Retention: Minimal outflow of total value locked from the protocol.
  • Governance Participation: High voter turnout for the upgrade proposal indicates community buy-in.
  • Adoption Rate: Quick migration of users to new contract addresses or interfaces.

For example, Uniswap's v3 upgrade tracked the migration rate of liquidity providers from v2 as a primary success KPI.

communicating-criteria
DEFINING UPGRADE SUCCESS

Step 4: Documenting and Communicating Criteria

Clear, documented success criteria transform a smart contract upgrade from a subjective event into a measurable, verifiable outcome. This step ensures all stakeholders share a common definition of success.

Success criteria are the specific, measurable conditions that must be met for a protocol upgrade to be considered successful. They move beyond vague goals like "improve performance" to concrete metrics such as gas cost reduction by 15% for a core function or increasing the maximum TVL capacity from 100K to 1M ETH. These criteria should be defined before the upgrade code is finalized, serving as the objective benchmark against which the new implementation is validated. This practice is critical for governance, as it provides voters with a clear understanding of what they are approving.

Documentation should be precise and technical. For each criterion, specify the metric, the method of measurement, and the target value. For example: Metric: Swap execution gas cost on Uniswap V4. Measurement: Average gas used for a standard ETH/USDC swap on mainnet, sampled over 100 transactions. Target: ≤ 90,000 gas (a 10% reduction from V3). Other common criteria include security audit results (e.g., "No Critical or High severity issues from audits by firms A and B"), backward compatibility checks, and specific functional tests (e.g., "New yield strategy must integrate with Chainlink oracles version 2.5+ without custom adapters").

Communication is as vital as documentation. Success criteria must be disseminated to all relevant parties: developers (for implementation guidance), auditors (to focus their review), governance token holders (for informed voting), and end-users (for transparency). Publish the criteria in the official upgrade proposal, such as a Snapshot or Tally post, and reference them in the project's documentation portal. Using a standardized format, like a checklist or a table in the project's GitHub repository, improves clarity and referenceability for the entire community.

UPGRADE SUCCESS CRITERIA

Frequently Asked Questions

Defining clear success criteria is critical for evaluating a smart contract upgrade. This section addresses common developer questions on establishing measurable, objective metrics.

Upgrade success criteria are a predefined set of objective, measurable metrics used to determine if a smart contract upgrade has been deployed and is functioning as intended. They are necessary to move beyond subjective judgment and provide a clear, verifiable pass/fail signal for the upgrade process.

Without them, teams rely on manual checks and gut feeling, which introduces risk. Formal criteria enable automated verification, reduce human error, and create an unambiguous record of the upgrade's outcome. This is a foundational practice for secure and reliable protocol evolution.