市值: $2.6065T 1.56%
體積(24小時): $68.1613B 6.30%
恐懼與貪婪指數:

35 - 害怕

  • 市值: $2.6065T 1.56%
  • 體積(24小時): $68.1613B 6.30%
  • 恐懼與貪婪指數:
  • 市值: $2.6065T 1.56%
加密
主題
加密植物
資訊
加密術
影片
頂級加密植物

選擇語言

選擇語言

選擇貨幣

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

如何寫出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.定義了ownerOf 、 transferFrom 、 approve等核心函數來管理唯一的資產所有權。

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

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專案在公開鑄幣之前如何評估?

2026-10-16 23:19:39

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

如何追蹤擁有最活躍買家的 NFT 市場?

如何追蹤擁有最活躍買家的 NFT 市場?

2026-10-17 13:39:44

Bitcoin 減半機制1. 每產生 21 萬個區塊,Bitcoin 個礦工的區塊獎勵減半。 2. 此事件大約每四年發生一次,並被硬編碼到 Bitcoin 協定中。 3. 最近一次減半將每個區塊的獎勵從 6.25 BTC 減少到 3.125 BTC。 4.每次減半後供應通膨大幅下降,發行時間表趨緊。...

如何尋找NFT空投並檢查其資格?

如何尋找NFT空投並檢查其資格?

2026-10-17 01:20:28

市場波動模式1. 自2021年以來,Bitcoin超過68%的交易日在24小時窗口內價格波動超過15%。 2. 在流動性較低的時期,尤其是在 02:00 至 06:00 UTC 期間,以太坊表現出比 Bitcoin 更高的日內波動性。 3. 穩定幣脫鉤事件(例如 2023 年 3 月的 USDC 事...

如何判斷NFT贈品是真是假?

如何判斷NFT贈品是真是假?

2026-10-30 01:00:04

市場波動模式1. 自2021年以來,Bitcoin超過68%的交易日在24小時窗口內價格波動超過15%。 2. 在流動性較低的時期,尤其是在 02:00 至 06:00 UTC 期間,以太坊表現出比 Bitcoin 更高的日內波動性。 3. 穩定幣脫鉤事件(例如 2023 年 3 月的 USDC 事...

如何找到免費的 NFT 鑄幣並避免隱藏費用?

如何找到免費的 NFT 鑄幣並避免隱藏費用?

2026-10-17 14:19:42

了解免費 NFT 薄荷糖1.免費鑄幣是指用戶無需在市場上直接支付購買價格即可領取NFT的過程。 2. 這些鑄幣廠通常需要與部署在以太坊、Base、Arbitrum、Optimism 或 Polygon 網路上的智慧合約進行互動。 3.「免費」一詞並不意味著零成本-鏈上交易執行過程中幾乎總是涉及天然氣...

如何在以太坊和Polygon之間轉移NFT?

如何在以太坊和Polygon之間轉移NFT?

2026-10-29 03:00:13

了解跨鏈 NFT 傳輸機制1. NFT 是存在於特定區塊鏈上的不可替代代幣,如果沒有中間協議,則無法在本地跨鏈移動。 2.以太坊和Polygon作為獨立的執行環境運行,具有不同的狀態根、共識機制和天然氣定價模型。 3. 將 ERC-721 代幣從以太坊主網直接轉移到 Polygon 需要橋接基礎設施...

NFT專案在公開鑄幣之前如何評估?

NFT專案在公開鑄幣之前如何評估?

2026-10-16 23:19:39

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

如何追蹤擁有最活躍買家的 NFT 市場?

如何追蹤擁有最活躍買家的 NFT 市場?

2026-10-17 13:39:44

Bitcoin 減半機制1. 每產生 21 萬個區塊,Bitcoin 個礦工的區塊獎勵減半。 2. 此事件大約每四年發生一次,並被硬編碼到 Bitcoin 協定中。 3. 最近一次減半將每個區塊的獎勵從 6.25 BTC 減少到 3.125 BTC。 4.每次減半後供應通膨大幅下降,發行時間表趨緊。...

如何尋找NFT空投並檢查其資格?

如何尋找NFT空投並檢查其資格?

2026-10-17 01:20:28

市場波動模式1. 自2021年以來,Bitcoin超過68%的交易日在24小時窗口內價格波動超過15%。 2. 在流動性較低的時期,尤其是在 02:00 至 06:00 UTC 期間,以太坊表現出比 Bitcoin 更高的日內波動性。 3. 穩定幣脫鉤事件(例如 2023 年 3 月的 USDC 事...

如何判斷NFT贈品是真是假?

如何判斷NFT贈品是真是假?

2026-10-30 01:00:04

市場波動模式1. 自2021年以來,Bitcoin超過68%的交易日在24小時窗口內價格波動超過15%。 2. 在流動性較低的時期,尤其是在 02:00 至 06:00 UTC 期間,以太坊表現出比 Bitcoin 更高的日內波動性。 3. 穩定幣脫鉤事件(例如 2023 年 3 月的 USDC 事...

如何找到免費的 NFT 鑄幣並避免隱藏費用?

如何找到免費的 NFT 鑄幣並避免隱藏費用?

2026-10-17 14:19:42

了解免費 NFT 薄荷糖1.免費鑄幣是指用戶無需在市場上直接支付購買價格即可領取NFT的過程。 2. 這些鑄幣廠通常需要與部署在以太坊、Base、Arbitrum、Optimism 或 Polygon 網路上的智慧合約進行互動。 3.「免費」一詞並不意味著零成本-鏈上交易執行過程中幾乎總是涉及天然氣...

如何在以太坊和Polygon之間轉移NFT?

如何在以太坊和Polygon之間轉移NFT?

2026-10-29 03:00:13

了解跨鏈 NFT 傳輸機制1. NFT 是存在於特定區塊鏈上的不可替代代幣,如果沒有中間協議,則無法在本地跨鏈移動。 2.以太坊和Polygon作為獨立的執行環境運行,具有不同的狀態根、共識機制和天然氣定價模型。 3. 將 ERC-721 代幣從以太坊主網直接轉移到 Polygon 需要橋接基礎設施...

看所有文章

User not found or password invalid

Your input is correct