Asset Bridging

The AssetController enables cross-chain asset transfers by minting and burning tokens like xERC20 or ERC7802 -compatible tokens in different chains. It uses a flexible and bridge-agnostic architecture powered by Adapters, allowing transfers through one or multiple bridges. 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 a mint&burn type of token exists (like xERC20, ERC7802, etc). The protocol supports multi-bridge relay validation, custom thresholds, resend mechanisms, pause controls, and role-based permissions.

For tokens that are not cross-chain compatible with the mint&burn model, Projects can deploy a LockReleaseAssetController from the Lucid App, which will handle locking the token on one chain and mint it to the destination chain. This setup supports both existing tokens deployed in different chains or gives the option to the Project to make their token available cross-chain by deploying mint&burn type of tokens on new chains through Lucid.

Lock and Release Asset Controller

How It Works?

Lucid’s Lock & Release Asset Controller is designed to support projects that have existing token contracts deployed on a single chain and want to go multi-chain—even if their original token lacks mint/burn functionality.

This module acts as a one-way lockbox on the origin chain and enables token bridging by releasing tokens when a valid cross-chain “mint” message is received. It works in tandem with Lucid’s standard AssetController contracts on destination chains, which are deployed alongside Lucid-compatible bridge adapters.


How It Works

  • On the source chain: the LockReleaseAssetController receives tokens from users and locks them in escrow.

  • A cross-chain message is then sent to the destination chain using Lucid’s multi-bridge infrastructure.

  • On the destination chain: the paired asset controller contract mints tokens to the recipient.

  • When users want to bridge tokens back, the reverse flow occurs—tokens are burned on the destination chain, and the LockReleaseAssetController unlocks the corresponding amount on the source chain.

🔒 Only one Lock & Release controller should exist per token/project to ensure liquidity guarantees on the locking chain.

Use-Cases

1. Existing Token on One Chain Without Mint/Burn

For projects that:

  • Have deployed tokens on a single chain without mint/burn functionality

  • Want to expand to multiple chains

Solution:

  • Deploy Lucid’s LockReleaseAssetController on the origin chain

  • Deploy new token contracts (with mint/burn capabilities) and standard AssetControllers on destination chains

  • All outbound transfers lock tokens on the origin and mint them elsewhere

  • Inbound transfers burn the destination tokens and unlock from origin

📌 This architecture preserves liquidity on the origin chain and ensures all wrapped tokens remain 1:1 backed.


2. Projects Already Multi-Chain, But Seeking Lower-Cost Bridge and Faster Transfers

For projects that:

  • Already operate on multiple chains using a third-party bridge

  • Have mint/burn rights on their token contracts on destination chains

Solution:

  • Deploy a LockReleaseAssetController on the origin chain

  • Deploy Lucid-compatible AssetControllers on destination chains

  • Assign mint/burn permissions to the controllers on destination chains

  • Enable any supported Lucid bridge adapters for cheaper and faster transfers

📌 Users benefit from faster bridging and lower gas costs without sacrificing control or needing to re-deploy base token contracts.

Making Asset Controller More Abstract

Supporting any token standard with mint/burn capabilities, not just XERC20 or EIP-7802 compatible tokens. Why and How?

Lucid’s Asset Controller has been upgraded to support any token standard with mint/burn capabilities, not just XERC20 or EIP-7802 compatible tokens. This abstraction allows developers and existing protocols to integrate with Lucid’s bridging infrastructure, regardless of the token contract’s underlying standard—so long as they can delegate mint and burn rights.

This flexibility is especially valuable for projects that already have deployed tokens across chains and want to benefit from Lucid’s multi-bridge, cross-chain messaging infrastructure without having to redeploy or rewrite their token contracts.


Why Abstract the Asset Controller?

Previously, Lucid’s bridging modules were tied to a specific token interface (XERC20). That limited compatibility and forced projects to adopt a standard they might not use.

Now, by making the Asset Controller standard-agnostic, Lucid opens the door to:

  • Wider token support: Projects using custom ERC-20 variants, older token standards, or bespoke logic can now plug into Lucid infrastructure.

  • Simple onboarding: Projects don’t need to redeploy or wrap their token contracts. They can onboard their existing tokens by configuring their mint/burn methods.

  • Multichain flexibility: Each chain can have different function signatures, and the Asset Controller adapts as long as the proper selectors are provided at deployment.


How It Works (Conceptually)

During organization creation in the Lucid front-end (FE):

  • If a project is onboarding an existing token, they simply enter or select the mint() and burn() function selectors from a dropdown menu or manual input. These selectors are stored as bytes4 and define how the Asset Controller interacts with the token contract.

  • If a project deploys a new token using Lucid’s UI, Lucid defaults to the known selectors of the XERC20 standard.

  • Once set during deployment, the function selectors cannot be changed. This ensures safety and consistency in mint/burn logic across all chains.

By accepting these custom selectors, the Asset Controller becomes fully modular—capable of bridging tokens across chains regardless of their internal architecture, as long as minting and burning can be delegated.


Impact on Org Creation Flow

Lucid’s Org creation page will support two onboarding paths:

  1. Existing Token Integration

    • The user selects the token contract address.

    • Provides or selects the mint() and burn() function selectors specific to the token.

    • Lucid deploys the Asset Controllers with those settings.

  2. New Token Deployment

    • Users choose to deploy a fresh token via the Lucid UI.

    • Lucid uses default selectors compatible with XERC20.

This makes it easy to bring legacy tokens, custom implementations, and non-standard ERC20s into Lucid’s multichain ecosystem with full compatibility.

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

For xERC20 tokens, 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 or ERC7802 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;

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

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.

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

Last updated