Bridging Animecoin (ANIME) Across Layers – The Hard Way¶
All ANIME originates on Ethereum L1. The versions on L2 and L3 are wrapped representations of the mainnet token.
- ANIME tokens can be wrapped from L1 to L2 to be used on Arbitrum.
- ANIME tokens MUST be wrapped from L1 to L3 or from L2 to L3 to use AnimeChain natively.
This guide covers the manual paths and contract-based flows between Ethereum (L1), Arbitrum One (L2), and AnimeChain (L3).
🔄 Overview of Paths¶
From | To | Bridge / UI | Challenge Period | Typical Time |
---|---|---|---|---|
L1 Ethereum | L2 Arbitrum | Arbitrum Bridge | No | 5–15 min |
L2 Arbitrum | L3 AnimeChain | Orbit Bridge (custom) | No | <1 min |
L3 AnimeChain | L2 Arbitrum | Orbit Bridge (withdraw) | 7 days (optimistic) | 7 days |
L2 Arbitrum | L1 Ethereum | Arbitrum Bridge (withdraw) | 7 days | 7 days + L1 tx |
🚀 L1 → L2 (Ethereum → Arbitrum One)¶
- Visit the official Arbitrum Bridge.
- Connect your wallet on Ethereum.
- Select ANIME token.
- Enter the amount and click Deposit.
- Confirm the L1 transaction → wait ~12 block confirmations.
- Once complete, ANIME appears as Wrapped ANIME in Arbitrum One.
Gas Fees
You pay L1 gas fees (can be high). Consider batching deposits.
🚀 L2 → L3 (Arbitrum One → AnimeChain)¶
This uses the Orbit Bridge contract.
- Switch wallet to Arbitrum One.
- Open the upcoming dApp at bridge.animechain.xyz (placeholder).
- Select Destination: AnimeChain.
- Bridge Wrapped ANIME → input amount.
- Sign transaction (minimal gas cost on L2).
- Wait <1 minute → ANIME appears natively on AnimeChain.
⏮ L3 → L2 (AnimeChain Withdraw)¶
- Switch wallet to AnimeChain.
- In the bridge, choose Withdraw to Arbitrum One.
- Specify amount → submit.
- Challenge Period: Funds are locked ~7 days for fraud proofs.
- After the period, claim on Arbitrum One.
↩ L2 → L1 (Arbitrum Withdraw)¶
Follow standard Arbitrum withdraw flow — identical concept; 7-day challenge → claim on Ethereum.
🛠️ CLI / Script Examples¶
import { ethers } from 'ethers';
import OrbitBridgeABI from './abi/OrbitBridge.json' assert { type: 'json' };
const l2Provider = new ethers.JsonRpcProvider(process.env.ARB_RPC);
const signer = new ethers.Wallet(process.env.PRIVATE_KEY, l2Provider);
const orbitBridge = new ethers.Contract(
'0xOrbitBridge...', // Address TBD
OrbitBridgeABI,
signer
);
const tx = await orbitBridge.depositToL3(
'0xRecipient',
ethers.parseUnits('1000', 18)
);
console.log('Bridge tx:', tx.hash);
await tx.wait();
console.log('Deposited!');
task('withdraw', 'Withdraw ANIME to L2')
.addParam('amount', 'Amount in ANIME')
.setAction(async (taskArgs, hre) => {
const bridge = await hre.ethers.getContractAt('OrbitBridge', '0xOrbitBridge...');
const tx = await bridge.withdraw(
hre.ethers.parseUnits(taskArgs.amount, 18)
);
console.log('Submitted:', tx.hash);
});
🏷️ Contract Addresses (testnet)¶
Contract | L2 Address | L3 Address |
---|---|---|
Orbit Bridge | 0xBr1dgE... |
0x0rb1t... |
ANIME (ERC20) | 0xWr4pp... |
Native ANIME |
Mainnet addresses will be published post-audit.
❓ FAQ¶
Why 7 days? Optimistic rollups rely on fraud proofs — the window lets anyone challenge invalid withdrawals.
Can I speed it up? Third-party fast-withdraw services may appear; use at your own risk.