Arc에서 토큰과 컬렉션 홀더 리스트를 뽑는 방법
에어드랍을 진행하거나, allowlist를 설정하거나, 이미 안에 들어와 있는 사람들에게만 접근을 열어주기 전에 먼저 풀어야 할 질문이 하나 있어요. 지금 이 순간 누가 여러분의 토큰이나 컬렉션을 들고 있느냐죠. 그래서 Arc에서 홀더 리스트 뽑는 방법을 알아두면 유용해요. 토큰이나 NFT의 모든 홀더가 담긴 파일을 그대로 다운로드할 수 있거든요.
토큰이든 NFT이든 과정은 동일합니다. 확실히 짚어야 할 건 어떤 snapshot을 돌려야 하는지, 그리고 이를 가장 간단하게 활용하는 방법입니다. 이 가이드에서 그 방법을 알려드립니다. 바로 시작하죠.
Arc에서 토큰 홀더 리스트 뽑는 방법, 단계별로 정리
Smithii의 Arc용 Token Snapshot은 외부 인덱서에 의존하지 않고 토큰이 특정 목록에 등록되어 있을 필요도 없이 온체인에서 직접 조회합니다. 컨트랙트 주소만 있으면 되므로 본인 토큰이든 아니든 이 네트워크의 어떤 ERC-20에도 적용할 수 있습니다. 인터페이스는 이렇게 생겼습니다.

컨트랙트 주소를 확보하고 나면 다섯 단계면 끝납니다.
- 지갑을 네트워크에 연결하세요. 수수료 결제, 그리고 툴이 기록을 저장하는 데 필요합니다.
- Token Snapshot 탭에 그대로 있으세요. ERC-20을 다루는 탭입니다.
- 컨트랙트를 입력하세요. 주소를 붙여넣거나 이름으로 검색합니다. 입력란 아래에는 네트워크에서 활동이 가장 활발한 토큰으로 바로 가는 링크가 마련되어 있습니다.
- Take Snapshot을 누르고 결제를 승인하세요. 서명 전에 버튼 바로 위에 금액이 표시됩니다.
- 읽기가 끝날 때까지 기다렸다가 주소가 담긴 CSV를 다운로드하세요.
코드 한 줄 없이 Arc에서 컬렉션 홀더 리스트 뽑는 방법
두 번째 탭은 Arc 컬렉션용 NFT Snapshot이며, 상단의 탭에서 이전 탭과 전환할 수 있습니다. 요구하는 정보는 동일합니다. 컨트랙트 주소 하나. 다만 여기서는 ERC-721을 다룹니다. NFT의 소유권은 공개 정보이기 때문에 Arc에 존재하는 어떤 컬렉션에도 적용됩니다. 화면은 다음과 같습니다.

이전 절차와 크게 달라지는 부분은 없어요:
- 지갑을 Arc에 연결하세요. 지갑이 없으면 수수료를 낼 수도 없고, 추출 기록도 남지 않아요.
- NFT Snapshot 탭으로 이동하세요. 두 탭 중 두 번째입니다. 첫 번째는 ERC-20을 읽어 오기 때문에 컬렉션은 인식하지 않아요.
- ERC-721 컨트랙트 주소를 검색창에 붙여넣거나 컬렉션 이름을 입력해 목록에서 선택하세요.
- Take Snapshot 버튼을 누르고 결제를 서명하세요. 확정하기 전에 버튼 아래에 총 금액이 표시돼요.
- 추출이 끝나면 CSV를 다운로드하세요. 결제한 지갑에 자동으로 연결돼 있어서, 나중에 다시 받아야 할 때도 문제없어요.
각 리스트가 돌려주는 정보
여기서부터 두 탭이 갈라져요. 둘 다 주소만 내보내지만, 행을 구성하는 기준이 서로 달라서 그 차이가 파일의 활용도를 결정합니다.
| Snapshot 토큰 (ERC-20) | NFT Snapshot (ERC-721) | |
|---|---|---|
| 한 행이 의미하는 것 | 해당 토큰 잔고가 있는 주소 | NFT을 최소 한 개 이상 보유한 주소 |
| 중복 처리 | 보유자당 한 줄 | 소유자 기준으로 중복 제거 |
두 번째 열의 중복 제거 방식은 제대로 알아두는 게 좋아요. 의외라고 느끼는 사람이 많거든요. 컬렉션 40개를 가진 지갑도 한 줄, 딱 하나만 가진 지갑도 똑같이 한 줄을 차지하는데, 파일 안에서는 둘을 구분할 방법이 전혀 없어요.
화이트리스트라면 이 방식이 맞아요. 한 사람당 한 자리를 예약하는 게 목적이고, 40개를 쌓은 사람이 40자리를 가져가면 곤란하니까요. 반대로 보유량에 비례해 보상을 주려는 상황이라면 이건 한계로 작용합니다. 토큰 탭도 마찬가지예요. 잔고 정보가 없어서 등급을 나눌 근거 자체가 없거든요.
두 리스트 모두 컨트랙트는 라벨 없이 그대로 나와요
체인 입장에서 ‘보유자’는 그렇게 등록된 주소일 뿐이에요. 그 뒤에 항상 대화할 수 있는 사람이 있다는 보장은 없습니다.
ERC-20 리스트에서는 유동성 풀이 다른 주소들과 똑같이 하나의 주소로 나오고, 토큰을 위탁 관리하는 컨트랙트도 마찬가지예요. 컬렉션 쪽은 상황이 조금 다릅니다. 매물이 마켓플레이스에 올라가 있고 그 기간 동안 마켓이 해당 아이템을 위탁 보관 중이라면, 그 시점의 소유자는 위탁 컨트랙트가 됩니다. 볼트, 스테이킹, NFT를 담보로 받는 대출도 같은 경우예요. 실제 사람은 여전히 뒤에 있지만, 파일에 찍히는 건 컨트랙트예요.
두 파일 모두 라벨을 포함하지 않기 때문에, 이런 행들은 눈으로 봐서는 구분이 안 돼요. 확인은 어렵지 않습니다. 낯선 주소를 Arc 익스플로러에서 조회해 연결된 코드가 있는지 보면 돼요. 코드가 보이면 컨트랙트입니다. 배포 전에 확인해두는 게 좋습니다. 받은 자산을 어떻게 처리해야 할지 모르는 컨트랙트로 보낸 전송은 아무도 되돌려주지 않으니까요.
추출을 실행하기 전에 기준 시점부터 정하세요
파일은 실행한 그 순간 체인 상태를 찍은 스냅샷일 뿐이에요. 자동으로 업데이트되지 않습니다. 이후 발생하는 모든 전송은 실제 상황을 바꾸지만, CSV는 처음 상태 그대로예요.
이 점은 토큰보다 컬렉션에서 훨씬 크게 작용해요. NFT는 일정한 속도로 손바뀜하지 않고 몰아서 움직이거든요. 공지 하나, 가격 급등, 잠잠하던 2차 시장이 다시 살아나는 것만으로 조용한 몇 주 동안 벌어지지 않던 이동이 짧은 시간에 일어납니다. 한 시간 간격으로 두 번 읽어 봐도 상당수 주소가 겹치지 않을 수 있어요.
그래서 순서가 중요합니다. 먼저 기준 시점을 정하고, 그다음에 추출을 실행하세요. ‘금요일 18:00에 스냅샷을 찍습니다’라고 미리 공지해두면, 30분 전에 팔고 못 들어간 사람의 뻔한 항의를 피할 수 있어요. 오래 홀딩한 사람에게 보상하고 싶다면 방법은 하나예요. 시간 간격을 두고 두 번 실행한 뒤 스프레드시트에서 교집합을 뽑으면 두 리스트 모두에 등장하는 주소가 나옵니다.
Arc에서 snapshot 하는 데 드는 비용
실행당 62.5 USDC. 두 탭 모두 동일한 정액 요금이고, 여기에 트랜잭션 가스가 더해져요. Arc는 가스도 USDC로 받기 때문에 전체 지출이 한 가지 자산으로 끝나고 환전 절차가 필요 없습니다. 지갑에 잔고가 아직 없다면, 추출을 시작하기 전에 USDC를 네트워크로 옮겨오는 작업부터 해야 해요.
정액이라는 건 규모가 계산에 반영되지 않는다는 뜻이에요. 지갑 50개짜리 토큰이든 2만 개짜리 토큰이든 비용은 똑같고, 200개짜리 시리즈든 1만 개짜리 시리즈든 마찬가지입니다. 결과는 양면이에요. 홀더 베이스가 큰 프로젝트라면 주소 하나당 단가가 아주 낮게 떨어지기 때문에, 건당 요금을 매기는 툴에 익숙한 사람에겐 감각이 뒤집힙니다. 반대로 소규모 프로젝트에서는 그 반대로 작용하니까, 궁금하다고 그냥 돌리기보다 매 추출마다 활용 목적을 정해두는 게 좋아요.
예산 얘기 하나 짚어보면, 리스트의 유일한 용도가 즉시 배포라면 multisender 쪽에서 같은 비용으로 직접 추출할 수 있으니 이 단계를 건너뛸 수 있어요. 여기서 따로 뽑아내는 건 파일을 보관하거나, 재사용하거나, 나중에 비교하려는 경우에 의미가 있죠.
Arc에서 토큰 홀더 리스트를 뽑으면 어디에 활용할 수 있을까요
잔액도 개수도 없으면 뭔가 빠진 것처럼 보이지만, 실제로 이 파일이 어떻게 쓰이는지 보면 얘기가 달라져요. 다음 세 가지 케이스는 주소만 있으면 충분합니다:
- 균등 배포. 모두가 같은 금액을 받는 케이스예요. CSV를 그대로 Arc의 토큰 대량 전송에 넣으면 재포맷 없이 바로 돌아가요.
- 민트나 프리세일, 얼리 액세스용 allowlist. 특정 주소가 포함되는지 아닌지만 판단하면 되는 상황이죠.
- 홀더 베이스의 변화 추적. 시간 간격을 두고 두 번 읽어보면 몇 명이 새로 들어오고, 몇 명이 떠나고, 처음부터 계속 남아 있는 게 누구인지 파악할 수 있어요.
세 번째 용도가 제일 저평가돼 있어요. 스프레드시트에서 두 파일을 비교하면 누가 남았고 누가 떠났는지 리스트가 나오는데, 훌륭한 세그먼테이션이면서 잔액 데이터가 하나도 필요 없어요. Arc처럼 갓 나온 체인에서는 이 추적이 더 값진데, 홀더 베이스가 작다 보니 유입과 이탈 하나하나가 크게 작용하기 때문이에요.
솔직하게 말하면 안 되는 부분도 짚고 넘어가야죠. 구간별로 나눠서 배포하는 건 불가능하고, 공급량 집중도를 측정하거나 어떤 wallet이 컬렉션 절반을 쥐고 있는지 파악할 수도 없어요. 이 세 가지 질문은 네트워크 익스플로러에서 답이 나오는데, 잔액이 표시되고 특정 주소를 파고들 수 있거든요. snapshot은 범위를 주고, 익스플로러는 디테일을 주는 거예요.
자주 묻는 질문
Arc에서 홀더 snapshot의 비용은 얼마인가요?
추출 1건당 62.5 USDC 고정 요금이고, 여기에 네트워크 가스비가 별도로 붙는데 이것도 USDC로 결제돼요. 가격은 토큰 탭과 컬렉션 탭에서 동일하고, 홀더 수나 시리즈 크기에 따라 달라지지 않아요.
CSV에 잔액이나 각 wallet의 NFT 개수가 포함되나요?
두 경우 모두 아니에요. ERC-20 익스포트에는 잔액이나 공급량 비율 없이 주소만 담기고, 컬렉션 익스포트에도 token ID나 소유자별 보유 개수는 들어가지 않아요. 캠페인에서 보유량에 따라 보상을 차등화해야 한다면, 그 데이터는 설계 전에 다른 방법으로 따로 모아야 해요.
내 것이 아닌 토큰이나 컬렉션의 홀더도 뽑을 수 있나요?
네. 누가 뭘 보유하는지는 blockchain에서 공개된 정보라, 컨트랙트 주소만 있으면 되고 프로젝트와의 어떤 관계도 요구되지 않아요. 결이 비슷한 프로젝트 커뮤니티에 배포를 태우거나, 실제 홀더 베이스 규모를 조사할 때 흔히 쓰는 방식이에요.
토큰 탭과 NFT 탭 중 어느 걸 써야 하나요?
컨트랙트 유형에 맞춰 고르면 돼요. 대체 가능한 자산이고 사람들이 일정 수량을 보유하는 형태면 ERC-20이니까 Token Snapshot에 넣고, 각 단위가 개별적이고 개수 단위로 소유되는 방식이면 ERC-721이니까 NFT Snapshot에 넣어요. 잘못된 탭에 컨트랙트를 넣으면 결과가 안 나옵니다.
홀더 대상 airdrop 배포용으로 쓸 수 있나요?
모두가 같은 금액을 받는다면 문제없어요. 주소당 한 줄이라 파일이 별도 손질 없이 네트워크의 multisender에 그대로 들어가요. 안 되는 건 각자 보유량에 따라 차등 지급하는 것뿐이에요. 그 숫자는 CSV에 담기지 않으니까요.
예전 snapshot을 다시 불러올 수 있나요?
네. 툴이 wallet에 연결된 추출 이력을 저장해 두기 때문에 wallet을 연결하면 예전에 뽑았던 것들을 다시 볼 수 있어요. 그래도 CSV는 각자 따로 보관해 두는 편이 좋아요. 특히 시간차를 두고 두 리스트를 비교할 계획이라면 더 그렇죠.
마무리
이제 Arc에서 snapshot 만드는 법을 토큰과 NFT 컬렉션 양쪽 모두 알게 됐으니, 남은 건 그 리스트로 뭘 할지 정하는 일이에요. 본인 프로젝트의 wallet을 모니터링하는 상황이라면, 홀더 수가 변했거나 늘어났는지 확인하는 데도 유용하고, 커뮤니티에 보상 airdrop을 태울 때도 이 정보가 요긴하게 쓰여요.
그렇게 기대치를 맞춰 놓고 보면, 이 파일은 실제로 가장 자주 요구되는 일들, 즉 액세스 필터링, allowlist 구성, 균등 배포 세팅을 대부분 커버해요. 기준 시점을 정하고, 추출을 실행하고, 그 리스트로 뭘 서명하기 전에 꼭 검토하세요.








