本文へ移動
hanzochang

技術と実践のノート

thirdwebのBatchUpload利用方法

公開 更新

著者:株式会社hanzochang

thirdwebにはBatchUploadと呼ばれるIPFSにmetadataと画像をまとめてアップロードしてくれる便利な機能があります。少しだけクセがあるので、この記事は捜査方法を解説しています。

はじめに:thirdwebの使い方ゼロから知りたい方は

目次

Batch Uploadとは

thirdwebには BatchUpload という機能があります。

thirdwebcsvでmetadataをアップロードすることができる大変便利な機能です。アップロード先はもちろんIPFS。 thirdwebがコントラクトの作成だけでなく、metadataのIPFSへのアップロードも代わりにやってくれます。

なんと、metadataに含んだ画像もIPFSにまとめてアップロードしてくれます。

ただし、画像のアップロードにはコツがあるので、その点は本記事にて紹介していきます。 バッチアップロードに必要なテンプレートも用意しましたので、よろしければご利用ください。

対応するコントラクト

batch uploadに対応するthirdwebのコントラクトはNFTDropとSignatureDropとEditionDropの3つです。

「NFTDrop」と「EditionDrop」は、オーナー以外のウォレットが「MINT」できるという特徴をもちます。

「NFTDrop」「SignatureDrop」はERC721のトークンで、「EditionDrop」はERC1155 のトークンとなります。

💡 余談 対応していない「NFT Collection」と「Edition」について

似たようなコントラクトに「NFT Collection」と「Edition」があります。 コントラクトオーナーだけがMINTできるコントラクトで、MINT後のデータはオーナー所有になります。 すぐにマーケットプレイスで流通させることを想定したコントラクトだと想定されます。

「BatchUpload」機能があってもよさそうなのですが、なぜかありません。

BatchUpload利用方法

「NFTDrop」「SignatureDrop」「EditionDrop」のどれかを選びます。

下記のDeployボタンでデプロイボタンを押し、

各種設定を書き込んでデプロイします。

Batchuploadを押下します。

ファイルドロップ画面が現れます。

ここに、csvと画像を含んだフォルダをドラッグアンドドロップすることで、アップロードできます。

アップロードフォルダのサンプル

フォルダの中身には「画像群」と「metadataを記述したcsv」を含めています。 サンプルはこちらに用意していますので、実際のファイルでご確認ください。

サンプルはこちらに用意していますダウンロードボタンを押下すると、フォルダごとダウンロードできます。

CSV記述のポイント

CSVの記述方法がポイントです。相対的に参照できるように各画像の冒頭に「./」と記述します。 これによりCSVが画像を相対的に読み取って、thirdwebが画像をIPFSにアップロードしてくれます。

画像を絶対URLにすると画像はipfsにアップロードされないので注意です。インターネット上のURLを読み取って、ipfsにアップロードし直す、といったことはやってくれません。

CSVの記述の制約
  • CSVに含めるパラメータで必須なのは「name」のみとなります。
  • 「description」は任意です。
  • ファイルのアップロードに対応するのは「image」と「animation_url」のみです。
  • 「tokenId」は順番に採番されるのでコントロール不可能です。
  • これ以外のパラメータを付与することが可能です。アップロード後、「Properties」にkey:valueとして格納されます。

CSVのテンプレート

なおCSVのテンプレートもこちらに用意しました。

なおCSVのテンプレートもこちらに用意しました連番を組みやすくするため「seq」と呼ばれるカラムを追加していますが、出力の際適宜消去して利用してください。

注意点

IPFSの永続性

thirdwebのIPFSがどのように永続性を担保しているのか確認をとっていないので、その点DYORの上、ご利用ください。

thirdwebのtokenURIについて

今回のbatchuploadに直接関係はありませんが thirdwebでは、NFTのコントラクトで見られるような「_baseURI」がありません。トークンひとつひとつが共通するipfsのアドレスを持つ構造にはなっていません。トークン番号に対して、1つのURIが一対をなす構造となっています。

この記事を書いた人

Webプランナー、開発会社の創業メンバーを経て、Fintech・DX・Web3の企画・開発に従事。2021年に独立し、2023年に株式会社hanzochangを設立。現在はAIを活用した業務改善と、自社サービス「指定管理者制度AI」の開発・運用に取り組んでいます。

半澤勇大のXアカウント(新しいタブで開く)

この記事の株式会社hanzochangについて
少し紹介させてください!

この記事に関連する当社のサービス

Web3アプリ開発受託サービス

ウォレット連携やNFTを、使いやすいアプリに。

Solanaなどのブロックチェーンを使ったアプリを、企画・検証から開発・運用まで支援します。ウォレット連携やコントラクトだけでなく、利用者が操作する画面までまとめて設計します。

サービスの詳細を見る
Jくんが接続されたアプリを組み立て、鉛筆で原稿を作るイラスト。Web3サービス開発とコンテンツ作成を表す。
  • 企画・技術検証

    事業の目的に合わせ、必要な機能と技術を検討。

  • アプリ・連携開発

    ウォレットやコントラクトと画面を一体で開発。

  • 公開・運用支援

    公開後の保守や機能改善まで継続して対応。

Web3アプリの開発について、お気軽にご相談ください。