<p>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.</p>
<p>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.</p>

CC BY-SA 4.0
2023-07-24T13:10:14.033Z
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
CC BY-SA 4.0
2023-07-25T02:29:35.197Z
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
CC BY-SA 4.0
2023-07-25T06:41:44.837Z
Without knowing the implementation details of your app, it's hard to give detailed advice. But have a look at APIs like https://api.koios.rest/ or https://blockfrost.io/, those can give you a lot of blockchain data in a simple REST call.
eddex
CC BY-SA 4.0
2023-07-25T06:58:50.620Z
Eddex, can we discuss further in DM? (Discord, Telegram?)
Firing Dev
CC BY-SA 4.0
2023-07-26T07:52:49.610Z
If you have specific questions, I'm happy to help you here on StackExchange.
eddex
CC BY-SA 4.0
2023-07-26T08:08:18.070Z
Okay, Thank you. @eddex.
Here is my question.
I am now trying to distribute the rewards in my own Native Token (not ADA) to delegators to my pool with ADA AND my custom NFT.
Firing Dev
CC BY-SA 4.0
2023-07-26T08:10:22.983Z
To do so, I am going to take the snapshot of delegators and each delegator owns how many NFT.
But there are total thousands of NFTs, and I don't know how to do it efficiently.
Can you help me?
Firing Dev
CC BY-SA 4.0
2023-07-28T13:20:07.863Z
I don't think there is much you can do to improve the performance of this. Checking the amount of NFTs each delegator holds should not be too expensive. And even if it takes a while to execute this, it should not be a problem since it is not a time/performance critical task.
eddex
CC BY-SA 4.0
2023-07-24T11:37:45.507Z
2023-07-24T11:37:45.507Z
eddex
<p>I am developing NFT staking platform.</p>
<p>And I want not to lock the NFT while it is staked.</p>
<p>(Users can move their NFTs at anytime)</p>
<p>But to do so, I have some problems.</p>
<p>How to calculate the rewards for this NFT?</p>
<p>(I was planning to distribute my token: Native Token not ADA, to users for staking their NFTs.)</p>
<p>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)?</p>
<p>Can you help me to decide how to calculate the rewards fairly?</p>
<p>Thank you.</p>

<staking><rewards>
How to stake NFT without locking?
# How to stake NFT without locking?

(Asked by: username_0 on 2023-07-24)

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.

**Tags:** staking, rewards

---

## 1 answers

### Answer by username_1 on 2023-07-24. Score: 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.

> **Comments:**
> **username_0**: Thank you, very much. This is really helping. But I'd love to know more about it. Can I discuss with you further?  
> **username_0**: 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?  
> **username_1**: Without knowing the implementation details of your app, it's hard to give detailed advice. But have a look at APIs like https://api.koios.rest/ or https://blockfrost.io/, those can give you a lot of blockchain data in a simple REST call.  
> **username_0**: Eddex, can we discuss further in DM? (Discord, Telegram?)  
> **username_1**: If you have specific questions, I'm happy to help you here on StackExchange.  
> **username_0**: Okay, Thank you. @eddex. Here is my question. I am now trying to distribute the rewards in my own Native Token (not ADA) to delegators to my pool with ADA AND my custom NFT.  
> **username_0**: To do so, I am going to take the snapshot of delegators and each delegator owns how many NFT. But there are total thousands of NFTs, and I don't know how to do it efficiently. Can you help me?  
> **username_1**: I don't think there is much you can do to improve the performance of this. Checking the amount of NFTs each delegator holds should not be too expensive. And even if it takes a while to execute this, it should not be a problem since it is not a time/performance critical task.  

---

