BNB Smart Chain Migration Guide

Across is expanding support to BNB Smart Chain, enabling seamless bridging assets 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 /suggested-fees API to support bridging assets 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

  • BNB → Ethereum Mainnet ↔ BNB Smart Chain

  • CAKE → Ethereum Mainnet ↔ 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 asset 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 App-SDK.

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


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.


For Relayers and Indexers

No changes are required to the fill process for supporting BNB Smart Chain compared to existing EVM chains.

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


Support

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

Last updated