Misc DeFi related bugs

When you provide liquidity on Uniswap.exchange which is on Ethereum, you get UNI-V1 tokens in return. These tokens show up as UNI-V1 in cointracker, which is correct. However, if you were manually add a transaction (or update a transaction) and specify UNI-V1 as the token, it will error out saying that UNI-V1 is an unknown currency.

Etherscan link to an example of Uniswap DAI Pool UNI-V1 token https://etherscan.io/token/0x2a1530c4c41db0b0b2bb646cb5eb1a67b7158667

Synthetix (SNX) seems to have parts of it incorrectly recorded:
-Staking SNX tokens in return for minting sUSD (process is similar to MakerDAO locking up ETH and receiving DAI) just shows up as receiving sUSD.
-Claiming sUSD weekly rewards as incentive for staking shows up as receiving sUSD (correct)
-Synthetix also relies upon Uniswap staking for the advanced users, and as mentioned it does not show up properly due to the uniswap bug above
-In order to get your SNX collateral back, you have to burn sUSD.
(https://etherscan.io/token/0x57ab1e02fee23774580c119740129eac7081e9d3?a=0x0000000000000000000000000000000000000000) however, you could burn 10% of your debt to get back 10% of your collateral, or if your debt increased you can burn 15% of your debt to get back 10% of your collateral. Is it possible that we could get a BURN tag added automatically if a transaction is going to a 0x000000000000 address?
-Synthetix also offers a liquidity incentive to those providing liquidity on Uniswap and curve. curve seems to be ok, so i’ll just cover the Uniswap portion. They have a smart contract (0x48d7f315fedcad332f68aafa017c7c158bc54760) which users can transfer their UNI-V1 tokens into via the official interface of Synthetics MINTR and for each block, they earn rewards for providing liquidity. When users stake their Uniswap tokens via the smart contract interface on MINTR, it is shown as a sent transfer instead with the following error “Could not determine the value of this sale - we don’t know the price of this coin on XXXX - please add the fiat value received or mark it as a transfer.”

Using DeFi Zap which enables a user to perform multiple transactions in a single transaction. So grabbing a random DeFi Zap transaction 0xc5ef999dba4bda32b78703f5f57bb656eb060403e9b0db8dfd4f2a5be70ba7ed
Cointracker will show the last transfer (TRANSFER 0.001097473709700124) as the amount of ETH sent along with its transaction fee of 0.00254328 and as a result, it does not cover that the user started with .245 ETH used 1.22 ETH that to buy .123 sETH, which the remaining ETH combined with the .123 sETH was then automatically deposited into the Uniswap.Exchange pool and they received UNI-V1 tokens in return.

ERC-721 appears to not be supported either. Transactions appear as sending out ETH but getting nothing in return. These are things like CryptoKitties, Axie Infinity, Gods Unchained and everything else on OpenSea

Just found 2 more issues. If you use Kyberswap, and trade a token for ETH, it should show up as a direct trade of 100 token for 1 ETH. Instead, it shows up 2 separate transactions. One showing an outbound token and the other for inbound ETH.

Other issue is, if you update a transaction, but do not touch any of the prepopulated values for:
-Total Amount
-FIAT or Crypto
-Wallet
-Fee Amount
-Fee Fiat or Crypto
Cointracker will strikethrough the transaction, ignore it and then create a new transaction with the updated information. But if I wanted to just add a personal note, like ‘this was sent to my friend to help pay rent’, then the link to view on etherscan will automatically disappear on the new. transaction… even though the data remained the same. So the request is, if you do not change any of the imported data, then it should be acceptable to do things like add NOTES, without creating a new transaction and ignoring the original one.

Found another! If you manually enter one or more of the following Synthetix tokens, they do not show up in the dropdown list, but are saved when you click save or update transaction.
sBTC identified as SuperBitcoin, need to add another so it can be identified as SyntheticBTC
iBTC … identified as iBTC (orange ETH + BTC logo), but not Synthetics InverseBTC priced at thousands of dollars and not $0.0000006
sETH is incorrectly identified as SETHER
iETH is incorrectly identified as iethereum (apple logo)

Everything below this point is an unknown currency
sLINK / iLINK
sXAU
sXAG
sDEFI / iDEFI
sFTSE / iFTSE
sCEX / iCEX
sCHF
sGBP
sAUD
sJPY
sNIKKEI
sETC / iETC
sBNB / iBNB
sLTC / iLTC
sBCH / iBCH
sADA / iADA
sXRP / iXRP
sXTZ / iXTZ
sDASH / iDASH
sTRX / iTRX
sEOS / iEOS

Just want to mention that this is the correct behavior, however, we should be able to mark this as claiming stake or something similar. This is the future as more organizations on Ethereum move to a DAO like structure.

When using uniswap and swapping from ETH to ERC20 or ERC20 to ETH shows up as 2 transactions, that occurred at the same time. One transaction sending ETH and the other transaction receiving the token. They should be combined transactions.

My whole portfolio looks like the image link below, because of the failure to add the 3 largest defi exchanges on ethereum. (Kyberswap, Uniswap, Synthetix)Cointracker2|612x500

Its really frustrating to use this service last year and having to correct 400+ transactions manually like the image above, because you never added support for Uniswap + Kyber and various other popular services on Ethereum. Then I find out they are still not corrected. Just… how?

I’m strongly agree! If you’re a frequently Blockchain user it’s nearly impossible to track the whole transactions with cointracker!

  • The whole transaction page is confusing after time. There are a lot of empty eth transactions (mainly Smart-Contract interactions / internal Tx) and ignored transactions (which occurs when you mark it as internal transaction)
  • The merge betweet two transactions is difficult --> As example Accointing.com solves this issue very smooth
  • The overall “need review” handling is very difficult and also nearly impossible to solve in a timely manner
  • The Etherdelta-import does’t work properly
  • Also Kyber / Uniswap
  • DeFi is also complex to track
  • And then there is the big problems with the “unsupported tokens”…
1 Like

Hi @ETHLOSER and @crypto91,

Thanks a lot for bringing these issues to our attention. There’s clearly a lot for us to improve upon in DeFi including:

  • Synthetix support
  • Uniswap and Uniswap Pools support
  • Adding “unsupported” tokens
  • ERC-721/NFT support
  • Kyber support

We are going to work on improving these areas and let you know as we roll out updates there.

In the meantime, could you share more about what is not working with EtherDelta imports and what’s going wrong with the internal ETH transactions on the Transactions Page?

Sure. I provided this example image earlier of what it looks like when you interact with a non-supported smart contract. If you need anything else, let me know and i’ll happily provide it.

Hi @ETHLOSER,

Thanks for sharing that screenshot. Are you open to sending the contract in question to feedback [at] cointracker.io so that we can take a deeper look?

Below are the smart contracts for various things in DeFi

Synthetix ones are the most difficult, because they cram so many things into several contracts
Synthetix Fee Address which has a sub address/contract of Synthetix 0xFeeFee, while this is not directly a smart contract, it is called by various smart contracts because it serves 2 purposes. Inbound are fees collected everytime a trade occurs on Synthetix(DOT)Exchange. Outbound are users claiming sUSD rewards for staking SNX tokens on MINTR(DOT)Synthetix(DOT)IO
Example 1 - Trading 210 sUSD for 0.12 sXAU with a 0.62 sUSD fee sent to Synthetix Fee Addess.
Example 2 - Trading 109 iLINK for 110 sUSD with 0.33 sUSD being sent to the Synthetix Fee Address.
Example 3 - This user is collecting the sUSD reward from staking SNX. You can tell because the transaction goes from feefee to 0x000 (burn) and then from 0x000 (burn) to the user. End result, FeeFee burned their tokens and then 0x0000 created new ones and delivered to the user.

Synthetix Uniswap sETH LP Reward System for providing sETH liquidity on Uniswap.

DeFi Zap General UniPool

Uniswap smart contract for WBTC
Uniswap smart contract for SNX
There are too many contracts to list for Uniswap since each token has its own unique contract but the easiest way to find them is just to search etherscan for 'UNISWAP: ’ + Token, so UNISWAP: WETH to get results of WETH, UNISWAP: SETH to get results for SETH, etc.
1InchExchange
KyberSwap

I was going to add SAI to DAI, but thats already done!
-I’ll edit this as I find more across my addresses
Airswap Legacy
Dex(dot)AG
OasisDex - decentralized exchange and DeFi in one spot
OasisDex Example 1 - exchange from 2.9 wETH to 490 DAI
OasisDex Example 2 - DAI to Link shows up correctly in CoinTracker but Example 1 does not.
DYDX - has 32 contracts, because they do borrow, lending, shorts/longs, etc.
DDEX Margin -

ERC-721
OpenSea The #1 marketplace for ERC721
OpenSea Example 1 - 0xc1 paid 0.021 ETH for an ERC721 of 36085 from KnightStory. OpenSea took their cut of 0.000525 and 0xbfa received 0.020475 for the KnightStory card they put up for sale.
TokenTrove The #2 marketplace for ERC721. They allow users to place buy and sell orders for ERC721s.
TokenTrove Example 1 - Selling - 0xf6b placed a buy offer of 0.008 ETH and a quantity of 2 for Synergy Golem.
0xf957 had 2 of them (Card#121557372) (Card#121559964). So 0xf6b got the 2 cards and the combined payment of 0.008 x 2 = 0.016 went to 0xf957, while TokenTrove took their cut of 0.0004 ETH, the 0x market network took a fee of 0.000165 ETH and 0.016 went to 0xf957

1 Like

Lots to look at here @ETHLOSER, thanks. We’re going to see how we can improve our DeFi integrations to support this and we’ll let you know when we have an update.

Hegic ETH Put Hedge Contract (Ethereum mainnet): https://etherscan.io/address/0x27b6125328ca57d5d96baaa4f9ca8c5edbafe016

Hegic DAI Liquidity Pool Contract (Ethereum mainnet): https://etherscan.io/address/0x009c216b7e86e5c38af14fcd8c07aab3a2e7888e

Deversifi - has 7 contracts
Dex.Blue - Decentralized Exchange
DutchX - Decentralized Exchange
FairDex - a forked overlay of DutchX (couldnt find contract)
ForkDelta
IDEX
JellySwap - Exchange that allows cross chain assets to trade via atomic swaps, like BTC for ETH, or DAI for zcash
Loopring - decentralized exchange that utilizes zk-snarks for private trades and soon zk-ETH and more.
Paraswap - decentralized exchange that uses other decentralized exchanges for liquidity.
Switcheo - Decentralized exchange built on NEO, that will use atomic swaps to swap BTC for NEO, ETH for Neo or BTC for ETH.
Totle - decentralized exchange that uses other decentralized exchanges for liquidity.
Nuo.Network - Lending, exchange and margin platform
Fulcrum - Dex, whose parent company BZX infamous for their recent loss of being hacked

Etherisc - Decentralized insurance
Contract 1 - Token
Contract 2 - Token sale
Contract 3 - Old contract

NexusMutual - Decentralized Insurance
Opyn - Decentralized Insurance for the price of ETH (if it goes down get reimbursed) they have many contracts and add new ones all the time, so this will be just a sample
OPYN ETH Puts 150 on 4/24
OPYN cdai insurance
OPYN USDC insurance

Tokensets - All the below work correctly – when I was testing it i imported the wrong address and thats why i started detailing them but when i tested a second and third address time they worked… so just know that these are correct.
High Convection / Fundamental
ETH Trending Alpha
BTC Min Volatility
WBTC USDC RSI
ETH Trending Alpha ST
ETH Trending Alpha LT
Stacking GWEI
Intelligent BTC
MoneyPrinter
BTC TA
LINK/ETH Ratio
BTC/DAI Rebalancing

My request, would be to get Uniswap, Kyberswap and Synthetix working in that order as that would benefit me the most as paying customer who wants to renew for a second year. Then maybe the ERC721’s and those exchanges like TokenTrove and Opensea, and then lending platforms like Nuo.Network, AAVE, Fulcrum, etc. Then the exchanges like 1inch, DutchX, ForkDelta, IDEX, etc. Then everything else.

2 Likes

Hi @ETHLOSER,

This hierarchy is super helpful — thank you! We will let you know as we add these integrations.

Do we have any update on this? Or is there a section that shows a change log so users know what has changed between then and now?

Hi @ETHLOSER, no update here yet but will keep you abreast of updates on both fronts as soon as they become available.

Hi @ETHLOSER, @crypto91,

While we work on adding all the DeFi integrations you’ve requested we have added the ability to add any currency from the settings page:

On the Custom Currency page go ahead and add whichever coins you would like to track that aren’t natively supported. You can then add them like you would any other coin.

Any update on these items?

CoinTracker reads Uniswap type transactions as seperate send and receive transactions currently. To correct this we currently need to create a manual transaction, essentially combining the send/receive into a “trade” and then ignoring the original send/receive. It would save a lot of time if we could just pick “trade” from the drop down to combine a send and receive.

CoinTracker also seems to get confused anytime there is multiple transactions in the same transaction. For example, with Compound, if you do any transaction while you have unclaimed Compound tied to that item, it will also deposit the Compound token to your wallet in the same transaction. CoinTracker will read this incorrectly and think you traded the Crypto you were depositing or withdrawing to Compound for the Compound token itself.

Custom Currencies - Don’t display any value on the performance tab or show a cost basis. Doesn’t seem like there was any point entering curent value.

ETHLOSER provided much deeper detail. I realize there is a lot to update to cover all of those items and it will take some time.

Just making it easier to mark trades and transfers that get incorrectly read by Cointracker would help drastically with these more advanced transactions. Either having all options available in the dropdown (transfer isn’t always an option and combine doesn’t exist) should be a fairly simple programming fix and would go a long way to increasing ease of use.

Right. Their entire solution sucks. Its too much manual work for something thats supposed to be automatic. I provided them with feedback that is going to generate them millions of dollars if they would act on it and… nothing. Just a handicapped solution was provided.

Literal 3 man teams working part time on an open source project are making faster improvements that can actually read dexs like uniswap, balancer, 1inch, kyber, etc. Highly disappointing.

Hi @Radavan, @ETHLOSER,

Thanks a lot for both of your feedback. We have heard you loud and clear and will be making updates to DeFi integrations including the specific issues you mentioned above. We completely realize that we’ve been slow to make progress on DeFi integrations. But we haven’t forgotten — we will get this done.

Thanks for the reply Chandan.

Another item to consider is that due to so many manual and ignored transaction, many transactions that should be 1 line item, end up being 3. This is falsly increasing number of transaction, possibly pushing some of us into higher cost tax plans. I think the tax plans should not be based on number of transactions but instead on value of account or some other metric.

I would also like to see the performance page get closer to realtime. There are many sites that could provide better price feeds than whatever service you are currently using; the performance tab is usually about 5-10min delayed. Also, that tab should be available on the mobile app.

There needs to be more features to justify the monthly cost. At this point, the only real benefit is the performance tab, which is really only useful for seeing your total gain/loss since there is issue with cost basis as previously mentioned for low cost coins. I really like this feature, but it’s probably only a $5/mo value at most.

1 Like

Hi @Radavan,

Thanks for the detailed response. Please see comments inline below:

We hope that our upcoming DeFi integrations will help mitigate this

We don’t count ignored transactions

Great points, we will work on adding both

Thanks for your candid feedback. We’ll work on making this more useful to hopefully make it inline with your expectations of value!

A competitor “T----Tax” says they now support one of the most difficult to track DEXs ever called 1InchExchange. This is due to the complexity of 1InchExchange able to create a single transaction that sources funds over 10+ dexs in a single transaction and they can even split the transaction where 10% may come from Uniswap, 45% from Balancer and 45% from Bancor.