市值: $2.607T 0.90%
體積(24小時): $88.5549B -12.29%
恐懼與貪婪指數:

64 - 貪婪

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

選擇語言

選擇語言

選擇貨幣

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

如何寫出NFT智能合約? (堅固性基礎知識)

ERC-721 is Ethereum’s NFT standard, ensuring uniqueness via `tokenId`, enforcing ownership with `ownerOf`/`transferFrom`, and supporting metadata through `tokenURI`.

2026/02/27 05:40

了解 ERC-721 標準

1. ERC-721是廣泛採用的以太坊代幣標準,專為不可取代代幣設計。

2.定義了ownerOftransferFromapprove等核心函數來管理唯一的資產所有權。

3. 每個 ERC-721 合約必須實作IERC721介面並發出標準化事件,例如TransferApproval

4. 透過tokenURI函數的元資料支援允許將每個 NFT 連結到包含名稱、描述和圖像 URL 的 JSON 檔案。

5. 此標準透過為同一合約中的每個代幣分配不同的uint256 tokenId來強制執行唯一性。

設定開發環境

1. 安裝 Node.js 和 npm 來管理相依性並執行 Hardhat 或 Truffle 等本機工具。

2. 使用npm init初始化一個新項目,並使用npm install @openzeppelin/contracts安裝 OpenZeppelin Contracts。

3. 使用npx Hardhat配置 Hardhat 項目,選擇範例項目選項來產生樣板檔案。

4. 在contracts/下方建立一個Solidity文件,命名為MyNFT.sol ,並匯入OpenZeppelin的ERC721實作。

5. 使用 Hardhat Network 設定本地測試網絡,或透過 Alchemy 或 Infura API 金鑰連接到公共測試網絡(如 Sepolia)。

編寫核心合約邏輯

1. 聲明合約MyNFT 為 ERC721、ERC721URIStorage來繼承基本功能和元資料儲存。

2. 定義一個建構函數,將名稱和符號參數傳遞給父 ERC721 建構函數並設定所有者位址。

3. 實作一個mint函數,該函數使用_safeMint將新的 tokenId 指派給指定位址,並透過_setTokenURI儲存其 URI。

4. 使用 OpenZeppelin 的Ownable修飾符新增存取控制,以便只有合約所有者才能呼叫mint

5. 透過使用私有uint256變數追蹤總供應量並在超出上限時恢復來強制執行鑄幣限制。

測試和部署注意事項

1. 使用 Hardhat 內建的ethers函式庫以 JavaScript 或 TypeScript 編寫測試腳本來模擬鑄造、轉移和查詢代幣。

2. 透過斷言檢查ownerOf返回正確的位址和tokenURI與預期的元資料路徑匹配來驗證行為。

3. 設定網路憑證後,使用 Hardhat 的npx hardhat run scripts/deploy.js --network sepolia指令部署合約。

4. 使用 Etherscan 的驗證工具提交原始程式碼、編譯器版本和建構函式參數以實現公開透明。

5. 將所有令牌 URI 儲存在 IPFS 或 Arweave 等去中心化基礎架構上,以確保元資料永久、防篡改的可用性。

常見問題解答

Q:鑄造後我可以更改 tokenURI 嗎?答:是的,如果您的合約繼承了ERC721URIStorage並且您實作了一個具有適當存取控制的函數來呼叫_setTokenURI

Q:如果同一個合約中兩個代幣具有相同的 tokenId,會發生什麼情況?答:不可能-ERC-721要求每個tokenId在合約內全域唯一;重複的分配將被恢復。

Q:我需要寫自己的supportsInterface函數嗎?答:否 — OpenZeppelin 的ERC721實作包含一個相容的supportsInterface ,它為 0x80ac58cd (ERC-721) 和 0x5b5e139f (ERC-721Metadata) 傳回 true。

Q:在不檢查核准狀態的情況下使用transferFrom是否安全?答:OpenZeppelin ERC721實作在內部處理所有核准驗證;如果使用正確,直接呼叫transferFrom是安全的。

免責聲明:info@kdj.com

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

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

相關知識

什麼是 NFT 生態系代幣?為什麼NFT計畫要推出自己的代幣?

什麼是 NFT 生態系代幣?為什麼NFT計畫要推出自己的代幣?

2026-08-25 21:59:57

定義和核心功能1. NFT 生態系統代幣是由在更廣泛的不可替代代幣空間內運行的平台、市場或協議發行的本機實用程式或治理代幣。 2. 這些代幣通常建構在標準化智慧合約框架上,例如以太坊上的 ERC-20 或 Solana 上的 SPL,從而實現與去中心化交易所和借貸協議等 DeFi 基礎設施的互通性。...

什麼是 NFT 實用程式?除了數位資產還能得到什麼?

什麼是 NFT 實用程式?除了數位資產還能得到什麼?

2026-08-21 09:40:07

Bitcoin 減半機制1. Bitcoin 的協議強制執行固定的發行時間表,其中大約每 210,000 個區塊,區塊獎勵就會減少一半。 2. 該事件大約每四年發生一次,直接減少每個區塊新進入流通的 BTC 數量。 3.截至2020年減半,礦工每區塊獲得6.25 BTC;下一次減少將使其達到 3.1...

什麼是動態 NFT? NFT 的影像或元資料會隨著時間的推移而改變嗎?

什麼是動態 NFT? NFT 的影像或元資料會隨著時間的推移而改變嗎?

2026-08-31 18:20:08

定義及核心機制1. 動態 NFT 是一種不可取代的代幣,其元資料在鑄造後可以透過程式設計可變。 2. 與引用 IPFS 或集中式伺服器上託管的不可變 JSON 檔案的靜態 NFT 不同,動態 NFT 指向由可更新智慧合約控制的 URI 端點。 3. 可以重寫ERC-721或ERC-1155合約中的t...

什麼是 NFT 掉落?如何在新的 NFT 系列售罄之前找到它們?

什麼是 NFT 掉落?如何在新的 NFT 系列售罄之前找到它們?

2026-08-23 02:40:00

Bitcoin 減半機制1. Bitcoin 的協議強制執行固定的發行時間表,其中大約每 210,000 個區塊,區塊獎勵就會減少一半。 2. 該事件大約每四年發生一次,直接減少了新進入流通的 BTC 數量。 3.截至2020年減半,礦工每區塊獲得6.25 BTC;下次減少將達到 3.125 BTC...

什麼是免費的 NFT 鑄幣廠?扣除 Gas 費後「免費」真的免費嗎?

什麼是免費的 NFT 鑄幣廠?扣除 Gas 費後「免費」真的免費嗎?

2026-08-22 10:00:29

市場波動模式1. Bitcoin 在 ETF 批准公告或重大交易所中斷等高流動性事件期間,24 小時視窗內價格波動通常超過 5%。 2. 當第 2 層升級提案進入最終治理投票階段時,以太坊的波動性指數會飆升,特別是在多個競爭性匯總同時獲得開發人員支持的情況下。 3. 穩定幣脫鉤事件(例如 2023 ...

什麼是 NFT 鑄幣通證?為什麼有些項目在鑄造之前需要一個?

什麼是 NFT 鑄幣通證?為什麼有些項目在鑄造之前需要一個?

2026-08-29 09:00:30

Bitcoin 減半機制1. Bitcoin 的協議強制規定 2,100 萬枚代幣的固定供應上限,並透過區塊獎勵引入新單位。 2. 每 21 萬個區塊(大約每四年),區塊獎勵就會減少一半,這個過程稱為減半。 3. 最近一次減半發生在 2024 年 4 月,每個區塊的獎勵從 6.25 BTC 減少到3...

什麼是 NFT 生態系代幣?為什麼NFT計畫要推出自己的代幣?

什麼是 NFT 生態系代幣?為什麼NFT計畫要推出自己的代幣?

2026-08-25 21:59:57

定義和核心功能1. NFT 生態系統代幣是由在更廣泛的不可替代代幣空間內運行的平台、市場或協議發行的本機實用程式或治理代幣。 2. 這些代幣通常建構在標準化智慧合約框架上,例如以太坊上的 ERC-20 或 Solana 上的 SPL,從而實現與去中心化交易所和借貸協議等 DeFi 基礎設施的互通性。...

什麼是 NFT 實用程式?除了數位資產還能得到什麼?

什麼是 NFT 實用程式?除了數位資產還能得到什麼?

2026-08-21 09:40:07

Bitcoin 減半機制1. Bitcoin 的協議強制執行固定的發行時間表,其中大約每 210,000 個區塊,區塊獎勵就會減少一半。 2. 該事件大約每四年發生一次,直接減少每個區塊新進入流通的 BTC 數量。 3.截至2020年減半,礦工每區塊獲得6.25 BTC;下一次減少將使其達到 3.1...

什麼是動態 NFT? NFT 的影像或元資料會隨著時間的推移而改變嗎?

什麼是動態 NFT? NFT 的影像或元資料會隨著時間的推移而改變嗎?

2026-08-31 18:20:08

定義及核心機制1. 動態 NFT 是一種不可取代的代幣,其元資料在鑄造後可以透過程式設計可變。 2. 與引用 IPFS 或集中式伺服器上託管的不可變 JSON 檔案的靜態 NFT 不同,動態 NFT 指向由可更新智慧合約控制的 URI 端點。 3. 可以重寫ERC-721或ERC-1155合約中的t...

什麼是 NFT 掉落?如何在新的 NFT 系列售罄之前找到它們?

什麼是 NFT 掉落?如何在新的 NFT 系列售罄之前找到它們?

2026-08-23 02:40:00

Bitcoin 減半機制1. Bitcoin 的協議強制執行固定的發行時間表,其中大約每 210,000 個區塊,區塊獎勵就會減少一半。 2. 該事件大約每四年發生一次,直接減少了新進入流通的 BTC 數量。 3.截至2020年減半,礦工每區塊獲得6.25 BTC;下次減少將達到 3.125 BTC...

什麼是免費的 NFT 鑄幣廠?扣除 Gas 費後「免費」真的免費嗎?

什麼是免費的 NFT 鑄幣廠?扣除 Gas 費後「免費」真的免費嗎?

2026-08-22 10:00:29

市場波動模式1. Bitcoin 在 ETF 批准公告或重大交易所中斷等高流動性事件期間,24 小時視窗內價格波動通常超過 5%。 2. 當第 2 層升級提案進入最終治理投票階段時,以太坊的波動性指數會飆升,特別是在多個競爭性匯總同時獲得開發人員支持的情況下。 3. 穩定幣脫鉤事件(例如 2023 ...

什麼是 NFT 鑄幣通證?為什麼有些項目在鑄造之前需要一個?

什麼是 NFT 鑄幣通證?為什麼有些項目在鑄造之前需要一個?

2026-08-29 09:00:30

Bitcoin 減半機制1. Bitcoin 的協議強制規定 2,100 萬枚代幣的固定供應上限,並透過區塊獎勵引入新單位。 2. 每 21 萬個區塊(大約每四年),區塊獎勵就會減少一半,這個過程稱為減半。 3. 最近一次減半發生在 2024 年 4 月,每個區塊的獎勵從 6.25 BTC 減少到3...

看所有文章

User not found or password invalid

Your input is correct