Cointime

Download App
iOS & Android

3 つのリンク サービスを使用して動的な NFT を作成する方法を説明します

Validated Project

著者チェーンリンク2023 年7 月12

概要

難易度:初級・中級

完了までの推定時間: 60 分

このチュートリアルでは、Remix を使用して Polygon Mumbai テストネットにスマート コントラクトをデプロイする方法を学習します。このスマート コントラクトは、米ドル建て ETH 価格に基づいて動的に更新される NFT を作成します。

以下に、その方法を段階的に説明します。

1. MetaMaskウォレットを作成する

2. Polygon Mumbai テストネットで資金を獲得する

3. Chainlink VRF サブスクリプションを作成する

4. Remix を使用して動的 NFT (dNFT) スマート コントラクトを展開する

5. dNFT スマート コントラクトを VRF コンシューマーとして追加します

6. Chainlink Automation で NFT を自動化する

7. OpenSea で NFT を表示および操作する

ステップ 1: MetaMaskウォレットを作成する

注: すでに MetaMask ウォレット (またはその他のウォレット) をお持ちの場合は、この手順をスキップしてください。

MetaMask ウォレットを作成するには、 https://metamask.io/にアクセスし、指示に従ってウォレットを作成します。

ステップ 2: Polygon Mumbai テストネットの資金を調達する

A) https://faucets.chain.link/mumbaiにアクセスします。

B) 右上隅の「Connect Wallet」をクリックします。

C) Polygon Mumbai と初めて対話する場合は、MetaMask が「このサイトにネットワークの追加を許可しますか?」というプロンプトを表示したら、「承認」をクリックしてください。

D) 「ネットワークの切り替え」をクリックします。

E) 「私は人間です」チェックボックスをオンにして、キャプチャを完了します。

F) 「リクエストを送信」をクリックします。

G) トランザクションが完了するまで待ちます。

おめでとう!テストネット Polygon Mumbai MATIC とテストネット LINK が正常に申請され、受信されました。

おめでとう!テストネット Polygon Mumbai MATIC とテストネット LINK が正常に申請され、受信されました。

注: Chainlink フォーセットのテストネット MATIC が使い果たされた場合は、 Polygon Mumbaiフォーセットを使用してテストネット MATIC を受信して​​ください。テストネット LINK を受信するには、Chainlink フォーセットを使用する必要があります。

ステップ3 : VRFサブスクリプションを作成する

dNFT スマート コントラクトを展開する前に、まず VRF サブスクリプションを作成します。これは、コントラクトが乱数を生成するときに使用するお金のバケツと考えてください。スマート コントラクトをデプロイするにはサブスクリプション ID が必要です。

A) https://vrf.chain.link/mumbaiにアクセスします。

B) 右上隅の「Connect Wallet」をクリックします。

C) 「サブスクリプションの作成」をクリックします。

D) もう一度「サブスクリプションの作成」をクリックします。

E) MetaMask プロンプトが表示されます。 「署名」をクリックします。

F) MetaMask で「確認」をクリックし、トランザクションが確認されるまで待ちます。

G) トランザクションが確認され、サブスクリプションが作成されたら、[資金を追加] をクリックします。

H) [資金の追加 (リンク)] 入力ボックスに 2 つのリンクを追加し、[資金の追加] をクリックします。

I) MetaMask でトランザクションを確認します。

おめでとう! VRF サブスクリプションが正常に作成され、テストネット リンクで資金が投入されました。次のステップで VRF サブスクリプションについて説明します。

ステップ4 : Remix動的NFTスマート コントラクトをデプロイする

Remix は、イーサリアム ブロックチェーン上のスマート コントラクトの開発とテストに特化したオンライン統合開発環境 (IDE) です。ユーザーフレンドリーなインターフェイスと、Ethereum スマート コントラクトの作成、コンパイル、デプロイ、デバッグのための強力なツール セットを提供します。

このステップでは、新しい Remix ワークスペースを作成し、スマート コントラクトをデプロイする方法を学習します。心配しないでください。スマート コントラクトはすでに作成されているため、コピーして貼り付けるだけで済みます。

このステップでは、新しい Remix ワークスペースを作成し、スマート コントラクトをデプロイする方法を学習します。心配しないでください。スマート コントラクトはすでに作成されているため、コピーして貼り付けるだけで済みます。

A) https://remix.ethereum.org/にアクセスします。

B) 画面の左上隅にある「+」アイコンをクリックして、新しいワークスペースを作成します。

C) 新しいワークスペースの名前を入力し、「OK」をクリックします。

D) 左側のサイドバーの「契約」を右クリックし、「新規ファイル」をクリックします。

E) ファイルに「demo.sol」または他の任意の名前を付けて、Enter キーを押します。

F) このコードをコピーします。

// SPDX ライセンス識別子: MIT

// これはデモのみを目的としており、運用環境では使用しないでください。

プラグマ ソリッドティ ^0.8.10;

// 他のコントラクトをインポートする

インポート "@openzeppelin/contracts/token/ERC721/ERC721.sol";

// 他のコントラクトをインポートする

インポート "@openzeppelin/contracts/token/ERC721/ERC721.sol";

import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URISTorage.sol";

インポート "@openzeppelin/contracts/utils/Strings.sol";

インポート "@openzeppelin/contracts/utils/Base64.sol";

import "@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol";

import "@chainlink/contracts/src/v0.8/interfaces/VRFCoordinatorV2Interface.sol";

import "@chainlink/contracts/src/v0.8/VRFConsumerBaseV2.sol";

// ERC721、ERC721URIStorage、VRFConsumerBaseV2 を継承する SuperDynamicNFT コントラクトを定義します

SuperDynamicNFT のコントラクトは ERC721、ERC721URIStorage、VRFConsumerBaseV2 {

// ETH価格と対応する絵文字を追跡するための状態変数

int256 前の EthPrice = 0;

文字列 ethIndicatorUp = unicode"

G) Remix に戻り、新しく作成した demo.sol ファイルにコードを貼り付けます。

注: 大量のコードを貼り付けているというポップアップ警告が表示される場合があります。[OK] をクリックします。

H) 左側のサイドバーにある「Solidity Compiler」アイコンをクリックします。

I) 「demo.sol をコンパイル」をクリックします。

I) 「demo.sol をコンパイル」をクリックします。

J) 左側のサイドバーにある「トランザクションのデプロイと実行」アイコンをクリックします。

K) [環境] ドロップダウン メニューをクリックし、[Remix VM (Shanghai)] から [Injected Provider - MetaMask] に変更し、MetaMask からのプロンプトに従ってウォレットに接続します。

L) スマート コントラクトを Polygon Mumbai ブロックチェーンにデプロイする前に、前の手順で作成した VRF サブスクリプションのサブスクリプション ID が必要です。 https://vrf.chain.link/mumbaiに戻り、作成したばかりの VRF サブスクリプションの ID をメモします。 ID は例のものとは異なります。まず、契約にサブスクリプションを認識させる必要があります。後のステップで、サブスクリプションに契約を認識させます。

M) Remix で、オレンジ色の [デプロイ] ボタンの横にある入力ボックスにサブスクリプション ID を入力します。

N) 「デプロイ」をクリックして、MetaMask でトランザクションを確認します。

O) 画面の下のコンソールに緑色のチェックマークが表示されたら、成功です。コントラクトを Polygon Mumbai ブロックチェーンに正常にデプロイしました。

ステップ5 : VRFサブスクリプションコンシューマを追加する

おめでとう!スマート コントラクトを Polygon Mumbai ブロックチェーンに正常にデプロイしました。スマート コントラクトが正常にデプロイされました。次に、ステップ 3 で作成した VRF サブスクリプションにスマート コントラクトをコンシューマとして追加します。

A) Remix で、契約アドレスをコピーします。

B) https://vrf.chain.link/mumbaiに移動し、右上隅にある「ウォレットを接続」をクリックしてウォレットを接続します。ウォレットがすでに接続されている場合は、この手順をスキップできます。

C) 手順 3 で作成したサブスクリプション ID をクリックします。サブスクリプションは「私のサブスクリプション」で見つけることができます。

D) 「コンシューマーの追加」をクリックします。

E) 「消費者アドレス」入力ボックスに契約アドレスを貼り付けます。これにより、展開するコントラクトについてサブスクリプションに通知されます。

F) 「Add Consumer」をクリックし、MetaMask からのプロンプトに従います。

G) トランザクションが確認されたら、「閉じる」をクリックしてページを更新します。以下の画像に示すコンシューマがサブスクリプションに追加されていることが確認できれば、このステップは正常に完了しています。

ステップ 6: Chainlink Automationを使用してNFTを自動化する

このステップでは、Chainlink Automation を使用して、NFT の背景色と表現を動的に更新する時間ベースのメンテナンスを作成します。

A) https://automation.chain.link/mumbaiに移動し、右上隅にある「ウォレットを接続」をクリックしてウォレットを接続します。ウォレットがすでに接続されている場合は、この手順をスキップできます。

A) https://automation.chain.link/mumbaiに移動し、右上隅にある「ウォレットを接続」をクリックしてウォレットを接続します。ウォレットがすでに接続されている場合は、この手順をスキップできます。

B) 「新規メンテナンス登録」をクリックします。

C) 「時間ベース」を選択します。

D) 契約アドレスを貼り付けて、「次へ」をクリックします (契約アドレスを見つけるのにサポートが必要な場合は、ステップ 5A を参照してください)。

E) 「ABI を取得できません。別のタブで、Remix に戻り、左側のサイドバーにある [Solidity コンパイラー] タブを選択します。」というプロンプトが表示されます。

F) [契約] ドロップダウン メニューで契約を選択し、[ABI をコピー] ボタンをクリックします。

F) [契約] ドロップダウン メニューで契約を選択し、[ABI をコピー] ボタンをクリックします。

G) メンテナンス登録に戻り、入力ボックスに ABI を貼り付け、[次へ] をクリックします。

H) 「目的関数」で「requestRandomWords」を選択し、「次へ」をクリックします。

I) 「スケジュールの指定」で、次のCRON式を入力して、2 分ごとに NFT の新しい背景色を生成します: */2 * * * * 。

J) 「次へ」をクリックします。

K) メンテナンスに名前を付け (例: Dynamic NFT Demo)、開始残高として 2 LINK を入力します。

L) [Register Upkeep] をクリックし、MetaMask に CRON ジョブ コントラクトを展開するトランザクションを承認します。

L) [Register Upkeep] をクリックし、MetaMask に CRON ジョブ コントラクトを展開するトランザクションを承認します。

M) トランザクションが承認されると、MetaMask は 2 番目のトランザクション「時間ベースのメンテナンス登録のリクエスト」を確認するよう求めます。

N) トランザクションが確認されるまで待ち、[メンテナンスの表示] をクリックします。

O) 新しく作成されたメンテナンス ステータスに「有効化」が表示されていれば、このステップは正常に完了しています。おめでとう!

ステップ7 : OpenSeaNFTを表示する

A) https://testnets.opensea.io/に移動し、右上隅のドロップダウン メニューから「プロファイル」を選択します。

B) 以下に示すようにウォレットを接続します。 OpenSea とのトランザクションに署名する必要がある場合があります。

C) プロフィールで、「ETH Watching SVG」というラベルの付いた NFT をクリックします。

D) 右上隅にある 3 つの点をクリックし、[メタデータの更新] を選択します。

E) 30 秒待ってからページを更新すると、新しく作成された dNFT が表示されます。

おめでとう!チュートリアルは完了しました。サブスクリプション資金がなくなるまで 2 分ごとに、NFT は ETH の価格を確認し、新しい背景色をリクエストします。次回メタデータを更新すると、何か違うものが表示されるはずです。

結論は

ここまで進んだなら、おめでとうございます!これで、Chainlink Price Feed を使用してイーサリアムの価格を追跡し、Chainlink VRF を使用してランダムな背景色を選択し、Chainlink Automation を使用して画像を 2 分ごとに更新します。

コメント

全てのコメント

Recommended for you

  • 米上院銀行委員会の委員長は、ステーブルコインの利回りに関する新たな草案が早ければ今週中にも公表される可能性があると述べた。

    Cointimeの報道によると、上院銀行委員会の委員長を務めるティム・スコット上院議員は、ワシントンD.C.で開催されたブロックチェーンサミットで、議員らは早ければ今週中にも、少なくともステーブルコイン関連の条項を含む新たな法案草案を目にする可能性があると述べた。スコット議員は、法案の中で最も注目を集めているのはステーブルコインの利回り問題だが、議員らは引き続きこの問題に取り組んでいると指摘した。 スコット議員は、「今週中に最初の提案が提出されるだろう。もしそれが週末までに実現すれば、少なくとも法案の枠組みが形になりつつあるかどうかが分かるだろう。そうなれば、我々はより良​​い状況に立てると思う」と述べた。また、ステーブルコインの利回り問題に関して、民主党のアンジェラ・アルソブルックス上院議員、共和党のトム・ティリス上院議員、そしてホワイトハウス高官のパトリック・ウィット氏の尽力も、この進展に貢献していると述べた。 スコット氏は、過去1か月間の交渉で、ドナルド・トランプ大統領とその家族の暗号資産プロジェクトに対する議員の懸念、主要な規制機関における超党派代表の欠如、顧客確認(KYC)規制など、その他の未解決問題も取り上げられたと述べた。 スコット氏はまた、「倫理問題と定足数については、合意に非常に近づいていると思います。これは相手側にとっても重要な問題だと認識しているので、こちらも対応しています。また、いくつかの人事についても進展が見られており、これは良いニュースです。DeFiに関しては、マーク・ワーナー上院議員が注力している分野であり、マネーロンダリング対策(AML)は非常に重要な要素です。これらの問題についても前進していると思います」と述べた。

  • ゴールデンモーニングブリーフィング|3月18日の主要な夜間動向

    21:00~7:00 キーワード:ファントムウォレット、ストライプウォレット、オートノマスウォレット、イラン 1. イランは、米国とイスラエルが自国領土を使用することを容認する国に対して、合法的に攻撃できると主張している。 2. 米国CFTC(商品先物取引委員会)は、ファントムウォレットはブローカーとしての登録を必要としないと発表。 3. アリゾナ州司法長官は、予測マーケティング担当者のカルシ氏を刑事告発。 4. 米国国務省は、世界中のすべての在外公館に対し、「直ちに」安全保障評価を実施するよう命じた。 5. ロビンフッド・ベンチャーキャピタルは、ストライプウォレットとイレブンラボに約3500万ドルを投資。 6. GSRは、オートノマスウォレットとアーキテックを買収するために5700万ドルを投資し、暗号資産ファンド管理プラットフォームを構築。 7. 米国証券取引委員会(SEC)とCFTCは、ほとんどのデジタル資産は証券ではないとする新たな暗号資産ガイダンスを発表。

  • 米国証券取引委員会(SEC)と商品先物取引委員会(CFTC)は、仮想通貨に関する新たな見解を発表し、ほとんどのデジタル資産は証券の範疇には含まれないとした。

    Cointimeは3月18日、米国証券取引委員会(SEC)と商品先物取引委員会(CFTC)が暗号資産に関する68ページのガイダンス文書を公表し、ほとんどのデジタル資産は証券ではないと明記したと報じた。この新たな説明では、ステーブルコイン、デジタル商品、および「デジタル商品」トークンの分類が詳細に説明されており、これらはすべて証券ではないと両機関は述べている。また、「非証券暗号資産」がどのようにして証券になり得るのかを説明し、マイニング、プロトコルステーキング、エアドロップに連邦証券法がどのように適用されるのかを明確にしている。 SECはさらに、非証券デジタル資産が投資契約の対象となる仕組みについても説明している。SECの説明によると、「非証券暗号資産は、発行者が投資家に対し共同事業への投資を促し、必要な経営業務を行うという約束または表明を行い、かつ購入者がそこから利益を得ると期待する理由がある場合に、投資契約の対象となる」。

  • マスターカードは、ステーブルコイン企業であるBVNKを最大18億ドルで買収する計画だ。

    Cointimeの報道によると、Mastercardはステーブルコインインフラのスタートアップ企業であるBVNKを、条件付き買収額3億ドルを含め最大18億ドルで買収する計画だ。この買収は、BVNKとCoinbaseの約20億ドル規模の合併交渉が決裂してからわずか4ヶ月後のことである。両社は火曜日に発表した共同声明で、この取引を確認した。

  • ビットコインが7万5000ドルを突破

    市場データによると、BTCは75,000ドルを突破し、現在75,033.01ドルで取引されており、24時間で2.83%上昇しています。市場は著しい変動に見舞われているため、リスク管理には十分ご注意ください。

  • ビットコインが7万1500ドルを突破

    市場データによると、BTCは71,500ドルを突破し、現在71,510.19ドルで取引されており、24時間で1.06%上昇しています。市場は著しい変動に見舞われているため、リスク管理には十分ご注意ください。

  • イーサリアムが2100ドルを突破

    市場データによると、イーサリアム(ETH)は2,100ドルを突破し、現在2,100.58ドルで取引されており、24時間で0.44%上昇しています。市場は著しい変動に見舞われていますので、リスク管理に十分ご注意ください。

  • 米国の現物イーサリアムETFには、昨日2670万ドルの純流入があった。

    Farside Investorsが監視しているデータによると、3月14日、米国の現物イーサリアムETFには昨日、2670万ドルの純流入があった。

  • 米国司法省はパウエル事件の判決を不服として控訴する予定であり、これによりウォーシュ氏の任命が遅れる可能性がある。

    3月14日、裁判官が連邦準備制度理事会(FRB)に発行された召喚状を却下した後、ロバート・ピロ連邦検事は、FRB議長ジェローム・パウエル氏に対する捜査を継続すると誓い、5月に任期が満了する後任のケビン・ウォーシュ氏の任命を遅らせる可能性があると述べた。ジェームズ・ボスバーグ連邦地裁判事は、FRB本部の改修工事とパウエル氏の同プロジェクトに関する発言に関連する召喚状を政府が正当化する証拠を提示できなかったと述べた。ピロ氏は、「この手続きは過激な判事によって恣意的に妨害された。手続きは円滑に進むべきだったが、そうはならなかった。彼らは恥ずべき行為をしている」と述べた。上院銀行委員会のメンバーであるティリス上院議員は、司法省によるパウエル氏に対する捜査が続く限り、FR​​B議長の指名を阻止すると警告した。「この判決は、パウエル議長に対する刑事捜査がいかに弱く根拠のないものであったかを裏付けるものであり、FRBの独立性に対する失敗した攻撃に過ぎない」とティリス氏は述べた。 「この控訴は、ケビン・ウォーシュ氏の次期連邦準備制度理事会議長への就任承認を遅らせるだけだろう。」