Best Tools for Polkadot Taxes - Staking, Multi-Chain Portfolio, etc

Today is Tax Day in the United States, and I thought I would use this as an opportunity to talk about how people are keeping track of their multi-chain portfolio within the Polkadot ecosystem.

Polkadot can be a challenging ecosystem to track due to:

  • The use of different core balance pallets.
  • The existence of multiple tokens / assets across networks.
  • Tokens living in crowdloans, or other system accounts.
  • Differences in Staking pallets across chains.
  • Tracking staking rewards in general, especially if some chains do not automatically reward users.
  • Movement of assets via XCM / XCMP
  • Many different addresses via derivative keys and different SS58 representations
  • etc…

So what are the current tools and strategies that people are using to accurately track their portfolio, and provide as accurate as possible information for tax and other reporting purposes?

I think everyone should assume that no content in this thread is financial or tax advice. Just sharing of ideas and information among peers.

Collecting some resources here, feel free to post others and I will add them:

1 Like

GM Shawn,
check out this tool called Polkalitics developed by Alice_und_Bob, that might be the right tool for doing so. :face_with_monocle:

1 Like

More than a year ago I was working on GitHub - substrate-portfolio/polkadot-portfolio: Simple UI to find all your bags of tokens in the highly complicated world of Polkadot Ecosystem 🔴 as a passionate side project but at this point, I have given up.

Most importantly, the assumption that I was following in my mind was that:

  1. If you are using common pallets, like balances, assets, and system, it will work outside of the box, without any further work.
  2. For each parachain that has some custom pallet bearing value (eg. crowdloan rewards in moonbeam) you would write a thin piece of TypeScript code to handle it.

I am now sure that this is flawed, and won’t scale. The right approach is along these lines.

Also take a look at We have built a quite useful account dashboard to help users track their portfolio across the entire Dotsama ecosystem using ss58/pubkey/evmAddress.

While it’s not exactly built for tax reporting, users can export their full extrinsic/native transfers/xcm transfers history in csv file. And whenever possible, we decorate these records with priceUSD estimate to help user understand the asset flow.

Here’s sample account tracker from a random active user. Same account dashboard are available for any accounts if you just type in ss58/pubkey/evmAddress in the search bar.

Please give it a try and let us know what can be improved.

I think what Polkaholic is doing will hit the same wall as I described above: it is currently scraping account balances from frame-system correctly, but what are you going to do about all the custom pallets? What about my funds in nomination pools/crowdloans (which are transferred out of the source account)? What about all the liquid staking protocols? what about my funds in a dex? IMO if you want to know your portfolio, you want to know the answer to all of these, and currently it is not easy.