August 3, 2026 · 8 min read

How to Track Crypto Across Multiple Wallets and Exchanges

How to Track Crypto Across Multiple Wallets and Exchanges — Postmortem blog cover

Nobody sets out to scatter their crypto. It happens one reasonable decision at a time: an exchange for futures, a second one because it listed something first, a hot wallet for a chain you were farming, a hardware wallet for the coins you actually care about, and a bridge transaction you have already forgotten about. A year later the honest answer to “what are you holding?” is a shrug and a rough guess that is usually wrong in the flattering direction.

This is a method for getting one number you can trust — and, just as importantly, for knowing which parts of that number you should not trust.

Why the spreadsheet dies

The default answer is a spreadsheet, and it works for about six weeks. It dies for a specific reason: it asks you to update quantities by hand, and quantities are the one thing that changes without you doing anything. Staking rewards accrue. An airdrop lands. A fee shaves a little off. Every one of those makes your sheet quietly wrong, and there is no alert when it happens — you just stop trusting it, and then you stop opening it.

The fix is not more discipline. It is to stop hand-maintaining the half of the problem that a machine can answer.

The two halves, and why they must stay separate

Every holding has two facts attached to it, and they come from completely different places:

  • How much you hold. An exchange API or a blockchain will tell you this, exactly, on demand. It is not a matter of opinion and you should never be typing it in.
  • What you paid for it. No exchange balance endpoint and no block explorer knows this. It exists only in your own transaction history — and if you did not record it, it is genuinely gone.

Most trackers blur these together, and that is where the invented numbers come from. A tool that shows you a confident cost basis for coins it only learned about from a balance endpoint is guessing. It might be guessing from the price on the day it first saw the coin, which is not your cost, it is the tracker’s birthday.

Keep them separate and the whole thing gets more honest. Quantity syncs. Cost basis comes from a ledger you control. Where the ledger does not cover the quantity, the correct output is “unknown” — not a plausible-looking number.

Step 1 — inventory your sources, all of them

Before connecting anything, write the list. Most people are surprised by its length. Sort it into three kinds, because each is tracked differently:

KindExamplesHow it gets tracked
Exchange accountsBinance, Bybit, OKX, Bitget, BingX, MEXCRead-only API key reads spot balances
On-chain addressesMetaMask, Phantom, Ledger, Trezor, a Tron addressWatch the public address — no key, no seed
Everything elseA CEX with no API, coins lent to a friend, an OTC buyA manual container you type into

That third row matters more than it looks. A tracker that only handles the first two silently under-reports you, and an under-reporting tracker is worse than no tracker — it produces a number that feels authoritative and is missing a chunk.

Step 2 — connect exchanges read-only

Use a read-only API key, always. Disable trading. Disable withdrawals. A tracker needs to read balances and nothing else, and any tool that asks for more permission than that is asking for a level of trust it has not earned. The same read-only key discipline applies here as for auto-syncing futures trades.

One wrinkle specific to portfolio tracking: a key scoped for derivatives may not be able to read your spot balances. Some exchanges separate those permissions. If a connection returns an empty wallet when you know it is not empty, that is usually a permission gap rather than a bug — the tool should tell you which permission to enable rather than quietly reporting zero.

Step 3 — watch addresses, never import seeds

A public address is public. Handing one to a tracker lets it read balances and nothing more: it cannot sign, cannot move funds, and cannot do anything an ordinary block explorer could not. This is the safest integration in crypto.

A seed phrase is the opposite of that, and there is no legitimate reason a portfolio tracker would ever want one. No tracker needs your seed phrase or private key. Not once, not for “verification”, not ever. If one asks, that is the end of the evaluation.

For hardware wallets, this is genuinely convenient: you can watch a Ledger address from your phone without the device leaving the drawer, because watching requires nothing the device holds.

Step 4 — backfill cost basis once, then maintain it

This is the part people skip, and it is the part that turns a balance list into a portfolio. Without it you know what you hold and have no idea whether you are up or down on it.

Do not try to reconstruct five years in one sitting. Export the trade history CSV from each exchange, import it, and let the importer map the columns. Rows that fail should be rejected individually with a line number so you can fix six rows instead of re-doing the whole file. Then maintain it going forward — the ongoing cost is a few seconds per trade, and it only ever gets harder to backfill later.

Where a transfer moved coins between your own places, record it as a transfer, not a buy and a sell. Moving BTC from an exchange to a hardware wallet does not change what your BTC cost you, and a tracker that treats it as a disposal will invent a taxable-looking event that never happened. The mechanics of that are in weighted average cost basis, explained.

Step 5 — decide what to do about dust

Any wallet older than a year is full of residue: airdrops you did not ask for, dust from failed transactions, the tail end of a position you mostly sold. Left alone, forty of those rows bury the six positions that actually matter.

Group them, do not delete them. Collapsing sub-dollar holdings into a single row keeps the table readable while still counting every cent toward your total. The distinction that matters: a holding you cannot price is not dust. “I do not know what this is worth” and “this is worth almost nothing” are different statements, and filing the first under the second is how people discover they were holding something valuable by accident.

The number to be most suspicious of

When your tracker finally shows one big total, treat it as a claim rather than a fact, and check two things. First, how much of it is priced — if some holdings could not be valued, the total is an under-count and should say so. Second, how much of it has a real cost basis behind it. A portfolio-level profit percentage calculated over holdings that are half-uncovered is not a measurement, it is a mood.

And be specific about which prices you trust. A token can carry a familiar ticker and be worth nothing at all — the reasons are in why your portfolio tracker shows the wrong price, and they are the most common source of a portfolio number that is wildly, confidently wrong.

Keep it away from your trading capital

One last rule, and it is the one with real money attached. Your holdings are not your trading capital. If your spot bags get counted as the account you are risking a percentage of, every position size you calculate comes out too large — and it comes out too large in a way that looks perfectly reasonable on screen. Size from the capital you actually trade with, using the risk-based method, and keep the portfolio view in its own lane.

FAQ

Is it safe to give a portfolio tracker my wallet address?

Yes. A public address is already public — anyone can read its balances on a block explorer. Watching it lets a tracker read, never sign or move funds. What is never safe is a seed phrase or private key, and no legitimate tracker will ask for one.

Do I need an API key to track exchange balances?

Yes, but a read-only one with trading and withdrawals disabled. Note that a key scoped only for derivatives may not be able to read spot balances on some exchanges — if a connected exchange reports an empty wallet you know is not empty, that is usually the permission, not a bug.

Can a tracker work out what I paid without my transaction history?

No, and any tracker that shows you a confident cost basis from balances alone is guessing. An exchange or a blockchain reports how much you hold; what you paid exists only in your own records. Import a CSV of your trade history to fill that in.

What about coins on an exchange with no API?

Use a manual container and type the quantity in. It is the least satisfying option, but a tracker that simply omits those coins gives you a total that is confidently wrong, which is worse than one you had to help along.

Related reading

Journal every trade. Autopsy every loss.

Postmortem does this automatically. Free to start.

Start free