---
title: "什麼是 dynamic NFT(dNFT)?"
description: "dNFT 是什麼，以及如何製作"
---

# 什麼是 dynamic NFT(dNFT)?

非同質化代幣（NFTs）已經為數位藝術、遊戲、運動卡牌、音樂等領域創造了數十億美元的銷售額。大多數人想到 NFT 時，通常會想到靜態的圖片、影片或多媒體資產。

不過，[動態 NFT](https://www.alchemy.com/docs/alchemy-quickstart-guide)（dNFTs）正日益受到重視。在這篇文章中，我們將說明什麼是動態 NFT，包括已實現與潛在的 dNFT 應用案例，以及想要打造 dNFT 的人如何運用 oracle 來取得可信賴度最小化的鏈下資料與運算。

## 什麼是動態 NFT？

**動態 NFT 是一種可以根據特定情況而改變的非同質化代幣。**由於 dNFT 具備因應外部事件與資料而調整、變化的能力，它們正在擴展 NFT 所能處理的設計空間。

目前 NFT 最常見的用途是在數位藝術領域，藝術家會創造一枚代表數位藝術作品的代幣，例如 [1-of-1 NFT](https://www.alchemy.com/overviews/solana-1-of-1-nfts)，收藏家可以購買這枚代幣以證明擁有權。當新的 NFT 被鑄造出來時，tokenID 不會改變。

要記住，你不需要為 NFT 附加任何資訊，例如描述、圖片或其他特徵。NFT 最基本的形式，就是一個帶有稱為 tokenID 的獨特識別碼、可移轉的代幣。

這種靜態 NFT 模式在許多方面幫助了全球的數位藝術家。過去，數位藝術家無法阻止甚至追蹤其原創作品被非法散播，因為沒有辦法分辨任何兩個檔案之間的差異。這意味著無法保存單一的原始檔案。

在網路歷史上第一次，只要能證明擁有權，創作者就能將數位藝術賣給粉絲。粉絲也能證明自己擁有一件原創作品，即使底下的圖片是被複製的。

靜態 NFT 現在被用於大多數的[生成式 NFT 藝術專案](https://www.alchemy.com/overviews/solana-generative-nfts)、邊玩邊賺遊戲，以及數位收藏品。除了這些應用案例之外，它們也為房地產文件、專利等現實世界資產的數位化，提供了獨特的價值主張。

但這種做法有其侷限：靜態 NFT 一旦上鏈就無法更改，其中繼資料（metadata）也無法變更。以下是幾個需要更新資料的 NFT 使用情境：

- 將現實世界資產代幣化
- 製作會隨進度變化的電玩遊戲
- 在區塊鏈上建立夢幻運動聯盟
- 以及更多、更多其他情境

動態 NFT 讓 NFT 在保有其獨特 ID 的同時，也能取得更新的資訊。

動態 NFT 是一種能因應外部事物而改變的 NFT。dNFT 的變化通常意味著智能合約更改了其中繼資料。之所以能做到這一點，是因為 NFT 智能合約內建了自動更新機制，能告訴底層的 NFT 何時、以及如何更改其資訊。

## 動態 NFT（dNFT）如何運作？

促成此技術的核心是智能合約，它讓動態 NFT 能同時運用鏈下與鏈上運算來實現成長。當使用者請求某個 NFT 時，智能合約會同時查看鏈下與鏈上資料，以決定要回傳什麼內容給使用者。

1. 首先，NFT 請求會被送到智能合約
1. 智能合約會在區塊鏈上尋找資訊
1. 合約會向 oracle 請求不在鏈上的資訊
1. 智能合約接著回傳一或兩則媒體內容

這代表智能合約使 NFT 得以隨時間改變成為可能。因此，智能合約會同時運用鏈下與鏈上資料，判斷某個非同質化代幣是否應該改變，若應該改變，則更新該動態 NFT 的中繼資料。

## Oracle 在動態 NFT 中如何被運用？

除了中繼資料更新之外，還可能出現動態功能。例如，當擴增實境應用程式中的某個隱藏地點被找到時，就可以觸發動態 NFT 的產生。

除了資訊之外，dNFT 也可能具備「隱藏功能」，在使用者與其互動時才會顯現出來。像 NFT 這種完全獨一無二、且可以有多種設定方式的代幣，能以無數種方式被程式化設計。

不過，大多數 dNFT 仍必須包含某種中繼資料的變化，好讓不熟悉技術的使用者也能「看見」變化。dNFT 設計中常被忽略的一環，是如何取得打造一個安全、公平且自動化的 dNFT 流程所需的資料與功能。

鏈上與鏈下的外部變數，都能以不只一種方式改變 dNFT 的中繼資料。然而，區塊鏈本身無法存取或處理鏈外的資料。

Oracle 透過提供各種可用來觸發 dNFT 升級的鏈下資料與運算服務，來解決這些問題。Oracle 扮演連結這兩個世界的橋樑。隨著 dNFT 生態系的成長、以及 NFT 與現實世界的連結日益緊密，這使得打造自動化、去中心化、甚至「有趣」的 dNFT 流程成為可能。

## 如何建立動態 NFT（教學）

在開始製作自己的動態 NFT 之前，先選定你的項目、其變數，以及想要使用的鏈。

舉例來說，你可能想選擇一枚會根據 ETH 價格變化圖片的 Ethereum NFT。當 ETH 價格上漲時，NFT 圖片顯示牛；當 ETH 價格下跌時，NFT 圖片則顯示熊。

有了計畫之後，接下來就是設定你的開發環境。

### 建立 dNFT 所需的工具

開始之前，請確認你已備妥所需工具：

- [一個免費的 Alchemy 帳號](https://alchemy.com/?a=990c6ced09)
- IDE
- 可存取 [dNFT 教學的 Github repo](https://github.com/zeuslawyer/chainlink-dynamic-nft-alchemy)
- IPFS companion
- 一個 faucet 及測試網代幣

環境設定完成後，以下是使用 Alchemy 建立 dNFT 的基本步驟。

### 建立動態 NFT 的步驟

以下是 Alchemy 的 [動態 NFT 教學](https://www.alchemy.com/docs/alchemy-quickstart-guide)的簡要概述，該教學會根據市場價格變化來改變設計。

1. 設定 ERC721 代幣
1. 將 NFT 圖片連結上傳至 IPFS URI
1. 完成編譯檢查
1. 讓 NFT 合約「相容 Keepers」
1. 讓智能合約與 [Chainlink](https://www.alchemy.com/dapps/chainlink) Price feeds 互動，依照你定義的變數（在此例中為市場價格）來改變 NFT
1. 測試你的 dNFT，確認它是否如預期般動態更新
1. 鑄造並部署你的 dNFT！

以上是建立 dNFT 的簡化版本。完整版本請參閱我們的逐步指南。

## 熱門的動態 NFT 案例

LaMelo Ball 是一名職業籃球員，已發行八款不同的 **LaMelo Ball NFT**。他的每一款 dNFT 都追蹤不同的一組個人數據，例如籃板、助攻與得分，並依照他的比賽數據而改變。

例如，如果他在一場比賽中拿下 10 次助攻，該 NFT 就可能變換成不同的背景顏色。根據 LaMelo 持續的表現，動態 NFT 持有者可以參加獨家抽獎並獲得其他僅限 NFT 持有者享有的福利。

在這八款 NFT 中，其中一款 **Gold Change NFT** 附帶一項條件：如果 LaMelo Ball 獲得 2021 NBA 賽季最佳新秀獎，該 NFT 就會改變。在 LaMelo 獲獎後，這枚 NFT 完全變成了另一張圖像。

另一個例子是 **Regenerative Resources（RRC）**，這是一間生態系統服務公司，目標是將受損的土地轉變為能創造收益的海洋環境。

RRC 宣布發行五款由知名藝術家製作的 Short Film NFT。銷售所得將用於透過 RRC 現有的專案，種植並培育一億棵紅樹林。每款 Short Film NFT 最初只會顯示一格畫面。當該 NFT 被買賣時，短片就會逐格顯現，直到 NFT 持有者能看到完整內容為止。
