Arcでホルダーリストを取得する方法。トークンとコレクションの両方に対応
エアドロップを配布する、アローリストを組む、既存ホルダー限定のアクセスを設定する。こうした動きに入る前に、まず片づけておきたい問いがあります。今この瞬間、誰があなたのトークンやコレクションを保有しているのか、という点です。そこで押さえておきたいのがArcでホルダーリストを取得する方法で、トークンやNFTのホルダー全員をまとめてファイルでダウンロードできます。
トークンでもNFTでも、手順は同じです。押さえておきたいのはどのsnapshotを実行するかと、それを一番シンプルに活用する方法。このガイドでその流れを説明します。さっそく始めましょう。
Arcでトークンのホルダーリストを取得する手順
SmithiiのArc向けToken Snapshotはオンチェーンで直接クエリを走らせるので、外部インデクサーに頼る必要も、トークンがリストに載っている必要もありません。必要なのはコントラクトアドレスだけ。つまり自分のものかどうかを問わず、Arc上のどんなERC-20にも使えます。インターフェースはこんな感じです。

コントラクトアドレスさえ手元にあれば、あとは5ステップです。
- ウォレットをネットワークに接続します。手数料の支払いと、ツール側での履歴保存にどちらも必要です。
- Token Snapshotのタブを選択したままにします。ERC-20を扱うのはこちらのタブです。
- コントラクトを入力します。アドレスを貼り付けるか、名前で検索します。入力欄の下には、ネットワーク上でアクティビティの多いトークンへのショートカットも表示されます。
- Take Snapshotを押して、支払いを承認します。金額は署名前にボタンのすぐ上に表示されます。
- 読み取りの完了を待って、アドレス一覧のCSVをダウンロードします。
Arcでコレクションのホルダーリストを取得する方法 (ノーコード)
2番目のタブがArcコレクション向けのNFT Snapshotで、画面上部のタブから前のものと切り替えられます。必要な情報は同じくコントラクトアドレスひとつだけ。ただしこちらはERC-721が対象です。NFTの所有者情報は公開データなので、Arc上に存在するどのコレクションでも動きます。見た目はこちら。

手順は前回とほとんど変わりません:
- ウォレットをArcに接続します。接続していないと手数料の支払いもできませんし、抽出履歴も残せません。
- NFT Snapshotタブを開きます。2つあるうちの2番目のタブです。1番目はERC-20を読み込むもので、コレクションは認識してくれません。
- ERC-721のコントラクトアドレスを貼り付けます。検索フィールドに貼り付けるか、コレクション名を入力してリストから選択してください。
- Take Snapshotを押します。そして支払いに署名します。合計金額は確定前にボタンの下に表示されます。
- 読み込みが完了したらCSVをダウンロードします。支払いに使ったウォレットにも紐づいているので、後から必要になっても取り戻せます。
リストごとに何が返ってくるか
ここから2つのタブは別物になります。どちらもアドレスしか出力しませんが、行の作り方が違うため、ファイルの使い道も変わってきます。
| トークンSnapshot (ERC-20) | NFT Snapshot (ERC-721) | |
|---|---|---|
| 1行が意味するもの | そのトークンの残高を持つアドレス | NFTを1点以上保有するアドレス |
| 重複 | 保有者ごとに1行 | 所有者単位で重複を排除 |
2列目の重複排除については、意外と落とし穴になるのでしっかり理解しておいた方がいいです。コレクションを40点持っているウォレットも1行を占め、1点しか持っていないウォレットとまったく同じ扱いになります。ファイルには、どちらを見ているのかを教えてくれる情報は入っていません。
allowlist用途ならこの形が正解です。1人につき1枠を確保するのが目的なので、40点集めた人が40枠を持っていくのはおかしいですよね。保有量に応じて報酬を配りたい場合には制約になりますが、同じ理屈がトークン側のタブにも当てはまり、こちらも段階分けに使える残高情報は出てきません。
どちらのリストでもコントラクトはラベルなしで並ぶ
チェーンにとっての保有者とは、そう記録されているアドレスのことです。その裏側に、必ずしも会話できる相手がいるとは限りません。
ERC-20のリストでは、流動性プールも1つのアドレスとして並びます。トークンを預かる他のコントラクトも同じ扱いです。コレクション側でよくあるのは別のケースです。マーケットプレイスに出品中で、その間はプラットフォーム側が作品を預かっているケースでは、その期間の所有者はカストディコントラクトになります。ボールト、ステーキング、NFTを担保にした貸付でも同じことが起きます。取引の裏には人がいますが、ファイルに載るのはコントラクトです。
どちらの出力にもラベルはついていないので、パッと見では区別できません。確認は簡単です。見覚えのないアドレスをArcのエクスプローラーで調べて、コードが紐づいているかどうかを見ます。表示されればコントラクトです。配布前に確認しておく価値はあります。届いたものをどう扱っていいか分からないコントラクトに送ってしまうと、誰も巻き戻してはくれません。
読み込みを実行する前に基準時刻を決めておく
ファイルは、実行した瞬間のチェーン状態を撮ったスナップショットです。自動では更新されません。その後の転送のたびに現実の方は変わっていきますが、CSVはそのままの姿で残ります。
これはトークンよりもコレクションで影響が大きくなります。NFTは一定のペースではなく波でオーナーが入れ替わるからです。告知、値上がり、動き出した二次市場などがあると、静かな週なら数週間動かない量が短時間で動きます。1時間差で2回読み込むと、それなりの割合のアドレスが一致しないこともあるわけです。
だから順番が大事です。まず基準時刻を確定してから、読み込みを実行します。「スナップショットは金曜18時に取ります」と告知しておけば、30分前に売って対象外になった人からの想定内のクレームも避けられます。長く保有している人に報酬を出したい場合は、同じ抽出を繰り返すのが答えです。時間を空けて2回実行し、スプレッドシートで突き合わせれば、両方に登場するアドレスの一覧が得られます。
Arcでsnapshotを作成する費用
1回の実行につき62.5 USDC、どちらのタブでも同じ均一料金です。これに加えてトランザクションのガス代がかかります。Arcはガス代もUSDCで徴収するので、支払いは1つの通貨で完結し、途中で両替する必要もありません。ウォレットに残高がまだない場合は、読み込みを実行する前にUSDCをネットワークに用意しておきます。
均一というのは、規模が計算に入らないという意味です。ウォレット50個のトークンでも2万個のトークンでも同じ料金で、200点のシリーズでも1万点のシリーズでも変わりません。結果として2つの側面が出てきます。母数が大きい場合、取得したアドレス1件あたりのコストはかなり安くなります。1件ごとに課金するツールに慣れている人からすると直感に反するかもしれません。小規模なプロジェクトでは逆になるので、興味本位で実行するのではなく、抽出ごとに使い道を決めておくのが賢明です。
予算の話をひとつ。リストの用途が即時の配布だけなら、multisender 側で同じ料金のまま自分で抽出できるので、ここで別途取り出す手間は省けます。ここで単独で書き出す意味があるのは、ファイルを保存したり、あとで再利用したり、後日比較したりしたい場合です。
Arcでトークンのホルダーをエクスポートする目的
残高もカウントもないと物足りなく見えますが、実際にこのファイルが使われる場面を見ればそれで十分だとわかります。次の3つのケースでは、アドレス以外に必要なものはありません:
- フラット配布。全員が同じ量を受け取るケースです。CSVはそのまま Arcのトークン一括送信 に投入でき、フォーマットを整え直す必要はありません。
- ミント、プレセール、早期アクセス用の allowlist。アドレスが対象に入っているか外れているかだけが問題になる場面です。
- コミュニティの推移を測る。時期をずらした2回の読み取りを比べれば、新しく入った人、離れた人、最初から残っている人が把握できます。
3つ目の使い方はいちばん過小評価されています。2つのファイルをスプレッドシートで比較すれば、残った人と離れた人のリストが手に入り、残高情報がなくても質の高いセグメンテーションになります。Arcのように立ち上がったばかりのチェーンでは、この追跡の価値はさらに大きくなります。ベースが小さく、1件の出入りが持つ重みが違うからです。
公平を期して、できないことも挙げておきます。階層別の配布はできませんし、供給量の集中度を測ることも、どのウォレットがコレクションの半分を握っているかを知ることもできません。この3つの問いはネットワークのエクスプローラーで解決するもので、そこでは残高が表示され、個別アドレスの中身も確認できます。snapshot は全体像、エクスプローラーは詳細を担当します。
FAQ
Arcでホルダーの snapshot を1回取るのにいくらかかりますか?
1回の抽出につき定額で 62.5 USDC、これにネットワークのガス代が加わり、こちらも USDC で支払います。料金はトークンタブでもコレクションタブでも同じで、ホルダーの人数や発行数によって変わることはありません。
CSVには残高や各ウォレットのNFT数は含まれますか?
どちらも含まれません。ERC-20のエクスポートに入るのはアドレスだけで、残高も供給量に対する比率もありません。コレクションのエクスポートにもtoken IDや所有者ごとの枚数は入っていません。報酬にウェイトを付けたいキャンペーンの場合、その情報は設計に入る前に別ルートで集めておく必要があります。
自分のものではないトークンやコレクションのホルダーも抽出できますか?
できます。誰が何を持っているかはブロックチェーン上の公開情報なので、コントラクトアドレスさえあれば十分で、プロジェクトとの関係性は問われません。関連プロジェクトのコミュニティに配布で届けたいとき、あるいは実際のホルダーベースの規模を調べたいときに、これがふつうの入り口になります。
必要なのはトークンのタブですか、それとも NFT のタブですか?
コントラクトの種類に合うほうです。資産が代替可能で、各人が「量」で保有しているならERC-20なので Token Snapshot に入れます。1つずつが別物で「点」で所有されるならERC-721で、NFT Snapshot に入れます。コントラクトを間違ったタブに入れると結果は返ってきません。
ホルダーの間でエアドロップを配るのに使えますか?
全員が同じ量を受け取る前提なら使えます。1行に1アドレスの構造なので、ファイルはネットワークの multisender にそのまま投入できます。逆に、保有量に応じて配布量を段階分けするような使い方はできません。その数値がCSVには含まれていないからです。
古い snapshot を取り直せますか?
はい。ツールはウォレットに紐づく抽出履歴を残しているので、ウォレットを接続すれば過去のものを再表示できます。とはいえ、CSVは自分の手元にも保存しておくのが安心です。時期をあけた2つのリストを比較するつもりがあるなら、なおさらです。
まとめ
これで Arcで snapshot を取る方法 が、トークンとコレクション NFT の両方で押さえられました。あとはそのリストで何をするかを決めるだけです。自分のプロジェクトのウォレットをチェックする用途なら、この情報は ホルダーの数が変化したのか、増えたのか を把握するときや、自分のコミュニティに報酬としてエアドロップを配るときに役立ちます。
期待値をそこに合わせておけば、ファイルは実際にほとんどの場合求められることをきちんとカバーします。アクセスをふるいにかけたり、allowlistを組んだり、全員に同じ量を配る配布の材料にしたり。基準となる時点を決めて、抽出を実行し、そのリストで何かを確定させる前に必ず内容を確認してください。





