# LUMIA Migration Sepolia–Beam

## **Overview**

Lumia is transitioning its **LUMIA testnet token** from the **Sepolia Ethereum testnet** to the **Beam Network**. This includes deploying bridging infrastructure and token contracts on Beam to support testnet users and developers in the new environment.

## **Bridging LUMIA Tokens from Sepolia to Beam**

To bridge your testnet LUMIA tokens:

1. Visit the official [**Lumia Beam Bridge**](https://beam-bridge.lumia.org/).&#x20;
2. Click **Connect using web wallet** and proceed to connect your wallet on the **Sepolia network**.<br>

   <div align="left"><figure><img src="/files/OBzLNk1WDDnm8MKyUgNG" alt="" width="375"><figcaption></figcaption></figure></div>
3. Select Sepolia Testnet as **From**, select **LUMIA** as the token and enter a desired amount. Then click **Continue**.<br>

   <div align="left"><figure><img src="/files/lSb2GNRtRDppZzMiM7Dh" alt="" width="375"><figcaption></figcaption></figure></div>
4. Click **Allow Bridge to spend my LUMIA** to approve the Bridge access to the amount you chose at #3. <br>

   <div align="left"><figure><img src="/files/zttP1QsMypYkZNG4QfST" alt="" width="375"><figcaption></figcaption></figure></div>
5. Confirm approval in your wallet.\
   ![](/files/8F1aOHDCqwYgeg6cQDF7)
6. Click **Bridge** and proceed to bridge your LUMIA to Beam.<br>

   <div align="left"><figure><img src="/files/9vhXYefis5YOlLzgd9EM" alt="" width="375"><figcaption></figcaption></figure></div>
7. Confirm the sending trasaction in your wallet.\
   ![](/files/8J5PvWMJMQoYJE7stMxu)
8. Wait a few minutes for the bridging to finalize.
9. At the [**Lumia Beam Bridge**](https://beam-bridge.lumia.org/) click **Add a network** and confirm adding Beam network to your wallet.<br>

   <div align="left"><figure><img src="/files/BU7zVMIPxm5sbllwjiP9" alt="" width="375"><figcaption></figcaption></figure></div>
10. At the [**Activity**](https://beam-bridge.lumia.org/activity) tab, click your bridging and check its status. Once it is **Completed**, switch to the Beam network in your wallet to see the bridged LUMIA.<br>

    <div align="left"><figure><img src="/files/UisObzpirKS5HzpEEzcz" alt="" width="375"><figcaption></figcaption></figure></div>

## **URLs**

Blockscout: <https://beam-explorer.lumia.org\\>
RPC: <https://beam-rpc.lumia.org\\>
Faucet: <https://beam-faucet.lumia.org\\>
Bridge: <https://beam-bridge.lumia.org>

## **Contract Addresses & Roles**

| Contract                                                                                                                             | Address                                      | Purpose                                                          |
| ------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------- | ---------------------------------------------------------------- |
| [**Bridge Contract**](https://beam-explorer.lumia.org/address/0x528e26b25a34a4A5d0dbDa1d57D318153d2ED582?tab=contract) **(on Beam)** | `0x528e26b25a34a4A5d0dbDa1d57D318153d2ED582` | Handles bridging of LUMIA                                        |
| [**Bridge Contract**](https://sepolia.etherscan.io/address/0x528e26b25a34a4a5d0dbda1d57d318153d2ed582#code) **(on Sepolia)**         | `0x528e26b25a34a4a5d0dbda1d57d318153d2ed582` | Handles bridging of LUMIA                                        |
| [**Sequencer**](https://beam-explorer.lumia.org/address/0x660100aA52d5A2B1dF9b57680CeCaE15EBD5d413)                                  | `0x660100aA52d5A2B1dF9b57680CeCaE15EBD5d413` | Address responsible for ordering transactions in the Beam rollup |
| [**ClaimTxManager**](https://beam-explorer.lumia.org/address/0x1f4081a1b03472bcEC12aa15deEa2Edd117D4CE1) **(Layer 2)**               | `0x1f4081a1b03472bcEC12aa15deEa2Edd117D4CE1` | Address that submits claim transactions                          |
| [**CoinBase**](https://beam-explorer.lumia.org/address/0x6089EA70f401Df85Aa3fCE90CE3ffbA6C4206eE8) **(Fee Collector)**               | `0x6089EA70f401Df85Aa3fCE90CE3ffbA6C4206eE8` | Address that accumulates gas fees collected on Beam              |
| [**BurnerSmartContract**](https://beam-explorer.lumia.org/address/0x078413b8b5a2614081813619c594fE84Ef839535?tab=contract)           | `0x078413b8b5a2614081813619c594fE84Ef839535` | Handles LUMIA token burning logic                                |
| [**LUMIA**](https://sepolia.etherscan.io/address/0x5787a0c1ccf0c94d99fe5725120ab1f7482ed9e8#code)                                    | `0x5787a0c1ccf0c94d99fe5725120ab1f7482ed9e8` | LUMIA token on Sepolia                                           |

***

## **Interacting with the Contracts**

Developers and Advanced Users can interact directly with the contracts.

The main flow is as such:

1. Call [approve](https://sepolia.etherscan.io/address/0x5787a0c1ccf0c94d99fe5725120ab1f7482ed9e8#writeContract#F1) to approve the bridge access to LUMIA.
2. Call [bridgeAsset](https://sepolia.etherscan.io/address/0x528e26b25a34a4a5d0dbda1d57d318153d2ed582#writeProxyContract#F3) to transfer the approved LUMIA from Sepolia to Beam.
3. Wait for the sequences address to pick up the event and react (order and sumbit the tx). It may take up to 45 mins (around 15 in reality). \
   Claiming is automated, you don't need to take any additional action to see the bridged LUMIA tokens in your wallet on Beam.

### Code examples

Code examples for interaction:

**Solidity**

```
// SPDX-License-Identifier: MIT pragma solidity ^0.8.19;

import "forge-std/Script.sol";

interface ILumiaBridge { 
    function sendToBeam(address recipient, uint256 amount) external; 
}

contract BridgeLumia is Script { 
    address constant BRIDGE = 0x528e26b25a34a4A5d0dbDa1d57D318153d2ED582; 
    address constant TOKEN = /* Sepolia token contract address, if needed for approve */;

    function run() external {
        address user = vm.envAddress("USER_ADDRESS");
        uint256 amount = 1e18; // 1 LUMIA

        vm.startBroadcast();

        ILumiaBridge(BRIDGE).sendToBeam(user, amount);

        vm.stopBroadcast();
    }
}
```

**ethers.js**

```
const { ethers } = require("ethers");

const BRIDGE_ADDRESS = "0x528e26b25a34a4A5d0dbDa1d57D318153d2ED582";
const BRIDGE_ABI = [
  "function sendToBeam(address recipient, uint256 amount) external"
];

async function main() {
  const provider = new ethers.JsonRpcProvider("https://rpc.sepolia.org");
  const wallet = new ethers.Wallet("YOUR_PRIVATE_KEY", provider);

  const bridge = new ethers.Contract(BRIDGE_ADDRESS, BRIDGE_ABI, wallet);

  const recipient = "0xYourBeamWalletAddress";
  const amount = ethers.parseUnits("1", 18); // 1 LUMIA

  const tx = await bridge.sendToBeam(recipient, amount);
  console.log("Tx sent:", tx.hash);

  await tx.wait();
  console.log("Bridged successfully");
}

main().catch(console.error);

```

## **Recommendations**

* **If needed, add Beam Testnet to MetaMask** using provided RPC/ChainID:

  ```
  RPC URL: https://beam-rpc.lumia.org
  Chain ID: 2030232745
  Explorer: https://beam-explorer.lumia.org
  ```
* **Bridge only small amounts of test tokens first** to validate the process.
* Monitor transactions on the explorer: <https://beam-explorer.lumia.org>.
* If you're building on top of Lumia/Beam, consider:
  * **Verifying custom contracts** on the Beam Blockscout.
  * **Registering your Chain ID** in global registries to ensure broader tool compatibility.
* **Token Faucet**: Use <https://beam-faucet.lumia.org> for testnet tokens to cover gas fees.
* **Security**: Ensure you verify contract interactions and ABIs before executing write functions directly.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.lumia.org/lumia/lumia-token/lumia-migration-sepolia-beam.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
