Most of the time, when you want the price of something, you look it up. Occasionally the thing has no published price — the exchange page is blank, the token is too small to be listed, the venue is a Telegram group, or the front-end is still saying “awaiting price discovery” two days after trading started. When that happens on Bitcoin, the price is usually still there. It is sitting in the transactions, and it can be recovered exactly.
This guide is the method. Six checks, in order, each one a thing you can do in a block explorer without special tools. At the end of each we score the live example this desk worked through overnight: the seven settlements of an unlisted token called LEAF, whose own marketplace page still displays no price at all.
The general shape to hold in mind: a settlement transaction is one transaction that moves two things in opposite directions — satoshis one way, an asset the other. The asset leg is usually an instruction (an OP_RETURN, an inscription, a Runestone) that some indexer interprets. The satoshi leg is plain Bitcoin and cannot lie to you. Read the satoshi leg.
Check 1 — Name every input, and look for the one that never changes
Open the transaction and list every input with its address and value. Do not skim. You are looking for structure: a repeating count, a repeating pattern of tiny values, an address that appears in transaction after transaction.
A settlement built by software almost always has a fixed input template, because the software builds it the same way every time. Two-sided swaps typically have at least one input from each party. A third recurring input that puts in a small amount and gets the same amount straight back is not a trader — it is an anchor, an ordinal-safe marker, or a signature from the venue itself. It is the single best evidence that you are looking at a service rather than two people who happened to transact.
Scored: all seven settlements have exactly four inputs. Two of 670 satoshis from the counterparty, one of 1,000 satoshis from bc1q54cxdsctws…wu0zt2, and the entire balance of the desk address. That 1,000-satoshi input is returned as a 1,000-satoshi output in every single transaction. It never gains and never loses. One address, seven transactions, two days. PASS.
Check 2 — Compute the net, never the gross
This is where most readings go wrong. The counterparty’s output looks like the payment. It is not. If the counterparty contributed inputs to the same transaction, part of that output is their own money coming back as change.
The rule: net = the total the counterparty received minus the total the counterparty contributed. Apply it before you do anything else, because every number downstream depends on it.
Scored: the counterparty contributes 1,340 satoshis in every settlement. In the second trade the visible output is 92,567; the net is 91,227. Price the gross and the implied rate is 0.08726 satoshis per token, a number with no pattern. Price the net and it comes to 0.0860 at four decimals — and check 4 then shows that 0.0860 reproduces the payment to the satoshi. The whole finding lives or dies on this subtraction.PASS.
Check 3 — Divide, and ask whether the answer is clean
Take the net satoshis and divide by the asset quantity named in the instruction. Then look at the result honestly. A price set by a human or a matching engine tends to be a round number in the venue’s own units: 0.0880, 0.12, 2.0. A number like 0.0872637 is either a different denominator, a fee you have not found yet, or no price at all.
If the answer is not clean, do not force it. Go back to check 2 and look for an output you have miscounted. If it is still not clean across several transactions, you may simply be looking at consolidations rather than trades, and the correct conclusion is that there is no price here.
Scored: 0.0860, 0.0880, 0.0900, 0.0970, 0.1200, 0.1480 on Monday night and 2.0000 on Sunday. Seven divisions, seven clean four-decimal numbers — strictly, seven quotients that round to four decimals, which check 4 then converts into an exact relation. PASS.
Check 4 — Propose a rounding rule and demand it hold every time
This is the check that separates a real finding from a coincidence, and it is the one most people skip.
A clean-looking price multiplied by an odd quantity usually produces a fraction of a satoshi. Bitcoin cannot pay fractions. So the venue must round, and it must round the same way every time. Work out which direction: up (ceiling), down (floor) or nearest. Then test it on every transaction you have, especially the ones where the product is already a whole number and the rule is not being exercised.
A rule that holds on two trades is nothing. A rule that holds on seven, four of which produced a genuine fraction, is software.
Scored: net = ceiling(quantity × price), seven of seven. 1,060,779 × 0.0860 = 91,226.994, paid 91,227. 8,400,950 × 0.0900 = 756,085.5, paid 756,086. 2,754,610 × 0.0970 = 267,197.17, paid 267,198. 1,326,126 × 0.1480 = 196,266.648, paid 196,267. Four fractional products, four ceilings, no exceptions. PASS.
Check 5 — Find the output that is a constant percentage
Venues charge. If there is an output going to an address that is neither party, divide it by the net and see whether you get the same number every time. Fees at a fixed rate are the clearest possible signature of an intermediary.
Two refinements. First, apply the rounding test here too — 3% of an odd number is also usually fractional. Second, check whether the fee address is constant. A venue that rotates its fee address across trades is telling you something about how it is operated, and it is a detail almost nobody checks.
Scored: the fourth output is 3.00% of the net, ceiling-rounded, in all seven. 91,227 × 0.03 = 2,736.81, paid 2,737. 756,086 × 0.03 = 22,682.58, paid 22,683. Never 2.99%, never 3.01%. But the address rotated: one for Sunday’s trade, a second for Monday’s first, a third for the remaining five. PASS on the rate; the rotation is a finding in itself.
Check 6 — Reconcile the change chain to the current balance
Settlements from a single desk address form a chain: each transaction spends the previous change output and creates a new one. Follow it from the first settlement to the last, then add every other unspent output the address received, and check the total against the balance the explorer reports right now.
If it reconciles to the satoshi, you have found every transaction and your sample is complete. If it does not, you are missing something — and a missing transaction is exactly the kind of thing that turns a clean story into a wrong one. This is the check that tells you whether you are allowed to publish.
Scored: the last change output was 57,465,603. Add the seven 1,000-satoshi anchor returns and the 500,000-satoshi output received in the second sweep cluster: 57,465,603 + 7,000 + 500,000 = 57,972,603, which is the balance to the satoshi. PASS.
The scorecard
| Check | What you are looking for | Score on the LEAF desk, 7 settlements |
|---|---|---|
| 1. Name every input | A repeating input structure | PASS — 4 inputs every time; one co-signer constant across all 7 |
| 2. Net, not gross | Counterparty’s own inputs subtracted | PASS — 1,340 sats of self-funding in all 7 |
| 3. Divide for a price | A clean number, not noise | PASS — 4 decimal places, 7 of 7 |
| 4. Test a rounding rule | Holds on every trade or not at all | PASS — ceiling, 7 of 7, 4 of them fractional |
| 5. Find the constant percentage | A fee output at a fixed rate | PASS — 3.00% ceiling-rounded, 7 of 7 |
| 6. Reconcile to the balance | Change chain closes to the satoshi | PASS — 57,465,603 + 7,000 + 500,000 = 57,972,603 |
The limits — what six passes still do not buy you
This is the part of the guide that matters most, because a clean scorecard is seductive.
- You have not established which way the asset went. The satoshi leg is arithmetic; the asset leg depends on an indexer’s crediting rules, which are off-chain software you have not read. You can say “this transaction instructs a transfer of N tokens”. You cannot say who ended up holding them.
- You have not established that the trades were arm’s length. Seven counterparties and one desk is equally consistent with genuine demand and with one operator transacting with themselves to manufacture a tape. Nothing on-chain distinguishes those.
- You have not found a market price. You have found the prices at which a specific number of specific transactions settled on one venue. A price series of six that moves 72% in under three hours is a description of thinness, not a valuation.
- You have not found wrongdoing. A 3% commission is a commission. Rotating fee addresses is a practice. Neither is evidence of anything except itself.
- Watch for name collisions. Tickers are not unique. Before you write a single sentence, check whether an asset with the same three or four letters trades somewhere reputable — in the worked example, a completely unrelated asset traded as “LEAF” on CoinGecko at $0.1755 when this desk checked on 14 September 2026, and conflating the two would have been the worst error available.
A note on why the front-end is worth checking last
Do the chain work first, then look at the website. If you look at the website first it anchors you, and a site that says “no price” will stop you looking for one.
In the worked example the order mattered. The chain had seven settlements and a three-per-cent commission; the site, fetched afterwards, displayed “Market data is unavailable” and “Awaiting price discovery”. The gap between the two is the story. Had the page been checked first, the natural conclusion would have been that there was nothing to find.
Companion guides: #48, how to read a token-sale treasury, which covers the sale that funded this desk address, and #47, on telling a payment from a message from a protocol marker, which is where the OP_RETURN reading in check 3 comes from. The worked example in full is here, and the sweep that created the desk address is here. Every guide in the series is indexed in the Reading Room.
Method: prices, funding, open interest, basis, mining and on-chain figures in this article are pulled directly by Bitcoin Mastery at the timestamp stated — Bitstamp BTC/USD daily candles for closes, Binance BTCUSDT spot and USDT-margined perpetual for intraday, open interest, funding and account ratios, Binance COIN-M quarterly contracts for basis, mempool.space for difficulty, hashrate, address balances and individual Bitcoin transactions, blockstream.info’s Liquid API for sidechain block heights, hashes, timestamps and transaction counts, alternative.me for the Fear & Greed series and Farside Investors’ table for ETF flows. Transaction counts, fee totals, byte totals and OP_RETURN payloads are recomputed from the full confirmed transaction list of the address concerned, not read off a summary. Where a third-party figure is cited we name the source and its date; where two sources disagree we print both. Every streak or extreme figure is published with the first date of its series in the same sentence. Where a figure published by this desk on an earlier date is superseded by a recount, the correction is printed in the article that supersedes it.
Disclaimer: This article is for informational purposes only and does not constitute investment advice. Cryptocurrencies are volatile and you can lose money. Nothing here is a recommendation to buy or sell any security, digital asset, token or exchange-traded fund, including MSTR, STRC, L-BTC, ORDI or the LEAF token where discussed above. Token sales and unregulated token marketplaces of the kind described here are unaudited, frequently anonymous and have no obligation to deliver anything in return for a payment; treat any coin sent to one as capable of going to zero, and treat a price observed in a handful of transactions on a single desk as capable of being unrepeatable. Do your own research and consult a licensed financial advisor before making investment decisions.