Across is now live on BNB Smart Chain!
Bridge Now!
Across Documentation
V3 Developer Docs
V3 Developer Docs
  • 👋Introduction
    • Welcome to Across
    • What is Across?
    • Technical FAQ
    • Migration Guides
      • Migration from V2 to V3
      • Migration to CCTP
        • Migration Guide for Relayers
        • Migration Guide for API Users
      • Migration Guide for Non-EVM and Prefills
        • Breaking Changes for Indexers
        • Breaking Changes for API Users
        • Breaking Changes for Relayers
        • Testnet Environment for Migration
      • Solana Migration Guide
      • BNB Smart Chain Migration Guide
  • 🚀DEVELOPER QUICKSTART
    • Instant Bridging in your Application
      • Bridge Integration Guide
      • Multichain Bridge UI Guide
      • Single Chain Bridge UI Guide
    • Embedded Crosschain Actions
      • Crosschain Actions Integration Guide
        • Using the Generic Multicaller Handler Contract
        • Using a Custom Handler Contract
      • Crosschain Actions UI Guide
    • Settle Crosschain Intents
    • ERC-7683 in Production
  • 🧠Concepts
    • What are Crosschain Intents?
    • Intents Architecture in Across
    • Intent Lifecycle in Across
    • Canonical Asset Maximalism
  • 🛠️Reference
    • API Reference
    • App SDK Reference
    • Contracts
      • Aleph Zero
      • Arbitrum
      • Base
      • Blast
      • BNB Smart Chain
      • Ethereum
      • Linea
      • Lens Chain
      • Ink
      • Lisk
      • Mode
      • Optimism
      • Polygon
      • Redstone
      • Scroll
      • Soneium
      • Unichain
      • World Chain
      • zkSync
      • Zora
    • Selected Contract Functions
    • Supported Chains
    • Fees in the System
    • Actors in the System
    • Security Model and Verification
      • Disputing Root Bundles
      • Validating Root Bundles
    • Tracking Events
  • 🔁Relayers
    • Running a Relayer
    • Relayer Nomination
  • 📚Resources
    • Release Notes
    • Developer Support
    • Bug Bounty
    • Audits
Powered by GitBook
LogoLogo

Products

  • Across Bridge
  • Across+
  • Across Settlement

Socials

  • Discord
  • Twitter
  • Medium
  • Forum

Resources

  • Blog
  • Across Brand Assets
  • Github

Routes

  • Bridge to Unichain
  • Bridge to Arbitrum
  • Bridge to Optimism
  • Bridge to Linea
  • Bridge to Polygon
  • Bridge to Base
  • Bridge to World Chain
  • Bridge to zkSync
On this page
  • Introduction
  • Summary of Product Changes
  • For Developers and Integrators
  • For Relayers and Indexers
  • Support
  1. Introduction
  2. Migration Guides

BNB Smart Chain Migration Guide

PreviousSolana Migration GuideNextInstant Bridging in your Application

Last updated 6 days ago

Across is expanding support to BNB Smart Chain, enabling seamless bridging between Ethereum Mainnet, other supported chains, and BNB Smart Chain.

The migration is scheduled to go live in early May 2025. All integrators and relayers are encouraged to complete the necessary updates before the migration happens to prevent disruptions.


Introduction

The changes detailed in this guide are limited to updates within the API to support bridging to and from BNB Smart Chain. This guide is aimed at Developers, Integrators, and Relayers using the Across API. Here are some details:

  • Developers and Integrators: Updates to API responses, including a new field and optional query parameter behavior.

  • Relayers and Indexers: No event changes; only /suggested-fees API updates need attention.

Supported Assets Overview

With BNB Smart Chain support, Across will enable bridging for:

  • USDC, USDT, ETH → Ethereum Mainnet ↔ Supported L2s ↔ BNB Smart Chain

Expanding support to BNB Smart Chain enhances Across's crosschain interoperability, enabling efficient, cheap and quick bridging across a broader set of EVM-compatible networks.


Summary of Product Changes

The SpokePool contract deployed on BNB Smart Chain supports bridging between Ethereum Mainnet, supported L2s, and BNB Smart Chain. Integrators must continue using the DepositV3 function for BNB routes.

BNB Smart Chain will also be available in the Across .

Across Protocol will use 56 as the chain ID for BNB Smart Chain Mainnet.

BNB Smart Chain testnet is not currently supported. Developers and integrators should test their integrations directly on BNB Smart Chain mainnet, using small token amounts.

For all BNB Smart Chain routes (to and from BSC), integrators must not set the outputToken parameter to 0x0.

If you currently use outputToken=0x0 for existing non-BSC routes, you may continue to do so for the time being. However, this behavior is deprecated and will be disallowed on all chains in approximately two weeks (June 19th, 2025). At that time, Across Protocol contracts will include a check to prevent transactions with outputToken=0x0.

We strongly encourage all integrators to update their integrations to explicitly define outputToken for all routes.


For Developers and Integrators

The /suggested-fees API has two critical updates for BNB Smart Chain support:

  • outputAmount field: Each response now includes the outputAmount to be received after bridging.

// deprecated approach
const outputAmount = inputAmount * (1 * 10^18 - feesResponse.totalRelayerFee.pct)
const tx = spokePool.deposit(...args, outputAmount)

// correct approach
const outputAmount = feesResponse.outputAmount
const tx = spokePool.deposit(...args, outputAmount)
  • Decimal enforcement: An optional allowUnmatchedDecimals query parameter has been added.

    • If not set to true, the API will return a 4XX error when the inputToken and outputToken have different decimals.

    • This ensures integrators explicitly handle cases where the same token (e.g., USDC) has different decimal places across chains (e.g., 6 vs 18).

We strongly encourage developers to test these changes in production environments using small token amounts to verify behavior before going live.

There are no changes to the structure of other fields in the /suggested-fees API response.

When calling the DepositV3 function for transactions involving BNB Smart Chain (as either the source or destination chain), integrators must always specify a valid outputToken address. Setting outputToken to 0x0 is not supported for BSC routes and will lead to transaction failure.

For existing integrations on other supported chains that currently utilize outputToken=0x0, this behavior is now deprecated. While it will continue to function for approximately 2 weeks (June 19th, 2025), we strongly advise updating your integration to provide an explicit outputToken address for all routes.

After this deprecation period, Across Protocol contracts will disallow the use of outputToken=0x0.


For Relayers and Indexers

Relayers must ensure their configurations are updated to recognize chain ID 56 for BNB Smart Chain when handling deposits and repayments.

Relayers must not fill any deposits where the outputToken is set to 0x0 and the transaction involves BNB Smart Chain (either as the originChainId or destinationChainId). Such deposits are invalid for BSC routes and should not be processed.

Please ensure your relaying infrastructure is configured to identify and reject deposits with outputToken=0x0 for all BNB Smart Chain transactions. While outputToken=0x0 might still appear in some non-BSC routes for a limited period, relayers should prepare for its complete removal across the protocol in two weeks (June 19th, 2025).


Support

We will notify you as soon as the BNB routes are live for testing. Please join our to be notified at the earliest.

Important Note on outputToken and BNB Smart Chain

Critical Update: outputToken for BNB Smart Chain Deposits

Want to learn more or need personalized help? Check out and reach out to us!

👋
⚠️
⚠️
assets
/suggested-fees
assets
asset
App-SDK
telegram community
developer support