06. 스마트 컨트랙트 (ACN BEP20)
文件內文目前僅提供韓文版本。
컨트랙트 정보
| 항목 | 값 |
|---|---|
| 주소 | 0x84f956334187474b5471C55B742C33Ab0C626236 |
| 체인 | BNB Smart Chain mainnet, chainId 56 (hex 0x38) |
| 표준 | BEP20 (ERC20 호환) |
| 이름 / 심볼 | Alice Connect Network / ACN |
| 소수점 | 18 |
| 총 발행량 | 2,000,000,000 ACN (2e27 wei) |
| 익스플로러 | https://bscscan.com/token/0x84f956334187474b5471C55B742C33Ab0C626236 |
위 값은 2026-09-04에 공용 RPC로 name()/symbol()/decimals()/totalSupply()를 호출해 확인한 값이다.
프론트·백엔드는 하드코딩하지 않고 런타임에 다시 읽는다(소수점 변경 등에 대비).
이 프로젝트가 사용하는 ABI
컨트랙트 전체 ABI가 아니라 필요한 최소 집합만 쓴다. 프론트는 viem의 erc20Abi, 백엔드는 chain.py의 BEP20_ABI.
| 함수/이벤트 | 용도 |
|---|---|
name() → string | 표시 |
symbol() → string | 표시 |
decimals() → uint8 | 금액 변환 |
totalSupply() → uint256 | 메타데이터 |
balanceOf(address) → uint256 | 잔액 |
transfer(address to, uint256 value) → bool | 전송(사용자가 지갑에서 서명) |
event Transfer(address indexed from, address indexed to, uint256 value) | 내역 인덱싱 |
Transfer 이벤트 시그니처 해시: keccak256("Transfer(address,address,uint256)")
= 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
네트워크 파라미터 (지갑에 수동 추가 시)
| 항목 | 메인넷 | 테스트넷 |
|---|---|---|
| chainId | 56 | 97 |
| RPC | https://bsc-rpc.publicnode.com | https://data-seed-prebsc-1-s1.binance.org:8545 |
| 통화 | BNB | tBNB |
| 익스플로러 | https://bscscan.com | https://testnet.bscscan.com |
주의
- 전송 가스는 BNB로 지불된다. ACN 잔액이 있어도 BNB가 없으면 전송이 실패하므로 UI에 BNB 잔액을 함께 표시한다.
- 컨트랙트에 수수료/블랙리스트/일시정지 같은 커스텀 로직이 있다면
transfer가 revert되거나 수령액이 달라질 수 있다. 소스가 검증되어 있다면 BscScan의 Contract 탭에서 확인하고, 운영 전 테스트넷 또는 소액으로 실제 전송을 검증한다. - 컨트랙트 주소를 변경할 때는
frontend/.env.local의NEXT_PUBLIC_TOKEN_ADDRESS와backend/.env의TOKEN_ADDRESS를 둘 다 바꾼다.
