Lucid
  • USING LUCID
    • Welcome to Lucid
    • Homepage
    • Explore Page
    • Organisation Summary Page
    • Sidebar Navigation
  • Organisation Creation Page
  • Creating an Organisation
    • 1. Setup Organisation Details
    • 2. Module Selection
    • 3. Module Configuration
    • 4. Safe and Protocol Upgrades Configuration
    • 5. Governor Configuration
    • 6. Veto and Multi-Bridge Configuration
    • 7. Token Configuration
    • 8. Asset Transfer Portals Configuration
    • 9. Review and Deploy Organisation
    • 10. Lucid Post-Deployment Integration
  • Editing an Organisation
  • Modules and integrations
    • Multi-Bridge
      • Multi-Bridge Asset Transfers
      • Multi-Bridge Message and Asset Transfers
      • Resend Transaction
    • Bridge Portals
    • Vested Emission Offerings (VEOs)
      • VEO Purchase Flow
      • VEO Creation Flow
      • VEO Removal Flow
      • Claiming Vested Tokens
    • Wizard | Protocol Upgrades
  • Developer Reference
    • VEOs
      • Vesting Options
      • Price Models
      • Debt Buffer
      • Deposit Interval
    • Message Bridging
      • Sending a Message
      • Message Execution
      • Admin Functions
    • Asset Bridging
      • Bridging Assets
      • Admin Functions
    • Adapters
      • Axelar Adapter
      • CCIP Adapter
      • Connext Adapter
      • Hyperlane Adapter
      • LayerZero Adapter
      • Polymer Adapter
      • Wormhole Adapter
    • Deployed Contracts
      • Multibridge Contracts
      • VEO Contracts
  • API Reference
  • RESOURCES
    • About
    • Fees
      • Lucid Pricing and Fee Structure
      • Fee Estimates for Bridges
    • Frequently Asked Questions
    • Key Terms and Explanations
    • Contact
Powered by GitBook
On this page
  • Key Features
  • Existing tokens
  • Roles and Permissions
  1. Developer Reference

Asset Bridging

PreviousAdmin FunctionsNextBridging Assets

Last updated 1 month ago

The AssetController enables cross-chain asset transfers by minting and burning tokens like xERC20 on different chains. It uses a flexible and bridge-agnostic architecture powered by , allowing transfers through one or multiple bridge systems. These controllers contracts are deployed and controlled exclusively by the Project, and Lucid has no control over them. An AssetController can only bridge one token in a chain. Asset Controller contracts are deployed from the Lucid App using a Create3 factory, meaning they have the same addresses in all the chains they have been deployed.

Projects can deploy their own AssetController contracts on any supported chain that an xERC20 token exists. The protocol supports multi-bridge relay validation, custom thresholds, resend mechanisms, pause controls, and role-based permissions. AssetController contacts deployed via the Lucid App

The AssetController enables cross-chain asset transfers by minting and burning tokens such as xERC20 across different chains. It follows a flexible, bridge-agnostic architecture powered by Adapters, allowing assets to be transferred using one or multiple bridge systems.

These contracts are deployed and controlled exclusively by the project — Lucid has no control over them. An AssetController can only bridge one token per chain.

Asset Controllers are deployed from the Lucid App using a Create3 factory, which ensures that they have the same address on every chain where they are deployed.

Projects can deploy their own AssetController contracts on any supported chain where an xERC20 token exists. The protocol supports multi-bridge relay validation, configurable thresholds, resend mechanisms, pause controls, and role-based permissions.

Key Features

Token Management

AssetControllers manage the minting and burning of a specified token across chains using one or multiple bridge adapters. Only xERC20 tokens, or other ERC20 tokens that delegate mint and burn rights to the controller, are supported. Full conformance with the xERC20 standard is not required.

Cross-Chain Transfer Flow

An AssetController burns the token on the source chain, sends a "mint" message via selected bridge adapters, and mints the equivalent amount to the user on the destination chain.

Bridge-Agnostic Architecture

Supports multiple bridge systems through pluggable adapter contracts, allowing flexibility and extensibility as new bridges are added.

Resend Mechanism

If a transfer fails due to a bridge issue, it can be resent through alternate whitelisted adapters without the risk of duplicate execution or asset loss.

Bridge Adapter Limits

Each bridge adapter used for minting is subject to a configurable 24-hour mint and burn limit, allowing for fine-grained control and added safety.

Higher Limits with Multiple Bridges

Large transfers that exceed a single bridge’s limit can be handled by using multiple approved bridges. Minting only occurs when a minimum number of adapters confirm delivery, improving throughput and resilience.

Replay Protection

Every transfer is uniquely identified and tracked to prevent duplicate minting or re-execution.

Token Unwrapping on Destination

When paired with an xERC20 lockbox, transfers can be configured to unwrap the token on the destination chain and deliver the original asset to the recipient.

Existing tokens

An AssetController can be used to bridge:

  • Existing xERC20 tokens

  • Other ERC20 tokens that can assign mint and burn rights to the controller

The controller will check for the following interfaces:

function mint(address _user, uint256 _amount) public;
function burn(address _user, uint256 _amount) public;

or

function burnFrom(address _user, uint256 _amount) public;

or

function burn(uint256 _amount) public;

function crosschainMint(address _to, uint256 _amount) external;
function crosschainBurn(address _from, uint256 _amount) external;

If you're using xERC20 or ERC7802 tokens, the token contract owner must grant sufficient mint/burn limits to the AssetController on each chain where the controller is deployed. These limits should match the sum of all 24-hour limits from whitelisted bridge adapters — to ensure successful minting on transfers.

For new xERC20 tokens deployed via the Lucid App, this configuration is handled automatically.

Roles and Permissions

Asset Controllers use a role-based access control system to ensure that only authorized accounts can perform sensitive operations.

Admin Role (DEFAULT_ADMIN_ROLE)

This is the highest authority in the contract. Accounts with this role can:

  • Grant or revoke the Pause Role

  • Whitelist bridge adapters and set their 24-hour mint/burn limits

  • Set the minimum number of bridges required for unrestricted transfers

  • Whitelist bridge adapters for unrestricted bridging

  • Set the addresses of AssetController contracts on other chains

For detailed instructions on calling each function, please refer to the relevant function documentation: Admin Functions

Pause Role (PAUSE_ROLE)

Accounts with this role can:

  • Pause or unpause the contract. Pausing stops message sending, resending, and execution.

If the token conforms to , it must expose and support mint/burn interfaces such as:

When deployed via the Lucid App, the Pause Role is automatically assigned to — Lucid’s smart contract monitoring partner — who will pause the contract if malicious activity or a hack is detected.

Adapters
ERC7802
Hypernative