Squid Dev Documentation
  • Getting Started
    • Overview
    • Get an Integrator ID
    • Integrator Quickstart
  • Widget Integration
    • Add A Widget
      • Swap widget
        • Getting Started
        • Installing the Widget
        • React Installation
        • NextJS Installation
        • Vite Installation
        • Iframe Installation
        • Customization Guide
          • Default User Settings
          • Configuring Content
          • Default Chains and Tokens
          • Configuration Types
          • Collect Fees
        • Information for Integrators
        • Set default chains and tokens via URL
        • Errors
    • Upgrade Your Widget
  • API & SDK Integration
    • API
      • Swap & Bridge Example
      • Staking Example
      • Cross-chain NFT Purchase Example
      • Get Route Status
    • SDK
      • Cross-chain Swap Example
      • Staking Example
      • Cross-chain NFT Purchase Example
      • Get Route Status
    • Key Concepts
      • Route Request Parameters
      • Get a route
      • Execute the route
      • 🪝Hooks
        • How do hooks work
        • Build a preHook
        • Build a postHook
        • Using the full ERC20 or Native balance in a call
        • ❗Transfer the remainder to the user
        • Get a route and execute as normal
      • Express
      • Track status
      • Types
      • Collect Fees
      • Get supported tokens and chains
    • Coral: Intent Swaps
      • Integrating Coral
    • NEW: Bitcoin and Solana
  • Adding Tokens
    • Whitelist a Token
    • Interchain Token(ITS) Listings
      • How To List
    • Circle's EURC Integration Guide
  • Migration
    • Squid v2 vs Squid v1
    • v1 -> v2 Migration
  • Additional Resources
    • Contracts
    • Squid v1 Docs
      • SDK
        • Installing our SDK
        • Get supported tokens and chains
          • Example chains response
          • Example tokens response
        • Set your transfer parameters
        • Get a route
          • Understanding the route response
        • Execute your swap or call
        • Get Route Status
        • Contract calls
          • Code example
          • Creating a ContractCall object
          • Contract call types
          • Approving ERC20s in our multicall
          • Transferring the remainder to a user
        • Collect Fees
          • Fee collector contract addresses
        • Working example!
      • API
        • integratorId
        • API playground
        • Base URLs
        • Get supported tokens and chains
        • Get a route
        • Checking the status of a transaction
        • Error codes
          • V2 API
      • Cosmos
        • Installing our SDK
        • Get supported tokens and chains
          • Example chains response
          • Example tokens response
        • Set your transfer parameters
        • Get a route
          • Cosmos route response
        • Execute your swap or call on Cosmos
        • Get Route Status
        • Cosmos custom calls
        • Working cosmos example!
        • Fallback Addresses
    • Additional Dev Resources
      • Choose How To Integrate Squid
      • Squid x Tenderly
      • Testnet or Mainnet?
      • Understanding Gas Payments
      • Supported Chains and Tokens
      • Request a new supported token
      • Liquidity Sources
        • axlASSET Liquidity
      • Integrator type specific docs
        • DEXs
        • Aggregators
        • NFTs
      • Setting up an EVM signer
      • Setting up Cosmos signer
      • Contract addresses
      • SDK easter eggs
        • Setting toAmount
        • getAllBalances
        • Advanced set up
        • Manually approve a route
        • Manually approve an ERC20
      • Whitelist a token
      • Security & Audits
        • Security
        • Audits
        • Axelar
      • Get an integrator-id
    • Architecture
      • FAQ
      • Liquidity model
      • Architecture
      • General message passing (GMP)
      • Transaction times and fees
      • Fallback behaviour on failed transactions
      • Axelar
    • Brand Assets
      • "Powered by Squid" Policy
    • Audits & Security
    • Contact
  • Changelog
    • SDK
      • v1.3
      • v1.2
    • API
      • v1.9
      • v1.8
      • v1.7
      • v1.6
  • Old v2 Documentation (Deprecated)
    • Whitelist a Token
    • Interchain Token(ITS) Listings
      • How To List
    • Add A Widget
      • Swap widget
        • Getting Started
        • Installing the Widget
        • React Installation
        • NextJS Installation
        • Iframe Installation
        • Customization Guide
          • Default User Settings
          • Theme Customization
          • Configuring Content
          • Default Chains and Tokens
          • Configuration Types
          • Collect fees
        • Information for Integrators
        • Set default chains and tokens via URL
        • Errors
      • Stake widget
        • Installing the Widget
        • Configuration
        • Importing The widget
    • Quick Start
    • API
      • Swap & Bridge Example
      • Staking Example
      • Cross-chain NFT Purchase Example
    • SDK
      • Cross-chain Swap Example
      • Staking Example
      • Cross-chain NFT Purchase Example
    • Key Concepts
      • Route Request Parameters
      • Get a route
      • Execute the route
      • 🪝Hooks
        • How do hooks work
        • Build a preHook
        • Build a postHook
        • Using the full ERC20 or Native balance in a call
        • ❗Transfer the remainder to the user
        • Add your hooks to a route request, or widget
        • Get a route and execute as normal
      • Boost
      • Track status
      • Types
      • Collect Fees
      • Get supported tokens and chains
Powered by GitBook
On this page
  • Fees
  • Source Chain transactions
  • General message passing fees (swap on destination chain)
  • What happens in the case of a spike in gas fees
  • Boost Fees
  • CCTP Noble Fees
  • Transaction times
  1. Additional Resources
  2. Architecture

Transaction times and fees

Fees

Squid currently charges no fees. The user will only pay gas fees on source and destination chains.

It is possible for our partners to charge fees via our SDK or API. Partners can elect a % fee they would like to charge, and Squid will receive a portion of this fee.

Source Chain transactions

EVM

Fees are comprised of the following and are paid in Native Gas

  • Gas amount needed for any swaps, approvals and transfers

  • If the "from token" is the Native gas token, this amount is also added to the gas payment

  • The execution fees for the destination chain

Cosmos

Cosmos transactions are different to EVM transaction as the destination chain gas fees are taken out of the bridge token. e.g for a route that is Osmo:Osmosis > ETH:Ethereum, usually the bridge token will be axlUSDC, and this is where the GMP (bridge) fee will be taken from. If the route is axlWETH > WETH the fee will be taken in WETH. Gas payment for source chain will be only the amount needed for the execution on the Cosmos chain, all IBC relaying comes at 0 cost.

General message passing fees (swap on destination chain)

Just like the source chain transactions, the amount gas charged is calculated base off how many swaps, transfers and approvals there are.

For transactions where there is a swap on the destination chain, fees are paid using the Native token on the source chain. This fee is paid to Axelar's relayers, who trustlessly pass messages and proofs across chains.

Axelar's relayers hold gas on every chain and provide a pricing API which Squid calls to get the expected gas price for a trade. For example if the destination trade will probably cost 50 cents of AVAX in gas, then Squid will instruct the user to pay Axelar's gas service 50 cents worth of Moonbeam, as per the pricing which Axelar gives our backend.

What happens in the case of a spike in gas fees

If the cost of gas on the destination chain doubles while your cross chain transaction is being approved by Axelar, there is a chance you will either need to wait for the gas prices to lower again, or you will need to add gas to your transaction. The best way of doing this is by going to AxelarScan and searching for your transaction, using the transaction hash from the source chain. AxelarScan will show a call to action to "Add gas" where you can login with Metamask, or the relevant wallet, and help get your transaction to the finish line.

Squid also plans to expose the ability to add gas to a transaction by wrapping the Axelar SDK.

Boost Fees

Boost fee is a small dynamic premium that can be optionally paid for faster cross-chain bridge transactions, this is a service provided by Axelar (express), Axelar's relayers will determine if enough gas is paid to be boosted. The amount can vary dependant on the current price of gas. Details of the boost pice can be found on the Squid widget details page or the Squid API response. For more information read about boost here:

CCTP Noble Fees

CCTP bridge is not considered a transfer and there is no fee for this.

Transaction times

Most transactions on Squid use Boost. Which brings transactions times down to 0-20 seconds!

If Boost is not supported for a route, transaction times are dependent on the source chain finality:

  • From Ethereum: 16 min

  • From Rollups: 22 min

  • From other chains: 30seconds-2min

PreviousGeneral message passing (GMP)NextFallback behaviour on failed transactions

Last updated 1 year ago

AxelarScan on Mainnet
AxelarScan on Testnet
https://docs.squidrouter.com/boost
https://docs.axelar.dev/dev/general-message-passing/express