지갑 관리 가이드
FlutterDev 블록체인은 두 가지 지갑 옵션을 제공합니다:
- FlutterWallet - 웹 기반 지갑 (추천)
- Admin Panel - 개발/테스트용 지갑 관리
FlutterWallet (추천)
URL: https://wallet.flutterdev.online
FlutterWallet은 NEAR Wallet과 유사한 웹 기반 지갑입니다. DEX, Lending 등 dApp과 자동으로 연동됩니다.
지갑 생성
- wallet.flutterdev.online 접속
- 새 지갑 만들기 클릭
- 비밀번호 설정 (8자 이상)
- 복구 문구(Mnemonic) 백업 - 매우 중요!
- 복구 문구 확인
- 지갑 생성 완료
복구 문구 백업
복구 문구는 지갑을 복구하는 유일한 방법입니다. 반드시 안전한 곳에 기록해두세요.
기존 지갑 가져오기
- 시작 화면에서 기존 지갑 복구 클릭
- 복구 문구 12단어 입력
- 새 비밀번호 설정
- 가져오기 완료
dApp 연결하기
FlutterWallet은 FlutterDex, FlutterLend 등과 자동으로 연동됩니다.
┌─────────────────────────────────────────────────────────────┐
│ 연결 흐름 │
│ │
│ 1. dApp에서 "Connect Wallet" 클릭 │
│ ↓ │
│ 2. FlutterWallet으로 자동 이동 │
│ ↓ │
│ 3. 지갑 잠금 해제 (비밀번호 입력) │
│ ↓ │
│ 4. 연결 승인/거부 선택 │
│ ↓ │
│ 5. dApp으로 자동 복귀 (주소 전달) │
└─────────────────────────────────────────────────────────────┘트랜잭션 승인
dApp에서 트랜잭션 요청 시 FlutterWallet에서 승인합니다:
┌─────────────────────────────────────────────────────────────┐
│ 트랜잭션 승인 화면 │
│ │
│ 요청 사이트: dex.flutterdev.online │
│ │
│ ┌─────────────────────────────────────┐ │
│ │ 보내는 계정: 0x1234...5678 │ │
│ │ 받는 주소: 0xabcd...efgh │ │
│ │ 전송 금액: 1.5 ETH │ │
│ └─────────────────────────────────────┘ │
│ │
│ [ 거부 ] [ 승인 ] │
└─────────────────────────────────────────────────────────────┘토큰 전송
- 지갑 메인 화면에서 보내기 클릭
- 받는 주소 입력
- 토큰 선택 (ETH, FDT, USDC, DAI)
- 금액 입력
- 전송 클릭
계정 관리
- 계정 추가: 설정 > 계정 관리 > 새 계정 추가
- 계정 전환: 상단 계정 선택기 클릭
- 주소 복사: 주소 옆 복사 버튼 클릭
Admin Panel
URL: https://flutterdev.online/admin
개발자용
Admin Panel은 개발/테스트 목적으로 사용됩니다. 일반 사용자는 FlutterWallet을 사용하세요.
프리펀드 지갑
시스템에 미리 생성된 테스트용 지갑들이 있으며, 각각 10억 ETH가 들어있습니다.
지갑 목록 확인
- Admin Panel 접속
- Wallets 섹션에서 전체 지갑 목록 확인
- 각 지갑의 주소와 잔액 표시
지갑 상세 정보
지갑 클릭 시:
- Address: 지갑 주소
- Balance: ETH 잔액
- Private Key: 개인키 (복사 가능)
새 지갑 생성
Admin Panel에서 생성
- Create Wallet 버튼 클릭
- 지갑 이름 입력 (선택)
- 자동으로 새 지갑 생성
- Mnemonic phrase 표시 (한 번만 표시됨, 반드시 백업)
프로그래밍으로 생성
javascript
const { ethers } = require('ethers');
// 새 지갑 생성
const wallet = ethers.Wallet.createRandom();
console.log('Address:', wallet.address);
console.log('Private Key:', wallet.privateKey);
console.log('Mnemonic:', wallet.mnemonic.phrase);지갑 가져오기
Private Key로 가져오기
- Admin Panel에서 Import Wallet 클릭
- Private Key 입력
- 지갑 이름 입력 (선택)
- Import 클릭
Mnemonic으로 복구
javascript
const { ethers } = require('ethers');
const mnemonic = "your twelve word mnemonic phrase here";
const wallet = ethers.Wallet.fromPhrase(mnemonic);
console.log('Address:', wallet.address);
console.log('Private Key:', wallet.privateKey);ETH 전송
Admin Panel에서 전송
- 지갑 선택
- Send 버튼 클릭
- 받는 주소 입력
- 전송할 금액 입력
- Send Transaction 클릭
API로 전송
bash
curl -X POST https://flutterdev.online/api/send \
-H "Content-Type: application/json" \
-d '{
"fromWalletId": 1,
"toAddress": "0x...",
"amount": "1.5"
}'ethers.js로 전송
javascript
const { ethers } = require('ethers');
const provider = new ethers.JsonRpcProvider('https://rpc.flutterdev.online');
const wallet = new ethers.Wallet('YOUR_PRIVATE_KEY', provider);
const tx = await wallet.sendTransaction({
to: '0x...',
value: ethers.parseEther('1.0')
});
console.log('TX Hash:', tx.hash);
await tx.wait();
console.log('Transaction confirmed');잔액 확인
Admin Panel
지갑 목록에서 실시간 잔액 표시
API
bash
curl https://flutterdev.online/api/balance/0x...ethers.js
javascript
const balance = await provider.getBalance('0x...');
console.log('Balance:', ethers.formatEther(balance), 'ETH');MetaMask 연동
계정 가져오기
- MetaMask 열기
- 계정 아이콘 → Import Account
- Private Key 붙여넣기
- Import 클릭
네트워크 설정
network.md 문서 참조
보안 주의사항
Private Key 관리
- Private Key는 절대 공개하지 마세요
- 안전한 장소에 백업하세요
- 테스트넷이라도 실제 자금처럼 관리하세요
Mnemonic 백업
- 생성 시 표시되는 Mnemonic은 한 번만 표시됩니다
- 반드시 안전한 곳에 기록해두세요
테스트 전용
- 이 플랫폼은 개발/테스트 용도입니다
- 실제 자산을 보관하지 마세요
데이터베이스 직접 접근
PostgreSQL에 직접 접근이 필요한 경우:
bash
# Docker 컨테이너 접속
docker exec -it admin-db psql -U admin -d wallet_manager
# 지갑 목록 조회
SELECT id, name, address, created_at FROM wallets;
# 특정 지갑 상세 (Private Key 포함)
SELECT * FROM wallets WHERE id = 1;트랜잭션 기록
조회
bash
curl https://flutterdev.online/api/transactions데이터베이스 직접 조회
sql
SELECT * FROM transactions ORDER BY created_at DESC LIMIT 100;