Issue with Solana Rewards Handling after recent API Update
closed
F
Forward Hawk
I’ve noticed a serious issue with how Solana rewards are currently being handled in Koinly following the change applied last Friday. I was told that rewards would now be claimed automatically every epoch, but that’s not actually how the Solana network works. This will create huge discrepancies between Koinly and actual Solana addresses that stake SOL.
For instance, if I stake all my SOL and transfer the remaining balance to another wallet, my Solana address would remain at 0 SOL until I send SOL back to it and unstake or claim rewards. However, Koinly would continue adding rewards, while in reality, my wallet would show 0 until I explicitly claim or unstake the delegation. This is not how the Solana network operates.
By comparison, on the Cardano network, rewards are distributed every epoch and are actually sent to the Cardano address. As a result, the Koinly balance always matches the on-chain balance.
I believe this recent change to the Solana API wasn’t fully thought through. What users likely wanted was a separate entry for rewards upon unstaking!
I think Koinly misunderstood—the main issue isn’t the complexity of pooling staked amounts in and out, but rather that the rewards were combined into one withdrawal figure, making it hard to identify the actual reward amount. Previously, I had to split the withdrawal into two figures: one for the pooled-out amount and one tagged as a reward. There was a time when the API did this correctly, but in recent months, rewards have been combined into one withdrawal transaction.
My concern is that this change could create significant backlash once users realize what was actually implemented.
C
Charcoal grey Harrier
Hi. I see that this topic is moving fast.
From my own experience, I know that it's the staked SOL that increases every epoch rather than the actual SOL balance but, for example, the ledger live UI shows the total amount (including "not staked" and "staked with rewards") and I like it like that.
But it looks like the Koinly version isn't working well. I've seen several deposits per-epoch and only some of them are marked as Reward so I'm going to turn off the feature and go back to doing it manually
F
Forward Hawk
Charcoal grey Harrier This is a very interesting dilemma and I keep thinking about it. I am sure there will be as many people saying rewards should be recorded every epoch as there are people who say no, they should be recorded only when claimed or unstaked (as is the case with Solana, where there is no claim reward button). You can only withdraw your rewards from validation by withdrawing all or part of your stake.
I checked the Ledger Live app and agree that the overall balance includes staked SOL and rewards, which is great for portfolio balance monitoring. At the same time, it definitely does not include every epoch's rewards payouts in recent transactions. I always thought that when your asset leaves your account it is treated as a transfer, so it does not trigger a taxable event since it is not in your wallet but still under your control. If rewards grow or accumulate every epoch outside of your actual wallet, they only become a taxable event as soon as they are physically available back in your wallet. There is an argument that SOL staked with a validator is still 'in your account' because you control it, so you should treat epoch rewards as yours just because you have the ability to withdraw them in the future. Personally, I don't think so, but it’s up to people to decide which option for calculating rewards they select.
Cardano is the only chain I can think of that is different. When ADA is staked, it never physically leaves your wallet and you always have the ability to do whatever you want with it at any time, even though your ADA is staked. In this case, rewards are accumulated per epoch and are available to use as soon as they are awarded, since they are already in your wallet.
If the argument is that Solana rewards accumulated each epoch in the validator account outside of your wallet address are already yours, then why don't other chains have more frequent rewards payouts? They work exactly the same way. For example, with Cosmos, rewards are accumulated each epoch in the validator account outside of your wallet address, so why are they not added to your wallet each epoch and only become available when you claim or unstake? It’s the same principle, with only the minor difference of having a claim button, which Solana does not have.
F
Forward Hawk
Taking things further with liquidity pools, when funds are delegated to liquidity pools, the funds leave your account and accumulate rewards every second, minute, or hour. You don't get sent rewards to your account with this frequency just because your funds are with liquidity provider under your control. You only get rewards when you claim or remove your delegations, and only when those rewards make their way to your actual wallet address.
There is no definitive right or wrong here, and I appreciate that Koinly recognizes this and lets users decide whether to record their rewards every epoch or only when the stake is withdrawn.
Robin
closed
Robin
Hey, thanks for flagging the issues. We have moved the new feature behind a toggle (disabled by default, can be enabled in the API settings) and are looking into some other ways of solving this.
N
Nuclear Peacock
Forward Hawk are you getting a lot of spam transactions now? I am getting thousands of them and I have not changed ANYTHING in wallet setup. Just resyncing my wallets. All I did recently was un-stake 100 SOL.
These transactions are all spam, and they don't even have my wallet address associated with them at all. Very strange.
Some are deposits but most of the spam is sends. I have upwards of 40 pages of this stuff since the API change.
F
Forward Hawk
Nuclear Peacock It's hard to say, as I am still unable to sync my wallets to display my recent transactions. If I delete and re-add a wallet, the API only pulls some reward payouts that were distributed every epoch, but not the actual transactions (and some of my wallets have several hundred of them). I am not able to do anything else, as the sync still fails for me, so I haven’t even started trying to figure out what else is happening.
Regarding your image, it looks like you can merge them, but it seems strange if this is not associated with your addresses.
N
Nuclear Peacock
Forward Hawk Yes, I can merge them, but they are not associated with my wallet AND there are like 10 pages worth being added every single day. Something seriously broken.
F
Forward Hawk
Nuclear Peacock I think it was reverted back to how API was before Friday. I was just able to sync and looks like its done the old way again. Test it by deleting and re-adding wallet and run full resync from troubleshoot tab
N
Nuclear Peacock
Yes, this is horribly broken. Since this "fix" I am getting thousands of Solana transactions a day that don't even have any affiliation with my wallet address.
They need to make a statement and revert back to previous state until they know how to fix it. I went from 500 total Solana transactions on my wallet address, in 4 years, to 7500+ in 4 days.
Come on guys, this is stupid that you won't say anything and we just have to look at a broken tool that screws up all our gains and transactions in the effort to fix something that we already had a simple manual work around.
Koinly is essentially unusable right now for me due to this issue.