소개
MPL-3643 시작하기
Last updated September 28, 2026
이 페이지는 MPL-3643으로 개발을 시작하기 전에 갖춰야 할 것, 선택할 경로, 그리고 토큰 출시, 투자자 온보딩, 컴플라이언스 전송 흐름의 형태를 다룹니다.
MPL-3643은 Solana 메인넷에서 얼리 액세스로 운영 중입니다 — 알파 액세스를 신청하여 개발을 시작하세요.
감사 상태
MPL-3643은 감사를 받지 않았습니다. Metaplex와 협의 없이 실물 자산을 수탁하지 마세요.
요약
MPL-3643으로 개발한다는 것은 Token-2022 민트를 Token ACL, 네 개의 MPL-3643 프로그램, KYC 제공자와 조합하는 것입니다. 한 단계가 되돌릴 수 없기 때문에 수행 순서가 중요합니다.
경로 선택
세 부류의 사용자가 MPL-3643을 대상으로 개발하며, 각각 먼저 필요한 것이 다릅니다.
| 당신은 | 하고 싶은 것 | 해당 흐름 |
|---|---|---|
| RWA 발행사 | 컴플라이언스 토큰 출시 및 관리 | 토큰 출시의 흐름 |
| 통합 개발자 | 지갑, 거래소, 앱에서 MPL-3643 토큰 이동 | 컴플라이언스 전송의 흐름 |
| KYC 제공자 | 클레임을 발급하여 투자자를 적격하게 만들기 | 투자자 온보딩의 흐름 |
어떤 경로를 선택하든 하나의 사실이 다른 모든 것을 좌우합니다. 모든 MPL-3643 토큰 계정은 생성 시 동결되며, 컴플라이언스를 충족하는 지갑만 동결을 해제할 수 있습니다.
사전 요구 사항
도구
| 요구 사항 | 버전 | 이유 |
|---|---|---|
| Node.js | 20.18.0 이상 | TypeScript SDK와 생성된 클라이언트에 필요 |
| Solana CLI | 2.1.0 이상 | 데브넷 상호 작용 및 키 관리 |
| 데브넷 RPC 엔드포인트 | — | Token-2022를 지원해야 함 |
Rust 통합자는 프로그램이 빌드된 Anchor 및 Solana 툴체인 버전이 추가로 필요합니다.
온체인 사전 요구 사항
토큰에 대해 MPL-3643 명령이 성공하려면 네 가지 조건이 충족되어야 합니다.
- 민트가
DefaultAccountState = Frozen인 Token-2022여야 합니다. 이 확장은 민트 생성 후 추가할 수 없습니다. - 동결 권한이 Token ACL에 위임되어야 합니다. Token ACL 설정에서 무허가 동결 해제와 무허가 동결이 모두 활성화되고, 나중에 해당 설정을 변경할 수 없도록 설정이 봉인되어야 합니다.
- 레지스트리 토큰 발행자 역할 승인을 보유해야 합니다. 이를 통해 Metaplex의 공동 서명 없이 자체 컴플라이언스, 게이트, 수익 설정을 생성할 수 있습니다.
- 요구하는 모든 토픽을 신뢰된 어테스터가 담당해야 합니다. 고정(pin)하는 어테스터는 활성 상태이고
KYC와 함께 토큰의 필수 토픽 집합 전체에 대해 승인되어 있어야 합니다.
두 가지 민트 결정은 되돌릴 수 없습니다
DefaultAccountState = Frozen과 transfer hook 확장은 모두 민트 생성 시 고정됩니다. 훅이 없는 민트는 전송별 모듈을 나중에 얻을 수 없습니다 — 락업도, 거래량 상한도, 블랙아웃 기간도, 거래소 제한도 불가능합니다. 민트를 생성하기 전에 결정하세요.
토큰 출시의 흐름
컴플라이언스 토큰 출시는 프로그램에 의해 순서가 강제되는 부트스트랩 시퀀스입니다.
- Token-2022 민트를 생성합니다.
DefaultAccountState = Frozen을 설정하고, 전송별 모듈이 언젠가 필요할 수 있다면 transfer hook 확장도 추가합니다. - 민트에 대한 Token ACL 설정을 생성하고, 두 무허가 플래그를 활성화한 뒤 봉인합니다.
- 게이트 설정을 초기화합니다 — 원시 민트 권한이 필요합니다. 이 과정에서 토큰의 트러스트 스코프도 생성됩니다.
- 수용할 KYC 제공자를 트러스트 스코프에 추가합니다.
- 토큰이 사용하는 경우 라이프사이클 수익 및 복구 설정을 초기화합니다 — 원시 민트 권한이 필요합니다.
- 컴플라이언스 설정을 초기화합니다. 이것이 권한 이전의 경계입니다.
- 게이트의 extra account meta 목록을 초기화합니다. 이는 활성화된 컴플라이언스 설정을 읽고 게이트를 바인딩합니다.
- 모듈을 활성화하고 설정한 다음, 보유자 회계를 동기화 상태로 유지하는 Compliance Module의 민트 흐름을 통해 초기 공급량을 발행합니다.
6단계는 되돌릴 수 없는 관문입니다
컴플라이언스 초기화는 민트의 MintTokens 권한을 ComplianceConfig PDA로 되돌릴 수 없게 이전합니다. 원시 민트 권한이 필요한 모든 명령 — 3단계와 5단계 — 은 그 전에 실행되어야 합니다. 복구 경로는 없습니다. 트러스트 스코프 없이 출시된 토큰에는 나중에 부여할 수 없습니다. SDK가 이 순서를 자동으로 처리합니다. 생성된 클라이언트를 직접 사용하는 경우 순서에 대한 책임은 사용자에게 있습니다.
투자자 온보딩의 흐름
투자자는 한 번의 오프체인 검증에서 시작하는 네 단계를 거쳐 적격해집니다.
- 오프체인 KYC. 제공자가 투자자의 서류를 검증합니다.
- 어테스테이션. 통과 결과가 Solana Attestation Service 어테스테이션으로 기록되거나 어테스터가 서명한
Direct클레임으로 준비됩니다. - 클레임 부여. 신뢰된 어테스터가 토큰이 요구하는 각 토픽에 대해 지갑에 연결된
Claim을 부여합니다. 토큰이 관할권 규칙을 집행하는 경우 거주지 클레임에 투자자의 ISO-3166 국가 코드가 기록됩니다. - 동결 해제. 누구든지
thaw_permissionless를 제출하면 Gate Program이 적격성을 확인하고 Token ACL이 계정의 동결을 해제합니다.
3단계는 신뢰된 어테스터마다 한 번 수행됩니다. 신뢰된 어테스터는 온체인에서 클레임을 부여하는 키의 소유자로, 일반적으로 토큰 발행사입니다. 이 표준은 재사용 가능한 KYC 제공자와 함께 사용하도록 설계되어, 투자자의 동의 하에 이전 검증을 반복하는 대신 공유할 수 있습니다.
컴플라이언스 전송의 흐름
MPL-3643 토큰 이동은 단일 명령이 아니라 3단계 엔벨로프입니다.
- 준비(Prepare) — 수신자의 Associated Token Account가 존재하는지 확인하고 동결을 해제하며, 토큰에 훅이 있는 경우 transfer hook 계정을 해석합니다.
- 전송(Transfer) — Token-2022의
transfer_checked. 해당하는 경우 훅 메타 정보를 첨부합니다. - 마무리(Finalize) — 토큰이 수익을 지급하는 경우 양 당사자의 수익을 체크포인트합니다.
준비 단계를 건너뛰지 마세요. 토큰을 보유한 적이 없는 수신자에게 보내는 전송은 항상 실패합니다. 수신자의 계정이 생성 시 동결되어 있기 때문입니다.
운영상의 책임
컴플라이언스 토큰은 만들어 놓고 방치할 수 있는 것이 아닙니다. 두 개의 백그라운드 작업이 정확성을 유지합니다.
| 작업 | 하는 일 | 실행하지 않을 때의 결과 |
|---|---|---|
| 재동결 크랭커 | 컴플라이언스를 벗어난 보유자에 대해 freeze_permissionless 호출 | KYC가 만료된 보유자가 무기한 거래 지속 |
| 수익 크랭크 및 체크포인트 | 전역 인덱스를 진행시키고 보유자 잔액을 정산 | 수익이 발생하지 않고 회계가 어긋남 |
둘 다 무허가이므로 발행사 운영, 서드파티 운영, 인센티브 기반 운영이 모두 가능합니다.
구축 전에 결정할 사항
네 가지 결정이 이후의 모든 것을 좌우하며, 그중 세 가지는 나중에 변경할 수 없습니다.
| 결정 | 되돌릴 수 있나요? | 결과 |
|---|---|---|
| 민트 생성 시 transfer hook 활성화 | 불가 | 전송별 모듈이 향후 가능한지를 결정 |
DefaultAccountState = Frozen | 불가 | 필수. 없으면 MPL-3643은 아무것도 집행할 수 없음 |
| permanent delegate를 복구 PDA로 설정 | 불가 | 강제 복구가 향후 가능한지를 결정 |
| 활성화할 모듈 | 대체로 가능 | 보유자 수 상한과 투자자 수 상한은 공급량이 존재하기 전에 활성화해야 함 |
참고 사항
- MPL-3643 토큰은 Token-2022 민트입니다. SPL Token 프로그램 ID를 하드코딩한 통합에서는 보이지 않습니다.
- 보유자 수 상한과 투자자 수 상한은 공급량이 존재하기 전에 활성화해야 하며, 보유자 수 상한은 한 번 활성화하면 비활성화할 수 없습니다.
- 어디서나 정식(canonical) Associated Token Account를 사용하세요. 같은 지갑이 소유한 비정식 토큰 계정은 보유자 회계에서 추적되지 않아 상한과 수익이 조용히 어긋납니다.
- 특정 설정이 특정 증권 규제를 충족하는지는 발행사와 그 법률 자문이 판단할 법적 문제입니다. 이 페이지들은 프로그램이 집행하는 내용을 설명합니다.
- Metaplex Foundation이 유지 관리합니다. 최종 확인 2026-09-28.
FAQ
MPL-3643 액세스는 어떻게 얻나요?
MPL-3643은 메인넷에서 얼리 액세스로 운영 중입니다. 액세스를 신청하세요. 알파 파트너는 직접적인 온보딩 지원을 받습니다.
MPL-3643 토큰을 출시하기 전에 무엇이 필요한가요?
DefaultAccountState = Frozen으로 생성한 Token-2022 민트, 두 무허가 플래그를 모두 활성화하고 봉인한 Token ACL 설정, 레지스트리 토큰 발행자 역할 승인, 그리고 KYC와 함께 토큰이 요구할 다른 모든 토픽(예. 적격 투자자 인증, 제재 스크리닝)에 대해 승인된 신뢰된 어테스터입니다.
SDK와 생성된 프로그램 클라이언트 중 무엇을 사용해야 하나요?
SDK를 사용하세요. 되돌릴 수 없는 부트스트랩 순서를 처리하고 각 관리 작업을 올바른 직접 호출 또는 게이트 래핑 호출로 라우팅합니다. 생성된 클라이언트는 명령 수준의 제어가 필요하고 그 순서를 스스로 책임질 의향이 있는 통합자를 위한 것입니다.
크랭커를 직접 운영해야 하나요?
크랭커가 존재하기는 해야 합니다. 컴플라이언스를 벗어난 보유자를 자동으로 재동결하는 것은 없으므로, 크랭커가 없으면 KYC가 만료된 보유자는 누군가 freeze_permissionless를 호출할 때까지 거래를 계속합니다. 크랭커는 무허가이므로 직접 운영하거나, 서드파티가 운영하거나, 인센티브 기반 네트워크가 운영할 수 있습니다.
이미 출시한 토큰에 전송별 규칙을 추가할 수 있나요?
아니요. 전송별 모듈은 Token-2022 transfer hook 내부에서 실행되며, Token-2022 확장은 민트 생성 시 고정됩니다. 훅 없이 출시하면 락업, 거래량 상한, 블랙아웃 기간, 거래소 제한이 영구적으로 불가능해집니다.
