I am developing NFT staking platform.

And I want not to lock the NFT while it is staked.

(Users can move their NFTs at anytime)

But to do so, I have some problems.

How to calculate the rewards for this NFT?

(I was planning to distribute my token: Native Token not ADA, to users for staking their NFTs.)

But what if the user once puts their NFTs on staking pool and then get it back to their wallet, and put it back again (to receive rewards)?

Can you help me to decide how to calculate the rewards fairly?

Thank you.

1 Answer 1


An easy way to do this would be to take a snapshot of the staked NFTs at the end of every epoch (or any other pre-defined timeframe). This would mean that the NFTs are not locked, but would have to stay staked for at least 1 epoch go generate rewards.

Or you could track every single NFT to see from when to when it was in the staking pool and only count that time for the rewards. This would require you to process all future transactions for all NFTs that enter your stake pool.

  • Thank you, very much. This is really helping. But I'd love to know more about it. Can I discuss with you further?
    – Firing Dev
    Jul 24, 2023 at 13:10
  • Well, I have thousands of NFTs, and to track them is really heavy work. Can you suggest me the way to take the snapshot easily?
    – Firing Dev
    Jul 25, 2023 at 2:29
  • Without knowing the implementation details of your app, it's hard to give detailed advice. But have a look at APIs like api.koios.rest or blockfrost.io, those can give you a lot of blockchain data in a simple REST call.
    – eddex
    Jul 25, 2023 at 6:41
  • Eddex, can we discuss further in DM? (Discord, Telegram?)
    – Firing Dev
    Jul 25, 2023 at 6:58
  • If you have specific questions, I'm happy to help you here on StackExchange.
    – eddex
    Jul 26, 2023 at 7:52

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.