Mantle staked

Mantle staked withdrawals require separate checks before retrying a request or claim

Mantle staked withdrawals should be retried only after the same request shows both finalization and enough allocated ETH for its queue position. A failed claim can also come from the wrong account, the wrong network, a protocol pause or a request that no longer exists. Check those states with read-only calls before paying for another Ethereum transaction. If request creation failed, inspect the mETH amount, allowance and minimum ETH output instead, because those limits apply earlier.

On this page

Finalization and funding define the retry boundary

A safe claim retry requires two separate signals: the request must be final and its full recorded ETH amount must be funded.

The protocol determines finalization from the request’s creation block, a configurable block delay and the latest oracle record. A clock estimate or interface countdown can’t replace that contract state. Because the delay is configurable and the oracle record must cover the required block, elapsed time alone doesn’t prove readiness.

Funding changes independently. The request status can expose how much ETH its queue position has received, while the claim requires full coverage. Recheck without signing until the finalized flag is true and the position-specific funded amount equals the recorded ETH request. A partially funded status marks progress, not permission to collect part of the withdrawal.

Request limits and claim limits fail at different stages

First determine whether the failed transaction tried to create a request or claim an existing one.

Limits on request creation

Creating a withdrawal request locks mETH and records the ETH amount calculated at the protocol conversion rate. The transaction must pass the live minimum unstake bound and the selected minimum ETH output.

Balance and transfer authorization

The Ethereum account needs enough mETH for the requested amount and enough ETH for gas. The staking contract also needs permission to transfer that mETH, supplied through an allowance or the supported permit path. If the transfer fails, the entire request transaction reverts rather than leaving an unfunded queue entry.

Minimum output and live bound

The minimum unstake bound is configurable, so an old interface value shouldn’t be treated as permanent. The minimum ETH output protects the requester from accepting less than the signed floor if the conversion changes before execution. Lowering that floor may make a transaction easier to execute, but it also changes the protection being accepted.

Limits on an existing claim

Once the request exists, its creation-time amount, allowance and minimum output aren’t claim checks. The claim instead tests the request record, requester identity, finalization, cumulative funding and pause state. Repeating an approval or changing the original minimum output can’t repair a claim that fails one of those later conditions.

The queue makes allocated ETH a cumulative test

The queue funds earlier demand before later requests can complete. The claim contract compares each request’s cumulative ETH total with the ETH allocated for claims. A request’s own amount is therefore only part of its funding threshold. Its status calculation can show partial coverage after the preceding queue demand has been met, but the claim remains all or nothing until allocation reaches that request’s full cumulative total.


Why can a finalized request still fail to claim?

Finalization proves that the latest oracle record covers the request’s creation block plus the configured delay; it doesn’t reserve ETH for the payout. A finalized request still reverts when allocated ETH hasn’t reached its cumulative queue threshold. The two signals may change at different times because oracle progress controls one and protocol allocation controls the other.

Retrying during that gap spends gas without changing either condition. Read the same request through the staking contract’s status function and compare its funded amount with its recorded ETH amount. If the funded value is smaller, wait for allocation to change. If they match, move on to account, network and pause checks before signing.


A hypothetical allocation gap before a retry

All amounts and observed states in this worked example are hypothetical. A reader is checking whether a finalized request for 1.275 ETH has enough queue allocation to support a claim.

A hypothetical allocation gap before a retry: The request records 1.275 ETH and a cumulative threshold of 18.435 ETH.; A read-only status check shows 18.100 ETH allocated and confirms finalization.; Earlier queue demand equals 18.435 ETH minus 1.275 ETH, or 17.160 ETH. This leaves 0.940 ETH funded for the request.; The claim isn’t ready because 0.940 ETH remains below the recorded 1.275 ETH. Once allocation reaches 18.435 ETH, the funded amount can reach the full request.

View image file

  1. The request records 1.275 ETH and a cumulative threshold of 18.435 ETH.
  2. A read-only status check shows 18.100 ETH allocated and confirms finalization.
  3. Earlier queue demand equals 18.435 ETH minus 1.275 ETH, or 17.160 ETH. This leaves 0.940 ETH funded for the request.
  4. The claim isn’t ready because 0.940 ETH remains below the recorded 1.275 ETH. Once allocation reaches 18.435 ETH, the funded amount can reach the full request.

During the gap, make another read-only check instead of submitting another claim. After full funding appears, a successful receipt and the corresponding ETH transfer provide completion evidence. Before creating any request, a compatible market swap may offer a separate exit through available liquidity. Once mETH enters this queue, those locked tokens can’t fund that alternative.

Account and network compatibility come before gas

Direct mETH redemption runs through the protocol contracts on Ethereum, so the connected account must match the request’s recorded requester on that network. An mETH balance shown only on another network isn’t available to the Ethereum staking contract. Likewise, a transaction prepared on the wrong chain can’t locate the correct request state.

Contract wallets need the same scrutiny. The account that created the request must be able to call the claim function on Ethereum; connecting a visually similar account in a wallet interface doesn’t establish that authority. After the network, requester and request record agree, confirm that the transaction can pay Ethereum gas.


Interface messages need an on-chain cross-check

An interface can lag behind contract state, lose an indexed row or reduce several failure causes to one generic message. Refreshing the page may repair its display, but it can’t finalize a request, allocate ETH or change the requester. Use the transaction receipt, request event and current contract record as the reliable evidence.

Before repeating any action, check whether the earlier transaction succeeded. A successful request-creation receipt means another submission could create a separate request if the account still has sufficient mETH and authorization. A successful claim receipt means the original record has already closed. When the receipt reverted, decode the failing stage instead of assuming the interface button needs another click.

Pauses and emergency cancellation change the available action

The protocol can pause unstake requests and claims. When that shared control is active, otherwise valid transactions revert until the operation resumes.

A pause doesn’t erase a pending request or move it through the queue. It simply blocks the affected call, so raising gas or repeating the same calldata can’t bypass it.

Emergency cancellation is different. An authorized protocol role can remove unfinalized requests from the newest end of the queue and return their locked mETH to the requesters. Users don’t control that cancellation path, and a finalized request isn’t eligible for this mechanism.

After any exceptional state change, reread the request before acting. If mETH returns and a cancellation event appears, stop monitoring the old request. An intact request still follows its existing finalization and funding conditions.

A successful claim leaves specific evidence

A completed withdrawal produces a successful Ethereum receipt, a claim event and an ETH transfer to the requester. During that transaction, the protocol burns the mETH that it locked when the request began and closes the request record. A wallet display may update later, so its animation or balance cache isn’t the primary completion test.

If the request record still exists after a failed transaction, compare the revert with the known claim conditions before retrying. Once the claim succeeds, submitting the same request ID again can’t repeat the payout because the original request no longer remains claimable.

Frequently asked questions about Mantle staked withdrawals

Will a reverted claim change the request’s queue position?

No, a reverted claim doesn’t move, delete or rewrite the unstake request. Ethereum rolls back the contract changes from that failed call, although the sender still pays gas for a mined transaction. The request keeps its original ID, requester, ETH amount, cumulative threshold and creation block. Its finalization or funding status may change later when the latest oracle record, the configurable finalization delay or allocated ETH changes. An authorized emergency action may instead cancel an eligible unfinalized request from the newest end of the queue.

Does a zero mETH balance mean the ETH claim finished?

No, a zero or reduced wallet balance can appear as soon as request creation transfers the selected mETH into the unstake manager. The protocol keeps those tokens locked while the request waits and burns them only during a successful claim. Confirm completion from the claim transaction, claim event and ETH transfer. A pending request record means the absence of mETH in the wallet isn’t proof that ETH arrived.

Why doesn’t allocated ETH fall each time an earlier request is claimed?

The protocol tracks allocated ETH and claimed ETH with separate cumulative counters. Claiming increases the total-claimed counter, while the allocation counter remains useful for comparing later requests with their cumulative queue thresholds. The amount still waiting in the unstake manager comes from the difference between those counters. This accounting lets a later request prove that the protocol funded all preceding queue demand without renumbering the request.

Which live limit changes affect an unstake request that already exists?

A later change to the minimum unstake bound doesn’t retroactively resize or invalidate an existing request. The contract checked that bound when it created the request. Claim readiness instead depends on the stored request, its requester, finalization, full cumulative allocation and the active pause state. A configurable finalization delay can still matter because the contract evaluates finality against the live delay and the latest oracle record.

Does a Mantle unstake request have a built-in expiry?

The request structure and ordinary claim checks don’t impose a user-facing expiry deadline. An unclaimed request must still belong to the caller, reach finalization and receive full cumulative ETH allocation while claims are active. The absence of an expiry doesn’t make the ETH immediately available or guarantee that every later attempt will succeed. Keep the request ID and creation receipt so the on-chain record remains identifiable.

- last updated