市值: $2.1903T 0.81%
體積(24小時): $61.7398B -17.07%
恐懼與貪婪指數:

20 - 極度恐懼

  • 市值: $2.1903T 0.81%
  • 體積(24小時): $61.7398B -17.07%
  • 恐懼與貪婪指數:
  • 市值: $2.1903T 0.81%
加密
主題
加密植物
資訊
加密術
影片
頂級加密植物

選擇語言

選擇語言

選擇貨幣

加密
主題
加密植物
資訊
加密術
影片

如何部署NFT智能合約? (安全帽和混音教學)

Set up Hardhat, write an ERC-721 NFT contract with OpenZeppelin, test locally, then deploy to Sepolia via script or Remix—ensuring proper URI handling and ownership control.

2026/02/23 12:20

設定開發環境

1. 安裝 Node.js 和 npm 以確保與 Hardhat 工具鍊和依賴管理的兼容性。

2. 在空專案目錄中執行npm install --save-dev Hardhat以初始化 Hardhat 工作區。

3. 執行npx Hardhat init並選擇範例專案選項以產生樣板文件,包括合約、腳本和測試資料夾。

4. 使用 Sepolia 或 Mumbai 等網路端點設定Hardhat.config.js以進行測試網路部署。

5. 透過npm install @openzeppelin/contracts安裝 OpenZeppelin 合約,以利用經過審計的 ERC-721 實施。

編寫 NFT 合約

1. 建立繼承ERC721Ownable的contracts/MyNFT.sol ,用於所有權控制。

2.定義公共_baseTokenURI字串以支援透過IPFS或中心化伺服器動態元資料解析。

3. 實作一個鑄造函數,該函數檢查呼叫者授權並使用_safeMint分配連續的令牌 ID。

4. 新增僅限合約所有者使用的setBaseURI函數,以允許部署後 URI 更新。

5. 包含supportsInterface重寫,以完全符合ERC-721標準介面偵測要求。

本地編譯和測試

1. 使用npxhardhatcompileartifacts/資料夾中產生ABI和字節碼工件。

2. 在test/MyNFT.test.js中編寫測試腳本,驗證鑄造邏輯、所有權轉移和 URI 一致性。

3. 使用npx Hardhat 節點啟動本地以太坊節點來模擬區塊鏈行為,無需外部依賴。

4. 使用npx hardhat test運行測試並確認所有斷言均通過,然後再繼續部署。

5. 透過檢查編譯輸出並與 EVM 版本限制進行比較,驗證合約字節碼是否與預期操作碼相符。

透過 Hardhat 腳本進行部署

1. 建立script/deploy.js ,匯入合約工件並初始化部署參數,例如名稱、符號和基本 URI。

2. 在部署腳本中使用await ethers.getContractFactory('MyNFT')實例化合約工廠。

3. 使用建構函式參數呼叫deploy() ,並等待所選網路上的交易確認。

4. 記錄部署的合約地址並驗證其在成功挖礦後出現在 Etherscan 上。

5. 將位址儲存在 JSON 檔案或環境變數中,以供後續互動腳本或前端整合使用。

透過 Remix IDE 進行部署

1. 導覽至remix.ethereum.org並建立一個名為MyNFT.sol的新 Solidity 檔案。

2. 貼上 Hardhat 中使用的相同合約程式碼,確保編譯器版本與Hardhat.config.js中指定的版本相符。

3. 選擇Injected Provider - MetaMask作為環境並連接到 Sepolia 或其他支援的測試網。

4. 在交易彈出視窗中確認建構函式參數和 Gas 估算後,按一下「部署」

5. 在 MetaMask 中確認收據,並使用交易哈希在相應的區塊瀏覽器上驗證合約創建。

常見問題解答

Q:我可以在不擁有 ETH 的情況下部署 ERC-721 合約嗎?答:不需要。每次部署都會消耗以 ETH 支付的 Gas。在像 Sepolia 這樣的網路上部署之前,必須從水龍頭取得測試網 ETH。

Q:為什麼我的鑄幣功能恢復為「ERC721:轉移到零地址」?答:當_safeMint收到零地址作為收件者時,就會發生這種情況。確保呼叫者傳遞有效的非零以太坊地址。

Q:鑄造後是否可以更改代幣 URI?答:是的,如果合約包含從可變基本 URI 讀取並附加令牌 ID 的tokenURI覆蓋。一旦發佈到 IPFS,元資料本身就保持不變。

Q:如果我在鑄造之前忘記調用_setBaseURI會發生什麼?答:令牌將使用預設的空字串解析 URI,從而導致元資料損壞或無法訪問,除非稍後透過僅限所有者的 setter 進行更新。

免責聲明:info@kdj.com

所提供的資訊並非交易建議。 kDJ.com對任何基於本文提供的資訊進行的投資不承擔任何責任。加密貨幣波動性較大,建議您充分研究後謹慎投資!

如果您認為本網站使用的內容侵犯了您的版權,請立即聯絡我們(info@kdj.com),我們將及時刪除。

相關知識

如何計算鑄造 NFT(包括 Gas)的真實成本?

如何計算鑄造 NFT(包括 Gas)的真實成本?

2026-06-08 04:04:53

了解 Gas 費用組成部分1. 以太坊上的每一次 NFT 鑄造作業都需要精確計算合約執行過程中消耗的 Gas 單位。交易成本不是固定的,而是取決於智慧合約邏輯施加的運算負載。 2. 使用的 Gas 反映了執行的實際計算步驟,例如儲存寫入、事件發射和元資料 URI 驗證,而 Gas Limit 則充當...

如何在 Unstoppable Domains 上列出待售的 NFT 網域?

如何在 Unstoppable Domains 上列出待售的 NFT 網域?

2026-05-31 16:40:02

訪問 Unstoppable Domains Manager 1. 導覽至 Unstoppable Domains 官方網站並使用您註冊的電子郵件、Google 或 X (Twitter) 帳號登入。 2. 在登入期間啟用雙重認證,以確保安全存取您的網域組合。 3. 經過身份驗證後,儀表板會自動加載...

如何建立具有定期存取功能的基於訂閱的 NFT?

如何建立具有定期存取功能的基於訂閱的 NFT?

2026-06-03 03:40:13

了解基於訂閱的 NFT 1. 基於訂閱的 NFT 是一種數位代幣,可授予對鏈上內容、服務或社群的有時限或有條件的存取權限。 2. 與靜態可收藏的 NFT 不同,這些代幣嵌入了自動續訂、撤銷或基於支付狀態的分層權限的邏輯。 3. 底層智慧合約必須與定期支付基礎設施介面-要麼透過 Sablier 等協定...

如何追蹤 NFT 市場中的鯨魚動向?

如何追蹤 NFT 市場中的鯨魚動向?

2026-05-30 02:20:06

了解 NFT 鯨魚身份1. NFT鯨魚被定義為持有價值超過100萬美元的不可替代代幣的以太坊錢包。 2. 這些錢包總共控制 NFT 總市值的約 34.10%,迄今已識別出約 600 個此類地址。 3. 鯨魚經常參加 Bored Ape Yacht Club、CryptoPunks 和 Azuki 等...

如何使用帳戶抽象化來簡化使用者的 NFT 鑄造?

如何使用帳戶抽象化來簡化使用者的 NFT 鑄造?

2026-06-02 20:39:53

帳戶抽象與使用者體驗優化1.帳戶抽象化使得錢包邏輯能夠完全在智慧合約中實現,而不是依賴外部擁有的帳戶(EOA)。這種轉變允許開發人員將鑄幣邏輯直接嵌入到錢包層中,從而消除了用戶在 NFT 獲取期間持有原生代幣用於 Gas 支付的需要。 2. 使用EIP-4337,使用者發起UserOperation...

如何將我的 NFT 系列與自訂市場整合?

如何將我的 NFT 系列與自訂市場整合?

2026-06-07 12:40:10

智能合約部署1. 撰寫適合您收藏的元資料結構和版稅邏輯的合規 ERC-721 或 ERC-1155 合約。 2. 使用 Solidity 0.8.20 或更高版本編譯合約,以確保包含安全性修補程式。 3. 根據目標生態系統,使用 Hardhat 或 Anchor 在以太坊、Polygon 或 Sol...

如何計算鑄造 NFT(包括 Gas)的真實成本?

如何計算鑄造 NFT(包括 Gas)的真實成本?

2026-06-08 04:04:53

了解 Gas 費用組成部分1. 以太坊上的每一次 NFT 鑄造作業都需要精確計算合約執行過程中消耗的 Gas 單位。交易成本不是固定的,而是取決於智慧合約邏輯施加的運算負載。 2. 使用的 Gas 反映了執行的實際計算步驟,例如儲存寫入、事件發射和元資料 URI 驗證,而 Gas Limit 則充當...

如何在 Unstoppable Domains 上列出待售的 NFT 網域?

如何在 Unstoppable Domains 上列出待售的 NFT 網域?

2026-05-31 16:40:02

訪問 Unstoppable Domains Manager 1. 導覽至 Unstoppable Domains 官方網站並使用您註冊的電子郵件、Google 或 X (Twitter) 帳號登入。 2. 在登入期間啟用雙重認證,以確保安全存取您的網域組合。 3. 經過身份驗證後,儀表板會自動加載...

如何建立具有定期存取功能的基於訂閱的 NFT?

如何建立具有定期存取功能的基於訂閱的 NFT?

2026-06-03 03:40:13

了解基於訂閱的 NFT 1. 基於訂閱的 NFT 是一種數位代幣,可授予對鏈上內容、服務或社群的有時限或有條件的存取權限。 2. 與靜態可收藏的 NFT 不同,這些代幣嵌入了自動續訂、撤銷或基於支付狀態的分層權限的邏輯。 3. 底層智慧合約必須與定期支付基礎設施介面-要麼透過 Sablier 等協定...

如何追蹤 NFT 市場中的鯨魚動向?

如何追蹤 NFT 市場中的鯨魚動向?

2026-05-30 02:20:06

了解 NFT 鯨魚身份1. NFT鯨魚被定義為持有價值超過100萬美元的不可替代代幣的以太坊錢包。 2. 這些錢包總共控制 NFT 總市值的約 34.10%,迄今已識別出約 600 個此類地址。 3. 鯨魚經常參加 Bored Ape Yacht Club、CryptoPunks 和 Azuki 等...

如何使用帳戶抽象化來簡化使用者的 NFT 鑄造?

如何使用帳戶抽象化來簡化使用者的 NFT 鑄造?

2026-06-02 20:39:53

帳戶抽象與使用者體驗優化1.帳戶抽象化使得錢包邏輯能夠完全在智慧合約中實現,而不是依賴外部擁有的帳戶(EOA)。這種轉變允許開發人員將鑄幣邏輯直接嵌入到錢包層中,從而消除了用戶在 NFT 獲取期間持有原生代幣用於 Gas 支付的需要。 2. 使用EIP-4337,使用者發起UserOperation...

如何將我的 NFT 系列與自訂市場整合?

如何將我的 NFT 系列與自訂市場整合?

2026-06-07 12:40:10

智能合約部署1. 撰寫適合您收藏的元資料結構和版稅邏輯的合規 ERC-721 或 ERC-1155 合約。 2. 使用 Solidity 0.8.20 或更高版本編譯合約,以確保包含安全性修補程式。 3. 根據目標生態系統,使用 Hardhat 或 Anchor 在以太坊、Polygon 或 Sol...

看所有文章

User not found or password invalid

Your input is correct