<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Hafil</title>
    <description>The latest articles on DEV Community by Hafil (@hafil_de614778408ace0a2ef).</description>
    <link>https://dev.to/hafil_de614778408ace0a2ef</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3976287%2Ff7025b82-d7a3-4f01-b9e1-91017998c557.png</url>
      <title>DEV Community: Hafil</title>
      <link>https://dev.to/hafil_de614778408ace0a2ef</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/hafil_de614778408ace0a2ef"/>
    <language>en</language>
    <item>
      <title>What Are You Approving on FraxSwap?</title>
      <dc:creator>Hafil</dc:creator>
      <pubDate>Sat, 01 Aug 2026 01:02:20 +0000</pubDate>
      <link>https://dev.to/hafil_de614778408ace0a2ef/what-are-you-approving-on-fraxswap-25ln</link>
      <guid>https://dev.to/hafil_de614778408ace0a2ef/what-are-you-approving-on-fraxswap-25ln</guid>
      <description>&lt;h1&gt;
  
  
  What Are You Approving on FraxSwap?
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Pre-flight: read the request, not the button
&lt;/h2&gt;

&lt;p&gt;Before an ERC-20 swap can move a token, a wallet normally asks its owner to approve one of three things: account access, a spending allowance, or a specific transaction. On the &lt;a href="https://fraxswap.app/" rel="noopener noreferrer"&gt;FraxSwap&lt;/a&gt; trading interface, the right choice depends on what the wallet actually displays—not on the button label. An approval lets a named contract spend up to a stated amount; it is not the swap itself.&lt;/p&gt;

&lt;p&gt;Fraxswap is a constant-product automated market maker with an embedded Time-Weighted Average Market Maker (TWAMM), so a request may concern an immediate swap or an order that executes over time. As &lt;a href="https://docs.frax.com/protocol/subprotocols/fraxswap/technical" rel="noopener noreferrer"&gt;Frax documentation&lt;/a&gt; puts it, “Fraxswap is the first live TWAMM implementation.” That distinction matters: a long-term order is an instruction to begin execution, while an allowance is continuing permission for a contract to pull a token later.&lt;/p&gt;

&lt;p&gt;Use this checklist before signing anything:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Confirm the network.&lt;/strong&gt; The wallet network, the token contract, and the contract receiving permission must all belong together. A familiar token symbol on the wrong network is not the same asset.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Read the request type.&lt;/strong&gt; “Connect,” “Approve,” “Permit,” and “Confirm swap” have different consequences. Do not treat every wallet pop-up as a routine confirmation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Check the spender or verifying contract.&lt;/strong&gt; It should be a contract you expect to use for the selected chain and route—not the address of a random website or wallet.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Check the amount and expiry.&lt;/strong&gt; Exact input amount is easier to reason about than an unlimited amount; a permit with a near expiry is easier to contain than one with no practical end date.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stop on unreadable data.&lt;/strong&gt; A wallet that cannot identify the token, network, contract, amount, or action has not provided enough information to sign.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;An &lt;a href="https://eips.ethereum.org/EIPS/eip-20" rel="noopener noreferrer"&gt;ERC-20 allowance&lt;/a&gt; is permission in the token standard that lets a named spender withdraw up to a set amount from the owner’s balance through &lt;code&gt;transferFrom&lt;/code&gt;. The token contract records that permission on-chain. It does not give the spender access to every asset in the wallet, but it can remain usable after the current swap is finished if a balance remains.&lt;/p&gt;

&lt;p&gt;A &lt;a href="https://eips.ethereum.org/EIPS/eip-2612" rel="noopener noreferrer"&gt;permit under ERC-2612&lt;/a&gt; is a signed authorization that sets an ERC-20 allowance without first sending a separate &lt;code&gt;approve&lt;/code&gt; transaction. Its typed message should identify the owner, spender, value, nonce, deadline, chain and token contract. The signature can be submitted by another address before its deadline, so “no gas charged for this signature” does not mean “no spending authority was granted.”&lt;/p&gt;

&lt;h2&gt;
  
  
  What a FraxSwap signature can actually authorize
&lt;/h2&gt;

&lt;p&gt;Wallet connection is the narrowest request. It usually allows the site to see the selected public address, chain and balances exposed by the wallet. It should not move tokens, create an allowance, or cost gas. A message signature may prove address control for a session, but it still deserves inspection because a signature can carry structured instructions.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Wallet request&lt;/th&gt;
&lt;th&gt;What it authorizes&lt;/th&gt;
&lt;th&gt;What to inspect&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Connect wallet&lt;/td&gt;
&lt;td&gt;Account access for the interface&lt;/td&gt;
&lt;td&gt;Correct site, selected account and network&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Approve&lt;/td&gt;
&lt;td&gt;Token allowance for one spender&lt;/td&gt;
&lt;td&gt;Token, spender and maximum amount&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Permit&lt;/td&gt;
&lt;td&gt;Signed allowance that can be submitted later&lt;/td&gt;
&lt;td&gt;Owner, spender, value, nonce, deadline and verifying token&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Swap or create order&lt;/td&gt;
&lt;td&gt;Execution of the trade itself&lt;/td&gt;
&lt;td&gt;Input, output, recipient, minimum received, route and deadline&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;An approval transaction changes state at the &lt;em&gt;token contract&lt;/em&gt;; the spender is commonly a router contract that later calls &lt;code&gt;transferFrom&lt;/code&gt;. For that reason, the contract shown beside “spender” matters more than the web page’s visual branding. As of 31 July 2026, Frax’s &lt;a href="https://docs.frax.com/protocol/subprotocols/fraxswap/addresses" rel="noopener noreferrer"&gt;V2 address page&lt;/a&gt; lists router entries across 7 networks, including Ethereum, Fraxtal, Arbitrum, Avalanche, BSC, Optimism and Polygon. Compare against the entry for the exact chain and router type, rather than copying an address from social media.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SetApprovalForAll&lt;/strong&gt; deserves separate treatment. It is generally associated with NFT standards such as ERC-721 and ERC-1155, where it can authorize an operator over a collection. It is not the normal request for swapping an ERC-20 token. If that wording appears when the intended action is a simple ERC-20 swap, stop and establish why.&lt;/p&gt;

&lt;h2&gt;
  
  
  Execute the swap in the order the wallet shows it
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Set the trade before approving.&lt;/strong&gt; Select the input token, output token, amount and network first. Review price impact and slippage tolerance. A pool fee is part of the trade economics; network gas pays for the transaction. Neither is an extra permission.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use the smallest sensible authorization.&lt;/strong&gt; If the interface offers an exact amount, that limits the token contract’s allowance to the amount needed for this trade. If a larger allowance is chosen for convenience, the user should understand it survives the swap until spent, reduced, revoked, or replaced.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Review the execution call.&lt;/strong&gt; The actual swap should show the contract destination and a transaction value. Its meaningful fields are the input amount, route or token path, recipient, deadline and &lt;code&gt;amountOutMin&lt;/code&gt;. The minimum-output condition limits how little can be received before the transaction reverts; it does not promise the displayed quote.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The practical recommendation is to begin from the &lt;a href="https://fraxswap.app/" rel="noopener noreferrer"&gt;FraxSwap trading interface&lt;/a&gt;, which is the page used to construct the trade, then compare every wallet prompt with the transaction it proposes. A URL in a pop-up, a direct message, or a search advertisement is not a substitute for reading the contract destination inside the wallet.&lt;/p&gt;

&lt;p&gt;For a TWAMM order, add one more check: duration. Fraxswap’s core follows Uniswap V2-style &lt;code&gt;xy=k&lt;/code&gt; pool mechanics, but a TWAMM order spreads execution across blocks rather than completing as one immediate fill. Read the order duration, input amount, cancellation path and withdrawal path before creating it. A completed transaction can mean the order was created successfully, not that all output is already in the wallet.&lt;/p&gt;

&lt;h2&gt;
  
  
  After confirmation, verify both the trade and the permission
&lt;/h2&gt;

&lt;p&gt;A green wallet notification only means the submitted transaction did not revert. Verify the transaction in a block explorer or wallet activity view: an approval should show the intended token, owner, spender and allowance; a swap should show the expected input leaving and output arriving. Check the actual received amount against the transaction details, not only the pre-trade quote.&lt;/p&gt;

&lt;p&gt;Then inspect the remaining allowance. If the approval was larger than the swap input, the router may still retain permission to spend the unused balance of that token. Reducing the allowance to zero, or to an amount genuinely needed for future swaps, is the clean post-action step when broad approval is no longer wanted.&lt;/p&gt;

&lt;p&gt;Finally, keep the distinction simple: a connection reveals an address, an allowance authorizes future token pulls, a permit signs that allowance, and a swap or TWAMM order executes a defined trade. Reading those four categories before signing turns a vague wallet prompt into a decision with clear limits.&lt;/p&gt;

</description>
      <category>blockchain</category>
      <category>crypto</category>
      <category>security</category>
      <category>web3</category>
    </item>
    <item>
      <title>How to Use FraxSwap for Large On-Chain Orders</title>
      <dc:creator>Hafil</dc:creator>
      <pubDate>Sat, 01 Aug 2026 01:01:53 +0000</pubDate>
      <link>https://dev.to/hafil_de614778408ace0a2ef/how-to-use-fraxswap-for-large-on-chain-orders-95h</link>
      <guid>https://dev.to/hafil_de614778408ace0a2ef/how-to-use-fraxswap-for-large-on-chain-orders-95h</guid>
      <description>&lt;h1&gt;
  
  
  How to Use FraxSwap for Large On-Chain Orders
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://fraxswap.app/" rel="noopener noreferrer"&gt;FraxSwap&lt;/a&gt; is the better choice than a standard AMM when a trader or DAO needs to execute a large, non-urgent on-chain order gradually, because its embedded TWAMM automates time-sliced execution rather than forcing the whole order into one immediate swap.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Technical fact&lt;/th&gt;
&lt;th&gt;What it means for a first order&lt;/th&gt;
&lt;th&gt;Why it matters&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Core design&lt;/td&gt;
&lt;td&gt;FraxSwap uses a Uniswap V2-style, full-range &lt;code&gt;xy=k&lt;/code&gt; AMM with TWAMM extensions, as described in the &lt;a href="https://docs.frax.com/protocol/subprotocols/fraxswap/technical" rel="noopener noreferrer"&gt;FraxSwap technical documentation&lt;/a&gt;.&lt;/td&gt;
&lt;td&gt;A normal swap and a long-term order use the same pool model, but have different execution timing.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Long-term execution&lt;/td&gt;
&lt;td&gt;Long-term orders are processed before regular AMM interactions, once per block; the protocol aligns expiries hourly.&lt;/td&gt;
&lt;td&gt;The order is designed as a schedule, not a one-shot market order.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Current V2 deployments&lt;/td&gt;
&lt;td&gt;The official registry currently lists V2 factory and router contracts on seven networks: Ethereum, Fraxtal, Arbitrum, Avalanche, BSC, Optimism, and Polygon.&lt;/td&gt;
&lt;td&gt;Use the &lt;a href="https://docs.frax.com/protocol/subprotocols/fraxswap/addresses" rel="noopener noreferrer"&gt;official address registry&lt;/a&gt; to match the network and contract path before signing.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TWAMM&lt;/td&gt;
&lt;td&gt;A &lt;a href="https://www.paradigm.xyz/writing/twamm" rel="noopener noreferrer"&gt;time-weighted average market maker&lt;/a&gt; breaks a fixed sale into virtual sub-orders that execute evenly over blocks.&lt;/td&gt;
&lt;td&gt;It replaces manual order splitting when time matters less than immediate completion.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Token permission&lt;/td&gt;
&lt;td&gt;An &lt;a href="https://ethereum.org/developers/docs/standards/tokens/erc-20" rel="noopener noreferrer"&gt;ERC-20 allowance&lt;/a&gt; is permission for a specified contract to spend a stated amount of a token.&lt;/td&gt;
&lt;td&gt;Approve only the intended token and amount, then review the wallet request.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  When does FraxSwap beat a standard one-block swap?
&lt;/h2&gt;

&lt;p&gt;FraxSwap is strongest when the order is large relative to the liquidity available in its pool and the buyer or seller does not need the trade completed immediately. A standard swap is still the direct choice for a small conversion, an urgent rebalance, or a route where another venue has materially deeper liquidity.&lt;/p&gt;

&lt;p&gt;The practical distinction is simple: a normal AMM swap asks the pool to absorb the entire order now. A FraxSwap long-term order asks the pool to absorb a planned amount over time. That is useful for a DAO selling treasury tokens gradually, a protocol buying collateral over a defined period, or a trader who would otherwise submit many separate swaps.&lt;/p&gt;

&lt;p&gt;It is not a claim that every delayed order will outperform every immediate route. FraxSwap changes the execution method; it does not create liquidity, fix a weak token market, or remove the effect of a changing market price.&lt;/p&gt;

&lt;h2&gt;
  
  
  How does FraxSwap turn one long order into a schedule?
&lt;/h2&gt;

&lt;p&gt;A TWAMM accepts a fixed input amount and an execution duration. Instead of broadcasting many manual trades, its logic models small virtual trades over successive blocks. The order’s output accumulates as the schedule runs, while the pool remains available for ordinary swaps and liquidity activity.&lt;/p&gt;

&lt;p&gt;This matters because constant-product AMMs price trades from pool reserves rather than an order book. In a standard pool, withdrawing one token requires adding the other token in a way that preserves the pricing rule; a larger trade therefore changes reserves and raises slippage. The &lt;a href="https://developers.uniswap.org/docs/protocols/v2/concepts/swapping" rel="noopener noreferrer"&gt;Uniswap V2 swapping documentation&lt;/a&gt; explains how liquidity pools, reserve changes, and the constant-product rule determine that result.&lt;/p&gt;

&lt;p&gt;For a long-term FraxSwap order, the relevant question is not only “What is the quote now?” It is “Am I willing to receive the average execution outcome across this chosen period?” A longer duration gives the market more time to absorb the intended flow, but it also exposes the order to more time in market.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why does delayed execution still depend on liquidity and market direction?
&lt;/h2&gt;

&lt;p&gt;FraxSwap reduces the need to hand-manage many smaller transactions, but the final outcome still depends on the pair, pool depth, trading fee, external market prices, and other activity during the order’s lifetime. If the asset rises while a buy order is running, the buyer may receive less than an initial quote implied. If it falls, the reverse can happen.&lt;/p&gt;

&lt;p&gt;Arbitrage is part of the design: when the pool price drifts from prices elsewhere, traders have an incentive to trade against the difference. That helps keep the embedded AMM connected to the wider market, but it is not a fixed-price promise. The aim is smoother execution, not immunity from price discovery.&lt;/p&gt;

&lt;h2&gt;
  
  
  What should a first-time FraxSwap user verify before signing?
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Match the network to the asset.&lt;/strong&gt; Confirm that the connected wallet, token balance, and selected router belong to the same supported chain. Do not rely on a token ticker alone.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Choose execution type deliberately.&lt;/strong&gt; Use a regular swap when immediate completion is the priority. Choose a long-term order only when the size and timing justify gradual execution.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Set the duration as a trading decision.&lt;/strong&gt; The duration determines how long the order remains exposed to pool and market conditions. It should reflect the user’s actual urgency, not a guess that a longer period always produces a better result.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Inspect the approval request.&lt;/strong&gt; Check the token contract, spender, and amount. An allowance gives the spender authority to transfer tokens up to that amount, so it should be treated as a separate action from the swap itself.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Review the transaction details in the interface.&lt;/strong&gt; The &lt;a href="https://fraxswap.app/" rel="noopener noreferrer"&gt;FraxSwap trading interface&lt;/a&gt; is where a user can check the selected pair, route, displayed fee, expected output, and wallet request before submitting.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Why can a long-term order reduce some MEV exposure without removing execution risk?
&lt;/h2&gt;

&lt;p&gt;A large public one-block DEX swap can attract sandwich trading: a searcher can trade immediately before and after the target transaction to profit from its expected price effect. Ethereum’s &lt;a href="https://ethereum.org/developers/docs/mev" rel="noopener noreferrer"&gt;MEV documentation&lt;/a&gt; describes this mechanism and its effect on DEX execution.&lt;/p&gt;

&lt;p&gt;FraxSwap’s virtual orders are designed to execute over time rather than as one large visible pool-moving event. That is a meaningful reason to prefer it for an order that does not need instant settlement. It does not eliminate market risk, smart-contract risk, token risk, or the need to inspect the exact transaction being authorized.&lt;/p&gt;

&lt;h2&gt;
  
  
  When is FraxSwap the wrong tool for the job?
&lt;/h2&gt;

&lt;p&gt;FraxSwap is the wrong tool when the order must settle immediately, the desired pair has weak liquidity, or another venue offers a clearly better executable route for the required size. It is also a poor fit for someone who cannot accept the possibility that the market moves materially during the chosen duration.&lt;/p&gt;

&lt;p&gt;The reason to pick FraxSwap over other AMMs is therefore specific: it gives a large, non-urgent on-chain order a native execution schedule. For immediate swaps, compare live routes. For gradual execution, assess the pair, duration, authorization, and expected outcome as one decision.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Anyswap Funds Stuck? What You Can Actually Do, and What You Probably Cannot</title>
      <dc:creator>Hafil</dc:creator>
      <pubDate>Fri, 12 Jun 2026 13:28:57 +0000</pubDate>
      <link>https://dev.to/hafil_de614778408ace0a2ef/anyswap-funds-stuck-what-you-can-actually-do-and-what-you-probably-cannot-1e2d</link>
      <guid>https://dev.to/hafil_de614778408ace0a2ef/anyswap-funds-stuck-what-you-can-actually-do-and-what-you-probably-cannot-1e2d</guid>
      <description>&lt;p&gt;The uncomfortable part comes first: if funds are stuck because of the &lt;a href="https://anyswap.network/" rel="noopener noreferrer"&gt;Anyswap&lt;/a&gt; to Multichain failure, there may not be a normal support path, a retry button, or a contract method that makes the bridge whole again. A cross-chain bridge is not a bank queue. It is a custody and messaging system, and when that custody layer fails, the user-facing symptom is often simple: your source-chain asset is gone from your wallet, your destination-chain asset never becomes usable, or the wrapped token you hold no longer has credible backing.&lt;/p&gt;

&lt;p&gt;That does not mean you should do nothing. It means the job changes. You are no longer "speeding up a bridge." You are preserving evidence, identifying which asset state you are actually in, avoiding recovery scams, and deciding whether any remaining on-chain action is rational.&lt;/p&gt;

&lt;h2&gt;
  
  
  What actually made Anyswap funds get stuck?
&lt;/h2&gt;

&lt;p&gt;There were ordinary bridge delays before the collapse, and then there was the larger failure around Multichain, the later name associated with the protocol. Those are different problems.&lt;/p&gt;

&lt;p&gt;In a normal bridge delay, the source-chain transaction may be confirmed, but the destination-chain release or mint is pending. That can happen because of relayer delays, liquidity constraints, routing problems, gas issues, RPC indexing lag, or a temporary pause. Annoying, yes. Usually diagnosable.&lt;/p&gt;

&lt;p&gt;The July 2023 incident was not a routine delay. A &lt;a href="https://www.chainalysis.com/blog/multichain-exploit-july-2023/" rel="noopener noreferrer"&gt;Chainalysis July 2023 analysis&lt;/a&gt; described unusually large unauthorized withdrawals from Multichain, with the bulk coming from the Fantom bridge, and discussed the possibility of a hack or insider rug pull. The same analysis noted that Multichain used multi-party computation, or MPC, for key management; if enough MPC key material is controlled or unavailable, the bridge's ability to secure and release assets changes completely.&lt;/p&gt;

&lt;p&gt;That is why "stuck" can mean several different things:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Your original asset was locked or custodied on the source chain.&lt;/li&gt;
&lt;li&gt;You received an anyToken or wrapped asset, such as anyUSDC or anyETH, whose backing became questionable.&lt;/li&gt;
&lt;li&gt;You started a bridge transaction while service was paused or degraded.&lt;/li&gt;
&lt;li&gt;You hold a token that still appears in your wallet, but the market treats it as impaired because redemption is not reliable.&lt;/li&gt;
&lt;li&gt;You are seeing a frozen asset, especially where a centralized issuer or exchange has blocked movement at a specific address.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The fix depends on which of those states applies. There is no single recovery recipe.&lt;/p&gt;

&lt;h2&gt;
  
  
  Can I just reverse the bridge transaction?
&lt;/h2&gt;

&lt;p&gt;Usually, no. Once a source-chain transaction is confirmed, the chain will not unwind it because the bridge later failed. Ethereum-style settlement is deliberately hard to reverse; finality is a feature until you need an exception.&lt;/p&gt;

&lt;p&gt;For a lock-and-mint bridge, the usual pattern is that assets are locked on the source chain and a representation is minted or released on the destination chain. The &lt;a href="https://ethereum.org/en/developers/docs/bridges/" rel="noopener noreferrer"&gt;ethereum.org bridge documentation&lt;/a&gt; describes this lock-and-mint model and the systemic risk created by wrapped assets. If the bridge custodian, validator set, MPC system, or destination contract cannot complete its side of the bargain, the source-chain transaction being valid does not guarantee a useful destination-chain asset.&lt;/p&gt;

&lt;p&gt;So the question is not "how do I undo it?" The better question is: "What proof do I have, what asset do I hold now, and is there any live contract or issuer path that recognizes that proof?"&lt;/p&gt;

&lt;h2&gt;
  
  
  What should I check first?
&lt;/h2&gt;

&lt;p&gt;Start with the boring checks. They matter because they separate a bad UI from a dead route.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Confirm the source-chain transaction hash in a block explorer. Look for success/failure, token contract, amount, sender, recipient, and the bridge/router contract.&lt;/li&gt;
&lt;li&gt;Confirm whether a destination-chain transaction exists. Do not rely only on a bridge history page; check the destination explorer directly.&lt;/li&gt;
&lt;li&gt;Identify the token contract you received, if any. A symbol like USDC, ETH, or BTC is not enough. You need the contract address.&lt;/li&gt;
&lt;li&gt;Check whether the token is a wrapped bridge asset. Names like anyUSDC, anyETH, multiUSDC, or other bridge-specific variants are not the same as native issuance.&lt;/li&gt;
&lt;li&gt;Look for official pause, shutdown, or incident notices from the protocol, wallet, exchange, or issuer involved.&lt;/li&gt;
&lt;li&gt;Save screenshots and raw transaction links before trying new actions. Evidence gets harder to assemble after you connect to random "recovery" sites.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If all you find is a source-chain debit and no credible destination-chain credit, treat the position as unresolved, not "almost fixed."&lt;/p&gt;

&lt;h2&gt;
  
  
  A practical stuck-funds checklist
&lt;/h2&gt;

&lt;p&gt;Use this as a triage sheet, not as a promise that a fix exists.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;[ ] Source-chain transaction hash saved.&lt;/li&gt;
&lt;li&gt;[ ] Destination-chain transaction hash found, or confirmed absent.&lt;/li&gt;
&lt;li&gt;[ ] Source token contract address recorded.&lt;/li&gt;
&lt;li&gt;[ ] Destination token contract address recorded.&lt;/li&gt;
&lt;li&gt;[ ] Token type identified: native, canonical wrapped, bridge-issued anyToken, LP receipt, or unknown.&lt;/li&gt;
&lt;li&gt;[ ] Bridge route identified: source chain, destination chain, bridge contract, and UI used.&lt;/li&gt;
&lt;li&gt;[ ] Current contract status checked: paused, deprecated, inaccessible, or still callable.&lt;/li&gt;
&lt;li&gt;[ ] Issuer or exchange status checked for frozen / blocked assets, especially stablecoins.&lt;/li&gt;
&lt;li&gt;[ ] Wallet approvals reviewed and unnecessary approvals revoked.&lt;/li&gt;
&lt;li&gt;[ ] No seed phrase, private key, or signed "recovery authorization" shared with any third party.&lt;/li&gt;
&lt;li&gt;[ ] Tax/accounting note created if the position may need to be treated as impaired or lost.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That last line is not glamorous, but it is real. If the technical path is gone, documentation may be the only useful thing left.&lt;/p&gt;

&lt;h2&gt;
  
  
  What if I hold anyUSDC, anyETH, or another anyToken?
&lt;/h2&gt;

&lt;p&gt;Treat it as a separate asset until proven otherwise.&lt;/p&gt;

&lt;p&gt;Wrapped assets depend on redeemability. If you hold anyUSDC, the relevant question is not whether "USDC" has value in the abstract; it is whether that specific token contract can be redeemed, swapped, or honored by a credible route. Same for anyETH. A bridge-issued representation can trade away from the asset it names when confidence in the backing or redemption path disappears.&lt;/p&gt;

&lt;p&gt;This is where many people make the position worse. They see a token symbol in a wallet, assume it is equivalent to the native asset, and route it into a thin pool, a fake support site, or a second bridge that cannot actually redeem it. Before moving it, check the contract address, liquidity venue, pool depth, route, and whether the receiving protocol treats it as the same asset you think it is.&lt;/p&gt;

&lt;p&gt;If your current path depends on a dead interface, comparing live bridge assumptions is a separate task from recovery. Around &lt;a href="https://anyswap.network/" rel="noopener noreferrer"&gt;Anyswap&lt;/a&gt;, a current alternative worth checking should be treated as a research reference, not as a way to reverse an old transaction. The useful question is whether a new route has transparent custody, sane limits, and an exit path before you send anything else.&lt;/p&gt;

&lt;h2&gt;
  
  
  Does frozen mean recoverable?
&lt;/h2&gt;

&lt;p&gt;Not automatically.&lt;/p&gt;

&lt;p&gt;"Frozen" can mean at least three things in this context. A bridge can be paused. A token issuer can block transfers from specific addresses. An exchange or application can disable deposits or withdrawals for a token. Those are operationally different.&lt;/p&gt;

&lt;p&gt;For USDC specifically, Circle's legal terms state that USDC can be blocklisted under its policy, and that transfers to and from a blocked address may be restricted; see the &lt;a href="https://www.circle.com/legal/usdc-terms" rel="noopener noreferrer"&gt;Circle USDC terms&lt;/a&gt;. That kind of freeze may prevent movement, but it does not by itself create a user recovery process for every affected bridge user. It may preserve assets from further movement, support law-enforcement or compliance action, or simply leave a holder waiting with no direct claim path through the bridge.&lt;/p&gt;

&lt;p&gt;So no: frozen does not mean safe, solved, or refundable. It means movement has been restricted somewhere.&lt;/p&gt;

&lt;h2&gt;
  
  
  Did MPC key management matter?
&lt;/h2&gt;

&lt;p&gt;Yes, because MPC was part of the custody control plane.&lt;/p&gt;

&lt;p&gt;MPC is often described as a way to split signing authority instead of leaving one private key in one place. That can be a useful design. But the security benefit depends on operational reality: who controls the key shares, where the servers run, who can revoke access, and what happens if a principal disappears.&lt;/p&gt;

&lt;p&gt;Reports on the Multichain shutdown said the team lost effective access after CEO Zhaojun was taken by Chinese police and that access to MPC node servers was tied to his control environment. A &lt;a href="https://www.theblock.co/post/239589/multichain-ceases-operations-as-ceos-sister-is-detained-in-china-while-holding-220-million-of-funds" rel="noopener noreferrer"&gt;report on the shutdown notice&lt;/a&gt; described the project's statement that the servers running the MPC setup were controlled through Zhaojun's personal cloud server account. A &lt;a href="https://decrypt.co/148559/multichain-shutters-operations-chinese-police-take-ceo-sister-custody/" rel="noopener noreferrer"&gt;Decrypt report on the same notice&lt;/a&gt; similarly covered the team's claim that it could no longer maintain normal operations.&lt;/p&gt;

&lt;p&gt;For a stuck user, the practical implication is blunt: if the signing and custody system is unavailable or compromised, your wallet cannot force the bridge to honor a release. You can prove what happened on-chain. You cannot make missing operators sign.&lt;/p&gt;

&lt;h2&gt;
  
  
  Should I contact support, law enforcement, or a recovery service?
&lt;/h2&gt;

&lt;p&gt;Contacting legitimate support channels is reasonable if they still exist, but do not confuse a ticket with custody. A support agent cannot mint backed assets without the protocol's authority, liquidity, and signer access.&lt;/p&gt;

&lt;p&gt;For meaningful losses, preserve records and consider professional advice. That may mean a lawyer, accountant, insurer, exchange compliance desk, or law-enforcement report, depending on the situation and jurisdiction. Keep it factual: transaction hashes, timestamps, wallet addresses, token contracts, amounts, chains, screenshots, and any communication you received.&lt;/p&gt;

&lt;p&gt;Be very suspicious of "recovery" offers. The common scam pattern is familiar: someone says your funds are visible, asks you to connect a wallet, asks for a seed phrase, sends you to a cloned bridge page, or tells you to pay a fee to unlock an old transfer. A legitimate investigator does not need your seed phrase. A real issuer or exchange will not ask you to sign arbitrary approvals through a chat link.&lt;/p&gt;

&lt;h2&gt;
  
  
  Is there any on-chain action worth trying?
&lt;/h2&gt;

&lt;p&gt;Sometimes, but only after you know what state you are in.&lt;/p&gt;

&lt;p&gt;If the issue is merely a wallet display problem, adding the correct token contract or switching RPCs can make a received token visible. If the issue is a pending approval, revoking approvals may reduce future risk but will not complete the old bridge. If the issue is a live but deprecated contract, read-only calls and explorer data may show status, but writing to the contract without understanding the function can burn gas or worsen the position.&lt;/p&gt;

&lt;p&gt;The highest-value on-chain actions are defensive:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Revoke stale approvals to bridge routers and unknown spenders.&lt;/li&gt;
&lt;li&gt;Move unaffected assets out of wallets that interacted with suspicious recovery sites.&lt;/li&gt;
&lt;li&gt;Avoid sending additional gas, tokens, or approvals to "unstick" a transaction unless the mechanism is documented and independently verifiable.&lt;/li&gt;
&lt;li&gt;Keep impaired wrapped assets separate from normal portfolio balances so you do not accidentally route them as if they were native assets.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Do not average down into a broken bridge asset just because it is cheap. A discount can reflect impaired redemption, not opportunity.&lt;/p&gt;

&lt;h2&gt;
  
  
  What should I conclude if the evidence points to the July 2023 collapse?
&lt;/h2&gt;

&lt;p&gt;Conclude that you are dealing with a custody failure, not a normal delayed transaction.&lt;/p&gt;

&lt;p&gt;The facts that matter are the transaction path, the token contract, and whether any credible party still controls the machinery needed to redeem or release assets. Chainalysis described the July withdrawals as unauthorized and discussed compromised or unavailable administrator-level control as a plausible mechanism. Contemporary shutdown reporting described loss of operational access and the end of normal project operations. Those are not conditions where a user can simply resubmit a form and expect a bridge to finish.&lt;/p&gt;

&lt;p&gt;That is an unsatisfying answer, but it is the honest one. Your best next step is to document the position cleanly, secure the rest of the wallet, check whether any issuer, exchange, or legal channel applies, and avoid turning a stuck bridge claim into a second loss through a recovery scam.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3gwel10zb0wlpq3a3w7o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3gwel10zb0wlpq3a3w7o.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>cryptocurrency</category>
      <category>bitcoin</category>
      <category>ethereum</category>
      <category>blockchain</category>
    </item>
  </channel>
</rss>
