TON 주소 변환기란?
TON 주소 변환기는 The Open Network의 한 계정을 원시 형식(workchain:hash, 예: 0:83df…31a8)과 TON 주소 문서에 정의된 사용자 친화적 형식 사이에서 변환합니다. 후자는 플래그, workchain, 해시, CRC16 체크섬으로 이루어진 36바이트 구조를 base64로 인코딩한 익숙한 48자 문자열 EQ…(bounceable)와 UQ…(non-bounceable)입니다. 모든 형식은 같은 스마트 컨트랙트 계정을 가리키며, 보내는 쪽이 그 계정을 어떻게 다룰지 지시하는 방식만 다릅니다.
사용자 친화적 주소의 구조
| 바이트 | 필드 | 의미 |
|---|---|---|
| 0 | 태그 | 0x11 bounceable, 0x51 non-bounceable; 테스트넷 전용은 0x80을 더함(0x91, 0xD1) |
| 1 | Workchain | 0x00 basechain, 0xFF masterchain(부호 있는 바이트로 -1) |
| 2–33 | 계정 해시 | 컨트랙트 초기 상태(코드 + 데이터)의 SHA-256 |
| 34–35 | CRC16 | 0–33번 바이트에 대한 CRC-16/XMODEM, big-endian |
36바이트의 base64는 패딩 없이 정확히 48자이므로 모든 사용자 친화적 TON 주소는 길이가 같습니다. 앞 두 글자는 태그와 workchain 바이트의 상위 비트에서 나옵니다. 메인넷 workchain 0은 EQ와 UQ, masterchain은 Ef와 Uf, 테스트넷은 kQ와 0Q입니다.
예시
원시 주소 0:83dfd552e63729b472fcbcc8c45ebcc6691702558b68ec7527e1ba403a0f31a8을 예로 들어 봅니다. 앞에 태그 0x11과 workchain 0x00을 붙이고, 그 34바이트의 CRC-16/XMODEM을 덧붙인 뒤 base64url로 인코딩하면 bounceable 형식 EQCD39VS5jcptHL8vMjEXrzGaRcCVYto7HUn4bpAOg8xqB2N이 됩니다. 태그를 0x51로 바꾸면 첫 글자와 체크섬이 바뀌어 UQCD39VS5jcptHL8vMjEXrzGaRcCVYto7HUn4bpAOg8xqEBI가 됩니다. 해시가 같으므로 가운데 43자는 동일합니다. 위에 어느 문자열이든 붙여넣으면 도구가 원시 형식을 복원하고 네 가지 변형을 모두 보여 줍니다.
Bounceable과 non-bounceable: 무엇을 쓸까
- 사람에게 보낼 때. non-bounceable
UQ…형식을 사용하세요. 상대방의 지갑 컨트랙트가 아직 배포되지 않았다면(완전히 새 지갑) bounceable 전송은 되돌아와 상대방이 아무것도 받지 못합니다. - 스마트 컨트랙트를 호출할 때. bounceable
EQ…형식을 사용하세요. 호출이 실패하면 컨트랙트가 메시지를 되돌려 TON이 수수료를 제외하고 돌아오며, 묶이지 않습니다. - 거래소 입금. 메모나 코멘트를 포함해 거래소의 안내를 따르세요. 주소 형식이 목적지를 바꾸지는 않지만, 플래그는 실패 시 동작을 바꿉니다.
CRC 검사가 중요한 이유
TON 주소는 base64이므로 한 글자만 틀려도 해시가 조용히 바뀌고, 바뀐 해시는 다른(아마도 존재하지 않는) 계정입니다. CRC16은 한 글자 오류는 전부, 여러 글자 오류는 대부분 잡아냅니다. 이 도구는 체크섬이 실패한 사용자 친화적 주소는 변환을 거부하며, 의도를 추측하지 않습니다. 원시 주소에는 체크섬이 아예 없으므로 원시 주소를 변환할 때 결과는 붙여넣은 hex만큼만 정확합니다. 앞뒤 글자를 원본과 비교하세요.
일반적인 용도
- 노드, 익스플로러 API, TON Connect 매니페스트가 출력한 원시 주소를 지갑이 받아들이는 형식으로 변환하기.
- 컨트랙트 목록의 bounceable 주소를 새 지갑에 보내기 전에 non-bounceable 형식으로 바꾸기.
- 누군가 보낸 주소가 테스트넷 전용 형식인지 확인하기.
이 사이트의 다른 주소 도구: 암호화폐 주소 검증기와 Tron 주소 변환기.