代幣標準與 NFT
ERC-2981
ERC-2981 是 NFT 合約用來告訴外界「誰該收權利金、收多少」的標準做法。它定義了單一函式 royaltyInfo(tokenId, salePrice),回傳兩個值:對於該價格的一筆成交,應被支付的地址(receiver)與應付的金額(royaltyAmount)。合約透過 ERC-165 介面偵測來宣告支援它,於是市集可以詢問任一 NFT「你有權利金資訊嗎?」,若有,便讀出收款人與金額。
其刻意的設計抉擇是:ERC-2981 只「示意」——它不會、也無法強制付款。這個標準提供了一個統一的查詢處來查出費用,取代了過去「每個市集各自把權利金存在自家專屬資料庫裡」的混亂局面。但權利金真正的轉移,仍發生在市集的結算程式碼中,由它呼叫 royaltyInfo 並選擇是否尊重其結果。ERC-721 或 ERC-2981 的轉移路徑裡,沒有任何環節會自動扣下這筆費用。
由於金額是依「呼叫方傳入的 salePrice」算出的,這個數字的誠實程度,只等於所申報價格的誠實程度。該標準在介面上回傳的是一個固定金額、而非百分比(實作通常在內部以百分比計算),且它對「多位創作者之間如何分帳」隻字未提,把那留給實作處理。理解 ERC-2981 的最佳方式是:它回答的是「市集如何發現權利金」,而非「權利金如何被保證」——那種保證在代幣層級並不存在。
function royaltyInfo(uint256 tokenId, uint256 salePrice)
external view
returns (address receiver, uint256 royaltyAmount)
{
receiver = _creator;
royaltyAmount = (salePrice * 750) / 10000; // 7.5%
}ERC-2981 是一塊告示牌,而非一道收費閘門。它把「權利金如何被讀取」標準化了;至於它究竟付不付,全憑負責結算的市集決定。
又称
另见