Royalty
Royalty
Thirdweb's Royalty
is a contract extension to be used with any base contract. It exposes functions for setting and reading the recipient of royalty fee and the royalty fee basis points (BPS), and lets the inheriting contract perform conditional logic that uses information about royalty fees, if desired.
The Royalty
contract is ERC2981 compliant.
Methods
getDefaultRoyaltyInfo
function getDefaultRoyaltyInfo() external view returns (address, uint16)
Returns the default royalty recipient and BPS for this contract's NFTs.
Returns
Name | Type | Description |
---|---|---|
_0 | address | undefined |
_1 | uint16 | undefined |
getRoyaltyInfoForToken
function getRoyaltyInfoForToken(uint256 _tokenId) external view returns (address, uint16)
View royalty info for a given token.
Returns royalty recipient and bps for _tokenId
.
Parameters
Name | Type | Description |
---|---|---|
_tokenId | uint256 | The tokenID of the NFT for which to query royalty info. |
Returns
Name | Type | Description |
---|---|---|
_0 | address | undefined |
_1 | uint16 | undefined |
royaltyInfo
function royaltyInfo(uint256 tokenId, uint256 salePrice) external view returns (address receiver, uint256 royaltyAmount)
View royalty info for a given token and sale price.
Returns royalty amount and recipient for tokenId
and salePrice
.
Parameters
Name | Type | Description |
---|---|---|
tokenId | uint256 | The tokenID of the NFT for which to query royalty info. |
salePrice | uint256 | Sale price of the token. |
Returns
Name | Type | Description |
---|---|---|
receiver | address | Address of royalty recipient account. |
royaltyAmount | uint256 | Royalty amount calculated at current royaltyBps value. |
setDefaultRoyaltyInfo
function setDefaultRoyaltyInfo(address _royaltyRecipient, uint256 _royaltyBps) external nonpayable
Updates default royalty recipient and bps.
Caller should be authorized to set royalty info. See {_canSetRoyaltyInfo}. Emits {DefaultRoyalty Event}; See {_setupDefaultRoyaltyInfo}.
Parameters
Name | Type | Description |
---|---|---|
_royaltyRecipient | address | Address to be set as default royalty recipient. |
_royaltyBps | uint256 | Updated royalty bps. |
setRoyaltyInfoForToken
function setRoyaltyInfoForToken(uint256 _tokenId, address _recipient, uint256 _bps) external nonpayable
Updates default royalty recipient and bps for a particular token.
Sets royalty info for _tokenId
. Caller should be authorized to set royalty info. See {_canSetRoyaltyInfo}. Emits {RoyaltyForToken Event}; See {_setupRoyaltyInfoForToken}.
Parameters
Name | Type | Description |
---|---|---|
_tokenId | uint256 | undefined |
_recipient | address | Address to be set as royalty recipient for given token Id. |
_bps | uint256 | Updated royalty bps for the token Id. |
supportsInterface
function supportsInterface(bytes4 interfaceId) external view returns (bool)
Returns true if this contract implements the interface defined by interfaceId
. See the corresponding EIP section to learn more about how these ids are created. This function call must use less than 30 000 gas.
Parameters
Name | Type | Description |
---|---|---|
interfaceId | bytes4 | undefined |
Returns
Name | Type | Description |
---|---|---|
_0 | bool | undefined |
Events
DefaultRoyalty
event DefaultRoyalty(address indexed newRoyaltyRecipient, uint256 newRoyaltyBps)
Parameters
Name | Type | Description |
---|---|---|
newRoyaltyRecipient indexed | address | undefined |
newRoyaltyBps | uint256 | undefined |
RoyaltyForToken
event RoyaltyForToken(uint256 indexed tokenId, address indexed royaltyRecipient, uint256 royaltyBps)
Parameters
Name | Type | Description |
---|---|---|
tokenId indexed | uint256 | undefined |
royaltyRecipient indexed | address | undefined |
royaltyBps | uint256 | undefined |