skyone

skyone

Hello, World

ARMakeNFT

image

Photo by Alexander Elliott

IPFS を放棄し、AR を受け入れよう 💮

このチュートリアルでは、IPFS を放棄し、AR を使って NFT を作成する方法を説明します。

最終結果の表示: ここをクリック


ArDrive の準備#

  1. 0.2AR を無料で体験できます。手順は ArDrive 公式サイト を参考にしてください。ツイートを投稿すると、小アカウントの検証が難しいですが、0.2AR を受け取ることができます。このステップが完了すると、ウォレットの秘密鍵に関する情報が記載された json ファイルが生成されます。

  2. 完了したら、ArConnectを使用して、先ほどダウンロードした Json ファイルをインポートします。以下の手順を確認してください。

    image

    image

  3. ウォレットのインポートが成功したら、 https://app.ardrive.io/ にログインして、ここで登録できます。

    image

    ユーザー名とパスワードを提供して登録してください。

    image


ArDrive の使用#

  1. Drive と Folder について、Drive の中には多くの Folder があり、Drive を他の人と共有することができます。注意 ⚠️ Drive を作成する際には、Public または Private を選択する必要があります。Public と Private の詳細については、こちらを参照してください こちら、文字通り理解してください。

    1. 各 Drive と Folder にはそれぞれ一意の識別子があります。https://app.ardrive.io/#/drives/ee70c85b-f140-49c7-80b1-856625fcb103/folders/77c4b073-5ce5-4f5a-bd59-b3a14e29a68d 例えばこのリンクのように、
      1. FolderID=77c4b073-5ce5-4f5a-bd59-b3a14e29a68d は、後でアップロード時に使用します。アップロードする FolderID を指定する必要があります。
      2. DriveID=ee70c85b-f140-49c7-80b1-856625fcb103

    image

  2. 通常通りデータをアップロードします。画像をアップロードした後、次のような表示が得られます。DataID を取得したら、このゲートウェイ➕dataID でアクセスできます。例えば https://arweave.net/l1n24_cORIcDAOkzFc0I1IWs2qvv-eelHp4Qgb1f9vk image


NFT#

  1. 画像をアップロードします。

    • このステップに到達したら、画像を AR にアップロードし、対応する DataID を取得できます。

      const { readJWKFile, arDriveFactory, wrapFileOrFolder, EID } = require('ardrive-core-js');
      
      //walletはあなたのjsonファイル、ダウンロードしたものです。
      //filePathはpngのパスです。
      //FolderIDは上で示したものです。
      async function upload(wallet, filePath, folderID){
          const arDrive = arDriveFactory({ wallet: wallet });
          const wrappedEntity = wrapFileOrFolder(filePath);
      
          const destFolderId = EID(folderID);
      
          const uploadFileResult = await arDrive.uploadAllEntities({
              entitiesToUpload: [{ wrappedEntity, destFolderId }]
          });
      
          let {created} = uploadFileResult;
        	// 返されるのはDataIDです。
          return created[0].dataTxId.transactionId;
      }
      
    • 画像を 1 枚アップロードするごとに、dataID が返され、JsonFile が生成されます。

      {
        "name":"name #0",
        "description":"balabala.",
        "traits":[
          {"trait_type":"backgroud","value":"blue"},
          {"trait_type":"body","value":"body"},
          {"trait_type":"eye","value":"happy"},
          {"trait_type":"hat","value":"hat"},
          {"trait_type":"clothes","value":"hoodie_B"},
          {"trait_type":"plant","value":"alsophilaspinulosa"}
        ],
        "image":"https://arweave.net/l1n24_cORIcDAOkzFc0I1IWs2qvv-eelHp4Qgb1f9vk"}
      
    • ここで費用について説明します。各 tx には 2 つのフィールドがあり、費用に関連しています。例えばこのtx 👈

      • Fee: このファイルの保存にかかる費用、つまりファイルの保存にかかる大部分 🤕 上記の tx は 655kb の png に対応し、Fee は 0.000109AR です。

        Fee の観点から見ると、全体的に Pinata よりも安いです。もちろん、Infura の価格はもう少し良いですが、Infura のアクセスは非常に遅いです。

      • Value: このフィールドは eth 上の value フィールドに似ていますが、gas もここに含まれます。
  2. ディレクトリ形式で json ファイルをアップロードします。

    • すべての png をアップロードした後、たくさんの json ファイルが 1 つのディレクトリにあります。

    • この時点で、ディレクトリとしてアクセス可能な形式でこれらの jsonFile をアップロードする必要があります。

    • 2 つの方法があります。

      • 注意 aruploadは json のフォルダで、wallet.json にはウォレットの秘密鍵などの情報が含まれています [最初にダウンロードした json ファイル🍎]
      • 自分で置き換えてください。
      • 簡単な方法:サードパーティを利用する、参考にするarkb githubこれには 10% の追加費用がかかるようです。

        • npm install -g arkb グローバルにインストールした後

        • arkb deploy ./arupload/ --wallet ./wallet.json このコマンドでアップロードできます。

        • アップロードが完了すると、次の画像が返されます。

          image

          この url にサフィックスを追加します。例えば https://arweave.net/8qWYL9oyX5oPU9dwMHWii8ZlonEYatK-P2k_RXpfbs4/1.json でアクセスできます。

      • 複雑な方法:よりネイティブで、AR 自身のシステムです。参考にするardrive-cli github

        • npm install -g ardrive-cli

        • ardrive upload-file --local-path ./arupload/ --parent-folder-id "2639094e-cb4a-4546-b5fb-f582db582fae" -w ./wallet.json

          注意ここでの parent-folder-id パラメータは、上で述べた FolderID です。

        • ardrive create-manifest -f "2639094e-cb4a-4546-b5fb-f582db582fae" -w ./wallet.json

          同様に、ここでの - f も folderID です。

        • アップロードが完了すると、次の画像が返されます。

          image

        • この url にサフィックスを追加します。例えば https://arweave.net/ruwoIvbk7oLa87xKUTd-_DY4MGJ6UR8iWEE3egRkfOI/arupload/1.json でアクセスできます。

  3. 基本的にここで終了です。etherscan で tokenURI を設定するだけです。形式: ar//《Path》 例えば上記の複雑な赤枠の値に基づいて、次のように設定します: ar://ruwoIvbk7oLa87xKUTd-_DY4MGJ6UR8iWEE3egRkfOI/arupload/


参考文献#

https://mirror.xyz/pfeffunit.eth/iLX1IKglGDxRTufg64RdYJCrNRAMIogmLhfdJ6ZAXUY

https://blog.developerdao.com/getting-started-with-arweave#heading-introduction-to-arweave

https://docs.arweave.org/info/

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。