Skip to main content

Overview

This tutorial shows how to bridge assets to Plasma programmatically using the Symbiosis cross-chain protocol. You will set up the Symbiosis JS SDK, execute a bridge transaction from Ethereum to Plasma, and monitor the transfer until completion. By the end, you will have working code that:
  • Connects to Symbiosis and initializes a swap
  • Bridges USDT from Ethereum to USDT0 on Plasma
  • Monitors the cross-chain transaction status
  • Handles failures with retry logic

Prerequisites

  • Chainstack account with Plasma and Ethereum nodes deployed
  • Node.js 18 or later
  • A wallet with USDT on Ethereum (testnet or mainnet)
  • Basic familiarity with ethers.js
This tutorial uses mainnet examples. For testing, use small amounts or deploy on testnets first.

Network parameters

Bridge options for Plasma

Several bridges support Plasma: This tutorial focuses on Symbiosis for its JavaScript SDK and API support.

1. Set up the project

Create a .env file:
Never commit private keys to version control. Use environment variables or a secrets manager.

2. Initialize the SDK

Create bridge.js:

3. Define tokens and amounts

Add the token definitions:

4. Execute the bridge

Add the bridging logic:

5. Add token approval

Add the approval helper:

6. Monitor transaction status

Add status monitoring for pending transactions:

7. Handle stuck transactions

Add recovery logic for failed bridges:

8. Add retry logic

Wrap the bridge with retry handling:

9. Run the bridge

Add the main execution:

10. Run the script

Update package.json to enable ES modules:
Run the bridge:
Expected output:

Alternative: Using the Symbiosis API

For production applications, Symbiosis recommends using their API instead of the SDK for better stability:

Bridge alternatives

deBridge

For UI-based bridging or deBridge API integration:
  1. Visit app.debridge.finance
  2. Connect wallet and select source chain
  3. Choose Plasma as destination
  4. Enter amount and confirm

Direct USDT0 transfers on Plasma

Once you have USDT0 on Plasma, transfers are zero-fee using the Relayer API:
See the Plasma zero-fee transfers documentation for details.

Troubleshooting

Transaction stuck

If your bridge transaction is pending for more than 10 minutes:
  1. Check status using checkBridgeStatus()
  2. If stuck, use revertStuckTransaction() to recover funds
  3. Contact Symbiosis support with your transaction hash

Insufficient gas

Ensure your wallet has enough ETH for:
  • Token approval transaction
  • Bridge transaction (typically 0.01-0.05 ETH)

Slippage errors

Increase slippage tolerance for volatile conditions:

Conclusion

You now have working code to bridge assets to Plasma programmatically. The Symbiosis SDK handles routing, fee calculation, and cross-chain monitoring automatically. For production use, consider:
  • Using the Symbiosis API for better stability
  • Adding comprehensive error handling
  • Implementing transaction logging
  • Setting up monitoring for stuck transactions

Resources

Last modified on April 13, 2026