Back to Blog
Trading Education

On-Chain Analytics for Traders: NUPL, SOPR, Exchange Flows, Active Addresses

QFQuantForge Team·April 3, 2026·9 min read

On-chain analytics measure what is actually happening on the blockchain: who is moving coins, whether they are in profit or loss, and where the coins are going. This is fundamentally different from price-based technical analysis, which can only observe the output of market activity. On-chain data reveals the inputs: the behavior of holders, the flow of capital, and the structural positioning of the market. For Bitcoin specifically, the transparency of the UTXO model makes it possible to track every coin and compute metrics that have no equivalent in traditional markets.

NUPL: Net Unrealized Profit/Loss

NUPL measures the aggregate unrealized profit or loss of all Bitcoin holders as a ratio of market capitalization. It is calculated by comparing the current price of every unspent transaction output (UTXO) to the price when that UTXO was created. If the current price is higher, the holder has unrealized profit. If lower, unrealized loss. NUPL aggregates this across all UTXOs and expresses it as a proportion of total market cap.

The metric maps naturally into five behavioral zones. Below 0 is capitulation: the average holder is underwater, panic selling is occurring, and historically this marks cycle bottoms. Between 0 and 0.25 is the hope phase, where early recovery begins and holders start moving back to breakeven. From 0.25 to 0.5 is optimism, with confidence building and new capital entering. Between 0.5 and 0.75 is belief, the sustained rally phase where the majority of holders are in significant profit. Above 0.75 is euphoria, where unrealized gains are extreme and the probability of a major correction rises sharply.

NUPL has correctly identified every major Bitcoin cycle top and bottom since 2011. The 2017 peak saw NUPL reach 0.74. The 2021 double top pushed it above 0.70 both times. The 2022 bottom drove NUPL below 0 during the FTX collapse. These are not hindsight observations. The zones were defined before the events occurred, and the indicator performed as expected at each turning point.

Our nupl_cycle_filter strategy uses NUPL zones directly. When NUPL drops to 0 or below (capitulation), the strategy enters long positions. When NUPL exceeds 0.75 (euphoria), it exits to cash. Validation across five regime periods from 2021 to 2026 produced 7 ROBUST symbols including BTC itself, making this one of our best-performing on-chain strategies.

STH-SOPR: Short-Term Holder Spent Output Profit Ratio

SOPR measures whether coins being moved on-chain are being sold at a profit or loss. It is calculated for each transaction as the ratio of the price at which the coin is spent to the price at which it was received. A SOPR above 1.0 means the average transaction is profitable. Below 1.0 means the average transaction is at a loss.

The short-term holder variant (STH-SOPR) filters this metric to only include coins that have been held for less than 155 days. This focuses the signal on the behavior of recent buyers, who are the most likely to panic sell during corrections and FOMO buy during rallies. Short-term holders are the emotional participants in the market, and their behavior at extremes is a reliable contrary indicator.

When STH-SOPR drops well below 1.0, short-term holders are realizing significant losses. They are selling coins they bought recently at lower prices. Historically, sustained periods of STH-SOPR below 1.0 mark accumulation opportunities because the weak hands are being shaken out. When STH-SOPR rises well above 1.0, short-term holders are taking profits aggressively, which often precedes pullbacks as selling pressure increases.

We tested STH-SOPR as a confirmation signal for our NUPL strategy. The hypothesis was that combining NUPL zones with SOPR confirmation would improve timing. In practice, SOPR lagged NUPL at turning points, causing later entries and worse fill prices. Our production configuration uses NUPL alone without SOPR confirmation, which produced cleaner signals across all validation periods.

Exchange Flows: The Accumulation Signal

Exchange flow analysis tracks the net movement of BTC and ETH to and from cryptocurrency exchanges. When coins move from private wallets to exchange wallets, the assumption is that the holder intends to sell. When coins move from exchanges to private wallets, the holder is withdrawing for long-term storage, reducing available supply on exchanges.

Net inflows to exchanges represent selling pressure. If 10,000 BTC moves to exchange wallets in a single day, that is 10,000 BTC of potential selling supply that was not there yesterday. Net outflows represent accumulation. When coins leave exchanges, they are removed from the liquid supply, tightening the market and supporting price through reduced available inventory.

The metric is most powerful at extremes. Large single-day inflows often precede significant selling events. The Terra/Luna collapse in May 2022 was preceded by massive BTC inflows to exchanges as the Luna Foundation Guard moved its reserves to defend the UST peg. The subsequent selling pressure drove BTC from $40,000 to $26,000 in days. Conversely, sustained outflows during quiet periods indicate accumulation by long-term holders, which has historically been bullish over multi-month horizons.

QuantForge sources exchange balance data from Coinglass, which tracks balances across major exchanges for BTC and ETH. The data is stored with the base symbol format (using just the ticker symbol rather than the full trading pair), and our data adapter handles the symbol mapping automatically. Exchange flow data goes back years, providing sufficient depth for multi-regime validation.

Active Addresses: The Network Pulse

Active addresses count the number of unique addresses that participated in at least one transaction during a given period. It is a proxy for network activity, user engagement, and adoption. More active addresses generally mean more people using the network, which is fundamentally bullish for the asset.

The metric is most useful as a divergence indicator. When price is rising but active addresses are declining, the rally is happening on thin participation. Fewer people are transacting, which suggests the price move is driven by a small number of large participants rather than broad market demand. These divergences often precede corrections.

Conversely, when price is flat or declining but active addresses are rising, underlying demand is growing despite the price action. This bullish divergence has historically preceded rallies as the growing user base eventually translates into buying pressure.

Our on-chain composite strategy incorporates active address data as one of five voting signals alongside exchange flows, stablecoin supply, NUPL, and SOPR. The composite approach gives each signal equal weight, requiring a majority of signals to agree before generating a trade. Validation produced 4 ROBUST symbols (AVAX, LTC, NEAR, SOL) with the composite approach.

The Data Advantage

Unlike derivatives data, which is limited to approximately six months of history through most API providers, on-chain data extends back to the genesis of each blockchain. Bitcoin NUPL data is available from 2009. Exchange balance tracking goes back to the early 2010s. Active address data covers the entire blockchain history. This depth is what makes on-chain analytics uniquely valuable for validation.

Our five-regime validation framework tests across market conditions from 2021 through 2026, covering bull markets, crashes, bear markets, recoveries, and consolidation. On-chain strategies can be tested across all five periods with genuine out-of-sample data, unlike derivatives strategies that are limited to three shorter sub-periods within a six-month window. This testing depth gives us higher confidence in the robustness of on-chain signals compared to any other alternative data category.

QuantForge stores all on-chain metrics in dedicated Coinglass tables that are synced every four hours. The backtest engine loads them alongside price candles with strict no-lookahead guarantees. Each strategy accesses the data through simple key lookups in the candle dictionary, making integration straightforward. The pipeline handles all the complexity of data fetching, storage, deduplication, and time-alignment so that strategy code can focus purely on signal logic.