First, I would like to express my thanks to Coinpanda for developing an app like this, it is very helpful.
After using the app and importing all my transactions I can see the complexity in figuring out all the different actions that might happen in a transaction.
I thought it might be helpful to give a generic workflow that I use that I think is common. Then I will detail how Ive seen your application handle this in hopes it may give you insight to help improve your system.
Dual LP token
- Buy token A & B
- Enter token A & B into Liquidity Pool and get token C
- Farm token C for rewards, no token returned.
Single LP token
- Buy token A
- Stake token A for xA
- Farm xA for rewards
In order to save on gas fees Ill wait to harvest my LP pool rewards until I have more LP tokens to provide. Depositing the token while rewards are pending will auto harvest my rewards and deposit in one transaction.
After import your app classified this transaction as a trade where it thought I exchanged my LP tokens for a very small amount of token A which was the rewards being harvested.
Since there is no way to add a manual transaction with the LP token if the LP is not listed in your database, I am kinda stuck in figuring out what to do in this situation.
Also, when farming LP tokens and nothing is given in return, the app shows a total loss. Im not sure how to handle this either.
Having the ability to somehow reclassify an auto imported transaction would be helpful.
As I use the app more Ill continue to post suggestions.
Hi @StarJCrypto thanks for this workflow. I’ll send this over to our developers to see if this is something we can improve for TraderJoe’s staking system. I’ve consolidated the information from your other posts so let me know if I have all the information below correct.
Staking addresses for the two common LP tokens are:
Dual LP token
Buy token A & B
Enter token A & B into Liquidity Pool and get token C
Farm token C for rewards, no token returned.
Single LP token
Buy token A
Stake token A for xA
Farm xA for rewards
The way the transaction shows up in Coinpanda is a trade transaction instead with the stake token as the send and receive token as reward.
What I’m thinking here is that you could create three manual transactions for this, one send transaction tagged as “sent to pool” then one receive transaction tagged as “received from pool” and then a third one for the rewards received. The tokens not in our database is going to be tricky since you’ll have to add manual prices for them as tokens not in our database will have no pricing data.
But let me check first to see if this something we can fix automatically in our system.
Thank you so much for the reply and suggestions. I will wait to see if any of this can be addressed and I understand the limitations of listings and price data.
The response is much appreciated.
This is definitely something I want to know as well.
I’m okay with doing things manually but want to know how to account for it. Especially the dual LP token.
My concern is that I have not done it correctly. Based on the Dual LP Token from above, should we be marking Tokens A & B as sent to pool when trading for the Liquidity Token OR should be marking Token C as sent to pool when we send it into the pool. See Example below:
This whole screenshot represents an entire transaction history for putting two LP Tokens into a farm. As you can see, I put in 330 FINN and 1274.55 USDT into the pool. It gave me 0.00001976 HBLP which I then had to send to the pool AGAIN to officially enter into it.
Would you be able to tell me how to handle this?
Would I say the the 330 FINN and 1274 USDT were sent to the pool? Or would that technically be a trade for the 0.00001976 HBLP.?
If the second part, would I then say that the HBLP token is what was sent to the pool?
What happens when the staking period ends? Do you get the tokens back or receive other rewards?