<?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: Milton Altenwerth</title>
    <description>The latest articles on DEV Community by Milton Altenwerth (@milton_altenwert).</description>
    <link>https://dev.to/milton_altenwert</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%2F4098909%2Fabfbb8eb-9088-45f4-9f7f-1aa07e2b5f2c.png</url>
      <title>DEV Community: Milton Altenwerth</title>
      <link>https://dev.to/milton_altenwert</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/milton_altenwert"/>
    <language>en</language>
    <item>
      <title>Match token units to the destination chain</title>
      <dc:creator>Milton Altenwerth</dc:creator>
      <pubDate>Sat, 17 Oct 2026 10:29:13 +0000</pubDate>
      <link>https://dev.to/milton_altenwert/match-token-units-to-the-destination-chain-44hp</link>
      <guid>https://dev.to/milton_altenwert/match-token-units-to-the-destination-chain-44hp</guid>
      <description>&lt;p&gt;To receive the asset you need, match both the token and its units to the destination chain. A balance can look different because tokens use different decimal places, or because the destination holds a different token altogether. These are separate problems, and the fix depends on which one caused the delay.&lt;/p&gt;

&lt;h2&gt;
  
  
  Check what the destination chain accepts
&lt;/h2&gt;

&lt;p&gt;First, check the destination network and the exact token you expected to receive. A token’s name and ticker, such as USDC, do not prove it is the same asset: a chain may have several tokens with that name. The token address on Ethereum, or the mint address on Solana, identifies the specific token.&lt;/p&gt;

&lt;p&gt;Decimal places set how a token’s smallest units appear as a human-readable balance. For example, one USDC with six decimals is stored as 1,000,000 smallest units; one ETH with 18 decimals is 1,000,000,000,000,000,000 wei. If acrossbridge is part of your recovery, an &lt;a href="https://kaitlynadlz621296.acidblog.net/74767814/how-long-does-acrossbridge-take-for-treasury-transfers" rel="noopener noreferrer"&gt;acrossbridge bridge&lt;/a&gt; can move and swap assets between chains in one flow, so you can target the asset the destination chain uses. Check the intended destination token before starting another transfer.&lt;/p&gt;

&lt;p&gt;Decimals do not change a token’s value or identity. A token with six decimals is not worth less than one with 18. A swap changes one asset into another at an exchange rate; a bridge may carry an asset to another chain in a corresponding form. The destination token’s identity and available route decide what arrives.&lt;/p&gt;

&lt;h2&gt;
  
  
  Read the pending or failed status before retrying
&lt;/h2&gt;

&lt;p&gt;A pending source transaction has not finished sending funds, so a destination balance may not appear yet. Open the source transaction in that chain’s explorer, a public record of transactions, and check whether it is still pending, confirmed, or failed. A confirmed source transaction means the send happened, but the receiving step can still be processing.&lt;/p&gt;

&lt;p&gt;If the source transaction failed, check the wallet and transaction record before retrying. Confirm whether the original tokens remain in your wallet or were returned; avoid sending again while the outcome is unclear. If the source shows confirmed but the destination has no balance, verify the destination network and token address or mint first. Also check whether your wallet can display that token; a missing display does not always mean the tokens failed to arrive.&lt;/p&gt;

&lt;h2&gt;
  
  
  Choose the right correction for the mismatch
&lt;/h2&gt;

&lt;p&gt;Use the example of sending 1.25 units of a token with 18 decimals and expecting a destination token with six. The raw source amount is 1,250,000,000,000,000,000 smallest units. If the destination asset is the same token represented with six decimals, a correct transfer still displays 1.25 tokens; the software handles the unit conversion. Do not manually alter a raw amount unless the transaction details specifically require it.&lt;/p&gt;

&lt;p&gt;If you received the wrong token, or need a different destination asset, decimals alone cannot fix it. You need a swap into the token the destination accepts. For example, a route from ETH to USDC converts assets, and the USDC amount depends on the exchange rate and fees at execution. Acrossbridge may suit this task when you need a cross-chain move and a swap in one flow; check the destination asset before authorising a fresh transaction.&lt;/p&gt;

&lt;p&gt;My decision rule is simple: confirm the source outcome, identify the destination token, then retry only if the original funds are accounted for and the new route matches both.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Why should you wait before swapping Monero mining payouts?</title>
      <dc:creator>Milton Altenwerth</dc:creator>
      <pubDate>Fri, 16 Oct 2026 23:57:08 +0000</pubDate>
      <link>https://dev.to/milton_altenwert/why-should-you-wait-before-swapping-monero-mining-payouts-537a</link>
      <guid>https://dev.to/milton_altenwert/why-should-you-wait-before-swapping-monero-mining-payouts-537a</guid>
      <description>&lt;p&gt;Wait until your mining payout is spendable before sending it through a Monero bridge. Pool payouts often need 10 Monero blocks to mature; solo-mined block rewards need 60, or about two hours at Monero’s usual block pace. Then check how much remains after fees and what asset you expect to receive.&lt;/p&gt;

&lt;h2&gt;
  
  
  When can you spend a mining payout?
&lt;/h2&gt;

&lt;p&gt;A pool payout is a regular transaction from the pool’s wallet, while a solo-mined reward comes from a newly mined block. Pool payouts commonly become spendable after 10 confirmations; solo-mined rewards unlock after 60 blocks. A confirmation means another block has been added after the payment.&lt;/p&gt;

&lt;p&gt;At Monero’s roughly two-minute block time, those waits are about 20 minutes and two hours. Actual timing varies with block production. Your wallet may show the funds before they are spendable, so check its unlocked balance before starting a swap.&lt;/p&gt;

&lt;p&gt;Pool payout thresholds matter too. If your balance is below the pool’s minimum payout, it may stay in the pool until the threshold is met. Check the pool’s payout rules if the expected payment has not arrived.&lt;/p&gt;

&lt;h2&gt;
  
  
  How much of the payout will reach the other chain?
&lt;/h2&gt;

&lt;p&gt;Estimate the amount using the payout that is actually unlocked, then subtract the Monero transaction fee and the route’s quoted costs. For example, if 0.50 XMR is unlocked, the wallet estimates a 0.0001 XMR network fee, and the route quotes 0.48 XMR worth of destination coins, compare that quote with your target before sending. The figures are illustrative; network fees and swap quotes change.&lt;/p&gt;

&lt;p&gt;If your payout is spendable and you want value on Bitcoin or another chain, a &lt;a href="https://aboutdefi.github.io/a-monero-bridge-swap-starts-with-checking-the-route/" rel="noopener noreferrer"&gt;Monero bridge transfer&lt;/a&gt; is the cross-chain leg: XMR leaves Monero and another asset arrives on the destination chain. A bridge and swap service can handle that move in one flow; the quoted receive amount and expected wait are the practical comparison points.&lt;/p&gt;

&lt;p&gt;Small payouts can be poor candidates for a swap because fixed network costs take a larger share. If the quote leaves too little value after costs, waiting for another payout may make more sense.&lt;/p&gt;

&lt;h2&gt;
  
  
  What should you check before sending mined XMR?
&lt;/h2&gt;

&lt;p&gt;Mining connects your pool account or mining activity to the payout address. When XMR is swapped for an asset on a more transparent chain, later transactions may reveal more about that asset’s movement. Monero’s privacy does not carry over automatically.&lt;/p&gt;

&lt;p&gt;Before sending, check these three details:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The wallet shows the payout as unlocked and spendable.&lt;/li&gt;
&lt;li&gt;The receive amount covers your target after all quoted costs.&lt;/li&gt;
&lt;li&gt;The destination network and asset match where you need the funds.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For an occasional payout, I would first wait for unlock, then compare the quote with the amount you need to receive. If it fits, send only after checking the destination details; otherwise, let the next pool payout build the amount.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Estimate Cross-Chain Transfer Costs in 2026</title>
      <dc:creator>Milton Altenwerth</dc:creator>
      <pubDate>Fri, 16 Oct 2026 16:25:51 +0000</pubDate>
      <link>https://dev.to/milton_altenwert/estimate-cross-chain-transfer-costs-in-2026-297d</link>
      <guid>https://dev.to/milton_altenwert/estimate-cross-chain-transfer-costs-in-2026-297d</guid>
      <description>&lt;p&gt;If you move assets across chains only a few times a year, estimate the total cost in one common currency and compare it with the value expected on the destination chain; what arrives is the decisive figure. Count source and destination network fees, bridge charges, and any loss from swapping at a worse price. These amounts vary by route and market conditions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Which costs belong in the estimate?
&lt;/h2&gt;

&lt;p&gt;The all-in cost is the value you send minus the value you expect to receive, measured at the same time and in the same currency. That captures costs that may appear under different names or be deducted from the amount delivered.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Source-chain gas:&lt;/strong&gt; The network fee for approving a token, if needed, and starting the transfer. Gas is paid in the chain’s native asset; Ethereum.org’s explanation of gas covers how computation and network demand affect it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bridge or relayer charge:&lt;/strong&gt; A route may charge for moving the asset or processing the transfer. It may be a separate fee or already reflected in the quoted amount.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Swap cost:&lt;/strong&gt; If the destination asset differs from the source asset, the exchange rate and price impact affect how much arrives. Price impact is the change in price caused by the size of your trade relative to available liquidity.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Destination-chain gas:&lt;/strong&gt; You may need native tokens to use or move the received asset. Some routes account for this in the delivery amount; others may require you to hold gas separately.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Include an approval transaction only if your wallet needs one. It is a separate on-chain action with its own gas cost, and a failed transaction can still consume gas even if the transfer does not complete.&lt;/p&gt;

&lt;h2&gt;
  
  
  How does a cross-chain transfer affect the final amount?
&lt;/h2&gt;

&lt;p&gt;A cross-chain route coordinates activity on two networks: the source asset is sent or locked, the transfer is verified, and an asset is released or created on the destination chain. The exact mechanism depends on the bridge. If the destination asset differs, a swap is also needed, so the amount delivered depends on both the bridge route and available trading liquidity.&lt;/p&gt;

&lt;p&gt;Compare the estimated destination amount with the amount you would expect at a reference market price at that moment. The difference can include fees and price impact, but prices may move while a transfer is pending, so it is an estimate rather than a guaranteed saving. A bridge can also quote a route that delivers a different token than the one you intended.&lt;/p&gt;

&lt;p&gt;This is why I check the asset and expected amount on the destination chain before choosing a route. &lt;a href="https://telegra.ph/4-ParaSwap-Routes-for-Moving-and-Swapping-Crypto-10-14" rel="noopener noreferrer"&gt;ParaSwap cross-chain swaps&lt;/a&gt; can move and swap crypto across chains in one flow, making it relevant when the goal is to arrive with a different asset than the one sent. The useful comparison is still the expected destination value after all route costs.&lt;/p&gt;

&lt;h2&gt;
  
  
  How can you tell whether a route is worth its cost?
&lt;/h2&gt;

&lt;p&gt;Convert every cost and the expected receipt into the same currency, then calculate the effective cost as a share of the amount sent. For example, on a $500 transfer, say source gas is $2, bridge charges are $3, destination gas is $1, and price impact is $2. The total is $8, or 1.6%; the estimated destination value is $492.&lt;/p&gt;

&lt;p&gt;Those figures are illustrative, not typical fees. The actual result depends on network demand, the source and destination assets, route liquidity, and whether a route bundles destination gas into its quote. For example, a small transfer can be poor value if fixed network fees take a large share, while a larger swap can have greater price impact if liquidity is thin. ParaSwap is useful to consider when the task requires both a cross-chain move and a destination-asset swap; compare its expected delivery with other available routes on the same basis.&lt;/p&gt;

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

&lt;p&gt;Before confirming, verify that the destination chain and token are the ones you need, and that your estimate includes every cost charged separately. Keep a little destination-chain native currency available if you may need to transact with the received asset; a successful bridge does not necessarily leave you with gas for the next action.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Check whether the displayed amount is before or after bridge charges and any destination gas deduction.&lt;/li&gt;
&lt;li&gt;Check whether the swap quote can change before execution, especially when the market is moving.&lt;/li&gt;
&lt;li&gt;Check that the expected received amount still makes sense after converting it to the same reference currency as your source amount.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For an occasional transfer, a careful comparison of the value sent and the value expected to arrive is the simplest reliable way to judge total cost.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>4 factors that change your cross-chain swap amount</title>
      <dc:creator>Milton Altenwerth</dc:creator>
      <pubDate>Fri, 16 Oct 2026 10:37:20 +0000</pubDate>
      <link>https://dev.to/milton_altenwert/4-factors-that-change-your-cross-chain-swap-amount-1lcn</link>
      <guid>https://dev.to/milton_altenwert/4-factors-that-change-your-cross-chain-swap-amount-1lcn</guid>
      <description>&lt;p&gt;If you want to estimate what will arrive after a cross-chain swap, check four things: the exchange rate, price impact, route and network charges, and slippage before execution. The displayed amount is an estimate for a particular route and moment; the amount you receive depends on those conditions holding when the swap completes.&lt;/p&gt;

&lt;h2&gt;
  
  
  What four things change the amount you receive?
&lt;/h2&gt;

&lt;p&gt;The destination amount is what remains after the route converts your source asset, moves value between chains, and pays any charges that apply. A &lt;a href="https://chainbrief.org/how-a-relay-bridge-handles-cross-chain-swaps/" rel="noopener noreferrer"&gt;relay bridge&lt;/a&gt; can combine the transfer and swap in one route, so you can assess the estimated output for the whole task instead of pricing those parts separately.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Exchange rate:&lt;/strong&gt; The route trades one asset for another at the available market price. The rate can change while the transaction is being prepared or processed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Price impact:&lt;/strong&gt; A large trade can move the price in the pool used for the swap. Thin liquidity means even a modest trade may get a worse rate than expected.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Route and network charges:&lt;/strong&gt; A route may involve a swap on one or both chains, plus cross-chain delivery costs. The source-chain transaction usually needs gas, and the destination transaction may also have an execution cost.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Slippage:&lt;/strong&gt; This is the difference between the quoted output and the output when the swap executes. A slippage limit sets how much worse the result can be before the swap fails, if the route supports that protection.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These factors interact. For example, a route with a better quoted exchange rate can still leave you with less if its charges are higher or its liquidity is shallow.&lt;/p&gt;

&lt;h2&gt;
  
  
  How can you compare the quote with the amount you send?
&lt;/h2&gt;

&lt;p&gt;Compare the estimated destination amount with the amount you expect to spend, then check which costs are already included. Quotes may show network costs separately from the swapped amount, so confirm whether you need to provide gas tokens on the source chain, destination chain, or both.&lt;/p&gt;

&lt;p&gt;For example, say you swap 0.1 ETH and the route quotes 250 units of a token on the destination chain. If the quote includes a 2-token route charge, the estimated payout may be 248 tokens; if that charge is shown separately, the payout estimate may still read 250 while your total cost is higher. These figures are illustrative: the quote’s breakdown determines how to read it.&lt;/p&gt;

&lt;p&gt;In a combined route, the source-chain transaction is submitted first. After it is confirmed, the bridge process carries the value or transfer message to the destination, where the swap or payout is completed. That delay matters: the destination market can move before execution, and the final output can differ within the route’s slippage limit.&lt;/p&gt;

&lt;p&gt;Check that the destination token is the asset you intend to receive, and that its chain matches where you plan to use it. The same token name can refer to different assets or versions across networks.&lt;/p&gt;

&lt;h2&gt;
  
  
  When should you wait or choose another route?
&lt;/h2&gt;

&lt;p&gt;Wait and refresh the quote if the estimated output has changed sharply, the route’s slippage allowance looks too wide for your trade, or the costs leave too little value to justify the swap. A relay bridge can make a cross-chain swap a single routed task, but the quote still depends on the market and networks involved.&lt;/p&gt;

&lt;p&gt;For a small trade, fixed network costs can take a larger share of the value; for a large trade, limited liquidity can worsen the rate. Choose differently when either condition changes the result you are willing to accept, and keep enough of the relevant gas token available for the chain where your transaction must execute.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>What Is Cross-Chain Slippage and How Does It Work?</title>
      <dc:creator>Milton Altenwerth</dc:creator>
      <pubDate>Fri, 16 Oct 2026 05:42:38 +0000</pubDate>
      <link>https://dev.to/milton_altenwert/what-is-cross-chain-slippage-and-how-does-it-work-47am</link>
      <guid>https://dev.to/milton_altenwert/what-is-cross-chain-slippage-and-how-does-it-work-47am</guid>
      <description>&lt;p&gt;Cross-chain slippage is the difference between a route’s quoted output and what you receive after moving or swapping assets between networks. The key condition is whether the quote shows an estimated amount or a minimum amount the route commits to deliver. Say Maya wants to move 500 USDC from Ethereum and receive ETH on a layer 2 network. She cares about the ETH that arrives after fees, not just the headline rate.&lt;/p&gt;

&lt;p&gt;For repeat swaps, three points matter most:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bridge fees and swap price changes affect the amount you receive in different ways.&lt;/li&gt;
&lt;li&gt;A slippage setting is a limit on an eligible swap, not a fee or a promise of better pricing.&lt;/li&gt;
&lt;li&gt;Compare the destination minimum and the full cost before sending funds.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why can the destination amount change?
&lt;/h2&gt;

&lt;p&gt;A cross-chain route may include a bridge transfer, a swap on the source network, a swap on the destination network, or a combination. Each swap uses available trading liquidity, meaning the tokens ready to trade at current prices. A large trade can move the price as it fills.&lt;/p&gt;

&lt;p&gt;Maya’s route might quote 0.20 ETH after fees, while a fast market move leaves only 0.198 ETH available. The change during execution is slippage; the route’s bridge fee and network transaction fees are separate costs. A service such as &lt;a href="https://staking-primer.gitbook.io/staking-primer-docs/acrossbridge-5-steps-to-move-or-swap-across-chains" rel="noopener noreferrer"&gt;acrossbridge&lt;/a&gt; can handle the cross-network move and swap in one flow, while a bridge that only transfers the same asset leaves the destination swap to Maya.&lt;/p&gt;

&lt;p&gt;“Price impact” is the price change caused by Maya’s own trade size. Slippage is the difference between the expected and executed result, which can also reflect price movement while the transaction is pending. A quote can include estimated fees, but check whether its displayed output is before or after them.&lt;/p&gt;

&lt;h2&gt;
  
  
  How should you compare two route quotes?
&lt;/h2&gt;

&lt;p&gt;Compare routes using the same input amount, destination network, and output token. Then look for the minimum output: the least amount the route says you may receive if it completes under its stated conditions. An estimate alone is not that floor.&lt;/p&gt;

&lt;p&gt;For example, if Maya sees an expected 0.20 ETH and a minimum of 0.198 ETH, the gap is 1% of the expected amount. That gap is the route’s protection allowance for the swap; it is not an extra charge. The setting can vary by service and route, so check the quoted minimum instead of assuming a standard percentage.&lt;/p&gt;

&lt;p&gt;The deciding test is whether that minimum still makes the trade worthwhile. If Maya needs at least 0.199 ETH to cover a planned purchase, a 0.198 ETH floor is too low even if the estimate looks good. If a route does not clearly state its destination minimum or what happens when execution falls short, treat its estimate cautiously.&lt;/p&gt;

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

&lt;p&gt;Maya can make a quick check without pricing every route by hand. For a routine swap, she should repeat the same checks each time:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Confirm the source network, destination network, input token, and output token.&lt;/li&gt;
&lt;li&gt;Enter the intended amount, then read the estimated output and destination minimum.&lt;/li&gt;
&lt;li&gt;Check which fees are included and note any separate network transaction costs.&lt;/li&gt;
&lt;li&gt;Compare the minimum with the amount she actually needs to receive.&lt;/li&gt;
&lt;li&gt;Refresh the quote if prices move or she changes the amount before confirming.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Changing the amount can change price impact, so a quote for 100 USDC may not predict the result for 1,000 USDC. When Maya wants a single cross-network flow, acrossbridge is useful for moving and swapping assets between chains; she should still judge it by the destination amount and costs shown for her trade.&lt;/p&gt;

&lt;p&gt;For the next swap, Maya should set her required minimum first, then choose a route whose quoted floor meets it. That keeps the decision tied to the amount she needs, rather than a price that may shift before execution.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How to Speed Up a Solana Bridge-and-Swap</title>
      <dc:creator>Milton Altenwerth</dc:creator>
      <pubDate>Fri, 16 Oct 2026 00:28:04 +0000</pubDate>
      <link>https://dev.to/milton_altenwert/how-to-speed-up-a-solana-bridge-and-swap-1k10</link>
      <guid>https://dev.to/milton_altenwert/how-to-speed-up-a-solana-bridge-and-swap-1k10</guid>
      <description>&lt;p&gt;Check the slowest leg, then act only when its status is clear. A cross-chain swap depends on separate networks, so one quick confirmation cannot finish the whole trip. Knowing which step is waiting helps you save time without paying twice.&lt;/p&gt;

&lt;h2&gt;
  
  
  A cross-chain swap has separate timing stages
&lt;/h2&gt;

&lt;p&gt;Your source chain first records the send. A bridge route then verifies that send and arranges delivery on Solana, where a final swap may run. Each stage can wait on network traffic, security checks, or available liquidity.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://graph.org/ParaSwap-How-to-Bridge-and-Swap-Crypto-in-One-Flow-10-14" rel="noopener noreferrer"&gt;ParaSwap Solana swap&lt;/a&gt; can combine the move and destination swap into one cross-chain flow, so you manage fewer separate actions. That can save attention and handoffs, but it cannot make every network confirm at once.&lt;/p&gt;

&lt;p&gt;Think of a route as a chain of dependencies. The destination swap cannot use funds that have not arrived, and the bridge cannot act on a source transaction it has not accepted. The full trip takes as long as its slowest required stage.&lt;/p&gt;

&lt;h2&gt;
  
  
  Find the stage that is actually holding up the route
&lt;/h2&gt;

&lt;p&gt;For a worked example, say you send USDC from Ethereum and want SOL on Solana. First check the source transaction on the Ethereum block explorer: is it pending, confirmed, or failed? If it is still pending, the delay is before the bridge can deliver anything.&lt;/p&gt;

&lt;p&gt;Once the source send is confirmed, check the route’s status or transaction record for the destination leg. Solana Explorer can show whether a Solana transaction succeeded or failed. Solana’s documentation explains that a transaction’s instructions succeed or revert together, but this does not make the Ethereum send and Solana swap one reversible transaction.&lt;/p&gt;

&lt;p&gt;That distinction matters when the source send succeeded but the destination action is waiting. Starting the whole route again could send another amount. Check the original route’s status first, and follow its recovery path if the destination leg reports a failure.&lt;/p&gt;

&lt;h2&gt;
  
  
  Speed depends on security, liquidity, and network load
&lt;/h2&gt;

&lt;p&gt;A route that waits for stronger confirmation may take longer than one that accepts an earlier signal. That wait gives the bridge more confidence that the source transaction will remain part of the chain. Faster handling trades some waiting time for a different security assumption.&lt;/p&gt;

&lt;p&gt;Liquidity matters at the destination too. A large swap against a shallow pool can move the price, while splitting it across routes may add extra work. For repeat trades, compare the expected amount received and the full estimated time, not just the first confirmation.&lt;/p&gt;

&lt;p&gt;Costs also come from more than one place: the source network fee, any bridge or route charge, the swap’s price impact, and the Solana transaction fee. These vary with network demand and trade size. Solana’s public documentation describes its transaction fees, while Solana Explorer lets you inspect the fee recorded for a completed transaction.&lt;/p&gt;

&lt;h2&gt;
  
  
  Retry only when the original route is resolved
&lt;/h2&gt;

&lt;p&gt;If the source transaction failed, check that failure before preparing a new send. If it succeeded but the destination leg is pending, wait for that leg or use the route’s stated recovery process. A slow status is not proof that the funds are lost or that a second send is needed.&lt;/p&gt;

&lt;p&gt;For Solana, a transaction can also fail after it was prepared if its recent blockhash expires; a blockhash is a short-lived value that helps the network reject stale transactions. Solana’s documentation says a blockhash is valid for 150 slots. In that case, the destination transaction may need to be rebuilt, but that is different from resending the original source funds.&lt;/p&gt;

&lt;p&gt;ParaSwap is useful when you want the bridge and destination swap handled as one flow, especially on a route you use often. I would still check the source confirmation and destination result before repeating any send.&lt;/p&gt;

&lt;p&gt;Choose the fastest route whose confirmation and price trade-offs you accept, and retry only after the original route’s status is settled.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How to check a pending cross-chain swap</title>
      <dc:creator>Milton Altenwerth</dc:creator>
      <pubDate>Thu, 15 Oct 2026 19:36:42 +0000</pubDate>
      <link>https://dev.to/milton_altenwert/how-to-check-a-pending-cross-chain-swap-2ngn</link>
      <guid>https://dev.to/milton_altenwert/how-to-check-a-pending-cross-chain-swap-2ngn</guid>
      <description>&lt;p&gt;If a cross-chain swap looks stuck, check its source-chain transaction first, then follow the swap to the destination chain before deciding to retry. A cross-chain swap has more than one stage: sending the deposit, having it recognized, exchanging the assets, and sending the payout. A confirmed deposit proves only that the first stage happened.&lt;/p&gt;

&lt;h2&gt;
  
  
  What does “pending” mean in a cross-chain swap?
&lt;/h2&gt;

&lt;p&gt;“Pending” can mean the deposit is waiting for confirmation, or that the deposit is confirmed while a later stage is still underway. Each blockchain records its own transactions, so one explorer may show the deposit as complete even though the destination transfer has not appeared yet. In a &lt;a href="https://todaycrypto.org/how-to-use-thor-swap-when-a-cross-chain-swap-stalls/" rel="noopener noreferrer"&gt;thor swap&lt;/a&gt;, for example, the source-chain deposit and destination-chain payout are separate transactions to track.&lt;/p&gt;

&lt;p&gt;Before looking anything up, find the transaction ID, also called a transaction hash, for the deposit. It is a unique code for that transaction. You can usually find it in the wallet’s activity or swap details; copy it rather than searching by amount, which may match many transfers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Which transaction should you check first?
&lt;/h2&gt;

&lt;p&gt;Start with the deposit transaction on the blockchain you sent from. Open a trusted block explorer for that network and search the full transaction ID. Confirm that the sender, destination, asset, and amount match your swap. A matching amount alone is not enough to identify the right transaction.&lt;/p&gt;

&lt;p&gt;Read the status in the context of that chain. On Ethereum, a transaction may be pending in the network’s queue, or it may be included in a block with a success or failure result. On Bitcoin, an unconfirmed transaction may still be waiting in the mempool, the pool of transactions awaiting inclusion in a block. A confirmed source transaction means the network recorded your deposit; it does not mean the swap payout is complete.&lt;/p&gt;

&lt;p&gt;Next, check whether the swap service recognizes that deposit and whether a destination transaction exists. A cross-chain swap commonly follows this sequence:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Your wallet broadcasts a deposit transaction to the source chain.&lt;/li&gt;
&lt;li&gt;The source chain confirms it, and the swap service detects the deposit.&lt;/li&gt;
&lt;li&gt;The service exchanges the assets, often through liquidity pools, which hold assets available for swaps.&lt;/li&gt;
&lt;li&gt;A separate transaction sends the output asset to your destination address.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The key clue is the last transaction: if it exists, search its hash on an explorer for the destination network. If it does not exist, the swap may still be processing or may need review; the confirmed deposit by itself cannot tell you which.&lt;/p&gt;

&lt;h2&gt;
  
  
  How can you tell a delay from a failure?
&lt;/h2&gt;

&lt;p&gt;Look for a clear failure result on the relevant chain or a swap status that explicitly says the operation failed. A source transaction that failed on an EVM-compatible chain did not successfully deliver the deposit, although the wallet may still have spent a network fee. By contrast, a confirmed deposit followed by no destination transaction is an incomplete journey, not proof that the deposit failed.&lt;/p&gt;

&lt;p&gt;For a Bitcoin deposit that remains unconfirmed, check the explorer’s current status and fee context. Busy networks can leave lower-fee transactions waiting longer; an explorer no longer showing a transaction is not, by itself, proof that funds were returned. For a confirmed deposit with no payout, use the swap’s transaction details to see whether the deposit was recognized and whether processing has advanced.&lt;/p&gt;

&lt;h2&gt;
  
  
  What should you do before trying again?
&lt;/h2&gt;

&lt;p&gt;Do not send a second deposit just because the destination balance has not changed. First check the destination transaction, if one is available, and verify that it went to the address you intended. Also check that your wallet is displaying the destination network and the correct asset; a completed transfer can be hard to see if the wallet is showing another network or has not added the token to its display.&lt;/p&gt;

&lt;p&gt;If the source deposit is confirmed but you cannot find a payout or a clear final status, keep the transaction IDs and compare them with the swap’s current status before taking another action. The relevant next step depends on the stage: an unconfirmed deposit is a source-chain issue, while a confirmed deposit with no payout needs a status check with the swap service.&lt;/p&gt;

&lt;p&gt;Retry only when the original deposit is clearly failed or the service confirms that no swap is still processing; otherwise, keep tracking the existing transaction.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How to Estimate Cross-Chain Swap Costs</title>
      <dc:creator>Milton Altenwerth</dc:creator>
      <pubDate>Thu, 15 Oct 2026 16:41:29 +0000</pubDate>
      <link>https://dev.to/milton_altenwert/how-to-estimate-cross-chain-swap-costs-45i5</link>
      <guid>https://dev.to/milton_altenwert/how-to-estimate-cross-chain-swap-costs-45i5</guid>
      <description>&lt;p&gt;Write down the amount and token you plan to send, then name the token and network you want to receive. You need both ends of the trip to compare the route’s actual output and avoid mistaking an exchange loss for a network fee.&lt;/p&gt;

&lt;h2&gt;
  
  
  What counts as the cost of a cross-chain swap?
&lt;/h2&gt;

&lt;p&gt;The cost is the difference between the value you send and the value you receive, plus any extra charge you pay separately. A cross-chain route may swap your asset on the source network, move value across a bridge, then swap again on the destination network. The exact route and fee handling vary.&lt;/p&gt;

&lt;p&gt;Check these parts of the route:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Network gas:&lt;/strong&gt; the fee for processing a transaction, usually paid in that network’s native token.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Swap fees:&lt;/strong&gt; charges for trading through a liquidity pool or other exchange mechanism.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bridge or routing fees:&lt;/strong&gt; charges for moving value between networks or arranging the route.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Price impact:&lt;/strong&gt; the effect your trade has on the quoted price, which tends to grow with trade size relative to available liquidity.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Slippage is different: it is the change between the quoted and executed exchange rate while your trade is processed. A route may include a slippage setting or protection, but that does not make the final output guaranteed. quickswap is a cross-chain bridge and swap service that moves assets between blockchains and exchanges them along the way in one flow.&lt;/p&gt;

&lt;h2&gt;
  
  
  How do you estimate what you will receive?
&lt;/h2&gt;

&lt;p&gt;Use the route’s quoted output as your main comparison. Follow these steps before you send funds:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Record the input value.&lt;/strong&gt; For example, say you plan to send $300 worth of a token. Use the amount you will actually spend, including any source-network fee charged separately.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Read the quoted destination amount and its unit.&lt;/strong&gt; Make sure you know which token and network the output is on. The &lt;a href="https://graph.org/quickswap-or-Separate-Swaps-Which-Fits-Your-Wallet-10-14" rel="noopener noreferrer"&gt;quickswap versus separate swaps&lt;/a&gt; comparison changes which costs you count: one route can combine the bridge and destination trade, while separate trades may involve several transactions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Compare values in the same currency.&lt;/strong&gt; If the quote says you will receive $292.20 worth of the destination token, the estimated difference is $300 − $292.20 = $7.80. That is about 2.6% of the input: $7.80 ÷ $300 × 100. These figures are illustrative; redo the calculation with your quote.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Add only charges paid outside the quoted output.&lt;/strong&gt; If a $1.80 source gas fee is separate, the total estimated cost becomes $9.60. If the quote already deducts that fee from the destination amount, adding it again would double-count it. Also check whether you will need the destination network’s native token to spend or move the received funds later.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For a route through quickswap, compare the amount you send with the destination amount it quotes, then account for any separately charged gas. A single-flow service can save you from arranging each network hop yourself, but the quoted output still depends on the route’s liquidity, prices, and fees at that time.&lt;/p&gt;

&lt;h2&gt;
  
  
  What should you check before choosing a route?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Why can the received amount change?
&lt;/h3&gt;

&lt;p&gt;Prices and available liquidity can move while a transaction is being prepared or processed. A large trade can also shift a pool’s price more than a small one. Compare the quoted output with the minimum output or slippage protection shown for the route, if available, and decide whether that worst-case amount still works for you.&lt;/p&gt;

&lt;h3&gt;
  
  
  How long does a cross-chain swap take?
&lt;/h3&gt;

&lt;p&gt;It depends on how quickly the source transaction is confirmed, how the bridge transfers value, and whether the destination transaction needs additional processing. Network congestion can slow any of these stages. Treat an estimate as a guide, and check the route’s stated timing before sending if you need the funds by a particular time.&lt;/p&gt;

&lt;h3&gt;
  
  
  What limits apply to the amount you can swap?
&lt;/h3&gt;

&lt;p&gt;Limits depend on the service and route. Available liquidity can affect how much you can exchange at a reasonable price, while a route may also set minimum or maximum amounts. A route that works for a small test transfer may return a worse quote for a much larger amount, so check the quote using your intended amount.&lt;/p&gt;

&lt;h3&gt;
  
  
  Which option fits your first swap?
&lt;/h3&gt;

&lt;p&gt;A single-flow route can be simpler when you want to move assets across networks and exchange them along the way. Separate swaps give you more control over each trade, but require you to arrange and pay for each network transaction. Before acting, ask yourself: does the final amount you expect to receive justify the route’s total cost?&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How to Reconcile Monero Deposits Before a Swap Payout</title>
      <dc:creator>Milton Altenwerth</dc:creator>
      <pubDate>Thu, 15 Oct 2026 11:31:52 +0000</pubDate>
      <link>https://dev.to/milton_altenwert/how-to-reconcile-monero-deposits-before-a-swap-payout-4blb</link>
      <guid>https://dev.to/milton_altenwert/how-to-reconcile-monero-deposits-before-a-swap-payout-4blb</guid>
      <description>&lt;p&gt;Verify an XMR deposit in your wallet before releasing the destination asset. Your backend needs to match the received amount to an order, check that the transaction is confirmed, and keep monitoring for changes until the payout is safe to make.&lt;/p&gt;

&lt;p&gt;When the source leg is XMR and the destination is on another chain, a &lt;a href="https://telegra.ph/Monero-bridge-Types-for-Moving-XMR-Across-Chains-10-14" rel="noopener noreferrer"&gt;Monero bridge&lt;/a&gt; handles the cross-chain route; an integrator still needs a reliable deposit record before releasing value. Monero conceals amounts and recipient details on-chain, so a block explorer cannot independently show that a customer paid a particular order.&lt;/p&gt;

&lt;h2&gt;
  
  
  How should the backend identify a payment?
&lt;/h2&gt;

&lt;p&gt;Assign each order a unique Monero subaddress and watch for incoming transfers to it. A subaddress is a receiving address tied to your wallet; the wallet can identify payments to it even though observers cannot link the visible blockchain data to your customer or order.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Create and store the deposit mapping.&lt;/strong&gt; Generate a subaddress for the order and save its wallet account and subaddress indices alongside the expected amount, asset, destination chain, and expiry. Reuse neither the address nor the mapping for another order: a late payment to an expired address must remain attributable to the original order.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scan with a Monero wallet.&lt;/strong&gt; Use a wallet connected to a synchronized daemon, and query its incoming transfers, such as through the wallet RPC method &lt;em&gt;get_transfers&lt;/em&gt;. Match the returned subaddress index to your order record, then compare the received amount in atomic units: 1 XMR equals 1,000,000,000,000 atomic units. Do not try to infer the amount from public transaction data.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Use a wallet with only the access it needs to detect deposits; keep spending keys outside the order-processing service. A view-only wallet can scan incoming funds, while a separate, controlled signing process handles outgoing transfers.&lt;/p&gt;

&lt;h2&gt;
  
  
  How many confirmations justify payout?
&lt;/h2&gt;

&lt;p&gt;Wait for the confirmation threshold in your payout policy, then recheck the wallet record before releasing the destination asset. Monero targets a block about every two minutes, and wallets commonly require 10 confirmations before a received output is unlocked, so that wait is roughly 20 minutes on average. Treat that as a useful baseline, not a guarantee of settlement time or a universal bridge rule.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Set a risk-based threshold.&lt;/strong&gt; Choose a minimum confirmation count for each payout tier, accounting for the amount at risk and the cost of a reorganization, where a block is replaced by a competing chain. The wallet’s confirmation count tells you how many blocks have followed the one containing the transfer; the output’s &lt;em&gt;locked&lt;/em&gt; status tells you whether it is spendable. Neither field alone determines your business risk policy.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gate the payout on fresh state.&lt;/strong&gt; Before sending on the destination chain, verify the node is synchronized and the transfer still appears in the wallet with the expected amount and subaddress. Check that it is confirmed, not only in the transaction pool, and that &lt;em&gt;double_spend_seen&lt;/em&gt; is false. A transaction seen but not mined is not a confirmed deposit.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  What should happen when a payment is ambiguous?
&lt;/h2&gt;

&lt;p&gt;Keep the order pending when the payment does not satisfy the recorded terms; do not silently treat a mismatch as a full payment. For example, if an order expects 0.50 XMR and the wallet reports 0.47 XMR to its subaddress, record the partial amount and apply your stated underpayment policy. If the customer sends the remainder later, reconcile that incoming transfer against the same order before deciding whether the total qualifies.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Handle late, split, or duplicate observations idempotently.&lt;/strong&gt; Key each observed transfer by transaction ID and subaddress index so repeated scans do not create duplicate credit. Keep expired orders searchable, and route deposits received after expiry to a review or refund policy rather than assigning them to a new customer.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Recheck after a chain change.&lt;/strong&gt; If a previously confirmed transfer disappears from the wallet’s confirmed results, suspend an unreleased payout and rescan from a safe earlier height. If destination funds have already been sent, mark the case for reconciliation; a source-chain reorganization cannot automatically reverse a finalized destination transaction.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Keep the deposit record, confirmation count, and payout decision together for audit and recovery. As a practical tip, test the complete flow on a non-production network first, including a partial payment and a delayed deposit, so your order state handles both before real funds are at risk.&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>backend</category>
      <category>crypto</category>
    </item>
    <item>
      <title>How to Choose One Cross-Chain Swap or Two Steps</title>
      <dc:creator>Milton Altenwerth</dc:creator>
      <pubDate>Thu, 15 Oct 2026 08:09:33 +0000</pubDate>
      <link>https://dev.to/milton_altenwert/how-to-choose-one-cross-chain-swap-or-two-steps-222j</link>
      <guid>https://dev.to/milton_altenwert/how-to-choose-one-cross-chain-swap-or-two-steps-222j</guid>
      <description>&lt;p&gt;If you need an asset on another chain, choose one cross-chain swap when it delivers the exact asset you want; split the job when you need control over each stage. A cross-chain swap moves value from one blockchain and exchanges it for an asset on another. One flow can coordinate both tasks, but it may still involve several transactions behind the scenes.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Check the exact asset and network you will receive.&lt;/li&gt;
&lt;li&gt;Compare the full cost and the control you give up.&lt;/li&gt;
&lt;li&gt;Use a split route if you need to inspect each stage.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What &lt;a href="https://defi-handbook.gitbook.io/defi-handbook-docs/what-is-biswap-and-which-route-type-fits-your-app" rel="noopener noreferrer"&gt;Biswap does across chains&lt;/a&gt; helps you see how a single flow can combine a network move with an asset exchange. Biswap is a cross-chain bridge and swap service; the same comparison applies to any route that moves and swaps assets across chains.&lt;/p&gt;

&lt;h2&gt;
  
  
  A single flow can hide several steps
&lt;/h2&gt;

&lt;p&gt;A one-flow route coordinates the transfer and exchange for you, while a split route leaves you to complete them separately. For example, if you hold Bitcoin and need SOL on Solana, a route may take your Bitcoin, arrange an exchange, then deliver SOL on Solana. The exact path depends on the service and available liquidity, meaning how much value is ready to trade.&lt;/p&gt;

&lt;p&gt;The route may use an intermediary asset or a token that represents value from another chain. That can help move value between networks that do not share the same transaction system. Check that the destination is the asset you intend to use, rather than a wrapped token: a wrapped token is a chain-specific version whose value depends on how it is backed and redeemed.&lt;/p&gt;

&lt;p&gt;A single flow saves you from managing each leg yourself, but gives you less control over the route between them. A split route lets you check the first received asset before deciding what to do next. The trade-off is extra work, another transaction, and possibly another network fee.&lt;/p&gt;

&lt;p&gt;Fees can come from the sending network, the receiving network, the exchange, and the route provider. The quoted result may also reflect slippage, which is the difference between the expected price and the price available when a trade completes. Compare the amount you expect to receive after all costs, not just one fee.&lt;/p&gt;

&lt;h2&gt;
  
  
  Compare the route before sending value
&lt;/h2&gt;

&lt;p&gt;Use these steps to decide whether one flow or two separate actions better fits your transfer.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Name the destination asset and network.&lt;/strong&gt; Write down what you need to hold and where. “SOL on Solana” is clearer than “crypto on Solana.” If you need a particular token for an app, check its exact name and network before comparing routes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Check what the route delivers.&lt;/strong&gt; Read the destination asset description. Confirm whether it is native to that chain or a wrapped token, and whether the receiving app accepts it. The Bitcoin Developer Guide explains why a transaction becomes harder to reverse as more blocks confirm it; a route that waits for confirmations may therefore take longer before releasing value.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Compare the final amounts.&lt;/strong&gt; Look at the expected amount after network costs, exchange costs, and slippage. Treat a displayed estimate as an estimate, since prices and available liquidity can change before completion. For a small transfer, fixed network costs may take a larger share of the value.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Choose how much control you need.&lt;/strong&gt; Pick one flow when it names the right destination asset, shows a result you accept, and you are comfortable with the route being coordinated for you. Split the transfer when you want to check or hold the intermediate asset before making the exchange.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Check the destination details before you send.&lt;/strong&gt; Make sure the receiving address belongs to the intended network and that you can access it. If an address or network is wrong, the funds may be difficult or impossible to recover. Start with an amount you can afford to have delayed while you learn how the route behaves.&lt;/li&gt;
&lt;/ol&gt;

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

&lt;h3&gt;
  
  
  Does one cross-chain swap mean one transaction?
&lt;/h3&gt;

&lt;p&gt;No. It means the route coordinates the network transfer and exchange as one task for you. The underlying process may still need transactions on both networks, and it may wait for confirmations before delivering the destination asset. Those steps affect completion time even when you do not manage them individually.&lt;/p&gt;

&lt;h3&gt;
  
  
  When is a split route the better choice?
&lt;/h3&gt;

&lt;p&gt;Use separate steps when you want to inspect the asset received on the first network, choose your own exchange moment, or stop before making the second move. This gives you more control, but you must manage the extra transaction, its network fee, and the risk of choosing an asset the next step cannot use.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why can the amount received change?
&lt;/h3&gt;

&lt;p&gt;The exchange price can move while the trade is arranged, and the available liquidity can affect the price for your amount. Network costs can also differ between routes. Compare the expected destination amount and any stated tolerance for price movement, rather than judging by the starting amount alone.&lt;/p&gt;

&lt;h3&gt;
  
  
  What should I do before sending a large amount?
&lt;/h3&gt;

&lt;p&gt;Confirm the exact destination asset, network, and address. Check that your wallet or app can use the asset you expect to receive. If you have not used the route before, try a small transfer first; it can show whether the destination works as expected before you commit more value.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How to Choose a quickswap Route When a Swap Stalls</title>
      <dc:creator>Milton Altenwerth</dc:creator>
      <pubDate>Tue, 13 Oct 2026 22:22:22 +0000</pubDate>
      <link>https://dev.to/milton_altenwert/how-to-choose-a-quickswap-route-when-a-swap-stalls-43ml</link>
      <guid>https://dev.to/milton_altenwert/how-to-choose-a-quickswap-route-when-a-swap-stalls-43ml</guid>
      <description>&lt;p&gt;quickswap routes should be chosen by output asset, net quote, and settlement state. If an attempt to swap crypto across chains is pending, &lt;a href="https://quickswap.dev" rel="noopener noreferrer"&gt;quickswap&lt;/a&gt; can handle the exchange and transfer in one flow once you know where your funds are. Check the existing transaction before sending anything again.&lt;/p&gt;

&lt;h2&gt;
  
  
  Which criteria decide the route?
&lt;/h2&gt;

&lt;p&gt;Five checks decide whether a route delivers the asset you need on acceptable terms.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Destination asset:&lt;/strong&gt; Confirm its chain and token identity.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Route mechanism:&lt;/strong&gt; Identify who or what provides the destination liquidity.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Net output:&lt;/strong&gt; Compare the amount received after every fee and swap.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Settlement time:&lt;/strong&gt; Account for source finality and destination execution.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Recovery path:&lt;/strong&gt; Find out what happens if the destination leg fails.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A ticker alone is insufficient. “ETH” on Ethereum and ETH on Arbitrum One are usable on different networks; a token labelled “BTC” on an EVM chain is a representation, not native Bitcoin. Check the destination chain, token contract where applicable, and whether the recipient can use that version of the asset.&lt;/p&gt;

&lt;p&gt;A same-chain swap uses liquidity on one network. A bridge moves value between networks, while a cross-chain swap also changes the asset. If you need to swap Bitcoin to Ethereum’s ETH on Arbitrum One, a transfer that delivers a BTC representation leaves you with another swap to make.&lt;/p&gt;

&lt;p&gt;The mechanism sets the risks behind the quoted speed. A canonical bridge may lock or burn on the source and release or mint on the destination after verification; a liquidity route may pay from a destination pool and settle its inventory later. Check the route’s bridge or liquidity provider and any temporary asset it uses, especially for a large transfer.&lt;/p&gt;

&lt;p&gt;Compare routes using the same input amount and recipient network. Record the quoted output, minimum received, estimated arrival time, and any separate destination transaction you must fund. A faster quote is less useful if its recipient gets the wrong token or cannot afford gas to use it.&lt;/p&gt;

&lt;p&gt;Finally, read the failure terms before committing. Ask where value remains if the destination swap cannot execute: in a claimable destination asset, a refund on the source chain, or a pending message requiring execution. Those outcomes have different costs and may require access to different wallets.&lt;/p&gt;

&lt;h2&gt;
  
  
  What happens after you submit?
&lt;/h2&gt;

&lt;p&gt;A cross-chain swap has separate source and destination events, so a confirmed send does not prove delivery. On an EVM source, approval may occur first; that transaction only authorizes spending. The subsequent swap or transfer consumes the asset and emits the event that the bridge or liquidity route tracks.&lt;/p&gt;

&lt;p&gt;For a Bitcoin-to-Arbitrum example, the Bitcoin payment must enter a block and reach the route’s required confirmation depth. The route then verifies or accounts for that payment, sources ETH on Arbitrum One, and pays the specified recipient. A quote can appear to stall between those stages without either chain having failed.&lt;/p&gt;

&lt;p&gt;The pricing rule matters during that wait. Determine whether the BTC-to-ETH rate is fixed when you accept the quote, when the Bitcoin deposit confirms, or when the destination trade executes. A long confirmation wait can change the delivered ETH if the route uses a floating rate; a fixed-rate route may instead have an expiry or deposit window.&lt;/p&gt;

&lt;h2&gt;
  
  
  What determines the amount you receive?
&lt;/h2&gt;

&lt;p&gt;The useful comparison is destination value after trading costs, bridge charges, network fees, and price impact. Some quotes include destination gas and provider fees in the displayed output; others itemize them separately. Compare the final amount in the exact token and chain you need, rather than comparing headline exchange rates.&lt;/p&gt;

&lt;p&gt;Slippage tolerance controls how far an execution price may move before a swap leg rejects it. For example, if a quoted 0.18 ETH output is already net of stated fees, a 0.5% tolerance implies 0.1791 ETH for that leg. It does not automatically guarantee the same floor across every stage of a multi-leg route; check which amount the minimum received field protects.&lt;/p&gt;

&lt;p&gt;For quickswap, a 0.5% setting may suit a liquid pair, while thin pools can require more room and expose you to a worse fill. Raising tolerance to force a stuck trade through also increases the price you may pay. If the quote is poor, reduce the trade size or compare another route before changing the tolerance.&lt;/p&gt;

&lt;h2&gt;
  
  
  How long should settlement take?
&lt;/h2&gt;

&lt;p&gt;Settlement time is the source confirmation period plus route verification and destination execution. Bitcoin targets roughly ten minutes per block, so a requirement of several confirmations can mean tens of minutes before the destination stage begins. Congestion, a low source fee, liquidity shortages, or a paused route can extend that estimate.&lt;/p&gt;

&lt;p&gt;Direction changes the timing trade-off. An Arbitrum One withdrawal through its canonical bridge to Ethereum has a challenge period of at least seven days; a liquidity route can pay sooner if destination liquidity is available, with different fees and trust assumptions. When you move crypto between blockchains, compare the route’s stated timing with the mechanism it uses, not with the block time alone.&lt;/p&gt;

&lt;h2&gt;
  
  
  What should you do when a transfer is pending or failed?
&lt;/h2&gt;

&lt;p&gt;Locate the last completed stage before retrying. Save the source transaction hash or Bitcoin transaction ID, the source and destination addresses, and any route or message ID. Check the source transaction in its own chain explorer first: an unconfirmed Bitcoin payment is a different problem from a confirmed payment awaiting destination execution.&lt;/p&gt;

&lt;p&gt;If an EVM source transaction reverted, the assets generally remain in the wallet, although gas was spent; an approval that succeeded is not evidence that a transfer began. If the source transfer succeeded, sending a second one can create a second order. Trace the route or message status and the destination recipient’s balance before initiating another payment.&lt;/p&gt;

&lt;p&gt;A confirmed source with no payout may still be waiting for finality, liquidity, or destination execution. Some messaging routes permit a failed destination execution to be retried after its cause, such as insufficient callback gas, is resolved; others provide a claim or refund process. Use the recovery path for the route that actually received the funds, and verify the asset and chain on which recovery pays out.&lt;/p&gt;

&lt;p&gt;At quickswap.dev, you can start a fresh cross-chain exchange once the earlier transfer’s location is clear. If the earlier funds are already on the destination chain, use that confirmed balance as the starting point; if they are still committed to a pending route, resolve that route first.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Confirm where the existing funds are and whether the source transfer succeeded.&lt;/li&gt;
&lt;li&gt;Choose the exact destination token and network, then compare net output and timing.&lt;/li&gt;
&lt;li&gt;Check the rate rule, minimum received, and recovery path before sending again.&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>How to Integrate Arbswap Swaps, Liquidity, and Farms</title>
      <dc:creator>Milton Altenwerth</dc:creator>
      <pubDate>Tue, 06 Oct 2026 20:24:25 +0000</pubDate>
      <link>https://dev.to/milton_altenwert/how-to-integrate-arbswap-swaps-liquidity-and-farms-3pac</link>
      <guid>https://dev.to/milton_altenwert/how-to-integrate-arbswap-swaps-liquidity-and-farms-3pac</guid>
      <description>&lt;p&gt;Use Arbswap when your integration needs token trading on Arbitrum, or when users intend to supply assets to a pool and farm with the resulting position. Confirm the chain and token contracts first, quote against live liquidity, set execution bounds, then handle the swap, liquidity deposit, and farm stake as distinct actions.&lt;/p&gt;

&lt;h2&gt;
  
  
  What does Arbswap execute?
&lt;/h2&gt;

&lt;p&gt;A token swap trades against liquidity held by an automated market maker, while a liquidity deposit gives the provider a claim on a pool. Staking that claim in a farm is a further action: swap fees depend on trading volume, whereas farming rewards depend on the farm’s emissions and its share of staked positions. An integrator should model those balances separately.&lt;/p&gt;

&lt;p&gt;For a constant-product pool, the reserves determine both the quote and its price impact. Before a trade, say a pool holds 1,000 ETH and 2 million USDC, implying a spot price of 2,000 USDC per ETH. After a 1 ETH input with an illustrative 0.3% pool fee, the constant-product calculation returns about 1,992 USDC; the difference from 2,000 includes the fee and the movement along the curve. Read the actual pool type and fee before applying that model: stable-asset pools can use different pricing.&lt;/p&gt;

&lt;h2&gt;
  
  
  How do you execute swaps, deposits, and farms?
&lt;/h2&gt;

&lt;p&gt;Implement the flow in the order below so each transaction uses current state and leaves a position your application can account for.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Resolve the chain and assets.&lt;/strong&gt; Check the wallet’s chain ID, token contract addresses, decimals, and balances before quoting; Arbitrum One uses chain ID 42161 and ETH for gas. Resolve tokens by address rather than symbol, since symbols are neither unique nor proof that a bridged asset is the one your user expects.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Read the candidate pools.&lt;/strong&gt; Find liquidity for the requested pair, then compare direct and multi-hop quotes using the amount that will actually enter each pool. Arbswap liquidity pools can differ in depth and pricing model, so a shorter path is not automatically cheaper. Reject a route whose reserves cannot support the trade at the user’s acceptable price.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Set the execution bounds.&lt;/strong&gt; Convert the quote into a minimum output for an exact-input swap, and attach a deadline; around 0.1–0.5% slippage tolerance and a 5–20 minute deadline are starting values for a liquid pair, not protocol defaults. A thin pool may need a wider bound, but widening it also increases the price deterioration the user accepts. Requote if reserves change materially before signing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Submit and reconcile the swap.&lt;/strong&gt; Obtain any required token allowance, simulate the call, then send it with the chosen minimum output and recipient. For Arbswap, compare the resulting token balance or transfer logs with the amount your application quoted. Choose &lt;a href="https://arbswap.cc" rel="noopener noreferrer"&gt;Arbswap token swaps&lt;/a&gt; when the user wants the DEX to exchange the assets; choose a direct router call when your integration must construct and submit that transaction itself.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deposit the paired assets.&lt;/strong&gt; For a constant-product pool, supply both tokens at the current reserve ratio; sending an arbitrary 50/50 token quantity can leave one side unused when their prices differ. Set minimum accepted deposit amounts and account for approvals on both tokens. Record the LP position received, because it represents a share of changing reserves rather than a fixed claim to the deposited quantities.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stake the LP position if farming fits.&lt;/strong&gt; Check that the farm accepts that exact LP asset, then inspect reward emissions, total stake, and any lock terms before depositing. An illustrative reward APR is daily reward tokens multiplied by token price and 365, divided by the value staked across the farm; it changes when emissions, price, or competing stake changes. Pool trading fees and farm rewards are separate returns.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Unstake and remove liquidity at exit.&lt;/strong&gt; Claim or account for accrued rewards, withdraw the LP position under its lock conditions, and redeem it with minimum amounts for each underlying token. Compare the received token mix with the original deposit, since trading changes pool reserves while the user holds a proportional share. A successful unstake alone does not return the underlying pair.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  What costs and edge cases decide the route?
&lt;/h2&gt;

&lt;p&gt;Arbswap fees are only one part of execution cost: include price impact, transaction gas, and any extra trade along a multi-hop route. The relevant comparison is the final amount received for the same input, after all route costs, at a quote size close to the intended trade. For a large order, splitting it can reduce price impact, but extra transactions add gas and expose later pieces to price changes.&lt;/p&gt;

&lt;p&gt;A cross-network trade through Symbiosis has a different completion model from a swap within one pool. Its source transaction can succeed while later settlement or the destination exchange is still pending; destination slippage can also prevent delivery of the intended final token. Track the cross-network operation through its final state before crediting a user with that token.&lt;/p&gt;

&lt;p&gt;For an integrator, the deciding test is whether the live quote and its execution bounds meet the user’s outcome: execute the swap for a trade, add liquidity for fee exposure, and stake the LP position only when the farm’s terms justify the additional commitment.&lt;/p&gt;

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