123 lines
2.7 KiB
Markdown
123 lines
2.7 KiB
Markdown
|
|
# Bridge User Guide
|
||
|
|
|
||
|
|
## Overview
|
||
|
|
|
||
|
|
This guide explains how to use the trustless bridge to transfer assets from ChainID 138 to Ethereum Mainnet.
|
||
|
|
|
||
|
|
## Quick Start
|
||
|
|
|
||
|
|
### Step 1: Prepare Your Wallet
|
||
|
|
|
||
|
|
1. Connect wallet to ChainID 138
|
||
|
|
2. Ensure sufficient ETH for gas
|
||
|
|
3. Have assets to bridge (ETH or WETH)
|
||
|
|
|
||
|
|
### Step 2: Deposit Assets
|
||
|
|
|
||
|
|
**For Native ETH**:
|
||
|
|
```solidity
|
||
|
|
lockbox.depositNative{value: amount}(recipient, nonce);
|
||
|
|
```
|
||
|
|
|
||
|
|
**For WETH**:
|
||
|
|
```solidity
|
||
|
|
weth.approve(address(lockbox), amount);
|
||
|
|
lockbox.depositERC20(address(weth), amount, recipient, nonce);
|
||
|
|
```
|
||
|
|
|
||
|
|
### Step 3: Wait for Bridge
|
||
|
|
|
||
|
|
1. Relayer submits claim (usually within minutes)
|
||
|
|
2. Challenge window (30 minutes)
|
||
|
|
3. Claim finalizes
|
||
|
|
4. Funds available in liquidity pool
|
||
|
|
|
||
|
|
### Step 4: Receive Funds
|
||
|
|
|
||
|
|
Funds are automatically available in liquidity pool after finalization. Recipient can withdraw or use funds.
|
||
|
|
|
||
|
|
## Detailed Process
|
||
|
|
|
||
|
|
### Deposit Process
|
||
|
|
|
||
|
|
1. **Generate Nonce**: Create unique nonce for your deposit
|
||
|
|
2. **Call Deposit Function**: Use `depositNative()` or `depositERC20()`
|
||
|
|
3. **Receive Deposit ID**: Note the deposit ID from event
|
||
|
|
4. **Monitor**: Track deposit status
|
||
|
|
|
||
|
|
### Claim Process (Automatic)
|
||
|
|
|
||
|
|
1. **Relayer Monitors**: Relayer detects your deposit
|
||
|
|
2. **Claim Submitted**: Relayer submits claim with bond
|
||
|
|
3. **Challenge Window**: 30 minutes for challenges
|
||
|
|
4. **Finalization**: Claim finalizes if not challenged
|
||
|
|
|
||
|
|
### Receiving Funds
|
||
|
|
|
||
|
|
1. **Automatic**: Funds available in liquidity pool
|
||
|
|
2. **Withdraw**: Use liquidity pool functions
|
||
|
|
3. **Swap**: Optional swap to stablecoin via coordinator
|
||
|
|
|
||
|
|
## Fees
|
||
|
|
|
||
|
|
### Current Fees
|
||
|
|
|
||
|
|
- **Bridge Fee**: None (relayers may add fees in future)
|
||
|
|
- **LP Fee**: 0.05% (deducted from bridge amount)
|
||
|
|
- **Gas Fees**: Standard Ethereum gas fees
|
||
|
|
|
||
|
|
### Fee Calculation
|
||
|
|
|
||
|
|
```
|
||
|
|
Bridge Amount: 10 ETH
|
||
|
|
LP Fee: 10 ETH * 0.0005 = 0.005 ETH
|
||
|
|
Receive: 9.995 ETH
|
||
|
|
```
|
||
|
|
|
||
|
|
## Security
|
||
|
|
|
||
|
|
### Bond Security
|
||
|
|
|
||
|
|
- Relayers post bonds (110% of deposit)
|
||
|
|
- Bonds slashed if fraud detected
|
||
|
|
- Economic security model
|
||
|
|
|
||
|
|
### Challenge Window
|
||
|
|
|
||
|
|
- 30 minutes for fraud detection
|
||
|
|
- Anyone can challenge fraudulent claims
|
||
|
|
- Challengers earn 50% of slashed bond
|
||
|
|
|
||
|
|
## Troubleshooting
|
||
|
|
|
||
|
|
### Deposit Failed
|
||
|
|
|
||
|
|
- Check sufficient balance
|
||
|
|
- Verify nonce is unique
|
||
|
|
- Check gas limit
|
||
|
|
|
||
|
|
### Claim Not Finalized
|
||
|
|
|
||
|
|
- Wait for challenge window (30 minutes)
|
||
|
|
- Check if claim was challenged
|
||
|
|
- Verify relayer submitted claim
|
||
|
|
|
||
|
|
### Funds Not Received
|
||
|
|
|
||
|
|
- Verify claim was finalized
|
||
|
|
- Check liquidity pool balance
|
||
|
|
- Contact support if needed
|
||
|
|
|
||
|
|
## Support
|
||
|
|
|
||
|
|
- **Documentation**: `docs/bridge/trustless/`
|
||
|
|
- **Operations**: `docs/operations/`
|
||
|
|
- **Support**: [Contact Information]
|
||
|
|
|
||
|
|
## References
|
||
|
|
|
||
|
|
- Architecture: `docs/bridge/trustless/ARCHITECTURE.md`
|
||
|
|
- Security: `docs/bridge/trustless/SECURITY.md`
|
||
|
|
- Integration: `docs/bridge/trustless/INTEGRATION.md`
|
||
|
|
|