教你如何在 Solana 上使用 Token Extensions 創建Dynamic Metadata NFTs

閱讀時間約 4 分鐘

Introduction

Dynamic Metadata NFTs 是區塊鏈技術中的一大創新,特別是在遊戲領域,能提供更大的靈活性和on-chain data manipulation。

Solana 區塊鏈的 Token Extensions program讓開發者能創建dynamic, customizable metadata且能在鏈上儲存的 NFT。

本文將引導你使用 Solana 的 Anchor 框架來建立這樣的 NFT。

Dynamic Metadata

傳統 NFT 的 Metadata通常儲存在鏈下,這限制了它們的靈活性。而Dynamic Metadata NFT 則允許即時更新和鏈上互動,特別適合用於遊戲中,因為這樣玩家的等級、資源等都能直接編寫進 NFT 中,提供更流暢的遊戲體驗。

設置On-Chain Program

要建立具有dynamic metadata的 NFT,首先需要使用 Solana 的 Anchor 框架來設定一個on-chain program。這個program會鑄造 NFT,並允許實時更新其metadata。

之後會使用官方提供的、專注於遊戲應用的範例,該範例中的 NFT 會追蹤玩家的等級和資源。

步驟:

  1. 創建 Mint Account:首先創建並初始化一個用來儲存 NFT 的 Mint Account
  2. 創建Metadata Pointer:Metadata Pointer是用來連接dynamic metadata與 NFT 的。
  3. 鑄造 NFT:當infrastructure準備就緒後,鑄造 NFT 並將其存入關聯的代幣帳戶。鑄造後,凍結 mint 權限以防止對 NFT 進行進一步更改。

撰寫 Rust Program

Rust 是on-chain operations的核心,主要包括計算account所需的空間、初始化account、並創建metadata fields。

初始化帶有metadata extensions功能的 mint account

let space = ExtensionType::try_calculate_account_len::<Mint>(
&[ExtensionType::MetadataPointer])
.unwrap();

let lamports_required = (Rent::get()?).minimum_balance(space + meta_data_space);
system_program::create_account(
CpiContext::new(
ctx.accounts.token_program.to_account_info(),
system_program::CreateAccount {
from: ctx.accounts.signer.to_account_info(),
to: ctx.accounts.mint.to_account_info(),
},
),
lamports_required,
space as u64,
&ctx.accounts.token_program.key(),
)?;

JavaScript 客戶端整合

JavaScript 客戶端用來與on-chain program進行互動,從前端實現 NFT 的鑄造和更新。

以下代碼將展示如何設置客戶端、將其連接到on-chain program,以及鑄造 NFT並指定所需的帳戶和權限。

raw-image


Running Locally and Deployment

要在本地運行並部署程式,首先需要設置 Solana 的開發環境,然後build並部署 Anchor 程式。

可以使用 anchor buildanchor deploy 等命令來管理部署過程。

步驟:

  1. build 與部署:build 並部署 Anchor 程式。
  2. 客戶端設置:安裝相關dependencies 並運行開發伺服器。
  3. 測試:使用 Solana Explorer 監控交易並與本地測試節點進行互動。

結論

通過利用 Solana 的 Token Extensions 和 Anchor 框架,開發者能夠創建靈活、互動性強的數字資產,進一步提升區塊鏈生態系統中的用戶體驗。

參考資料

https://solana.com/developers/guides/token-extensions/dynamic-meta-data-nft

avatar-img
0會員
6內容數
SuDo Research Labs
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
jackchai 的其他內容
本篇文章提供清晰的步驟與代碼,指導開發者如何在實際項目中設置和使用 CandyPay。無論是新手還是有經驗的開發者,您都可以輕鬆掌握如何將這一強大的支付工具無縫整合到應用中,並實現加密貨幣支付功能。文章中還介紹了 NFT-Based Discount 的設置方法,幫助商家擴展客戶忠誠度。
CandyPay 是一個使用 Solana 區塊鏈的 Payment solution,企業只需撰寫幾行程式碼,即可將這個支付基礎設施整合到自己的應用中,並開始接受 Solana Payments。這使得企業能夠輕鬆利用 Solana 提供的快速、低成本的去中心化支付網路。 值得一提的是,Cand
本篇文章提供清晰的步驟與代碼,指導開發者如何在實際項目中設置和使用 CandyPay。無論是新手還是有經驗的開發者,您都可以輕鬆掌握如何將這一強大的支付工具無縫整合到應用中,並實現加密貨幣支付功能。文章中還介紹了 NFT-Based Discount 的設置方法,幫助商家擴展客戶忠誠度。
CandyPay 是一個使用 Solana 區塊鏈的 Payment solution,企業只需撰寫幾行程式碼,即可將這個支付基礎設施整合到自己的應用中,並開始接受 Solana Payments。這使得企業能夠輕鬆利用 Solana 提供的快速、低成本的去中心化支付網路。 值得一提的是,Cand
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
在這個快速變遷的時代,選擇一條合適的職業方向成為了許多人共同面臨的難題。無論是學生在選擇專業、職場新人尋找第一份工作,還是經驗豐富的職場人考慮轉職或創業,迷茫與焦慮時常伴隨而來。你是否正為選系、就業、轉職或創業感到迷惘?你是否在尋找一份既能激發熱情又能發揮才能的工作?如果這些問題正困擾著你,《發現你
Thumbnail
HyRead系統是一個非常方便的平台,你只要有圖書館帳號,就能免費借閱台灣各大公共圖書館、學校圖書館的藏書,今天教大家如何方便快速,輸出你在hyread上所劃的重點。 並且上傳到notion等筆記軟體,方便大家後續整理讀書筆記。
Thumbnail
資訊豐富的時代,資料呈現的方式變得愈發重要。先前我們已經分享了如何在 Notion 上使用 Mermaid 語法創建圓餅圖、時間軸、甘特圖、心智圖、流程圖和旅程圖。而在今天的文章中,我將帶你瞭解如何讓這些視覺圖表變得豐富多彩,讓你的資料不再是單調的黑白兩色。顏色主題共五種,讓我們繼續看下去!
Thumbnail
Notion 是一個功能強大且多功能的協作工具。透過在 Notion 上使用 Mermaid 語法繪製旅程圖,我們能夠以直觀且視覺化的方式呈現使用者的旅程和體驗。旅程圖是一種圖形表示方式,它能夠幫助我們更有效地瞭解使用者在整個旅程中的體驗和感受,從而有助於我們優化未來的任務和計劃。
Thumbnail
Notion 是一個功能強大且多功能的協作工具。透過在 Notion 使用 Mermaid 語法繪製流程圖,可以有效地以視覺化的方式呈現流程和流程間的關係。此外,流程圖是一種圖形表示方式,用於展示任務、流程或系統中的步驟和相互關係,有助於優化複雜的流程,從而幫助我們檢視和改進流程效率。
Thumbnail
Notion 是一個功能強大且多功能的協作工具。你可以透過在 Notion 上使用 Mermaid 語法繪製心智圖,有效地進行腦力激盪,組織知識、探索關聯,促進創意思維,並規劃任務。此外,你還可以使用心智圖來綜覽和瞭解細節,讓你更清晰地理解和思考相關的連結。現在,快來掌握繪製心智圖的技巧吧!
Thumbnail
Notion 是一個功能強大且多功能的協作工具,透過在 Notion 使用 Mermaid 語法繪製甘特圖,可以有效地視覺化學習進度和目標完成情況,從而提升工作效率和學習成果的管理。現在,我們將開始學習在 Notion 上繪製甘特圖,以組織學習進度並促進團隊之間的協作。立即踏上這個專業的學習旅程吧!
Thumbnail
Notion 是一個強大的協作工具,除了筆記和任務管理外,它還提供視覺化資料的功能。在快節奏的工作環境中,有效的時間管理和工作安排至關重要。本章將介紹如何在 Notion 上運用 Mermaid 語法來繪製時間軸,這將為你提供一個清晰、組織良好的視覺化工具,協助你更好地管理工作,確保都能按計劃進行。
Thumbnail
Notion 是一個強大且多功能的協作工具,不僅可以用於筆記和任務管理,還能幫助你視覺化資料。本章將教你如何在 Notion 上使用 Mermaid 語法繪製圓餅圖,以呈現美觀又易於理解的視覺化內容。不管是要展示預算分配、時間規劃還是進行任務分配,Notion 的圓餅圖功能都能滿足你的需求。
Thumbnail
為什麼承認犯錯這麼難 ? 我們的大腦裡面住了一位迷你的獨裁者,當外界的事實或反對意見要進入我們的心智時,會被它阻擋。 神經科學家也發現,當我們的核心信念受到挑戰的時候,會觸發杏仁核,也就是原始的「蜥蜴腦」,啟動一場激烈的「戰或逃」反應。 所以在面對他人的論點時,我們很容易看到缺點,而對於自己的立場,
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
在這個快速變遷的時代,選擇一條合適的職業方向成為了許多人共同面臨的難題。無論是學生在選擇專業、職場新人尋找第一份工作,還是經驗豐富的職場人考慮轉職或創業,迷茫與焦慮時常伴隨而來。你是否正為選系、就業、轉職或創業感到迷惘?你是否在尋找一份既能激發熱情又能發揮才能的工作?如果這些問題正困擾著你,《發現你
Thumbnail
HyRead系統是一個非常方便的平台,你只要有圖書館帳號,就能免費借閱台灣各大公共圖書館、學校圖書館的藏書,今天教大家如何方便快速,輸出你在hyread上所劃的重點。 並且上傳到notion等筆記軟體,方便大家後續整理讀書筆記。
Thumbnail
資訊豐富的時代,資料呈現的方式變得愈發重要。先前我們已經分享了如何在 Notion 上使用 Mermaid 語法創建圓餅圖、時間軸、甘特圖、心智圖、流程圖和旅程圖。而在今天的文章中,我將帶你瞭解如何讓這些視覺圖表變得豐富多彩,讓你的資料不再是單調的黑白兩色。顏色主題共五種,讓我們繼續看下去!
Thumbnail
Notion 是一個功能強大且多功能的協作工具。透過在 Notion 上使用 Mermaid 語法繪製旅程圖,我們能夠以直觀且視覺化的方式呈現使用者的旅程和體驗。旅程圖是一種圖形表示方式,它能夠幫助我們更有效地瞭解使用者在整個旅程中的體驗和感受,從而有助於我們優化未來的任務和計劃。
Thumbnail
Notion 是一個功能強大且多功能的協作工具。透過在 Notion 使用 Mermaid 語法繪製流程圖,可以有效地以視覺化的方式呈現流程和流程間的關係。此外,流程圖是一種圖形表示方式,用於展示任務、流程或系統中的步驟和相互關係,有助於優化複雜的流程,從而幫助我們檢視和改進流程效率。
Thumbnail
Notion 是一個功能強大且多功能的協作工具。你可以透過在 Notion 上使用 Mermaid 語法繪製心智圖,有效地進行腦力激盪,組織知識、探索關聯,促進創意思維,並規劃任務。此外,你還可以使用心智圖來綜覽和瞭解細節,讓你更清晰地理解和思考相關的連結。現在,快來掌握繪製心智圖的技巧吧!
Thumbnail
Notion 是一個功能強大且多功能的協作工具,透過在 Notion 使用 Mermaid 語法繪製甘特圖,可以有效地視覺化學習進度和目標完成情況,從而提升工作效率和學習成果的管理。現在,我們將開始學習在 Notion 上繪製甘特圖,以組織學習進度並促進團隊之間的協作。立即踏上這個專業的學習旅程吧!
Thumbnail
Notion 是一個強大的協作工具,除了筆記和任務管理外,它還提供視覺化資料的功能。在快節奏的工作環境中,有效的時間管理和工作安排至關重要。本章將介紹如何在 Notion 上運用 Mermaid 語法來繪製時間軸,這將為你提供一個清晰、組織良好的視覺化工具,協助你更好地管理工作,確保都能按計劃進行。
Thumbnail
Notion 是一個強大且多功能的協作工具,不僅可以用於筆記和任務管理,還能幫助你視覺化資料。本章將教你如何在 Notion 上使用 Mermaid 語法繪製圓餅圖,以呈現美觀又易於理解的視覺化內容。不管是要展示預算分配、時間規劃還是進行任務分配,Notion 的圓餅圖功能都能滿足你的需求。
Thumbnail
為什麼承認犯錯這麼難 ? 我們的大腦裡面住了一位迷你的獨裁者,當外界的事實或反對意見要進入我們的心智時,會被它阻擋。 神經科學家也發現,當我們的核心信念受到挑戰的時候,會觸發杏仁核,也就是原始的「蜥蜴腦」,啟動一場激烈的「戰或逃」反應。 所以在面對他人的論點時,我們很容易看到缺點,而對於自己的立場,