Cách lấy danh sách holders trên Arc, cả cho token lẫn cho collection
Trước khi chạy một airdrop, dựng allowlist hay siết quyền truy cập cho những người đã ở trong, có một câu hỏi cần chốt trước: ngay lúc này ai đang giữ token hoặc collection của bạn. Để trả lời, bạn cần biết cách lấy danh sách holders trên Arc sao cho tải về được một file chứa toàn bộ holders của một token hoặc NFT.
Dù là cho token hay cho NFT, quy trình đều giống nhau. Điều bạn cần nắm rõ là snapshot nào bạn phải chạy và cách đơn giản nhất để tận dụng nó. Trong hướng dẫn này tôi sẽ chỉ bạn cách làm. Vào việc luôn.
Cách lấy danh sách holders của một token trên Arc theo từng bước
Token Snapshot của Smithii cho Arc thực hiện truy vấn trực tiếp on-chain, không phụ thuộc vào bất kỳ indexer bên ngoài nào và cũng không cần token phải nằm trong danh sách nào cả. Chỉ cần địa chỉ contract là đủ, nên nó chạy được với bất kỳ ERC-20 nào trên mạng, dù là của bạn hay không. Đây là giao diện của nó:

Khi đã có địa chỉ contract trong tay, chỉ còn năm bước:
- Kết nối một wallet vào mạng. Bước này cần để thanh toán phí và để công cụ lưu lịch sử cho bạn.
- Ở nguyên trong tab Token Snapshot, đây là tab xử lý ERC-20.
- Nhập contract vào: dán địa chỉ hoặc tìm theo tên. Ngay dưới ô nhập có shortcut đến các token có nhiều hoạt động nhất trên mạng.
- Nhấn Take Snapshot và duyệt thanh toán. Số tiền hiển thị ngay phía trên nút bấm trước khi bạn ký.
- Đợi quá trình đọc kết thúc rồi tải file CSV chứa danh sách địa chỉ về.
Cách lấy danh sách holders của một collection trên Arc mà không cần viết code
Tab thứ hai là NFT Snapshot cho các bộ sưu tập trên Arc, và bạn chuyển qua lại với tab trước từ các tab ở phía trên. Nó yêu cầu đúng một dữ liệu duy nhất, địa chỉ contract, chỉ khác là ở đây là một ERC-721. Vì quyền sở hữu của một NFT là thông tin công khai, nó chạy được với mọi bộ sưu tập đang tồn tại trên Arc. Trông nó như thế này:

Quy trình gần như y hệt lần trước, chỉ khác vài chi tiết:
- Kết nối wallet của bạn với Arc. Không có wallet thì không thể thanh toán phí, mà việc extract cũng không được ghi nhận.
- Chuyển sang tab NFT Snapshot, tức là tab thứ hai trong hai tab. Tab đầu tiên đọc ERC-20 và không nhận diện collection.
- Dán địa chỉ contract ERC-721 vào ô tìm kiếm, hoặc gõ tên collection để chọn từ danh sách hiện ra.
- Bấm Take Snapshot và ký giao dịch thanh toán. Tổng phí hiển thị ngay dưới nút trước khi bạn xác nhận bất cứ điều gì.
- Tải file CSV khi quá trình đọc kết thúc. File còn được gắn với wallet mà bạn dùng để thanh toán, phòng khi bạn cần tải lại.
Mỗi danh sách trả về cho bạn cái gì
Đây là chỗ hai tab bắt đầu khác nhau. Cả hai đều export địa chỉ và chỉ địa chỉ, nhưng tiêu chí dựng nên các dòng thì không giống nhau, và điều đó quyết định file có ích cho việc gì.
| Token Snapshot (ERC-20) | NFT Snapshot (ERC-721) | |
|---|---|---|
| Một dòng là gì | Một địa chỉ có số dư token | Một địa chỉ giữ ít nhất một item của NFT |
| Trùng lặp | Một dòng cho mỗi holder | Deduplicate theo chủ sở hữu |
Việc deduplicate ở cột thứ hai bạn nên hiểu rõ, vì rất nhiều người bị bất ngờ. Một wallet giữ bốn mươi item của collection cũng chỉ chiếm một dòng, y hệt như wallet chỉ giữ đúng một item, và trong file không có gì cho bạn biết bạn đang nhìn cái nào trong hai trường hợp.
Với allowlist thì cách này là đúng: mục tiêu là dành một suất cho mỗi người, còn ai gom được bốn mươi item không nên chiếm luôn bốn mươi suất. Muốn thưởng theo tỉ lệ sở hữu thì đây là một giới hạn, và cùng logic đó áp dụng cho tab token, nơi cũng không có số dư để phân biệt mức độ.
Contract xuất hiện không có nhãn ở cả hai danh sách
Với chain, người sở hữu là địa chỉ được ghi nhận là chủ. Và đứng sau địa chỉ đó không phải lúc nào cũng là một người mà bạn có thể liên hệ.
Trong danh sách của một ERC-20, liquidity pool xuất hiện như một địa chỉ bình thường, cùng với bất cứ contract nào đang giữ tokens. Trong danh sách của một collection thì trường hợp điển hình lại khác: khi một item đang được rao bán trên một marketplace giữ hộ tài sản trong lúc đăng bán, người sở hữu trong khoảng thời gian đó chính là contract giữ hộ. Chuyện tương tự với vault, staking và các khoản vay nhận NFT làm tài sản thế chấp. Người thật vẫn đứng sau giao dịch, nhưng cái xuất hiện trong file là contract.
Vì không có export nào kèm nhãn, những dòng đó nhìn bằng mắt thường không phân biệt được. Việc kiểm tra không tốn kém: tìm các địa chỉ lạ trên explorer của Arc và xem có hiển thị code đi kèm không. Nếu có, đó là contract. Nên làm bước này trước khi phân phát, vì gửi đến một contract không biết xử lý cái nó nhận được thì không ai revert giúp bạn.
Chốt điểm cắt trước khi chạy đọc
File là bức ảnh chụp trạng thái chain ngay tại thời điểm bạn chạy. Nó không tự cập nhật: mỗi transfer sau đó đều thay đổi thực tế, còn file CSV vẫn nằm y như lúc chụp.
Chuyện này ảnh hưởng nhiều hơn với một collection so với một token, vì NFT không chuyển chủ đều đặn mà đi theo đợt. Một announcement, một cú tăng giá hay một secondary bỗng thức dậy có thể làm chuyển động trong vài tiếng cái mà những tuần yên ắng chẳng ai đụng đến, nên hai lần đọc cách nhau một giờ có thể lệch nhau ở một phần đáng kể các địa chỉ.
Vì vậy thứ tự rất quan trọng. Trước tiên chốt thời điểm cắt, sau đó mới chạy đọc. Thông báo «bức ảnh sẽ chụp lúc 18:00 thứ Sáu» giúp bạn tránh được kiểu khiếu nại quen thuộc từ người bán trước đó nửa tiếng rồi bị loại. Còn nếu bạn muốn thưởng cho ai giữ lâu, giải pháp là lặp lại lệnh: hai lần chạy cách nhau về thời gian, đối chiếu trên một bảng tính, sẽ cho bạn danh sách những địa chỉ xuất hiện ở cả hai lần.
Chi phí chạy một snapshot trên Arc là bao nhiêu
62,5 USDC mỗi lần chạy, phí cố định và như nhau ở cả hai tab, cộng thêm gas của giao dịch. Vì Arc cũng thu gas bằng USDC, toàn bộ chi phí gói gọn trong một đồng tiền duy nhất, không cần quy đổi qua lại. Nếu wallet chưa có số dư, bạn cần chuyển USDC lên network trước khi chạy đọc.
Cố định có nghĩa là kích thước không tính vào chi phí: một token có năm mươi wallet giá y hệt một cái có hai mươi nghìn, và một series hai trăm item cũng như một series mười nghìn. Hệ quả có hai mặt. Với một base lớn, mỗi địa chỉ thu về thành ra rất rẻ, ngược lại hoàn toàn với trực giác của ai quen dùng công cụ tính phí theo record. Với một dự án nhỏ thì ngược lại, nên mỗi lần extract tốt nhất đã có đích đến rõ ràng thay vì chạy vì tò mò.
Một lưu ý về ngân sách trước khi đi tiếp: nếu mục đích duy nhất của danh sách là dùng cho một đợt phân phối ngay lập tức, thì multisender có thể tự trích xuất với cùng mức phí, và bạn tiết kiệm được một bước. Việc trích xuất riêng ở đây chỉ đáng làm khi bạn muốn lưu file lại, tái sử dụng hoặc so sánh về sau.
Xuất danh sách holders của một token trên Arc để làm gì
Việc không có số dư và số lượng nghe qua tưởng là thiếu, cho đến khi bạn nhìn vào cách file này thực sự được dùng. Ba trường hợp sau không cần gì hơn ngoài địa chỉ:
- Một đợt phân phối đồng đều, ai cũng nhận như nhau. File CSV nạp thẳng vào công cụ gửi token hàng loạt trên Arc mà không cần chỉnh lại định dạng.
- Một allowlist cho đợt mint, presale hoặc early access, nơi điều duy nhất quan trọng là địa chỉ có nằm trong danh sách hay không.
- Theo dõi cộng đồng của bạn thay đổi ra sao. Hai lần đọc cách nhau về thời gian sẽ cho bạn biết có bao nhiêu người vào mới, bao nhiêu rời đi, và ai vẫn còn ở lại từ những ngày đầu.
Ứng dụng thứ ba này bị đánh giá thấp nhất. Chỉ cần so sánh hai file trong một bảng tính là bạn có ngay danh sách ai đã trụ lại và ai đã rời đi, một cách phân khúc cực tốt mà chẳng cần đến số dư. Trên một chain vừa ra mắt như Arc, việc theo dõi kiểu này còn có giá hơn nữa, vì lượng người dùng còn nhỏ và mỗi lần có ai vào hay ra đều đáng chú ý.
Nói cho sòng phẳng thì cũng cần chỉ ra những gì bạn không làm được. Bạn sẽ không thể chia theo mức, không đo được mức độ tập trung của supply, cũng không biết trung bình mỗi wallet nắm bao nhiêu trong một collection. Ba câu hỏi đó thì phải hỏi explorer của mạng, nơi có hiển thị số dư và cho phép bạn soi kỹ một địa chỉ cụ thể. snapshot cho bạn tầm bao quát; explorer cho bạn chi tiết.
FAQ
Một snapshot của holders trên Arc tốn bao nhiêu?
62,5 USDC mỗi lần trích xuất, phí cố định, cộng thêm gas của mạng, thanh toán bằng USDC. Giá này áp dụng như nhau ở tab token lẫn tab collection, và không thay đổi theo số lượng holders hay quy mô của bộ sưu tập.
File CSV có kèm số dư hay số lượng NFTs của từng wallet không?
Không, cả hai trường hợp đều không. Bản export của một ERC-20 chỉ có địa chỉ, không kèm số dư hay tỷ lệ trong tổng supply, còn bản export của collection cũng không có token ID lẫn số lượng piece mỗi chủ sở hữu nắm giữ. Nếu chiến dịch của bạn cần chia phần thưởng theo tỷ trọng, dữ liệu đó phải gom qua kênh khác trước khi lên kế hoạch.
Tôi có thể trích xuất holders của một token hoặc một collection không phải của mình không?
Có. Ai nắm gì là thông tin công khai trên blockchain, nên chỉ cần địa chỉ contract là đủ, không đòi hỏi bạn phải có liên hệ gì với project đó. Đây là cách quen thuộc để tiếp cận cộng đồng của một project bạn bè với đợt phân phối, hoặc để đánh giá quy mô thực sự của một cộng đồng holders.
Tôi cần tab nào, tab token hay tab NFT?
Cái nào ứng với loại contract của bạn. Nếu tài sản có tính chất fungible và người dùng nắm giữ một số lượng, đó là ERC-20 và bạn dùng Token Snapshot. Nếu mỗi đơn vị là duy nhất và người dùng sở hữu theo từng piece, đó là ERC-721 và bạn dùng NFT Snapshot. Nhập contract vào sai tab sẽ không trả về kết quả.
Có dùng được để phát một airdrop cho holders không?
Được, miễn là ai cũng nhận cùng một lượng. Với mỗi dòng là một địa chỉ, file khớp thẳng vào multisender của mạng mà không cần chỉnh sửa. Cái nó không làm được là chia theo tỷ lệ tùy theo lượng nắm giữ của từng người, vì con số đó không có trong CSV.
Tôi có thể lấy lại một snapshot cũ không?
Có, tool lưu lại lịch sử các lần trích xuất gắn với wallet của bạn, nên khi kết nối lại là bạn thấy được những lần đã làm. Dù vậy vẫn nên tự lưu từng file CSV riêng, nhất là khi bạn định so sánh hai danh sách cách nhau về thời gian.
Kết luận
Giờ khi đã nắm được cách tạo một snapshot trên Arc, cho cả token lẫn collection NFT, việc còn lại chỉ là quyết định làm gì với danh sách đó. Nếu bạn đang theo dõi wallets của chính project mình, thông tin này sẽ giúp bạn biết số lượng holders đã thay đổi hay tăng lên hay chưa, hoặc để chạy một airdrop phần thưởng cho chính cộng đồng của mình.
Với kỳ vọng đã điều chỉnh như vậy, file này bao trọn thứ mà gần như lần nào người ta cũng thực sự cần: lọc quyền truy cập, dựng một allowlist hoặc chuẩn bị cho một đợt phân phối đều tay cho tất cả. Chốt thời điểm cắt, chạy trích xuất và soát lại danh sách trước khi ký bất cứ thứ gì với nó.

Content creator và đóng góp SEO tại Smithii. Sinh viên Kỹ thuật Hệ thống và đam mê crypto-tech.








