Creating vesting contract for NFT(erc721)? We have token vesting smart contract, but how about NFT? Can it be vested on a smart contract?
Yes, take a look at the ERC20 TokenTimelock contract for an ERC20 example and modify according to replace ERC20 with ERC721.
Do you have an example of ERC721 Timelock smart contract? Just for reference than you.
Nope but conceptually it's very similar. You have a smart contract (timelock) that holds the NFTs for a certain period of time. Once some duration has passed, you can call the
release() function to transfer the NFT to the owner.
Note that "vesting" in the usual sense of gradually releasing the asset throughout a given time period (e.g. 4 years) doesn't make sense for NFTs, because an NFT is either yours or it isn't.
A timelock is definitely possible though and should be similar to TokenTimelock that was shared above.
That's right. How's that different from normal tokens?
NFT aren't mine before vesting, and may become mine after current vesting round occurs.
I was interpreting vesting as for ERC20 where a full allocation of like 4k tokens is gradually vested say 1k every year.
If you mean vesting as in locking for a period of time then yes you can definitely do that for NFTs.
You can take inspiration from TokenTimelock, it should be easy to adapt to ERC721: