NFT Smart Contracts for time-restricting transfer of tokens?

HI all,

So, just to be completely transparent, I have zero coding experiencing but I am working with a team of NFT designers for a cultural project, and we have been struggling to find the answer to this question:

  1. Is there a way to time-restrict when owners of our NFT can resale the NFT? For example, let's say we drop a batch of NFTs for sale. We want to deploy a code within our smart contract that only allows users to resale the NFT 48 hours after purchase. Is this possible to do within the line of coding for deploying a smart contract.

  2. IF not time restricting when we buyers can resale, is there a way to keep buying and selling to a certain group of people either by wallet addresses or affiliation with our organization?

I know this kind of defeats the whole purpose of creating a NFT token as possibility of continuously receiving royalties long after its sold is appealing, but that's just not what we want to do right now.

It seems to me that you don't need to limit the selling time because users won't like it. Your platform will get a lot of complaints, and most of your customers will move to another platform. I have been selling NFT for a long time, and it is my only source of income. Moreover, to increase the price of my image, I buy NFT Promotion for a good reason. By increasing the demand on my NFT, I can sell it much more expensive. Recently a man from Germany bought my picture for several thousand dollars.

I fully understood your posting.
you need to add time parameter with block.timestamp in sell offer in the contract code.
also, in the backend, you need to make the polling function to count the time in node.js
backend code is very important.

I did not read your post correctly the first time. Hence you would need to put timestamps into the sign up function. Then have it check that time out on function call.

You would set up a map such as:

mapping(address => mapping(uint256 => uint)) internal WhiteListedUser;

This uint256 could store sign up time, the uint the user status

// 0 Not whitelisted
// 1 Whitelisted but not got NFT yet
// 2 Whitelisted and has got the NFT

Just as an idea