Reading Flow Without a Terminal: The Tape Under the Candle

Every candle on a Solana chart is a summary of transactions that are individually public. Reading the transactions instead of the summary costs a few minutes and answers questions the chart cannot: how many people traded, how large the largest fill was, and whether the flow was one participant or a hundred.

Situation
You need to know what produced a move and only have a chart in front of you
Mechanism
Candles aggregate transactions that remain individually readable on chain
Rule
Read the transaction list before drawing any conclusion from a candle
Cost
Reading takes minutes, and the window it describes has already closed
Invalidation
The transaction record contradicts the story the chart implied

Open the pool account on a public explorer and read its transaction list. Count distinct signers, note the largest single fill, look at the spacing between trades, and compare buy value against sell value. That takes a few minutes, uses no paid tooling, and answers the questions a candle chart structurally cannot answer because it discarded the information before drawing.

What a candle throws away

A candle is a compression. It keeps four prices and a turnover total for a period and discards everything else, and what it discards is exactly the material you would want in a thin market. It cannot tell you whether the period's turnover came from three hundred fills or from three, whether one address was on both sides, or whether the high was reached by a single large order that immediately reversed.

In a deep market the compression is reasonable, because with many participants the aggregate is a fair summary of the individuals. In a pair where a handful of accounts can account for most of the session, the aggregate can be actively misleading: it presents a market where there was a transaction sequence.

The important consequence is that two candles that look identical can represent completely different situations. One is a crowd; one is a loop. The chart cannot distinguish them at any zoom level, because the distinguishing information was removed during construction. That is not a criticism of charts, which do what they are for. It is a reason not to ask them a question they cannot hold the answer to.

What you can read for free

The pool account holds current reserves and, through its owning program, tells you which design family prices the pair. Reading it directly rather than from an interface's summary card removes one layer of interpretation, which matters when the two disagree.

The transaction list for that account is the tape. Each entry has a signer, a timestamp, the instruction that was executed and the amounts moved. Public explorers such as the Solana explorer and Solscan present this without an account, and for a pair that is a few hours old the whole history fits on a couple of screens.

The mint account gives you decimals and the authority flags, which are needed to interpret amounts correctly and to know whether supply is fixed. The holder list gives you concentration. And where the pair is reachable through a router, comparing a routed quote against a direct pool quote tells you whether aggregators have discovered the pool yet, a mechanic described in the Jupiter developer documentation.

None of this requires a subscription, and all of it is the primary source that every dashboard is derived from. The trade-off is time: reading raw records is slower than glancing at a summary, which is precisely why most traders do not do it and why the information is still there to be read.

The reading sequence

  1. Open the pool account, not the token page. Confirm the reserves and the owning program. Write both down; they are the denominators for everything that follows.
  2. Set a window. Choose a start and end time before you look at the data, so that the window is not selected to fit a conclusion you have already reached.
  3. Count transactions and distinct signers separately. The ratio between them is the single most informative number in this exercise.
  4. Record the largest three fills. Note their size relative to the reserve. One fill worth a large fraction of the pool reframes the entire session.
  5. Look at spacing. Scan timestamps for regularity. Human flow is irregular and clustered around external events; programmatic flow tends to be evenly spaced or tied to block cadence.
  6. Sum buy value and sell value. Near symmetry with high turnover suggests cycling or arbitrage; a persistent imbalance suggests accumulation or distribution.
  7. Compare reserves at the start and end of the window. This tells you whether the activity changed the pair's capacity to absorb an order, which is the part that affects your sizing.
  8. Write down the numbers, not the conclusion. Counts, sizes and reserves are re-examinable later. A sentence saying the flow looked healthy is not.

Flow signatures and what they suggest

Observable patterns in a Solana pair's transaction record, what each pattern is consistent with, and the alternative explanation that prevents it from being conclusive.
ObservationConsistent withAlso consistent withWhat it changes for you
Many transactions, few distinct signersProgrammatic execution by one or a few operatorsA small number of active traders using scripts for their own accountIgnore the turnover figure when sizing; use depth alone
Highly regular intervals between tradesScheduled execution rather than discretionary decisionsDeliberate pacing by a single participant working an orderTreat the session as one decision, not many
Buy and sell value nearly equal at high turnoverCapital cycling through the pool, generating fees and chart activityTwo-sided arbitrage against another venueNeither is directional information; do not read it as demand
One fill worth a large share of the reserveA participant with size relative to this pairA routed leg of a much larger multi-venue orderRe-read depth; your own size assumptions may be stale
Signers rising alongside turnoverMore independent participants arrivingMany funded wallets operated togetherSizing may be normal, but the ambiguity is not resolvable
Turnover high, reserves unchangedActivity that did not bring liquidity with itProviders adding and removing in offsetting amountsExit cost is unchanged regardless of how busy it looked

Every row has a second column of alternatives, and that is the honest structure of this analysis. The tape supports inferences and refuses proofs. A trader who treats the left column as a conclusion has replaced one unfounded story, the chart narrative, with another that merely sounds more technical.

A worked reading of one window

Here is the sequence applied to an invented ninety-minute window, with round numbers chosen to show how the evidence stacks rather than to describe any real pair. The value of writing it out is that the conclusion is weaker than the individual observations suggest, which is usually the correct result.

The pool holds 180 SOL on the quote side at the start of the window and 176 at the end, so capacity is effectively unchanged. The chart for the same period shows a rise of roughly thirty percent on turnover of 410 SOL, which on a chart alone reads as a strong session with participation behind it.

The transaction list says something more specific. There are 340 trades from 41 distinct signers, so roughly eight trades per signer. Of those signers, six account for more than half the transactions. The three largest fills are 9, 7 and 6 SOL, which against a 180 SOL reserve are around five, four and three percent respectively: individually significant, collectively a meaningful share of the move.

Spacing is mixed. There is a cluster of tightly and evenly spaced trades in the first twenty minutes, then irregular activity for an hour, then another even cluster near the end. Buy value exceeds sell value by about eighteen percent across the window, so this is not a symmetric cycling pattern, though the two even clusters look programmatic on their own.

What can honestly be said? That the session contained both irregular flow consistent with independent participants and two structured episodes consistent with programmatic execution. That a small number of accounts were responsible for a large share of transactions. That the net imbalance was to the buy side. And that the pair ended the window able to absorb exactly as much as it could at the start, because reserves did not change.

What cannot be said is which of those episodes caused the price move, whether the 41 signers were independent, or what any of them intend next. The output is a description and a sizing consequence: whatever the chart implied, the exit cost for a position in this pair is governed by 176 SOL of quote-side depth, and nothing in the window changed that number.

Six things the tape cannot tell you

  • Who is behind an address. Wallets are pseudonymous and clustering heuristics are inference, not identification.
  • Whether separate signers are coordinated. Coordination leaves no on-chain marker distinguishable from independence.
  • Intent. A large sale might be a distribution, a rebalance, a redemption or an operational transfer.
  • What will happen next. The record is entirely historical and contains no forward information of any kind.
  • Off-chain context. Agreements, allocations and obligations are not on the chain and can drive everything you see.
  • Whether liquidity will remain. Provider decisions are made continuously and are visible only after they are taken.

These are not gaps a better tool closes. They are properties of the medium. Any product claiming to identify manipulation with certainty from on-chain data alone is claiming to solve an inference problem that is, in the general case, unsolvable, and the correct response to a confident claim of that kind is scepticism rather than a subscription.

Produced flow, read honestly

A recognisable share of Solana activity is generated on purpose. Teams pay for turnover so that a pair appears on venue and aggregator screens that sort or filter by activity, and so that a chart shows continuous trading instead of gaps. The tooling is openly marketed, and a SOL volume bot is simply the name for the product category that does it.

Read honestly, this flow has the signature described above: many transactions, few underlying decisions, regular spacing, near-symmetric two-sided value, and reserves that do not grow. None of those observations is proof, and the ambiguity is genuine, because a small group of active traders can produce a similar record.

The practical conclusion is narrow and worth stating precisely. If the flow you are looking at was produced, then it can stop when a budget ends and it did not bring depth with it, so the pair should be sized as the thin pair its reserves say it is. That is the entire actionable content. Nothing about the classification tells you which way price will go, and no rule on this site claims otherwise.

The reading rule set

Rule one: read the tape before believing the candle

No conclusion is drawn from a chart pattern on a thin pair until the underlying transactions for that window have been counted. Cost: several minutes per decision, which rules out the fastest situations entirely. Failure case: the window you read is unrepresentative of the one that matters.

Rule two: record counts, not verdicts

The journal stores transaction count, signer count, largest fills and reserves at both ends of the window. Cost: more to write down and no immediate payoff. Failure case: the numbers are recorded and never compared against anything, which makes them clutter.

Rule three: ambiguity reduces size

When the record supports more than one explanation, the position is smaller than it would otherwise be. Cost: you will be small in situations that turn out to be straightforward. Failure case: the rule becomes an excuse for taking a position you should have refused entirely.

Where this method fails

It fails on speed, like every method here. Reading a window takes minutes and describes a period that has closed. For situations measured in seconds this is not a workable technique, and no honest shortcut exists.

It fails on decoding. Explorers label instructions from known programs well and less common programs less well, so a swap can appear as an opaque instruction. Where the label is missing, the amounts moved are still readable, and reading amounts is slower but more reliable than trusting a label you cannot verify.

It fails on multi-venue pairs. A pair trading in three pools produces three transaction lists, and reading one of them in isolation gives a confidently wrong picture of the whole. Either read all of them or record explicitly that your reading covers one venue only.

And it fails when the reader wants an answer. The tape most often supports several explanations, and the honest output is a confidence level plus a smaller position. A trader who reads transactions in order to feel certain has found a more laborious way to reach the conclusion they arrived with. The discipline is to stop at the description, record the counts, and let the ambiguity show up where it belongs, which is in a smaller position rather than in a stronger opinion.

Questions the desk gets asked

How do you read order flow on Solana without paid tools?

Open the pair on a public explorer, read the transaction list for the pool account, and count what matters: distinct signers, individual fill sizes, the spacing between trades, and the balance of buy against sell value. All of it is public, and for a young pair the full history is short enough to read end to end.

What does a candle hide?

A candle records the first, highest, lowest and last price in a period plus a turnover total. It discards how many participants produced those prices, how large individual fills were, the order in which they arrived, whether one address dominated, and whether pooled depth changed underneath. All of that is recoverable from the transactions the candle summarised.

Can you tell a bot from a human on chain?

Not with certainty. You can observe properties that are more consistent with programmatic execution: very regular intervals, repeated identical sizes, tight clustering around block boundaries, and many transactions from few signers. A determined operator can vary all of them. The output of the exercise is a confidence level, never a verdict.

What is a distinct signer count and why does it matter?

It is the number of separate accounts that signed transactions against a pair over a window, as opposed to the number of transactions. It matters because turnover figures are indifferent to whether a hundred people traded once or one account traded a hundred times, and those are very different markets to be positioned in.

Does reading the tape give you an edge?

This desk makes no claim of that kind. What it gives you is a more accurate description of what happened, which reduces the number of decisions taken on a misunderstanding. Whether accuracy converts into anything depends on what you do with it and on conditions no publication can see.

How far back should you read?

For a new pair, from the beginning, because the history is short. For an established pair, read a window long enough to contain the event you are examining and a comparable quiet period before it, so that whatever you find has something to be compared against.

Are explorers reliable for this?

Explorers read the same chain and generally agree on raw facts such as signers, amounts and timestamps. They can differ in how they decode and label instructions, particularly for less common programs, and their aggregated figures can differ for the same reasons any two indexers differ. Prefer raw transaction detail over an explorer summary card where the two are available.

Filed in Situations by The Liquidity Tape Desk. Mechanisms on this page are described from protocol design and public documentation; every number in an example is labelled illustrative and describes no real trade. The standard the desk holds itself to is set out in how rules are written.