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
-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

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”…

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.


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.

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
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 -

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)
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
ETH Trending Alpha ST
ETH Trending Alpha LT
Stacking GWEI
Intelligent BTC
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.

1 Like


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.