Connect an exchange and the rows come in with a price you paid. Connect a wallet and they do not. The quantity is right, the current value is right, and the average cost cell is empty. On the account in the screenshot the ACCOUNTS tile reads 8 connected sources and the WALLETS tile reads 5 connected, so a large part of that book arrives with no purchase history attached to it at all.
This matters more than a blank cell usually does, because everything you were about to read as performance sits downstream of it. A return number needs two prices, what you paid and what it is worth. When the first one is missing, whatever the row shows you is either blank or built on something other than your actual entry, and it is worth ten minutes to work out which.
Why a chain cannot tell you what you paid
An exchange knows your fills because it filled them. It has a record that says on this date you bought this quantity at this price and paid this fee, and it can hand that record over. A blockchain has no such record about you. It knows that 2 ETH moved from one address to another at a certain block, and that is all it knows. It cannot tell whether you bought that ETH at 1,200 on a centralised venue and withdrew it, received it as payment for work, earned it as staking rewards, or moved it from another wallet you also own.
So a wallet connection can give you a balance with high confidence and cannot give you a basis at all. Those are two different classes of data, and the empty column is the honest representation of that. A tool that filled the cell in with a guess would be doing you a much worse favour, because a fabricated basis looks exactly like a real one three months later when you are deciding whether to sell.

What a blank basis does to the number underneath it
Unrealized profit is current value minus what you paid. Take away the second term and there are only two possible outcomes for that row. Either the cell is blank too, in which case you have lost the information but not been misled, or the row is excluded from a total, in which case the book level profit figure you are reading is the profit on the part of the book that happens to have basis.
That second case is the one that bites. Suppose your exchange rows are your recent trading, bought in the last few months, and your wallet rows are the coins you have held for two years. The wallet rows are where all the gain is, and they are exactly the rows with nothing to subtract from. The headline number then describes your trading sleeve, not your portfolio, and it will feel wrong in a way you cannot put your finger on.
Before you do anything else, establish which behaviour you are looking at. Note the profit figure at the book level, then filter or scroll to a set of rows that all have basis and add up their profit by hand. If the two agree, the missing rows are being left out. If they do not, something else is in the total and you want to know what before you make a decision on it. This takes about ten minutes once and then you know what your own screen means.
Three ways to backfill without restating everything
You do not need a perfect ledger. You need enough basis that the number in front of you answers the question you are actually asking. In rough order of how much work each costs:
Pull the history from wherever the coin was bought
Most self custodied coins were bought somewhere with an account attached. Exchange trade history and fiat on ramp receipts usually go back years and both normally export to a spreadsheet. Match by date and quantity to the deposit that landed in your wallet, and you have a real basis for that lot. This is the only method that gives you a true number, and for the two or three positions that make up most of your money it is worth the hour.
Use a dated mark and label it as one
For anything you genuinely cannot reconstruct, pick a date you can defend, take the price on that date, and treat it as the basis from then on. The obvious choice is the date the coin arrived in the wallet. This is not your real entry and you must not let yourself forget that, so write the date next to the number wherever you keep it. What you get is a return series that is honest about its own starting point, which is far more useful than a blank.
Track the position outside the tool entirely
For a long held core position that you are not going to trade, the basis question is mostly a tax records question rather than a decision question. Keep a small file with date, quantity, price and fee for each lot, and use the portfolio view for what it is genuinely good at, which is telling you what you own right now and what it is worth. The performance tab keeps account types separate, with MANUAL and WALLET listed as their own views, so you can look at the connected book without pretending it is your complete accounting record.
The number to size against while basis is missing
Here is the part that actually changes what you do this week. When basis is incomplete, stop making decisions that depend on it. Anything phrased as I will sell when I am up 50 percent, or I want to hold until this is back to break even, needs a real entry price and you do not have one for those rows.
What you do have is current value, and current value is enough for the decisions that matter most. Position size against the book total, which reads 51,715.70 in the capture. Concentration as a share of that total. What a 40 percent drawdown in your largest holding costs you in dollars. Whether the thing you are about to buy pushes one asset over your limit. None of those need to know what you paid, and all of them are better decisions than the break even ones anyway.
There is a behavioural reason to prefer them too. Break even thinking is where retail books go to die. Holding a position because selling would confirm a loss is a decision made by the basis, not by the asset, and it is the single most expensive habit in a self managed portfolio. Losing the basis column on a few rows temporarily removes the fuel for that habit, and I have seen people trade better for it.
Rebuilding basis in the order that pays
If you do decide to do the work, do it in the order the money sits rather than the order the table renders. With 4 unique positions in that book, one or two of them carry almost all of the value, and the basis on the small rows changes nothing.
- Sort by value and take the top rows that together make up most of the book. Those are the only ones worth real archaeology.
- For each one, list the deposits that landed in the wallet, with dates and quantities. That is your lot structure and the chain gives it to you for free.
- Match each deposit against exchange or on ramp records by date and size. Most will match cleanly, and the ones that do not are usually rewards, airdrops, or transfers between your own wallets, all of which need a different treatment anyway.
- For unmatched lots, apply the dated mark and record which lots got one, so future you knows exactly which part of the return is real and which part is a convention.
- Write the resulting weighted average per asset somewhere you will actually look, and check it against the table once a quarter rather than every session.
Do that once for the two positions that carry the book and the empty cells on everything else stop mattering. What you cannot do is treat a blank as a zero. A basis of nothing implies the entire current value is profit, and if that ever leaks into a mental calculation you will hold the wrong thing far too long.