如何為 NFT 訂價
作者:Alchemy Team
如何為你的 NFT 訂價的指南
此外,也別忘了看看我們其他的 NFT 教學系列:
- 🌟 How to mint an NFT using Web3.js
- 🪄 How to mint an NFT with Ether.js
- 👛 How to view your NFT in your mobile wallet
- 💻 NFT minter tutorial: How to create a full stack dApp
你剛剛鑄造了一個 NFT,並想把它賣給其他 NFT 愛好者。要做到這件事,我們必須為這個 NFT 訂價,而訂價主要有兩種方式:
- 在智慧合約內訂價(本指南介紹的方法)
- 將 NFT 上架到 NFT marketplace 或平台(較常見的做法)
在合約內設定 NFT 價格
要求鑄造時收取費用
注意:以下內容並非一個現成可用的解決方案。在 NFT Creation 教學的 Step 10 中,我們需要修改 Solidity 程式碼以接受鑄造付款,這代表任何前端的 web3 / ethers.js 邏輯(用來觸發鑄造)都需要包含 msg.value 參數,以允許 ETH 的轉帳。
這種收費模式是完全去中心化的,因為整個過程都在合約內進行,並將收費機制內建於鑄造流程本身。要在鑄造時設定價格,你需要修改你的智慧合約以加入這項行為。簡單來說,只要讓 mint 函式變成 payable,並要求使用者在觸發 NFT 轉移給買家之前先支付一定數量的 ETH,就能實作 NFT 鑄造價格。
以下是這類鑄造流程的範例程式碼:
function mintToken(address to, uint256 tokenId, string uri) public virtual payable
- 為了讓使用者可以支付 ETH 來鑄造 NFT,這個函式需要同時是 public 和 payable。public 函式可以被內部呼叫,或透過訊息呼叫,讓任何人都能與該函式互動。(我們不希望這個函式只能被合約擁有者呼叫,因為這樣會把潛在買家擋在外面!)
require(msg.value >= 10, "Not enough ETH sent; check price!");
- 這個 require 陳述式要求這個 payable 函式至少收到 10 wei,否則該函式會失敗並回復(revert)。
msg.value參數是隨 mint 函式一起送入的 ETH 金額。
mint(to, tokenId);
- 這會呼叫 OpenZepplin 的 ERC721 合約檔案中包含的 mint 函式,並將選定的 NFT 實例化/轉移給買家。
_setTokenURI(tokenId, uri);
- 這會呼叫 OpenZepplin 的 ERC721 合約檔案中包含的
\_setTokenURIfunction,並將 NFT URI 設定為特定的端點。
實作鑄造費用的方式有很多種變形。上面列出的是最簡單的一種,但許多協定也會使用複雜得多的收費模式。
透過拍賣平台設定 NFT 價格
將 NFT 上架到 OpenSea 或其他 NFT 拍賣平台
一個不需要寫程式的替代方案,就是直接把你剛鑄造好的 NFT 上架到 OpenSea 或其他 NFT 拍賣網站,讓你可以在上面設定價格。OpenSea 建構在 NFT 之上的 UI 層讓你可以設定價格、接受出價,或使用其他更複雜的拍賣方式,所有邏輯都由它幫你處理。
在 Ethereum mainnet 上,請使用:https://opensea.io/
若是測試網,請使用:https://testnets.opensea.io/
Alchemy 電子報
搶先掌握最新發布消息
訂閱我們的電子報
取得 Alchemy 最新產品更新與資源
輸入您的電子郵件地址,即表示您同意接收我們的行銷通訊與產品更新。您了解 Alchemy 會依照我們的隱私權聲明處理所收到的資訊。您可以隨時取消訂閱。


