{"id":"EIP-7251","name":"Increase the Max Effective Balance","status":"Final","chain":"ethereum","category":{"id":"defi","name":"DeFi Patterns","description":"Vaults, bonds, and financial primitives"},"journeyStages":[{"id":"asset-display","name":"Asset Discovery & Display","description":"Seeing tokens, NFTs, and balances"},{"id":"executing","name":"Executing Transactions","description":"Performing on-chain actions"},{"id":"status","name":"Status & Confirmation","description":"Waiting for and confirming outcomes"},{"id":"management","name":"Asset Management","description":"Managing assets over time"}],"uxImpact":"EIP-7251 raises Ethereum's validator maximum effective balance to 2048 ETH while keeping the 32 ETH minimum activation balance. Validators with a 0x02 compounding withdrawal credential can earn rewards above 32 ETH, top up in flexible amounts, and participate in consolidation flows; the credential, validator state, queues, and network activation determine which controls are available.","slug":"eip-7251","officialUrl":"https://eips.ethereum.org/EIPS/eip-7251","sources":[{"label":"Official specification","url":"https://eips.ethereum.org/EIPS/eip-7251","type":"official-spec"},{"label":"Discussion search","url":"https://ethereum-magicians.org/search?q=EIP-7251","type":"discussion"},{"label":"Pectra mainnet announcement","url":"https://blog.ethereum.org/2025/04/23/pectra-mainnet","type":"reference"},{"label":"Electra consensus specification","url":"https://github.com/ethereum/consensus-specs/blob/master/specs/electra/beacon-chain.md","type":"implementation"},{"label":"EIP-7685 official specification","url":"https://eips.ethereum.org/EIPS/eip-7685","type":"official-spec"},{"label":"EIP-4895 official specification","url":"https://eips.ethereum.org/EIPS/eip-4895","type":"official-spec"}],"lastReviewed":"2026-09-18","lastUpdated":"2026-09-18","hasDetailedContent":true,"content":{"id":"EIP-7251","specConstraints":[{"id":"eip-7251-current-fee-query","constraint":"The consolidation request contract exposes the current required fee when queried with zero-length input.","appliesTo":"application","normativity":"normative","specQuote":"2. Fee getter - if the input length is zero, return the current fee required to add a consolidation request.","specSection":"Specification — Execution layer — Consolidation request contract","specUrl":"https://eips.ethereum.org/EIPS/eip-7251#consolidation-request-contract","designImplication":"Refresh the fee before confirmation and show the fee limit separately from the validator balances and consolidation outcome."},{"id":"eip-7251-consolidation-credential-authority","constraint":"The address that calls the consolidation request contract must match the validator's recorded 0x01 withdrawal credential.","appliesTo":"application","normativity":"security-considerations","specQuote":"the address that calls the system contract must match the 0x01 withdrawal credential recorded in the beacon state.","specSection":"Security Considerations — Fee Overpayment","specUrl":"https://eips.ethereum.org/EIPS/eip-7251#fee-overpayment","designImplication":"Show the source address, source validator, target validator, credential prefix, and authority result before a consolidation request. Do not infer authority from an operator session alone."},{"id":"eip-7251-consolidation-fee-not-refunded","constraint":"Overpaid consolidation-request fees are not returned to the caller.","appliesTo":"application","normativity":"security-considerations","specQuote":"Overpaid fees are not returned to the caller.","specSection":"Security Considerations — Fee Overpayment","specUrl":"https://eips.ethereum.org/EIPS/eip-7251#fee-overpayment","designImplication":"Refresh the dynamic request fee before signing, show a maximum fee policy, and distinguish a submitted request from a completed consolidation."},{"id":"eip-7251-consolidation-queue-cap","constraint":"Consolidation requests above the queue hard limit are discarded and their fee is not refunded.","appliesTo":"application","normativity":"security-considerations","specQuote":"Consolidations exceeding the hard limit of the consolidation queue (262,144 requests) will be discarded by the consensus layer and will need to be re-submitted, note that the fee is not refunded in this case.","specSection":"Security Considerations — Consolidation queue hard limit","specUrl":"https://eips.ethereum.org/EIPS/eip-7251#consolidation-queue-hard-limit","designImplication":"Show queue capacity and request status before confirmation. If the queue is full, block or clearly warn before signing; do not report a discarded request as pending consolidation."},{"id":"eip-7251-predeploy-readiness","constraint":"The consolidation path must not be treated as active on a chain whose predeploy code is missing.","appliesTo":"infrastructure","normativity":"security-considerations","specQuote":"This EIP should not have been activated if there is no code present at `CONSOLIDATION_REQUEST_PREDEPLOY_ADDRESS` (i.e., if the chain is not \"ready\").","specSection":"Security Considerations — Empty Code failure","specUrl":"https://eips.ethereum.org/EIPS/eip-7251#empty-code-failure","designImplication":"Gate consolidation controls on verified network activation and predeploy readiness. Treat an unready chain as unsupported rather than exposing a signing path that can invalidate blocks."},{"id":"eip-7251-topup-activation-queue","constraint":"Validator balance top-ups are subject to the same activation queue as full deposits.","appliesTo":"application","normativity":"security-considerations","specQuote":"Balance top-ups are now handled explicitly, being subject to the same activation queue as full deposits.","specSection":"Security Considerations — Churn invariants","specUrl":"https://eips.ethereum.org/EIPS/eip-7251#churn-invariants","designImplication":"Show a top-up as pending until activation processing catches up. Do not present a submitted balance increase as immediately effective validator weight."}],"sources":[{"label":"EIP-7251 official specification","url":"https://eips.ethereum.org/EIPS/eip-7251","type":"official-spec"},{"label":"Pectra mainnet announcement","url":"https://blog.ethereum.org/2025/04/23/pectra-mainnet","type":"reference"},{"label":"Electra consensus specification","url":"https://github.com/ethereum/consensus-specs/blob/master/specs/electra/beacon-chain.md","type":"implementation"},{"label":"EIP-7685 official specification","url":"https://eips.ethereum.org/EIPS/eip-7685","type":"official-spec"},{"label":"EIP-4895 official specification","url":"https://eips.ethereum.org/EIPS/eip-4895","type":"official-spec"}],"lastReviewed":"2026-09-18","lastUpdated":"2026-09-18","summary":"EIP-7251 raises Ethereum's validator maximum effective balance to 2048 ETH while keeping the 32 ETH minimum activation balance. Validators with a 0x02 compounding withdrawal credential can earn rewards above 32 ETH, top up in flexible amounts, and participate in consolidation flows; the credential, validator state, queues, and network activation determine which controls are available.","partialDeployment":{"body":"Ethereum activated the Electra/Pectra changes on mainnet. Other networks need their own activation and client support. Compounding, top-ups, partial withdrawals, and consolidation are separate states; do not present a 2048 ETH ceiling as a wallet capability or as permission to move another validator's stake."},"designerTakeaways":["Show the validator's withdrawal credential prefix before offering compounding or consolidation controls.","Separate deposited balance, effective balance, pending deposits, pending partial withdrawals, and consolidation queue state.","Explain that 32 ETH remains the minimum activation balance while 2048 ETH is the protocol maximum effective balance for the Electra path."],"applicability":{"whenToUse":["A staking product manages Ethereum validators after Electra activation.","Users need to top up, monitor compounding rewards, or consolidate validators with the required authority.","The product can read withdrawal credentials, validator balances, pending queues, and consolidation results."],"whenToAvoid":["The selected network has not activated the EIP, or the product would show 0x02-only compounding controls without a verified credential-conversion path for an eligible non-compounding validator.","The product cannot distinguish effective balance from actual balance or pending queue state.","A simple 32 ETH validator display is sufficient and larger-balance controls would add operational risk."]},"prototypeFirst":[{"screen":"Validator balance and credential view","why":"The credential prefix controls which balance and compounding states apply.","covers":["0x01 execution credential","0x02 compounding credential","0x01 to 0x02 self-consolidation path","BLS credential"],"include":["Actual balance","Effective balance","Activation minimum","Maximum effective balance","Credential update path"]},{"screen":"Top-up or consolidation review","why":"A larger validator operation can affect multiple validator identities and queue states.","covers":["Top up","Consolidation request","Queue pending","Rejected request"],"include":["Source and target validators","Current and projected balances","Request fee","Exit/consolidation implications"]}],"mentalModel":[{"label":"Activation minimum","description":"A validator still needs 32 ETH of minimum activation balance; the higher maximum does not lower the amount needed to activate."},{"label":"Effective balance","description":"The protocol uses an effective balance for validator weight and rewards, which can grow above 32 ETH when the validator has the compounding credential."},{"label":"Compounding credential","description":"A 0x02 withdrawal credential opts the validator into the Electra compounding and excess-balance rules."},{"label":"Consolidation request","description":"An authorized execution source can request either an eligible same-key 0x01-to-0x02 credential conversion or a source-to-target consolidation, subject to validation and queue limits."},{"label":"Queue and processing","description":"Top-ups, exits, withdrawals, and consolidations can be pending independently; a submitted request is not an immediate balance or validator-state change."}],"statesToDesign":[{"state":"Standard validator","trigger":"The validator has a credential and balance path that does not expose Electra compounding controls.","userNeed":"See the current 32 ETH-oriented state without an unavailable control.","designResponse":"Show balance and withdrawal information and explain the credential-specific eligibility for an upgrade path."},{"state":"Compounding eligible","trigger":"The validator has a 0x02 withdrawal credential on an activated network.","userNeed":"Understand which balance can compound and what remains pending.","designResponse":"Show actual, effective, excess, and pending balances with a clear 2048 ETH ceiling."},{"state":"Top-up pending","trigger":"A deposit or balance increase has entered the pending-deposit path.","userNeed":"Know why the sent amount is not yet effective stake.","designResponse":"Show execution deposit inclusion, pending deposit, activation/processing queue, and effective-balance update separately."},{"state":"Consolidation review","trigger":"The user selects source and target validators for consolidation.","userNeed":"Understand authority, resulting validator identity, and queue effects.","designResponse":"Display both public keys, credential compatibility, projected balance, request fee, and irreversible or delayed steps."},{"state":"Queue full or fee changed","trigger":"The consolidation request exceeds queue capacity or its dynamic fee changes before inclusion.","userNeed":"Avoid losing a fee or submitting a request that will fail.","designResponse":"Refresh fee and capacity, state whether a retry is safe, and make any non-refund condition explicit."},{"state":"Compounding withdrawal","trigger":"A validator with excess balance becomes partially withdrawable or receives a withdrawal.","userNeed":"Know why rewards or excess balance left the effective stake.","designResponse":"Label the protocol withdrawal separately from a user-sent transfer and show the remaining effective balance."}],"designDecisions":[{"question":"What does the 2048 ETH figure mean?","recommendation":"Label it Maximum effective balance and pair it with the 32 ETH activation minimum and actual balance.","rationale":"Users can otherwise read the protocol maximum as a deposit requirement, available cash, or guaranteed compounding amount."},{"question":"When should consolidation be offered?","recommendation":"Require an explicit source/target selection and verified withdrawal authority before showing the request action.","rationale":"The request changes validator structure and is independently rate-limited from ordinary balance updates."},{"question":"How should rewards be described?","recommendation":"Show compounding as a credential- and protocol-dependent balance behavior, never as a yield promise.","rationale":"EIP-7251 changes effective-balance accounting; it does not guarantee a reward rate or validator performance."}],"problemsSolved":[{"problem":"A validator's effective balance stops at 32 ETH","oldWay":"Rewards above the threshold are withdrawn or users create another fixed-size validator.","newWay":"A 0x02 compounding validator can apply excess balance toward effective stake up to the protocol maximum.","impact":"high"},{"problem":"Large operators manage many duplicate validator records","oldWay":"Exit validators, wait, and re-enter stake in a new validator arrangement.","newWay":"Authorized consolidation requests can combine validators through the Electra processing path.","impact":"high"},{"problem":"Users cannot tell whether a top-up is effective stake","oldWay":"Show one balance and imply that a deposit immediately changes validator weight.","newWay":"Show pending deposits, activation, effective balance, and withdrawal queues as separate states.","impact":"critical"}],"uxPatterns":[{"name":"Credential-Aware Validator Balance","description":"Show balance and control availability based on the validator's actual withdrawal credential.","components":["Credential badge","Actual/effective balance rows","Compounding status","Queue indicators"],"userFlow":["Select a validator","Read credential prefix and network activation","Show actual, effective, and pending balances","Explain compounding eligibility","Link to supported withdrawal or credential-update actions"]},{"name":"Validator Consolidation Review","description":"Make source, target, authority, fee, and queue implications explicit before a same-key credential conversion or source-to-target consolidation request.","components":["Source validator card","Target validator card","Projected balance","Dynamic fee row","Queue status"],"userFlow":["Choose source and target, or the same key for credential conversion","Check execution credential and validator compatibility","Fetch current consolidation fee","Review resulting validator and pending states","Submit and track the execution request"]}],"uiComponents":[{"name":"ValidatorBalanceBreakdown","description":"Separates actual, effective, excess, pending, and withdrawable validator balances.","kind":"list","states":["standard","compounding","pending-deposit","pending-withdrawal","unsupported"],"props":["actualBalance","effectiveBalance","excessBalance","pendingDeposit","withdrawalCredential","maxEffectiveBalance"]},{"name":"ConsolidationReview","description":"Confirms source and target validator identity, authority, projected outcome, fee, and queue state.","kind":"form","states":["eligible","invalid-source","invalid-target","fee-refresh","queued","rejected"],"props":["sourcePubkey","targetPubkey","sourceAddress","fee","queueCapacity","onSubmit"]}],"antiPatterns":[{"pattern":"Showing 2048 ETH as every validator's available balance","why":"The maximum applies to effective balance rules and eligible credentials, not to every validator or wallet balance.","instead":"Show actual, effective, pending, and withdrawable amounts with the credential and network context.","severity":"critical"},{"pattern":"Calling every validator reward compounding","why":"Compounding depends on the 0x02 withdrawal credential and activated consensus rules.","instead":"Feature-detect the credential and show the current effective-balance path.","severity":"high"},{"pattern":"Treating a consolidation request as an instant merge","why":"The request is queued, validated, and subject to churn, fees, and source/target rules.","instead":"Show execution, consensus queue, processing, and resulting validator state separately.","severity":"critical"},{"pattern":"Promising a reward rate from a larger effective balance","why":"The EIP changes accounting and validator capacity, not validator performance or yield.","instead":"Show protocol balance state and link to the operator's reward assumptions separately.","severity":"high"}],"vocabulary":[{"use":"Maximum effective balance","avoid":"Maximum deposit","why":"The protocol figure describes validator accounting, not an amount a wallet can necessarily deposit."},{"use":"Compounding credential","avoid":"Auto-staking","why":"The 0x02 withdrawal credential changes validator balance handling; it does not promise an investment strategy."},{"use":"Consolidation request","avoid":"Merge now","why":"The operation is queued and validated across execution and consensus layers."}],"technicalNotes":"EIP-7251 defines COMPOUNDING_WITHDRAWAL_PREFIX 0x02, MIN_ACTIVATION_BALANCE 32 ETH, and MAX_EFFECTIVE_BALANCE_ELECTRA 2048 ETH. It adds the consolidation-request predeploy at 0x0000BBdDc7CE488642fb579F8B00f3a590007251, which accepts source and target validator public keys and emits EIP-7685 requests. Consolidation is rate-limited by a dynamic fee and a maximum of two requests dequeued per block; the consensus layer validates credentials, validator status, pending withdrawals, queue limits, and balance rules. EIP-7251 also adds pending deposit and withdrawal processing changes and incorporates EIP-7002 execution-layer partial withdrawals.","relatedStandards":[{"id":"EIP-7002","relationship":"Execution-layer triggerable full exits for matching 0x01/0x02 credentials and positive partial withdrawals only for eligible 0x02 compounding validators."},{"id":"EIP-6110","relationship":"Execution-layer deposit requests and pending-deposit processing in Electra."}],"keyTakeaways":["EIP-7251 keeps a 32 ETH activation minimum and raises the effective-balance ceiling to 2048 ETH.","Compounding requires the 0x02 withdrawal credential and an activated network; an eligible 0x01 validator may have a separate same-key conversion path.","Top-ups, partial withdrawals, and consolidations need independent queue and status UI.","The protocol change does not promise yield, wallet support, or Monad activation."]},"urls":{"canonical":"https://www.eipsfordesigners.com/standards/EIP-7251","markdown":"https://www.eipsfordesigners.com/standards/EIP-7251/content.md","agent":"https://www.eipsfordesigners.com/standards/EIP-7251/agent.md","api":"https://www.eipsfordesigners.com/api/standards/EIP-7251","official":"https://eips.ethereum.org/EIPS/eip-7251","discussion":"https://ethereum-magicians.org/search?q=EIP-7251"},"freshness":{"lastReviewed":"2026-09-18","lastUpdated":"2026-09-18"}}