UnifyTrade
Sign inStart free

Portfolio

What it is worth, what it cost — and how much of that is actually known.

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.

Portfolio value Main portfolio · all sources Example
Total value 184,920.40

+38,412.60 (+26.2%) since your first complete day

1M3M1YALL

Reconstructed Observed Partial 604 reconstructed days · 238 observed snapshots · 41 partial points

Portfolio Example
Portfolio value $184,920.40 Priced holdings, at the latest price
Total Invested $151,204.80 Cost of the units still held
Unrealized P&L +$33,715.60 Value less cost, on covered holdings
Cash & Stablecoins $12,480.00 Cash and stablecoins
Priced 94% Share of holdings with a price
Cost known 87% Share with a known cost basis

Cost basis

A balance is not a position

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.

Holdings 8 of 14 shown Example
AssetQuantityAvg. CostCurrent PriceValueUnrealized P&LAllocation
BTC 0.8420 $61,240.00 $68,900.00 $58,013.80 +$6,449.72 +12.51% 31.4%
ETH 18.600 $2,390.78 $3,010.00 $55,986.00 +$11,517.49 +25.90% 30.3%
SOL 142.50 $121.60 $178.40 $25,422.00 +$8,094.00 +46.71% 13.8%
ARB 18,400.00 $0.7920 $0.6810 $12,530.40 −$2,042.40 −14.01% 6.8%
AAPL 48.00 $198.40 $236.20 $11,337.60 +$1,814.40 +19.05% 6.1%
USDC 12,480.00 — $1.0000 $12,480.00 — 6.8%
ATOM 96.00 Cost unknown $4.62 $443.52 — 0.2%
GROK 1,250,000 — No price — — —

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.

How that average was built every fill, in order Example
DateSide QuantityPrice Running average
Mar 12, 2023 Buy 4.000$1,980.00 4.000 held · avg 1,980.00
Jun 08, 2023 Buy 3.200$2,140.00 7.200 held · avg 2,051.11
Oct 19, 2023 Buy 5.400$2,380.00 12.600 held · avg 2,192.10
Feb 02, 2024 Sell 2.000$2,880.00 10.600 held · avg 2,192.10 — unchanged; the result went to the journal
Jul 21, 2024 Buy 6.000$2,690.00 16.600 held · avg 2,371.99
Mar 14, 2025 Buy 2.000$2,745.00 18.600 held · avg 2,390.78
Units still held 18.600 Cost of those units $44,468.51 Realised on the sale +$1,375.80 Unrealised here +$11,517.49

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

Thirty-eight executions. One position you can read.

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.

One cycle, folded ETH-USDC on Coinbase Example
Cycle #2 Partially closed 12 Mar 2024 → today · held 2 years 6 months · DCA
  1. Re-entry $3,949.72 Mar 12, 24
  2. 4 DCA buys $3,953.50 Mar 12, 24
  3. Partial sell $3,946.61 Mar 13, 24
  4. 16 DCA buys $2,075.43 Nov 3 – Apr 22
  5. 6 partial sells $4,459.94 Aug 22 – Oct 15
  6. DCA buy $3,424.81 Nov 5, 25
  7. DCA buy $3,472.52 Nov 9, 25
  8. 4 partial sells $3,546.16 Nov 10, 25
  9. 4 DCA buys $2,865.77 Nov 10 – Jun 11
  10. Today $2,627.98 5.9382 ETH still held

38 executions in this cycle

Still held5.9382 ETH
Average cost$2,852.55
Entries27
Exits11
Invested$31,451.90
Proceeds so far$27,746.28
Realised so far+$13,141.78
Unrealised−$1,364.34

Why a cycle and not a row per fill

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.

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.

A partial sell is money, not a verdict

It books realised profit and reduces the units held. It is not a win and not a loss, because the position is still open.

Selling does not move the average

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.

Open and closed, side by side

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

Two percentages most trackers will not show you

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.

What is known Example

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.

Why it is on the screen and not in a footnote

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.

Everything this portfolio does not know generated, not written Example
HoldingWhat is missingWhat it changes
GROKNo price history

Nobody quotes it, so its units are held out of the total and out of every allocation share instead of being valued at zero.

PEPE2No price history

The same: the quantity is shown, the value is not. It returns the day a price source carries it.

ATOMHeld before import

The imported history starts after these units arrived, so their cost is unknown. The value counts; the unrealised cell stays empty.

DOTUnknown origin

A deposit with no matching buy anywhere in the history. Counted as held, never assumed to have been bought.

Cold walletNo on-chain history

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

Three kinds of point, drawn as three kinds of point

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.

Portfolio value from your first complete day to today Example

Reconstructed from stored activity Observed snapshot Partial — not joined to the line 604 reconstructed days · 238 observed snapshots · 41 partial points

How this was measured shown in the app, not buried Example
  • Method

    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.

  • Partial days

    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 seam

    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.

  • In this range

    604 reconstructed days, 238 observed snapshots and 41 partial points.

  • Excluded

    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

One asset, several places, one line

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 holding, three places Example
BTC0.8420 in total
  • Binance Exchange 0.4120
  • Kraken Exchange 0.2800
  • Cold wallet Wallet 0.1500

One line on the holdings table 0.8420 BTC Worth 58,013.80

Three ways something gets in

Every one of them is read-only or your own entry. Nothing UnifyTrade holds can move an asset.

Connected exchange

Balances and history read with keys that cannot trade or withdraw.

Public address

A wallet is tracked by its public address. No seed phrase, no private key, ever.

Added by hand

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

Four ways to ask the same question

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.

Allocation Asset class Example
AssetAsset classCategorySource

$184,920Priced value

  • Crypto 81.1% $149,970.40
  • Shares 9.4% $17,382.50
  • Stablecoins 6.8% $12,574.60
  • Cash 2.7% $4,992.90

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

Open a holding and keep going

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.

Asset sheet opened from any row on the page Example
ETH Held on two exchanges and a wallet
Quantity18.600
Value$55,986.00
Avg. Cost$2,390.78
Unrealized P&L+$11,517.49

Units held18.600

Cost basis held$44,468.51

Realised so far+$1,375.80

Unrealised+$11,517.49 (+25.90%)

Buys · sells recorded5 · 1

Share of portfolio30.3%

Sources carrying it3

Cost known for100%

Every source keeps its own quantity and its own average. The portfolio average is the weighted average of these, not a number typed anywhere.

SourcesQuantityAvg. CostValue
ExchangeBinance 9.200$2,315.40$27,692.00
ExchangeCoinbase 6.400$2,486.10$19,264.00
Wallet0x7f…3c2 3.000$2,418.60$9,030.00

The positions this asset was part of, reconstructed from your fills — not the fills themselves. Open one and the Trades page opens on it.

PositionStatusQuantityAvg entryAvg exitRealized P/L
ETH-USDTBinance Closed 2.000$2,192.10 $2,880.00 +$1,375.80
ETH-USDCCoinbase Open 16.600$2,414.71 — —

The asset’s whole life with you, cycle by cycle. A cycle opens on the first buy from zero and closes when the position reaches zero again.

Cycle #1Open since 12 Mar 2023 · held 3 years 6 months

Buys5 Sells1 Realised so far+$1,375.80 Still held18.600

This one has not closed: the position has never been back to zero, so there is no win or loss to record yet.

Deposits, withdrawals and movements between your own accounts, matched from what the venues reported on both sides.

DateTypeFromToQuantityMatch
Jun 14, 2024 Transfer Binance 0x7f…3c2 3.000 Matched
Feb 02, 2025 Withdrawal 0x7f…3c2 Outside your accounts 0.400 No matching deposit

A transfer never creates a profit or a loss. The units keep the cost they arrived with, which is what stops a move between your own accounts reading as a sale.

Every entry that touched this asset, in order: fills, transfers, income and anything you recorded by hand.

Entries8
Acquired20.600
Disposed2.000
Held now18.600

Acquired less disposed is what you hold. If those three do not agree, something is missing — and the page would rather show you that than balance itself quietly.

The asset’s own price over time, with the same ranges the rest of the app uses.

$3,010.00+69.1%past year

1M3M1YALL

This is the market’s price, not your result: your average sits in the panels beside it, and the two are never drawn on one line.

What the asset is, from the market data provider — supply, venue-independent price data, the project’s own links.

Market cap$363.2B
24h volume$14.8B
Circulating supply120.7M ETH
CategoryCoins
Websiteethereum.org
Contracts4 chains tracked

Market data comes from a provider and is stamped with when it was fetched. If the provider is unreachable the panel says so instead of showing yesterday’s figure as today’s.

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

Split one balance into the portfolios you actually run

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.

One balance, three portfolios nothing moves on an exchange Example

18.600 ETHone real balance · 55,986.00

11.000Long term

Units you have decided not to trade. They still belong to the same real balance.

5.600Trading pot

The part you actually work with — its own value line, its own allocation.

2.000Unallocated · Main

Everything not assigned stays in the Main Portfolio, which remains the source of truth.

A view inside one Portfolio

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.

Manage portfolios Example
  • Rename itThe name is yours, and changing it changes nothing about the holdings inside.
  • Move units in and outAllocate from Main and send them back whenever you like. The cost basis travels with the units.
  • Turn the link on and offPublic today, private tomorrow. The link stops working the moment you switch it off.
  • Delete itReturn every unit to Main first, then the portfolio goes. Nothing you own is deleted with it.

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

Main, John Doe, Jane Doe: every Portfolio keeps its own books

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.

Your Portfolios each one computed from its own sources Example

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.

Each one has its own holdingstradescost basisP&LPerformanceJourneyhistory

What “separate” really means

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.

Several Coinbase portfolios under one login

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

Manage a portfolio for someone else — without giving them your account

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.

How it fits together from your account to his Example
  1. You, the portfolio managerYour UnifyTrade account, with your own Portfolios in it.
  2. John Doe PortfolioA separate Portfolio you create for him.
  3. His sourcesRead-only API keys, a public wallet address, a CSV import — assigned to his Portfolio only.

    CoinbaseMEXCWalletCSV import

  4. Portfolio → AccessInvite him by email as a Client Viewer and tick what he may see.
  5. John Doe · Client Viewer · Read onlyHe signs in with his own account, verifies his email and accepts. Registering alone never opens anything.
What John Doe sees you choose, switch by switch Example

What you can let him see

  • Portfolio value, invested capital, P&L and return
  • Holdings and allocation
  • Quantities
  • Trade history
  • Performance, Calendar and risk
  • Journey
  • Exchange and wallet names, and sync status
  • CSV and PDF exports

What always stays with you

  • Editing or deleting trades
  • Importing a CSV
  • Triggering a sync
  • Adding or changing accounts
  • API keys, credentials and full wallet addresses
  • Your other Portfolios, and any other client’s
  • Your Psychology and journal notes
  • Placing an order or withdrawing anything

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 link or a client’s own login — two different things

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.

Public share or Client Viewer Example
QuestionPublic shareClient Viewer
Who can open itAnyone with the linkOne person you invited by email
Account neededNo account requiredTheir own verified UnifyTrade account
What it coversA custom portfolio you publishOne Portfolio you grant them
What is shownThe public fields you switch onThe permissions you set for them, one by one
Can it change anythingNo — read-onlyNo — read-only
Ending itSwitch the link offRevoke access; it stops on their next request
A shared portfolio defaults, before you change anything Example

On by default

  • Portfolio value
  • Value over time
  • Which assets
  • Allocation
  • Result as a percentage

Off by default

  • How much of each asset
  • Result as an amount
  • Which exchanges and wallets
  • Your trades
  • Your journey with each asset
  • Your activity

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

What this is not, said out loud

Four things a portfolio tracker is often assumed to do. UnifyTrade does not do them, and would rather you knew before you connected anything.

Not an accounting export

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.

No currency conversion

Figures stay in the quote currency your trades were priced in. Nothing is converted through a rate UnifyTrade would then have to defend.

No price it cannot source

An asset nobody quotes stays unpriced. There is no estimate, no last-known-good guess and no interpolation across a gap.

No advice, no forecast

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

The questions people actually ask

Why is my total different from my exchange’s?

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.

How can it show my portfolio before I signed up?

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.

Why do some days say partial?

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.

Does connecting an exchange let UnifyTrade trade for me?

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.

Does an unrealised gain count towards my win rate?

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.

Four things that cannot happen

  • No order is ever placedThere is no order path in the codebase
  • No seed phrase is ever asked forThere is nowhere to put one
  • No unknown is counted as zeroUnpriced is shown as unpriced, and counted
  • No shared page shows more than you allowedQuantities and sources stay off unless you turn them on
How security works here

See what you actually hold

Connect an exchange, track a wallet by its public address, or add a holding by hand.