# Setting Royalty for NFTs

**URL:** <https://forum.openzeppelin.com/t/setting-royalty-for-nfts/26316>\
**Category:** Smart Contracts\
**Tags:** etherscan-verify\
**Created:** [March 17, 2022, 11:40am UTC](https://forum.openzeppelin.com/t/setting-royalty-for-nfts/26316 "2022-03-17T11:40:04Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![zubayr\_khalid](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.openzeppelin.com/zubayr_khalid/32/13893_2.png) [@zubayr\_khalid](https://forum.openzeppelin.com/u/zubayr_khalid)\
**Post date:** [March 17, 2022, 11:40am UTC](https://forum.openzeppelin.com/t/setting-royalty-for-nfts/26316/1 "2022-03-17T11:40:04Z")

</div>

Hi all,  
I have some questions regarding the ERC721 token smart contract with OPenZeppelin.

1. Can anybody tell me how to set royalty (say 5%) for NFT collections in smart contract?  
If I put the smart contract in marketplaces such as Opensea, then it is easy to set royalty.  
But how can I set it in smart contract so that people minting directly from etherscan also have to pay the royalty fee?

2. Is it a good idea to make whitelistUser() function open to all, or should I make it onlyOwner?

3. Is there any way to do lazy minting?

---

<div class="post-metadata">

**Author:** ![YummyDao](https://avatars.discourse-cdn.com/v4/letter/y/4af34b/32.png) [@YummyDao](https://forum.openzeppelin.com/u/YummyDao)\
**Post date:** [March 19, 2022, 10:19am UTC](https://forum.openzeppelin.com/t/setting-royalty-for-nfts/26316/2 "2022-03-19T10:19:49Z")

</div>

Yes you can perform lazy minting by changing the mint function from onlyowner to payable

---

<div class="post-metadata">

**Author:** ![YummyDao](https://avatars.discourse-cdn.com/v4/letter/y/4af34b/32.png) [@YummyDao](https://forum.openzeppelin.com/u/YummyDao)\
**Post date:** [March 19, 2022, 10:20am UTC](https://forum.openzeppelin.com/t/setting-royalty-for-nfts/26316/3 "2022-03-19T10:20:19Z")

</div>

You should make your whitelist users onlyowner

---

<div class="post-metadata">

**Author:** ![YummyDao](https://avatars.discourse-cdn.com/v4/letter/y/4af34b/32.png) [@YummyDao](https://forum.openzeppelin.com/u/YummyDao)\
**Post date:** [March 19, 2022, 10:24am UTC](https://forum.openzeppelin.com/t/setting-royalty-for-nfts/26316/4 "2022-03-19T10:24:13Z")

</div>

For royalty payments you can check this eip  
[https://eips.ethereum.org/EIPS/eip-2981](https://eips.ethereum.org/EIPS/eip-2981)

---

<div class="post-metadata">

**Author:** ![zubayr\_khalid](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.openzeppelin.com/zubayr_khalid/32/13893_2.png) [@zubayr\_khalid](https://forum.openzeppelin.com/u/zubayr_khalid)\
**Post date:** [March 19, 2022, 12:58pm UTC](https://forum.openzeppelin.com/t/setting-royalty-for-nfts/26316/5 "2022-03-19T12:58:17Z")

</div>

Hi,  
Thank you for the answers. Does making the minting function’payable’ allows me to mint without prior gas fees?

---

<div class="post-metadata">

**Author:** ![slw.eth](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.openzeppelin.com/slw.eth/32/12499_2.png) [@slw.eth](https://forum.openzeppelin.com/u/slw.eth)\
**Post date:** [March 20, 2022, 5:06pm UTC](https://forum.openzeppelin.com/t/setting-royalty-for-nfts/26316/6 "2022-03-20T17:06:32Z")

</div>

Can you expand on this so that I can be sure I understand what you mean? Would you like to mint a specified amount of tokens during contract deployment?

---

<div class="post-metadata">

**Author:** ![zubayr\_khalid](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.openzeppelin.com/zubayr_khalid/32/13893_2.png) [@zubayr\_khalid](https://forum.openzeppelin.com/u/zubayr_khalid)\
**Post date:** [March 20, 2022, 5:32pm UTC](https://forum.openzeppelin.com/t/setting-royalty-for-nfts/26316/7 "2022-03-20T17:32:52Z")

</div>

Yes.  
Because I want to deploy the contract to a marketplace (say Opensea).  
Without a single minted token I do not think it is possible to 'get listed' in Opensea.

Please correct me if I am wrong, or if there is any better approarch.

---

<div class="post-metadata">

**Author:** ![YummyDao](https://avatars.discourse-cdn.com/v4/letter/y/4af34b/32.png) [@YummyDao](https://forum.openzeppelin.com/u/YummyDao)\
**Post date:** [March 21, 2022, 11:58pm UTC](https://forum.openzeppelin.com/t/setting-royalty-for-nfts/26316/8 "2022-03-21T23:58:39Z")

</div>

You want let your buyers pay for minting the token

---

<div class="post-metadata">

**Author:** ![asato](https://avatars.discourse-cdn.com/v4/letter/a/dfb087/32.png) [@asato](https://forum.openzeppelin.com/u/asato)\
**Post date:** [March 22, 2022, 1:18am UTC](https://forum.openzeppelin.com/t/setting-royalty-for-nfts/26316/9 "2022-03-22T01:18:13Z")

</div>

please check opensea contract source code in github
