Runs, with their counts
Four buys in one week are one marker that says four, not four markers. The count is printed, so the grouping hides nothing.
Portfolio
Exchanges, wallets and holdings you add by hand, in one portfolio — with the cost basis behind every line, so the number on screen means something.
Read-only connections and public wallet addresses. No keys that can move funds.
+38,412.60 (+26.2%) since your first complete day
1M3M1YALL
Reconstructed Observed Partial 604 reconstructed days · 238 observed snapshots · 41 partial points
Cost basis
Most trackers show you a balance and a price. That tells you what you have, not how you did. Every holding here carries the average cost of the units still held, so the unrealised result beside it is a real number rather than a guess.
Average cost is the chronological weighted average of what you actually paid, taken from your own executions — the same engine the Trades page uses, so one asset never has two answers.
Selling removes units at the average and books the difference as a realised result on the Performance page. It never moves the average, so a sale cannot make a position look cheaper than it was bought.
Accumulating
Two and a half years of buying the same asset is not thirty-eight trades, and it is not one trade either. UnifyTrade keeps it as what it was — a cycle — with its average, the money already taken off the table, and what is still held.
38 executions in this cycle
A list of thirty-eight rows is what an exchange export gives you. It answers what happened and never what it cost. The cycle is the unit a person actually thinks in: I started here, I added on the way down, I took some off, and this is what I still hold.
A cycle closes when the position reaches zero. Buying the same asset again afterwards starts a new one, so a result is never stretched across two different ideas.
Four buys in one week are one marker that says four, not four markers. The count is printed, so the grouping hides nothing.
It books realised profit and reduces the units held. It is not a win and not a loss, because the position is still open.
Units leave at the average and the average stays where it was. A tracker that recomputes it after a sale makes a position look cheaper than it was bought.
Realised is what the sales actually returned. Unrealised is what the units still held are worth today. The two are never added into one number.
Nothing is merged away. Every run on the rail opens into the fills it is made of, and each fill keeps its own price, fee and timestamp.
Honesty about gaps
Some holdings have no price anybody publishes. Some arrived before your imported history begins, so nobody knows what they cost. Both are normal, and both change what a total means.
Holdings with a price94%
of value carries a price2 holdings nobody publishes a price for
Holdings with a known cost87%
of value carries a known cost3 arrived before the imported history begins
An unpriced holding is worth an unknown amount, not zero, so it is left out of the total instead of being counted as nothing. The count is printed beside the total, not buried.
A portfolio that silently treats every unknown as zero shows a smaller, tidier number that is wrong. UnifyTrade would rather show you a total and tell you how much of your holdings it covers.
The same rule runs through the product: a figure that cannot be derived honestly is shown as unavailable.
Nobody quotes it, so its units are held out of the total and out of every allocation share instead of being valued at zero.
The same: the quantity is shown, the value is not. It returns the day a price source carries it.
The imported history starts after these units arrived, so their cost is unknown. The value counts; the unrealised cell stays empty.
A deposit with no matching buy anywhere in the history. Counted as held, never assumed to have been bought.
A wallet carries no imported on-chain history, so days before it was first read are marked partial rather than back-filled.
This list is generated, not written. It is the same set of flags the reconstruction raises while it walks your balances backwards — printed instead of swallowed.
Value over time
History from before you signed up is reconstructed: each past day’s quantity is walked backwards from the balance your exchange reports today, through every stored fill and transfer, then valued at that day’s close. Days since the first snapshot are observed. The chart never mixes the two into one confident line.
Reconstructed from stored activity Observed snapshot Partial — not joined to the line 604 reconstructed days · 238 observed snapshots · 41 partial points
Each past day’s quantity is walked backwards from the balance your exchange or chain actually reports, through every stored fill, transfer, deposit, withdrawal, airdrop and fee — then valued at that day’s close.
Cash and stablecoins are not reconstructed: deposit history is not imported, so a past cash balance cannot be known from fills alone. Those days cover the crypto side only, and say so.
The step between the reconstructed stretch and the observed one is a difference of method, not a change in wealth, so a change over a range is chain-linked: the move inside each stretch, added. The step itself is never counted as a gain.
604 reconstructed days, 238 observed snapshots and 41 partial points.
No price history: GROK, PEPE2. Held before the imported window: ATOM, DOT. No balance snapshot yet: Cold wallet.
A quantity that goes negative while walking backwards means activity UnifyTrade never saw — a buy before the exchange’s history window, an unimported deposit. The asset is clamped to zero from that day back and every earlier day is flagged, never silently completed.
Where it is held
The same coin on two exchanges and a wallet is one holding with three sources behind it. 21 platforms connect by read-only API and 2 read a public wallet address.
One line on the holdings table 0.8420 BTC Worth 58,013.80
Every one of them is read-only or your own entry. Nothing UnifyTrade holds can move an asset.
Balances and history read with keys that cannot trade or withdraw.
A wallet is tracked by its public address. No seed phrase, no private key, ever.
Something held somewhere UnifyTrade does not read yet still belongs in the picture.
Open a holding to see which source carries how much, and to go from there into its trades.
Allocation
Where is the money, actually? By asset, by asset class, by the category you gave each coin, or by the venue holding it — the same portfolio, cut four ways.
$184,920Priced value
A share is always of priced value Excluded here: 2 unpriced holdings
Only priced holdings can carry a share, so an allocation is always a share of what is priced — printed with the coverage, never quietly against a total that includes unknowns.
One asset, in depth
Every asset opens into its own view: what you hold and what it cost, which sources carry it, the trades behind it, its whole journey with you, transfers, activity, a price chart and what the asset actually is.
Shares open a shorter version — where they are held and what happened to them. A coin’s journey and a coin directory entry are about a token’s life, and a share does not have one here.
Custom portfolios
Long-term holdings, a trading pot, a stake you set aside. Custom portfolios slice the same real holdings into separate views, and a unit can only belong to one of them.
18.600 ETHone real balance · 55,986.00
Units you have decided not to trade. They still belong to the same real balance.
The part you actually work with — its own value line, its own allocation.
Everything not assigned stays in the Main Portfolio, which remains the source of truth.
A custom portfolio splits the holdings a Portfolio already has into named slices, each with its own value line and allocation. Nothing moves on an exchange, and each unit sits in exactly one slice. A custom portfolio is also the one kind you can publish as a public page.
To keep someone else’s money fully apart — its own accounts, trades and cost basis — use a separate Portfolio instead. That is the next section.
Main Portfolio is the exception to all four: it cannot be deleted and it cannot be made public.
The Main Portfolio stays the source of truth for what you hold. A custom portfolio is a view over it, never a second set of balances.
Separate Portfolios
A Portfolio is not a filter over one balance. It owns its own exchange connections, wallets and manual trades, and everything on its pages — holdings, trades, cost basis, P&L, Performance, Journey and history — is computed from those sources alone.
Main Personal
$184,920.30+1.3%
BinanceKrakenWalletManual trades
Your own trading: the exchanges, wallets and manual trades you connect for yourself.
John Doe Managed
$50,000.00+2.1%
CoinbaseMEXCWalletCSV import
A client’s capital: his own sources, cost basis and results, kept out of Main.
Jane Doe Managed
$100,000.00−0.8%
BybitManual trades
A second client, valued, charted and journaled on its own — never mixed into Main or John Doe.
Every source belongs to exactly one Portfolio, so nothing is counted twice. Coins moved from one Portfolio to another carry no cost across: both sides show the move as unresolved rather than guessing. A source that already has history stays in its Portfolio.
Separate exchange portfolios or accounts can go to separate UnifyTrade Portfolios. With Coinbase, UnifyTrade may suggest a Portfolio from the Coinbase portfolio’s name, but nothing is assigned until you confirm it.
Custom portfolios still work inside each Portfolio, over that Portfolio’s own holdings. An account with a single Portfolio sees none of this and works exactly as before.
Client portfolio management
Keep a client’s money in its own Portfolio, connect their sources to it, and invite them from Portfolio → Access. They sign in with their own UnifyTrade account and read that one Portfolio — read-only, with only the parts you allow.
CoinbaseMEXCWalletCSV import
A change to what he sees applies on his very next request, and so does ending his access — with an optional end date if you want one. UnifyTrade is software for tracking portfolio data: it holds no funds, places no orders and gives no investment advice.
Sharing
A public share shows a chosen slice of a custom portfolio to anyone who has the link. A Client Viewer is one person, with their own UnifyTrade account, reading one Portfolio you granted them.
A shared page never carries an account name, a connection, a wallet address or anything you did not switch on. Turning the link off ends it.
Scope
Four things a portfolio tracker is often assumed to do. UnifyTrade does not do them, and would rather you knew before you connected anything.
Cost basis here is a chronological weighted average — the way a trader reads a position — not the lot-by-lot matching an accountant may need. Export your executions and do that where it belongs.
Figures stay in the quote currency your trades were priced in. Nothing is converted through a rate UnifyTrade would then have to defend.
An asset nobody quotes stays unpriced. There is no estimate, no last-known-good guess and no interpolation across a gap.
No target allocation, no rebalancing suggestion, no signal. What to do about what you hold is not this page’s business.
Before you connect anything
Two reasons, both printed on the page: unpriced holdings are left out of the total rather than valued at zero, and a source you switched off is excluded from every figure. The coverage line says how much of your holdings the total covers.
By walking backwards from today’s real balance through your own stored activity, valuing each past day at that day’s close. It is reconstruction from your records, drawn dashed so it is never mistaken for an observed snapshot.
Because cash and stablecoins cannot be reconstructed, and a wallet has no on-chain history before the day it was first read. Those days cover part of the portfolio, so they are drawn as separate points.
No. Keys are validated as read-only on the way in and stored encrypted, and no order, transfer or withdrawal path exists in the codebase. A wallet is tracked by its public address only.
Never. Wins and losses are finished positions and live on Performance. The two pages read the same executions and the same cost basis — they answer different questions.
Connect an exchange, track a wallet by its public address, or add a holding by hand.