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
  • Overview
  • What is Squid v2.0?
  • Migrate from Squid V1
  • Breaking Changes
  • Migrate from old Squid v2.0
  1. Widget Integration

Upgrade Your Widget

PreviousErrorsNextAPI

Last updated 6 months ago

Overview

This guide will help you migrate your existing widget integration to Squid v2.0.

After migrating explore upgrading your widget's style with the .

What is Squid v2.0?

Squid v2.0 is a completely new version of the widget, designed to be more flexible and customizable.

Migrate from Squid V1

If you're coming from Squid V1, you'll need to make some changes to your code to migrate to Squid v2.0 and the v3 widget.

To upgrade to the newest version of the widget update to 3.0.10

yarn add @0xsquid/widget@^3.0.10

Breaking Changes

Squid v2.0 uses Wagmi v2 and ethers v6. Make sure to upgrade to these versions if you have these packages as a part of your project:

yarn add wagmi@^2.12.8 ethers@^6

Learn more about the

Renamed properties

  • defaultTokens has been renamed to defaultTokensPerChain

  • initialFromChainId and initialToChainId are now defined in the initialAssets object

API URL

The API URL is now https://apiplus.squidrouter.com.

So, if you had something like this:

<SquidWidget
  config={{
    integratorId: "<your-integrator-id>",0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
    apiUrl: "https://api.squidrouter.com",
    defaultTokens: [
      {
        address: "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
        chainId: "1",
      },
    ],
    initialFromChainId: "1",
    initialToChainId: "42161",
  }}
/>

You'll need to change it to this:

<SquidWidget
  config={{
    integratorId: "<your-integrator-id>",
    apiUrl: "https://apiplus.squidrouter.com",
    defaultTokensPerChain: [
      {
        address: "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
        chainId: "1",
      },
    ],
    initialAssets: {
      from: {
        address: "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
        chainId: "1",
      },
      to: {
        address: "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
        chainId: "42161",
      },
    },
  }}
/>

Theme

The new Squid widget comes with a new theming system to better match your brand.

  • The style property has been removed in favor of theme

  • The themeType property has been added

Removed properties

These properties have been removed from the widget config:

  • enableGetGasOnDestination (Will be added back in the future)

  • companyName

  • titles

  • enableExpress

  • mainLogoUrl

  • internalSameChainSwapAllowed

  • advanced.disableTradeLimit

  • advanced.shareOnTwitter

  • favTokens

  • comingSoonChainIds

  • showOnRampLink

  • onChainQuoting

  • environment

  • infiniteApproval

New properties

  • degenMode

Migrate from old Squid v2.0

If you're coming from the old Squid v2.0 widget, you'll need to make some changes to your code to migrate to the new one.

API URL

The API URL is now https://apiplus.squidrouter.com.

Theme

Squid v2.0 comes with a new theming system to better match your brand.

  • The style property has been removed in favor of theme

  • The themeType property has been added

Visit our new widget studio to create your theme.

Removed properties

These properties have been removed from the widget config:

  • enableGetGasOnDestination (Will be added back in the future)

  • companyName

  • titles

  • enableExpress

  • mainLogoUrl

  • internalSameChainSwapAllowed

  • advanced.disableTradeLimit

  • advanced.shareOnTwitter

  • favTokens

  • comingSoonChainIds

  • showOnRampLink

  • onChainQuoting

  • environment

  • infiniteApproval

New properties

  • degenMode

Visit our new to create your theme.

new widget studio
wagmi upgrade here
widget studio