<?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: Willson Lammy</title>
    <description>The latest articles on DEV Community by Willson Lammy (@jake-eth).</description>
    <link>https://dev.to/jake-eth</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%2F4141412%2F16bcb616-60f2-4a50-9dcc-85530e066ead.png</url>
      <title>DEV Community: Willson Lammy</title>
      <link>https://dev.to/jake-eth</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jake-eth"/>
    <language>en</language>
    <item>
      <title>No Direct Route: How to Bridge a Token Safely</title>
      <dc:creator>Willson Lammy</dc:creator>
      <pubDate>Fri, 23 Oct 2026 14:38:06 +0000</pubDate>
      <link>https://dev.to/jake-eth/no-direct-route-how-to-bridge-a-token-safely-58i2</link>
      <guid>https://dev.to/jake-eth/no-direct-route-how-to-bridge-a-token-safely-58i2</guid>
      <description>&lt;p&gt;When your chosen token has no direct route, use a bridge only if it supports your exact source chain, token, and destination. A missing route can mean the token is unsupported there, even when both chains appear in a bridge’s network list.&lt;/p&gt;

&lt;h2&gt;
  
  
  How can you tell if a bridge route fits?
&lt;/h2&gt;

&lt;p&gt;Check the full route in the transfer screen: source network, token, destination network, and the token you will receive. A route between two chains does not guarantee that every token can travel between them.&lt;/p&gt;

&lt;p&gt;For example, if a token route from Chain A to Chain B is offered, check the destination token’s name and address before sending. If it is a wrapped token, it represents an asset held or issued elsewhere; it may not be interchangeable with the destination chain’s native version.&lt;/p&gt;

&lt;p&gt;When comparing routes, I would choose a clearly named destination asset over a shorter path with an unclear token. Use &lt;a href="https://chainpulse-abh.pages.dev/wormhole-bridge-transfers-check-what-lands-before-you-send/" rel="noopener noreferrer"&gt;wormhole bridge transfers&lt;/a&gt; as a concrete example: check the offered token and route details before approving, rather than assuming the same ticker means the same asset.&lt;/p&gt;

&lt;h2&gt;
  
  
  What happens after you start the transfer?
&lt;/h2&gt;

&lt;p&gt;A bridge transfer starts with a transaction on the source chain. The bridge’s contract locks or burns the tokens and records a message for the destination chain.&lt;/p&gt;

&lt;p&gt;In Wormhole’s Token Bridge, Guardians verify and sign that message as a VAA, or verifiable action approval. The destination contract checks that proof, then releases the original tokens or creates a wrapped version for you.&lt;/p&gt;

&lt;p&gt;Some routes ask you to submit the proof in a second transaction. Others use a relayer, a service that submits it for you. Wormhole’s Token Bridge specification describes this source-message-proof-destination flow; the Ethereum ERC-20 standard defines the common token format used by many supported assets.&lt;/p&gt;

&lt;p&gt;This creates a useful contrast: if a route is fully relayed, you may confirm the source transaction and wait; if it is manual, you may need to claim the tokens yourself. Either way, the destination wallet needs the correct network selected, and a manual claim may require that chain’s gas token to pay its transaction fee.&lt;/p&gt;

&lt;h2&gt;
  
  
  What should you check before approving?
&lt;/h2&gt;

&lt;p&gt;Compare the amount you send with the amount expected to arrive, and read the quote for network gas, bridge fees, and any relayer charge. These costs vary by chain, route, and network demand; the destination amount can also be lower after fees.&lt;/p&gt;

&lt;p&gt;Then check the recipient address, destination network, and token identity. A correct address on the wrong chain can leave you unable to use the funds, while a token with the right ticker but a different contract address may not be the asset you intended.&lt;/p&gt;

&lt;p&gt;If the direct route is absent, check whether another supported token or route reaches the destination, but only use an option whose final asset you understand. Avoid improvising a chain-by-chain detour unless each leg is supported and you can cover its fees.&lt;/p&gt;

&lt;p&gt;After sending, keep the transaction record and follow its status until the destination balance appears; a source confirmation alone does not prove delivery. Before a large transfer, try a small amount first, and keep enough destination gas for any manual claim.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How to Protect a Treasury Swap From Sandwich Attacks</title>
      <dc:creator>Willson Lammy</dc:creator>
      <pubDate>Thu, 22 Oct 2026 21:42:53 +0000</pubDate>
      <link>https://dev.to/jake-eth/how-to-protect-a-treasury-swap-from-sandwich-attacks-2hc9</link>
      <guid>https://dev.to/jake-eth/how-to-protect-a-treasury-swap-from-sandwich-attacks-2hc9</guid>
      <description>&lt;p&gt;Protect a treasury swap from sandwich attacks by setting a firm price limit and routing the trade through an order flow that does not expose it as a predictable pending swap. A sandwich bot tries to profit by buying before your trade pushes a token’s price up, then selling after your trade executes. The result can be a worse price for the treasury.&lt;/p&gt;

&lt;h2&gt;
  
  
  Set the trade’s limits before you submit it
&lt;/h2&gt;

&lt;p&gt;Start by writing down the trade the treasury actually needs: which wallet will trade, which token it will sell, how much, which token it will receive, and the minimum acceptable amount out. A swap’s “price impact” is the price change caused by the trade itself; a large order against a shallow liquidity pool can move the price even without an attacker.&lt;/p&gt;

&lt;p&gt;For a treasury swapping, say, 50,000 USDC into another token, compare quotes for the full amount and smaller portions. Splitting may reduce price impact, but it can add execution time and expose the treasury to price changes between trades. When you submit through cowswap, the signed order enters a batch auction for solvers to compete over; the &lt;a href="https://dune.com/cryptogurus/cowswap-order-types-explained-for-integrators" rel="noopener noreferrer"&gt;cowswap interface&lt;/a&gt; is useful here because the trade is handled as an order rather than sent as a public swap transaction waiting in the mempool.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Confirm the wallet and network.&lt;/strong&gt; Use the treasury’s approved wallet on the intended network, and check the token contract addresses against a trusted source. A correct ticker can still refer to a different token.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Choose the exact sell amount.&lt;/strong&gt; Check the available balance and any policy limit for the wallet. Leave enough of the network’s native token for any required wallet actions, such as approving token spending.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Set a minimum receive amount.&lt;/strong&gt; Use the quote to decide the least the treasury can accept after fees and price movement. For example, if a quote offers 49,000 tokens, a 1% tolerance would set a floor near 48,510; that figure is illustrative, and the right tolerance depends on volatility and treasury policy.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Submit an order that can fail safely
&lt;/h2&gt;

&lt;p&gt;A limit price is the worst exchange rate your order permits. If the market moves past that price, the order should remain unfilled or expire instead of completing at a price the treasury rejected. Tight limits can protect value but may delay or prevent execution, so avoid loosening them just to force a fill.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Review the order details before signing.&lt;/strong&gt; Confirm the sell token, buy token, amount, minimum receive, expiration, and any displayed fee. A signature authorizes the order conditions; it is not the same as handing over unrestricted control of the wallet.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Approve token spending only when asked.&lt;/strong&gt; Some tokens need an on-chain approval before the order can be filled. Check the spender and amount in the wallet prompt, and avoid granting unlimited approval if a smaller allowance is available and fits the treasury’s operating policy.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sign and track the order.&lt;/strong&gt; Signing submits the trade intent for matching; it does not mean the swap has already settled. In a batch auction, solvers look for matching orders—sometimes a “Coincidence of Wants,” where traders want each other’s tokens—or route the batch to available liquidity. If no valid execution meets your limit, the order may not fill.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Verify settlement before recording the trade
&lt;/h2&gt;

&lt;p&gt;Once the order fills, check the wallet’s token balances and the transaction or order status before marking the treasury trade complete. Compare the actual amount received with the minimum in the signed order, and record the transaction hash, amounts, network, and time in the treasury’s normal records.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Handle an unfilled or expired order deliberately.&lt;/strong&gt; Check its status before resubmitting; an old order may still be open. Cancel it if the interface offers cancellation, then get a fresh quote and reassess the minimum receive amount.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reconcile approvals and balances.&lt;/strong&gt; Confirm the tokens spent and received, and review any remaining allowance under the treasury’s policy. Keep the order record with the wallet’s transaction evidence for later review.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Batch auctions reduce the opportunity for a bot to target one visible pending swap, but no trading route guarantees a fill or removes every risk, including token and liquidity risks. For a large treasury trade, my practical tip is to test the wallet process with a small amount first, then use cowswap for the approved order with its price floor set before anyone signs.&lt;/p&gt;

</description>
      <category>blockchain</category>
      <category>crypto</category>
      <category>security</category>
      <category>web3</category>
    </item>
    <item>
      <title>How Long Does ZeroFi Take to Bridge Monero Into zXMR?</title>
      <dc:creator>Willson Lammy</dc:creator>
      <pubDate>Thu, 22 Oct 2026 16:03:20 +0000</pubDate>
      <link>https://dev.to/jake-eth/how-long-does-zerofi-take-to-bridge-monero-into-zxmr-3ofh</link>
      <guid>https://dev.to/jake-eth/how-long-does-zerofi-take-to-bridge-monero-into-zxmr-3ofh</guid>
      <description>&lt;p&gt;ZeroFi is a cross-chain bridge that wraps Monero as zXMR; its current route requires 10 Monero confirmations, roughly 20 minutes after inclusion, plus bridge processing and mint time. As of 20 October 2026, that route ends on Ethereum Sepolia, a testnet, so it cannot put XMR into a live DeFi position.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Output Is a Wrapped Asset on a Specific Network
&lt;/h2&gt;

&lt;p&gt;The bridge gives you zXMR, an ERC-20 token representing XMR held for redemption. You can send that token to an EVM wallet and use it in an application that accepts the &lt;em&gt;exact&lt;/em&gt; token contract on the &lt;em&gt;same&lt;/em&gt; network. An app accepting zXMR on one network will not automatically accept zXMR on another.&lt;/p&gt;

&lt;p&gt;That distinction matters more than the token’s name. Native XMR remains on Monero, while the wrapped token moves on an EVM chain and follows that chain’s public transaction rules. Wrapping XMR does not carry Monero’s transaction privacy into the receiving app.&lt;/p&gt;

&lt;p&gt;The ZeroFi Monero bridge is the route visible in the public interface now. The protocol’s broader aim includes assets such as Bitcoin, represented as zBTC, and other EVM destinations; check the available route before treating either as ready to use. A token mentioned in a project description is not necessarily one you can deposit, spend, and redeem today.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Deposit Triggers Custody, Verification, and Minting
&lt;/h2&gt;

&lt;p&gt;A deposit starts with native coins sent from their own network to a bridge deposit address. Validator nodes observe the payment and wait for the required confirmations before the bridge credits the EVM address you supplied. The underlying coins stay in bridge custody while the corresponding wrapped tokens circulate.&lt;/p&gt;

&lt;p&gt;The ZeroFi crypto bridge describes that custody as shared among bonded nodes using threshold control, rather than a single holder of the funds. After the deposit is accepted, the bridge mints zXMR to the chosen EVM address. “Minted” is the key checkpoint: seeing your Monero transaction reach the deposit address does not mean the EVM token has arrived.&lt;/p&gt;

&lt;p&gt;The trip back runs in reverse. You request a withdrawal to a Monero address, the wrapped tokens are burned, and the custody nodes authorize a native XMR payout. Burning prevents those tokens from continuing to circulate after the backing coins leave custody; you still need to wait for the payout transaction to appear and confirm on Monero.&lt;/p&gt;

&lt;p&gt;For example, depositing 1 XMR should create a claim tied to 1 XMR before any quoted charges, and redeeming that claim should release the corresponding native amount. That one-to-one design depends on the bridge holding enough reserves and processing withdrawals. Before a large transfer, compare wrapped supply with reported custody reserves and check that recent payouts have completed.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Current XMR Route Has a Confirmation Wait
&lt;/h2&gt;

&lt;p&gt;The public XMR route shows a 0.01 XMR minimum and credits deposits after 10 Monero confirmations. Monero targets a block about every two minutes, making that stage roughly 20 minutes after your payment enters a block. Inclusion can take longer, and the bridge’s later processing and EVM mint add time, so 20 minutes is a starting estimate rather than a delivery promise.&lt;/p&gt;

&lt;p&gt;ZeroFi currently labels the destination Ethereum Sepolia. Sepolia is a testnet: its tokens are useful for trying an integration, but they are not tokens on Ethereum mainnet. The subtle cost is that a deposit can spend real mainnet XMR even though the zXMR you receive sits on a test network; confirm the route and withdrawal path before sending anything.&lt;/p&gt;

&lt;p&gt;That creates two very different cases for someone comparing bridges. I would choose the &lt;a href="https://zerofi.pro/" rel="noopener noreferrer"&gt;ZeroFi protocol&lt;/a&gt; for a Sepolia trial when the receiving app supports its zXMR contract; for a live DeFi position, I would choose a route already operating on the required production network. The ZeroFi Monero bridge only solves the second case when that production route is actually available.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Cost Includes the Deposit and the Exit
&lt;/h2&gt;

&lt;p&gt;A full round trip can involve a Monero network fee, a bridge charge, EVM gas for using or burning zXMR, and any withdrawal charge shown at redemption. The 0.01 XMR figure is a minimum deposit, not a fee. There is no useful fixed total without an amount, a live bridge quote, and the intended EVM network.&lt;/p&gt;

&lt;p&gt;Read the quote as an amount received, not merely a percentage. Say a 0.10 XMR deposit shows an illustrative 0.0002 XMR bridge charge: you would expect 0.0998 zXMR before later app and withdrawal costs, subject to the interface’s actual calculation. If the fee field has not populated, wait for a valid quote instead of assuming the charge is zero.&lt;/p&gt;

&lt;p&gt;On Sepolia, an EVM wallet also needs Sepolia ETH to submit transactions such as an approval or burn. Testnet ETH is normally obtained from a faucet, but Monero sent from its mainnet is real. If you plan to return to XMR, check the withdrawal minimum and quoted payout before depositing; a small balance is of little use if the exit costs consume it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Right Route Depends on the Destination and the Exit
&lt;/h2&gt;

&lt;p&gt;The right route is the one that reaches the network and token contract your intended app accepts, with a redemption path you are willing to rely on. Start by checking the bridge’s source asset, destination network, minimum, displayed fee, and receiving address. Then check the app’s supported contract address; matching a ticker alone is insufficient.&lt;/p&gt;

&lt;p&gt;For a trial, connect an EVM wallet on Sepolia, obtain enough Sepolia ETH for any transaction you must submit, and enter an address you control. Generate the deposit instructions, send a small amount above the stated minimum from your Monero wallet, and keep the payment ID or transaction record. Track both the Monero confirmations and the eventual zXMR mint before trying to spend the token.&lt;/p&gt;

&lt;p&gt;For a larger amount, test the exit as well as the deposit. Burn a small zXMR balance to a Monero address you control, then verify the native payout arrives. That exercise tells you more about usable redemption than a successful mint alone, and it exposes any minimum or fee that matters when you want your coins back.&lt;/p&gt;

&lt;p&gt;If you need Bitcoin or a production EVM chain, first confirm that its deposit and withdrawal routes are live and that the receiving app accepts the issued token. Choose this bridge when its active route reaches your exact destination and you can complete the return trip at an acceptable cost.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Minimum Trade Sizes and DEX Routes in 2026</title>
      <dc:creator>Willson Lammy</dc:creator>
      <pubDate>Thu, 22 Oct 2026 09:04:25 +0000</pubDate>
      <link>https://dev.to/jake-eth/minimum-trade-sizes-and-dex-routes-in-2026-kc2</link>
      <guid>https://dev.to/jake-eth/minimum-trade-sizes-and-dex-routes-in-2026-kc2</guid>
      <description>&lt;p&gt;If your swap is too small to use every attractive pool, the router may drop tiny paths and send the trade through fewer venues. A “minimum trade size” can mean a venue’s own fill limit, but for an AMM pool it often means the smallest allocation that is useful after fees and execution costs.&lt;/p&gt;

&lt;p&gt;For a swap you’re building into an app, inspect the route for the exact trade amount before deciding how to present it. With &lt;a href="https://graph.org/3-ParaSwap-route-types-for-thin-liquidity-swaps-10-21" rel="noopener noreferrer"&gt;ParaSwap&lt;/a&gt;, for example, compare the quoted output and route at the amount your app will actually send; a route that looks good for a larger test amount may not be selected for a smaller user trade.&lt;/p&gt;

&lt;p&gt;Three things decide whether a small path survives:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Whether the venue can accept that amount.&lt;/li&gt;
&lt;li&gt;Whether its extra output outweighs the added gas.&lt;/li&gt;
&lt;li&gt;Whether rounding or token precision leaves a usable fill.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  A tiny allocation can make a path unusable
&lt;/h2&gt;

&lt;p&gt;A router treats each possible swap path as a sequence of fills, then estimates what each allocation returns. It may split one trade across pools when the combined output improves, but each extra venue or hop adds work to the transaction. If a small branch saves less than that extra gas costs, the router can leave it out.&lt;/p&gt;

&lt;p&gt;Consider an illustrative 100-token swap. Before the minimum-size effect, the best estimate might allocate 98 tokens to one pool and 2 to a second. If the second pool’s minimum fill is 3 tokens—or that 2-token branch adds more gas than value—the router cannot use the split as quoted. Afterward, it may route all 100 through the first pool, or choose a different path through an intermediate token.&lt;/p&gt;

&lt;h2&gt;
  
  
  The useful threshold depends on the venue and the trade
&lt;/h2&gt;

&lt;p&gt;There is no universal minimum across decentralized exchanges. An AMM pool may accept a very small amount at the contract level, while an order book or quoted liquidity source can impose a minimum order. Even without a formal limit, token decimals and integer rounding can make a tiny allocation round down, and a shallow pool can give it poor output.&lt;/p&gt;

&lt;p&gt;The deciding test is net execution value: expected output after pool fees and price impact, weighed against gas and any venue-specific limits. The threshold changes with the chain, gas price, token pair, pool depth, and route length. A global slippage setting controls the transaction’s minimum acceptable output; it does not guarantee that every proposed branch meets a useful per-venue size.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quote the app’s real amount before choosing a route
&lt;/h2&gt;

&lt;p&gt;For a live app, request a fresh quote for the exact input amount, chain, and token pair, then inspect its route and estimated gas. If you use the ParaSwap API, treat its returned route as a quote for those inputs, not a promise that the same split will remain optimal when the user changes the amount or submits later.&lt;/p&gt;

&lt;p&gt;I’d show the user the best executable quote for their actual amount and avoid forcing a split just to use more venues. If a small trade gets a simpler route, that can be the better result once gas and minimum fills are counted.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>4 Steps to Set Slippage for Base Token Swaps</title>
      <dc:creator>Willson Lammy</dc:creator>
      <pubDate>Wed, 21 Oct 2026 22:37:26 +0000</pubDate>
      <link>https://dev.to/jake-eth/4-steps-to-set-slippage-for-base-token-swaps-217n</link>
      <guid>https://dev.to/jake-eth/4-steps-to-set-slippage-for-base-token-swaps-217n</guid>
      <description>&lt;p&gt;Slippage tolerance is the largest difference you will accept between a swap’s quoted output and the amount you receive when it executes. The key condition is whether the market can move enough before your transaction is included to cross that limit.&lt;/p&gt;

&lt;p&gt;Think of the quote as a price ticket with an expiry condition: the trade goes through only if the final output meets its minimum. When comparing routes on &lt;a href="https://web3dailyreport.github.io/baseswap-when-to-swap-tokens-and-when-to-add-liquidity/" rel="noopener noreferrer"&gt;BaseSwap&lt;/a&gt;, check that minimum alongside the estimated output and pool fee; a better-looking quote can still be less useful if it depends on a very thin pool. The same checks apply when comparing other decentralized exchanges.&lt;/p&gt;

&lt;h2&gt;
  
  
  What does slippage tolerance control?
&lt;/h2&gt;

&lt;p&gt;It sets a floor for the tokens you will receive, not a cap on how much the pool price can move. If a quote offers 500 tokens and tolerance is 0.5%, the minimum output is 497.5; if the swap would return less, the transaction reverts instead of completing below your limit.&lt;/p&gt;

&lt;p&gt;Price impact and slippage are related but different. Price impact is the effect your own trade has on the pool’s price, while slippage is the difference between the quote and execution output. A large trade in a shallow pool may show substantial price impact before you submit it; changing tolerance does not remove that cost.&lt;/p&gt;

&lt;h2&gt;
  
  
  How should you choose a setting before swapping?
&lt;/h2&gt;

&lt;p&gt;Use these four steps to compare routes and set a limit that fits the trade:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Check the token and network.&lt;/strong&gt; Confirm the token contract and that your wallet is connected to Base. Keep enough ETH on Base for gas; a swap can fail even when you have enough of the token you intend to trade.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Compare the quote and pool depth.&lt;/strong&gt; Enter the amount, then review estimated output, price impact, and the pool fee. A route through a deeper pool may provide a steadier execution, while a route through a small pool can move sharply when your order lands.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Set tolerance to match the trade.&lt;/strong&gt; Start with the interface’s suggested setting, if shown, and inspect the minimum received. For a stable, liquid pair, a tighter limit may be practical; a volatile or thinly traded token may need more room, but that also lets the trade complete at a worse price.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Review the final transaction.&lt;/strong&gt; Before confirming, check the minimum output, network, and gas estimate in the swap screen and wallet. If the minimum is unacceptable, reduce the trade size or wait for a better quote instead of raising tolerance blindly.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For example, suppose a swap quotes 500 tokens and the screen shows a 2% price impact. That impact is already part of the quote; a 0.5% tolerance would set a minimum near 497.5 tokens. Raising it to 3% would permit execution down to 485, so first ask whether the trade’s price impact and pool depth justify accepting that extra range.&lt;/p&gt;

&lt;p&gt;On BaseSwap, as on any DEX, raising tolerance can help a transaction survive price movement or a token’s transfer fee, but it can also expose you to a worse fill. A failed swap may still consume gas, so repeated retries with progressively higher limits can cost money without improving the underlying route.&lt;/p&gt;

&lt;h2&gt;
  
  
  What do traders ask after setting slippage?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Does low slippage make a swap cheaper?
&lt;/h3&gt;

&lt;p&gt;No. A tighter limit reduces the worst execution price you will accept, but it does not lower the pool fee, network gas, or price impact already reflected in the quote. If the market moves beyond your limit, the swap reverts and you may still pay gas. Compare the quote and minimum output before deciding whether to retry.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why can a swap fail even when the quote looked good?
&lt;/h3&gt;

&lt;p&gt;The pool price may have changed before execution, the transaction may have waited in the network, or the token may charge a transfer fee. If the resulting output falls below your minimum, the swap reverts. Refresh the quote, check token details, and only adjust tolerance if the new minimum still makes sense for the amount you plan to trade.&lt;/p&gt;

&lt;h3&gt;
  
  
  Should you split a large swap?
&lt;/h3&gt;

&lt;p&gt;Compare the quoted output and price impact for the full amount against smaller portions. Splitting can reduce the immediate effect on a shallow pool, but later portions may face a changed price, and each transaction can add gas cost. Use the total expected output after fees to decide; smaller trades do not guarantee a better overall result.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Verify the token and Base network.&lt;/li&gt;
&lt;li&gt;Compare quote, pool depth, fee, and price impact.&lt;/li&gt;
&lt;li&gt;Choose tolerance by reviewing the minimum output.&lt;/li&gt;
&lt;li&gt;Confirm gas and transaction details before signing.&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>What Happens When a Cross-Chain Transfer Gets Stuck?</title>
      <dc:creator>Willson Lammy</dc:creator>
      <pubDate>Tue, 20 Oct 2026 14:02:22 +0000</pubDate>
      <link>https://dev.to/jake-eth/what-happens-when-a-cross-chain-transfer-gets-stuck-14pk</link>
      <guid>https://dev.to/jake-eth/what-happens-when-a-cross-chain-transfer-gets-stuck-14pk</guid>
      <description>&lt;p&gt;When a cross-chain transfer gets stuck, the source transaction may still be waiting for confirmation, or it may have confirmed while the destination step is still processing. If your wallet shows pending or failed, start with the transaction hash: it tells you whether the transfer actually left the source chain. Knowing &lt;a href="https://dune.com/polly_defi/first-time-mayan-bridge-how-to-choose-a-route" rel="noopener noreferrer"&gt;how to choose a Mayan bridge route&lt;/a&gt; helps explain why two transfers between the same chains can take different paths and have different completion steps.&lt;/p&gt;

&lt;h2&gt;
  
  
  First, did the source transaction confirm?
&lt;/h2&gt;

&lt;p&gt;A transfer cannot proceed until its source-chain transaction is confirmed. Open the transaction hash in the source chain’s block explorer and check its status there; a wallet’s spinner or error message alone does not establish whether the chain accepted it.&lt;/p&gt;

&lt;p&gt;If it is pending, the transaction has not yet completed on the source chain. On Ethereum, for example, a transaction can wait because its gas fee is too low for current demand. Avoid submitting the transfer again while the first transaction is unresolved: if both are later accepted, you could send twice. If your wallet offers a “speed up” or “cancel” option, check what it will replace before confirming; replacement behavior depends on the chain and wallet.&lt;/p&gt;

&lt;p&gt;If the explorer marks it failed, look for the failure reason and check whether the tokens were spent. A failed onchain transaction usually does not execute the transfer, but it can still cost a network fee. Save the hash and error details before deciding whether to try again.&lt;/p&gt;

&lt;h2&gt;
  
  
  What does “confirmed” mean if the tokens have not arrived?
&lt;/h2&gt;

&lt;p&gt;A confirmed source transaction is only the first milestone; the route may still need to arrange delivery on the destination chain. The source explorer proves what happened on the sending chain, while the destination explorer can show whether a separate delivery transaction has appeared.&lt;/p&gt;

&lt;p&gt;For an intent-based route such as Mayan Swift, the transfer can involve a solver: a service that uses its own funds to deliver the requested asset on the destination chain. Wormhole’s Settlement documentation describes solvers competing to fulfill these transfers and says Swift typically completes in around 12 seconds. Treat that as a typical case, not a deadline. Network congestion, the selected route, or a solver issue can extend the wait.&lt;/p&gt;

&lt;p&gt;For MCTP, a route that uses Circle’s CCTP to move USDC, the source transfer must pass through the relevant chain finality and attestation steps before delivery. Wormhole’s documentation describes the attestation as evidence needed for destination redemption. That extra process can take longer than a fast solver route, so compare the transfer’s current stage with the route you actually selected before concluding it has failed.&lt;/p&gt;

&lt;h2&gt;
  
  
  What should you check while it is processing?
&lt;/h2&gt;

&lt;p&gt;Use the transaction hash and route status to identify the last completed step. Check that the destination address and token are the ones you intended, then look for a destination transaction or a route-specific refund status.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Source transaction pending:&lt;/strong&gt; wait for confirmation or use the wallet’s replacement option only after checking its effect.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Source transaction failed:&lt;/strong&gt; read the explorer’s error and confirm whether the transfer executed before retrying.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Source confirmed, destination absent:&lt;/strong&gt; check the bridge’s status page or route tracker for progress or a refund.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Destination transaction confirmed:&lt;/strong&gt; verify the recipient address and token contract; the wallet may not display a token automatically.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For Swift, Wormhole’s Settlement FAQ says funds are refunded on the source chain if no solver starts the auction before its deadline. A missing destination receipt is therefore not, by itself, proof that funds are lost. Look for the refund transaction too, and do not start another transfer until you know whether the first one delivered or returned funds.&lt;/p&gt;

&lt;h2&gt;
  
  
  When is it time to seek help?
&lt;/h2&gt;

&lt;p&gt;Ask the bridge’s support team for help when the source transaction is confirmed but the route tracker shows no progress or refund after its stated window. Send the source hash, route, source and destination chains, and recipient address; never send a seed phrase or private key.&lt;/p&gt;

&lt;p&gt;If the destination transaction succeeded, the next step is to check the exact token address and destination account. If the source transaction never confirmed, resolve that transaction before retrying. The deciding condition is the onchain record: a confirmed source transfer needs route-status follow-up, while an unconfirmed or failed one needs source-side resolution first.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Why Does a Mantle Bridge Deliver Less Than You Send?</title>
      <dc:creator>Willson Lammy</dc:creator>
      <pubDate>Sat, 17 Oct 2026 02:32:25 +0000</pubDate>
      <link>https://dev.to/jake-eth/why-does-a-mantle-bridge-deliver-less-than-you-send-25kl</link>
      <guid>https://dev.to/jake-eth/why-does-a-mantle-bridge-deliver-less-than-you-send-25kl</guid>
      <description>&lt;p&gt;If you are used to a centralised exchange, your wallet can receive less after a Mantle bridge because the route may convert the asset and charge costs at different stages. The amount shown as “you receive” is not always the same as the total value leaving your wallet.&lt;/p&gt;

&lt;h2&gt;
  
  
  Four figures explain the difference
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Amount sent:&lt;/strong&gt; the token amount you choose to bridge or swap.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Estimated output:&lt;/strong&gt; the destination amount predicted by the route.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Network gas:&lt;/strong&gt; the cost of processing transactions on a blockchain.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Minimum received:&lt;/strong&gt; the smallest destination amount allowed before a swap fails.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Amount sent&lt;/strong&gt; is the input to the route, not necessarily the amount that arrives. If you send one token and receive the same token, compare the source and destination token balances, and check whether the route lists a bridge charge.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Estimated output&lt;/strong&gt; reflects the route’s expected result. If you choose a different destination asset, the exchange rate affects the amount just as it would in a normal swap.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Network gas&lt;/strong&gt; pays for transactions, usually from a separate balance of the source network’s native token. An ERC-20 transfer may also require an approval transaction first, which can cost gas without moving the tokens themselves.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Minimum received&lt;/strong&gt; is a protection used by many swap routes. If the market moves too far before execution, the swap may fail rather than deliver less than that threshold.&lt;/p&gt;

&lt;h2&gt;
  
  
  The transfer can contain more than one transaction
&lt;/h2&gt;

&lt;p&gt;A wallet transfer is not a centralised exchange ledger entry: it is a chain of public transactions and messages. The source transaction authorises or sends the asset, a bridge or liquidity route handles the cross-chain leg, and a destination transaction may deliver the asset or complete a swap.&lt;/p&gt;

&lt;p&gt;On an Ethereum-to-Mantle route, for example, a direct deposit may move a supported token into a bridge contract on Ethereum and release its corresponding representation on Mantle. A third-party route can work differently, using liquidity on the destination side and settling between providers later. The details depend on the route, so its quote should say what token arrives and what costs it includes.&lt;/p&gt;

&lt;p&gt;This distinction explains why “less received” does not always mean a fee was taken from the token amount. Source gas may reduce your wallet’s ETH balance separately; a bridge charge may be deducted from the transfer; and a swap may produce a different value because of its exchange rate, price impact, or stated fee.&lt;/p&gt;

&lt;h2&gt;
  
  
  A worked quote separates output from total cost
&lt;/h2&gt;

&lt;p&gt;Suppose you route 1,000 USDT into ETH, and the quoted rate before route costs is 0.00032 ETH per USDT. That gives 0.32 ETH before any swap or bridge deductions. If the quote estimates 0.5% in combined route costs and price impact, the estimated output is about 0.3184 ETH.&lt;/p&gt;

&lt;p&gt;Now suppose the source transaction costs around $8 worth of gas. That gas is a separate wallet expense, not another 0.5% reduction from the 0.3184 ETH, unless the quote explicitly says gas is included or paid from the output. These are illustrative numbers; the actual exchange rate, gas estimate, route fee, and price impact vary with network conditions, liquidity, and the route chosen.&lt;/p&gt;

&lt;p&gt;For a like-for-like transfer, compare the same token on both networks and inspect any explicit bridge fee. For a bridge-and-swap, compare the destination output with a same-time reference rate, then account separately for source gas. This tells you whether the gap comes from conversion, fees, or the cost of executing the transactions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Check the quote and transaction record before retrying
&lt;/h2&gt;

&lt;p&gt;Before signing, confirm the source and destination networks, the token on each side, the estimated output, the minimum received, and whether gas is included. Keep enough native currency on the source network for the transfer and any required approval; also consider whether you will need native currency on the destination network to make a later transaction.&lt;/p&gt;

&lt;p&gt;After signing, use the source transaction record to confirm what left your wallet and whether the transaction succeeded. Then check the destination address and token balance. A confirmed source transaction can still be waiting for the cross-chain leg to complete; sending again before checking can create a second transfer.&lt;/p&gt;

&lt;p&gt;If you want to move and swap assets across chains in one flow, a &lt;a href="https://oraclewire.pages.dev/when-to-use-a-mantle-bridge-for-transfers-to-mantle/" rel="noopener noreferrer"&gt;Mantle bridge swap service&lt;/a&gt; can handle that cross-chain route for you. I would compare its quoted destination amount with the token and minimum you actually need, then check separately which network gas costs the quote includes. That gives you a useful basis for deciding whether to proceed from your wallet.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Source and destination identifiers in bridge receipts explained</title>
      <dc:creator>Willson Lammy</dc:creator>
      <pubDate>Fri, 16 Oct 2026 18:17:53 +0000</pubDate>
      <link>https://dev.to/jake-eth/source-and-destination-identifiers-in-bridge-receipts-explained-20aa</link>
      <guid>https://dev.to/jake-eth/source-and-destination-identifiers-in-bridge-receipts-explained-20aa</guid>
      <description>&lt;p&gt;If you check bridge receipts frequently, treat each chain identifier as part of the transaction’s identity: a hash or event index alone cannot tell you which network produced it. A &lt;a href="https://defi-blog.mataroa.blog/blog/relay-bridge-how-transfers-work-and-when-to-use-one/" rel="noopener noreferrer"&gt;how a relay bridge routes transfers&lt;/a&gt; explanation helps place the receipt in the full route, while this guide focuses on reading and matching its identifiers efficiently.&lt;/p&gt;

&lt;h2&gt;
  
  
  Which identifiers identify the chain?
&lt;/h2&gt;

&lt;p&gt;For EVM networks, the standard compact identifier is the EIP-155 chain ID, such as 1 for Ethereum mainnet or 8453 for Base. In a portable record, CAIP-2 expresses these as &lt;em&gt;eip155:1&lt;/em&gt; and &lt;em&gt;eip155:8453&lt;/em&gt;, separating the namespace from the network reference.&lt;/p&gt;

&lt;p&gt;Keep the chain ID alongside every transaction hash, contract address, block number, and log index. Those values are only meaningful within their chain: the same transaction hash can exist on separate networks, and a contract address can be deployed at the same hexadecimal address on multiple networks. EIP-155 defines chain-specific transaction signing; CAIP-2 provides a namespaced way to label chains across systems.&lt;/p&gt;

&lt;p&gt;A bridge receipt may use protocol-specific numeric IDs instead of EVM chain IDs or CAIP-2 strings. Do not assume those numbers are interchangeable. Check the receipt’s field names and the bridge’s identifier mapping before comparing values or querying an explorer.&lt;/p&gt;

&lt;h2&gt;
  
  
  How do source and destination fields relate?
&lt;/h2&gt;

&lt;p&gt;The source identifier points to where the user’s transaction or deposit event was recorded. The destination identifier points to the network where the corresponding delivery, mint, release, or swap is expected or recorded. They describe two different legs; they are not two labels for one transaction.&lt;/p&gt;

&lt;p&gt;On an EVM source chain, use eth_getTransactionReceipt to retrieve the receipt, then inspect its logs for the bridge event. A log is identified in context by its chain, emitting contract, transaction hash, and log index; its event signature is represented by topics[0]. Decode the event with the correct ABI and read the protocol’s source and destination fields. A relay bridge can add routing or swap details, but those do not replace the chain labels needed to verify each leg.&lt;/p&gt;

&lt;p&gt;Some protocols assign a message ID or nonce to connect the source event to destination execution. That identifier joins the two legs; it does not prove the destination action succeeded. Verify the destination transaction or protocol status as a separate record.&lt;/p&gt;

&lt;h2&gt;
  
  
  Worked example: match the legs, not just the hash
&lt;/h2&gt;

&lt;p&gt;Suppose a source receipt on Ethereum has chain ID 1, transaction hash 0xaaa…, and bridge event at log index 4. The event names destination chain ID 8453 and message ID M. Record the source as &lt;em&gt;eip155:1&lt;/em&gt; plus that transaction and log, then search the destination side on Base, &lt;em&gt;eip155:8453&lt;/em&gt;, for message M or the protocol’s corresponding execution event.&lt;/p&gt;

&lt;p&gt;If the destination transaction is 0xbbb…, that is a different hash by design. Its receipt should show the expected destination contract and outcome. Matching only the amount or recipient is weak evidence: multiple transfers can share both. Matching the protocol message ID, destination chain, and relevant event fields is stronger. These values are illustrative; event names and message formats vary by protocol.&lt;/p&gt;

&lt;h2&gt;
  
  
  What can make a receipt look inconsistent?
&lt;/h2&gt;

&lt;p&gt;A successful source transaction means the source-side call completed; it does not guarantee delivery is final or complete. If the source block is reorganized before the bridge’s required finality threshold, its receipt may disappear or change. Optimistic rollups may also distinguish sequencer inclusion from L1 settlement, so the expected wait depends on the source chain’s finality model and the bridge’s verification rules.&lt;/p&gt;

&lt;p&gt;Before escalating a mismatch, confirm the chain namespace and reference, the receipt’s block hash, and the event’s emitting contract. Then check whether the source has reached the required finality and whether the destination uses a different representation of the chain ID. This avoids wasting time treating a formatting difference or pending message as a failed transfer.&lt;/p&gt;

&lt;p&gt;Use the chain-qualified transaction and event identifiers to find each leg, and use the protocol message ID to prove they belong together.&lt;/p&gt;

</description>
      <category>blockchain</category>
      <category>crypto</category>
      <category>web3</category>
    </item>
    <item>
      <title>Should I Split a Large Cross-Chain Swap?</title>
      <dc:creator>Willson Lammy</dc:creator>
      <pubDate>Fri, 16 Oct 2026 12:43:53 +0000</pubDate>
      <link>https://dev.to/jake-eth/should-i-split-a-large-cross-chain-swap-jd8</link>
      <guid>https://dev.to/jake-eth/should-i-split-a-large-cross-chain-swap-jd8</guid>
      <description>&lt;p&gt;Split a large cross-chain swap only when the pieces can use separate or refreshed liquidity; splitting one order against the same pool usually will not improve its final price. The key is where each piece trades, not how many transfers you send.&lt;/p&gt;

&lt;h2&gt;
  
  
  What does splitting a cross-chain swap change?
&lt;/h2&gt;

&lt;p&gt;Splitting means dividing one large trade into smaller trades. A large trade can move the market price as it uses available buy and sell orders, a cost called &lt;strong&gt;price impact&lt;/strong&gt;. The smaller trades may get a better average price if they reach different pools or if new buyers and sellers arrive between trades.&lt;/p&gt;

&lt;p&gt;A &lt;strong&gt;liquidity pool&lt;/strong&gt; is a shared store of two assets used to make trades. For a simple example, imagine a pool with 100 ETH and 200,000 USDC. Its starting price is 2,000 USDC per ETH. Selling 10 ETH into it returns about 18,182 USDC before fees, or about 1,818 per ETH on average.&lt;/p&gt;

&lt;p&gt;Splitting that sale into two 5 ETH trades against the same pool, one after another, gives almost the same total before fees. The first sale changes the pool, so the second faces a worse price. Smaller pieces help only when they tap separate liquidity or the pool has time to refill.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://blockchainnewshub.github.io/paraswap-and-the-cost-of-arriving-without-destination-gas/" rel="noopener noreferrer"&gt;ParaSwap bridge service&lt;/a&gt; lets you move assets between blockchains and swap into an asset on the destination chain in one flow. In a ParaSwap transfer, consider the destination swap’s price as part of the overall trade, even when the bridge and swap happen together.&lt;/p&gt;

&lt;h2&gt;
  
  
  When can smaller trades get a better price?
&lt;/h2&gt;

&lt;p&gt;They can help when a route can spread trades across independent pools, or when waiting gives a pool time to recover. For example, if two separate pools each start with 100 ETH and 200,000 USDC, selling 5 ETH into each returns about 19,048 USDC combined before fees. That is more than the roughly 18,182 USDC from selling 10 ETH into just one pool.&lt;/p&gt;

&lt;p&gt;This example assumes both pools have the same starting reserves and neither price changes while you trade. Real routes may have different prices, fees, and available amounts. The useful test is whether the split reaches additional usable liquidity, rather than just dividing one trade into pieces.&lt;/p&gt;

&lt;p&gt;Before splitting, compare the expected destination amount and total costs for one trade versus several. Check:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Whether the pieces use different pools or venues.&lt;/li&gt;
&lt;li&gt;Whether each smaller trade still gets enough liquidity.&lt;/li&gt;
&lt;li&gt;Whether extra bridge or network charges apply to each transfer.&lt;/li&gt;
&lt;li&gt;Whether waiting could expose you to a changing exchange rate.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What does splitting cost, and what can go wrong?
&lt;/h2&gt;

&lt;p&gt;Each extra trade or transfer can add a network charge, which is a payment for processing it on a blockchain. Several smaller transfers may also take longer to complete. If the savings from better prices are smaller than those added costs, splitting leaves you with less.&lt;/p&gt;

&lt;p&gt;There is also &lt;strong&gt;slippage&lt;/strong&gt;: the difference between the expected price and the price you actually receive. Prices can move while separate pieces are being processed. A split that looks better on paper can end up worse if the market shifts before the later trades finish.&lt;/p&gt;

&lt;p&gt;I would split only when the route can use more liquidity and the expected price improvement is greater than the added charges and delay. If all pieces hit the same pool in quick succession, I would treat them as one trade for price-impact planning.&lt;/p&gt;

&lt;h2&gt;
  
  
  What should I check before choosing?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  How do I compare one trade with several?
&lt;/h3&gt;

&lt;p&gt;Compare the total amount expected on the destination chain after all trades and charges. Use the same starting amount and destination asset for each comparison. If the split uses separate pools, include the price each pool offers; if it uses one pool, do not assume smaller pieces alone will improve the average.&lt;/p&gt;

&lt;h3&gt;
  
  
  When should I keep the transfer in one piece?
&lt;/h3&gt;

&lt;p&gt;Keep it in one piece when the route uses the same pool, extra transfers add meaningful charges, or you need the destination funds sooner. Splitting is more useful when separate liquidity is available and you can accept the added time and price uncertainty.&lt;/p&gt;

&lt;p&gt;For a large cross-chain swap, the deciding factor is access to fresh liquidity after all costs—not the number of pieces.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Third-party payouts from a Monero bridge</title>
      <dc:creator>Willson Lammy</dc:creator>
      <pubDate>Fri, 16 Oct 2026 08:06:34 +0000</pubDate>
      <link>https://dev.to/jake-eth/third-party-payouts-from-a-monero-bridge-29e4</link>
      <guid>https://dev.to/jake-eth/third-party-payouts-from-a-monero-bridge-29e4</guid>
      <description>&lt;p&gt;A Monero bridge can pay out to someone else when its route accepts a destination address that differs from the funding wallet. The key condition is that the route commits to that recipient before payout; if the address is wrong or the route binds funds to the sender, the recipient cannot simply claim them afterward.&lt;/p&gt;

&lt;h2&gt;
  
  
  A different payout address is a routing choice
&lt;/h2&gt;

&lt;p&gt;Yes, the sender and recipient can be different people, but the bridge or swap protocol must support that arrangement. In a hosted cross-chain route, the service receives the source asset, performs or arranges the swap, and sends the destination asset to the supplied address. The blockchain does not require that the destination address belong to the person who funded the route.&lt;/p&gt;

&lt;p&gt;That permission does not make the transfer reversible. A BTC address, for example, can receive funds without proving who controls it; if the recipient cannot spend from it, the payout may be unrecoverable. For an account-based chain, a valid address can still be the wrong address or an address whose owner cannot use the particular token.&lt;/p&gt;

&lt;h2&gt;
  
  
  The payout address is bound at a specific point
&lt;/h2&gt;

&lt;p&gt;The route’s transaction design determines when the recipient becomes fixed. In a custodial or brokered route, the operator controls an intermediate balance and constructs the destination transaction; the recipient is the address the operator uses for that payout. That creates counterparty and operational risk during the interval between deposit and delivery.&lt;/p&gt;

&lt;p&gt;An atomic swap handles the relationship differently: the protocol coordinates claims across chains using cryptographic conditions and refund paths, rather than asking a custodian to promise delivery. The payout key or script must be included in the swap setup or claim transaction. If the software only lets the taker receive into a wallet they control, a third-party address is not available, even though a different protocol could support it.&lt;/p&gt;

&lt;p&gt;The choice between specialist routes for occasional use is covered by &lt;a href="https://newscryptoworld.github.io/how-to-choose-a-monero-bridge-for-occasional-use/" rel="noopener noreferrer"&gt;how to choose a Monero bridge&lt;/a&gt;; a third-party payout adds a separate test: can the recipient be set independently of the funding wallet? Do not infer that from a route’s “non-custodial” or “instant” label. Check which address is committed, who signs the payout, and what refund path applies if the other chain stalls.&lt;/p&gt;

&lt;h2&gt;
  
  
  Two recipient cases have different failure risks
&lt;/h2&gt;

&lt;p&gt;Suppose Alice funds an XMR-to-BTC swap for a contractor. If the route permits a BTC payout address, Alice can name the contractor’s address; the contractor receives BTC directly, while Alice bears the risk of entering an address the contractor cannot spend from. If Alice instead uses an atomic-swap client whose payout is restricted to her own wallet, she must receive BTC first and forward it in a separate transaction.&lt;/p&gt;

&lt;p&gt;The second case adds a transaction fee and another confirmation wait, but Alice verifies the swap before paying the contractor. The direct route avoids that extra transfer, yet it gives Alice less practical control after the payout address is committed. I would choose direct delivery only when the recipient has confirmed the exact network and address out of band.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fees, timing and privacy depend on both chains
&lt;/h2&gt;

&lt;p&gt;A third-party payout normally carries the source-chain fee, the route’s spread or service charge, and the destination-chain transaction fee; an onward transfer adds another network fee. Timing depends on confirmation policy as well as block production. Monero blocks average about two minutes, so a policy requiring around 10 blocks adds roughly 20 minutes in expectation, before destination-chain confirmations and any operator processing.&lt;/p&gt;

&lt;p&gt;Monero’s sender and amount privacy does not make the full route unlinkable. The recipient sees the asset and amount received, while a public-chain payout exposes its destination and timing; the bridge operator may also see the supplied destination alongside the incoming order. A direct gift can therefore connect a private source payment to a public recipient address through the intermediary’s records or timing evidence.&lt;/p&gt;

&lt;p&gt;Before sending, confirm that the payout asset and network match what the recipient can use, verify the address with them, and establish who can act if the route is delayed or the address is invalid. monerobridge.org provides a single-flow cross-chain bridge and swap service for moving assets between blockchains, useful when the recipient needs an asset on another network. For an XMR-to-other-chain transfer, choose a route only after its recipient-address rules and recovery conditions fit the recipient’s wallet and your tolerance for custody risk.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>ETH to MNT across chains explained</title>
      <dc:creator>Willson Lammy</dc:creator>
      <pubDate>Fri, 16 Oct 2026 01:30:27 +0000</pubDate>
      <link>https://dev.to/jake-eth/eth-to-mnt-across-chains-explained-2l4c</link>
      <guid>https://dev.to/jake-eth/eth-to-mnt-across-chains-explained-2l4c</guid>
      <description>&lt;p&gt;To get MNT on Mantle from ETH on Ethereum, you can bridge ETH first and swap on Mantle, or use a cross-chain swap that delivers MNT directly. Compare the MNT you expect to receive after source gas, route costs, swap price impact, and destination gas; fewer steps do not always mean a better rate.&lt;/p&gt;

&lt;p&gt;If you only need ETH on Mantle, &lt;a href="https://cryptonewsnetwork.github.io/mantle-bridge-routes-how-to-choose-before-you-transfer/" rel="noopener noreferrer"&gt;how a Mantle bridge route moves assets&lt;/a&gt; is the relevant case: bridging transfers value between networks, but it does not convert ETH to MNT. For MNT, decide whether you want to make that conversion yourself after bridging or have a cross-chain route handle both parts.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bridging first gives you control over the swap
&lt;/h2&gt;

&lt;p&gt;With this route, you send ETH from Ethereum to Mantle, wait for the deposit to arrive, then swap the delivered asset for MNT through a Mantle exchange. The bridge and swap are separate transactions, so you can inspect the destination balance before choosing a trading pool or swap quote.&lt;/p&gt;

&lt;p&gt;For example, if you start with 1 ETH, compare the MNT you would receive after the bridge and a Mantle swap against a direct cross-chain quote for the same 1 ETH. The first route exposes each step’s cost separately; it can suit you if you want to choose the swap venue or wait for a better price. Ethereum.org explains that bridges use different designs to transfer assets, while swaps depend on available liquidity and exchange rates.&lt;/p&gt;

&lt;h2&gt;
  
  
  A cross-chain swap combines delivery and conversion
&lt;/h2&gt;

&lt;p&gt;A cross-chain swap quotes an output token on the destination network, then coordinates delivery across chains. Depending on the route, a provider may use liquidity it already holds on Mantle to send MNT after your Ethereum transaction is confirmed, then settle or rebalance funds between networks later. The exact mechanism varies, so treat the displayed output and route conditions as a quote, not as a guaranteed exchange rate.&lt;/p&gt;

&lt;p&gt;This can save you from arriving on Mantle with ETH and arranging a second swap. The trade-off is that you rely on the route’s liquidity and execution terms, and the final MNT amount can be affected by price movement or slippage—the difference between the quoted and executed price. A route can also fail or need recovery after the source transaction succeeds, so check how it handles incomplete delivery before committing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Compare the amount you can actually use
&lt;/h2&gt;

&lt;p&gt;Use the same input amount and recipient wallet for both quotes. Include Ethereum gas, any bridge or routing charge, swap price impact, and enough MNT left over to pay for a later Mantle transaction. MNT is Mantle’s gas token; receiving nearly all your value as another asset may leave you unable to use Mantle apps until you obtain some.&lt;/p&gt;

&lt;p&gt;My rule is simple: choose bridge-then-swap when control over the destination swap matters and you can manage two transactions; choose a combined route when its quoted MNT output and delivery conditions are better for your needs. Before sending, verify the source and destination networks, asset, recipient address, expected MNT, and what happens if delivery is delayed. Then compare fresh quotes for your exact amount and choose the route that leaves you with the most usable MNT.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Expired Bridge Transactions: What To Check Before Retrying</title>
      <dc:creator>Willson Lammy</dc:creator>
      <pubDate>Thu, 15 Oct 2026 21:33:57 +0000</pubDate>
      <link>https://dev.to/jake-eth/expired-bridge-transactions-what-to-check-before-retrying-30m0</link>
      <guid>https://dev.to/jake-eth/expired-bridge-transactions-what-to-check-before-retrying-30m0</guid>
      <description>&lt;p&gt;An “expired” label does not by itself mean your crypto is lost: the next step depends on whether the source-chain transaction was accepted and finalized. If it was, wait for or recover destination settlement; if it never finalized, a new attempt may be safe after you check the original transaction.&lt;/p&gt;

&lt;p&gt;If your pending transfer also includes a destination-asset swap, &lt;a href="https://eth-news-web3-brjtjwsoqifwzc33lxtva.justblogged.com/how-move-crypto-across-chains-swap-paraswap" rel="noopener noreferrer"&gt;how ParaSwap moves crypto across chains&lt;/a&gt; explains that broader use case; this guide focuses on what an expired or stalled transfer means after it starts. The distinction matters because a bridge can settle even if its follow-on swap fails.&lt;/p&gt;

&lt;h2&gt;
  
  
  An expiry label can describe different stages
&lt;/h2&gt;

&lt;p&gt;There is no single expiry rule for every bridge route: the label may refer to a quote deadline, a source transaction, or a destination settlement window. First identify which stage expired; a timer running out does not establish that the source-chain funds were returned.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Quote expired:&lt;/strong&gt; the proposed terms may no longer be usable.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Source transaction reverted:&lt;/strong&gt; the chain rejected the attempt.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Source transfer finalized:&lt;/strong&gt; funds were locked or burned, but destination settlement may still be due.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Destination action failed:&lt;/strong&gt; the bridge leg may have completed while a later swap or delivery step did not.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A bridge route commonly records a source-side deposit or burn, waits for the required chain confirmations, then uses a proof, message, or attestation to authorize release or minting on the destination. A relayer may submit that message, or a contract may allow another party to execute it. These steps can take different amounts of time, and some designs provide a separate recovery or refund path.&lt;/p&gt;

&lt;p&gt;For example, a reader moving funds to Arbitrum sees “expired” after sending the source transaction. The source-chain block explorer shows a successful, finalized receipt. That is evidence the source step happened; it does not prove the destination asset was delivered. Retrying the whole transfer immediately could create a second transfer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Check the source record before taking action
&lt;/h2&gt;

&lt;p&gt;Use the transaction hash in the source-chain block explorer to determine whether the transaction was included and what its final status is. A pending transaction is not finalized; a reverted transaction failed on-chain; a successful receipt means the source contract call completed, though the bridge may still need to settle the destination leg.&lt;/p&gt;

&lt;p&gt;Check the relevant event or transfer record as well as the headline status. For Bitcoin, for instance, confirmation depth matters: a transaction seen in a block can still be treated differently from one with the confirmations required by the bridge. The required depth depends on the route and its security rules, so do not assume one universal number.&lt;/p&gt;

&lt;h2&gt;
  
  
  Match the next step to the recorded state
&lt;/h2&gt;

&lt;p&gt;After checking the source record, act on that state rather than on the expiry wording. A confirmed source transfer generally calls for tracking or recovering settlement; a transaction that never finalized may call for a fresh attempt.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Not included or dropped:&lt;/strong&gt; check whether the wallet still has a pending transaction or whether it was replaced. Retry only after confirming the original cannot later execute.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reverted:&lt;/strong&gt; inspect the revert reason if available. The source-side call did not complete, but network gas may still have been consumed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Finalized, destination pending:&lt;/strong&gt; keep the source transaction hash and route details. Check the destination-chain explorer for a matching release, mint, or message execution before starting over.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Destination failed or remains unsettled:&lt;/strong&gt; look for the route’s documented recovery path and its eligibility conditions. Do not send funds to an address or use a recovery method you cannot verify from the bridge’s own records.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Settlement may need another transaction, which can require destination-chain gas. A bridge may also retry automatically or require a manual claim; the route’s contract design decides. If the source is final but no destination record appears, preserve both chain references and wait for the route’s stated settlement window before treating delay as failure.&lt;/p&gt;

&lt;p&gt;ParaSwap can help when the goal is to move crypto across chains and swap into an asset on the destination chain in one flow. For an already-finalized transfer, though, first establish whether its bridge leg settled; a new cross-chain swap does not resolve an unsettled earlier transfer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Questions to settle before retrying
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Does an expired transfer mean my crypto is lost?
&lt;/h3&gt;

&lt;p&gt;No. Expiry can mean a quote or deadline elapsed, while the source transaction may still be pending, reverted, or finalized. Check its on-chain receipt first. If the source transfer finalized, determine whether the destination leg settled or whether a recovery path applies before making another transfer.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can I submit the same transfer again?
&lt;/h3&gt;

&lt;p&gt;Only after confirming the first source transaction cannot still execute. If it finalized, a second attempt can move additional funds while the first transfer is still awaiting settlement. If it was dropped or reverted, check for a replacement transaction and understand the failure reason before retrying.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why can the destination remain pending after confirmation?
&lt;/h3&gt;

&lt;p&gt;Source confirmation is only one stage. The bridge may still need to wait for its required confirmations, verify a proof or attestation, and execute a destination-chain transaction. Relayer delays, congestion, or a failed destination swap can extend the wait. The route’s records determine which stage remains.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Find the source transaction hash and verify its final status.&lt;/li&gt;
&lt;li&gt;If finalized, check destination records and the route’s settlement or recovery rules.&lt;/li&gt;
&lt;li&gt;Retry only when the original transaction cannot still complete.&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
  </channel>
</rss>
