Crypto Investor

On-Chain Data Says Distribution Phase β€” My Agent Sold Before the Drop

€47K capital preserved before 35% dropCrypto & DeFi4 min read

Key Takeaway

My AI agent classified the crypto market as entering a distribution phase using five on-chain metrics β€” and Hari recommended cutting exposure from 25% to 10% before a 35% drawdown.

The Problem

Crypto cycles are predictable. Not the exact timing β€” but the phases. Accumulation. Markup. Distribution. Markdown. Every cycle since 2013 follows the same pattern.

The problem isn't knowing this. Everyone knows this. The problem is acting on it.

When your portfolio is up 4x and MVRV says "distribution," your brain says "but it could go higher." You freeze. You hold. You give back 40% of your gains in three weeks.

I needed something that doesn't have a brain. Something that reads on-chain data without emotion and tells me what phase we're in β€” not what phase I want to be in.

The Solution

Hari, my investment advisor agent, runs a Crypto Macro Regime Classifier. It monitors five on-chain metrics in real-time and classifies the current market phase into one of four regimes: accumulation, markup, distribution, or markdown.

No predictions. No price targets. Just: "Here's what phase the data says we're in, and here's what historically happens next."

Built on Mr.Chief, integrated with Glassnode and CryptoQuant APIs.

The Process

The classifier monitors five core metrics:

yamlShow code
# crypto-regime-classifier.yaml
name: crypto_macro_regime
schedule: "0 */6 * * *"  # Every 6 hours
metrics:
  - source: glassnode
    metric: mvrv_z_score
    distribution_threshold: "> 3.0"
  - source: glassnode
    metric: sopr
    distribution_threshold: "> 1.05 sustained 7d"
  - source: cryptoquant
    metric: exchange_inflow_mean_ma7
    distribution_threshold: "> 2 std_dev above 90d mean"
  - source: cryptoquant
    metric: whale_ratio
    distribution_threshold: "> 0.5"
  - source: glassnode
    metric: nvt_signal
    distribution_threshold: "> 150"

classification:
  distribution:
    min_metrics_triggered: 3
    confidence_required: 0.7
  action: notify_hari

Here's what each metric tells us:

  • MVRV Z-Score > 3.0 β€” Market value is 3+ standard deviations above realized value. Historically, this has preceded every major top.
  • SOPR > 1.05 sustained β€” Spent outputs are being sold at 5%+ profit for 7+ days straight. Profit-taking is systematic, not incidental.
  • Exchange Inflows surging β€” Coins moving to exchanges. You don't move coins to exchanges to hold them.
  • Whale Ratio > 0.5 β€” Large transactions dominate exchange deposits. Smart money is distributing to retail.
  • NVT Signal > 150 β€” Network value is wildly disconnected from transaction utility.

When 3 of 5 trigger, the classifier flags "distribution" with a confidence score. Hari then contextualizes: compares the current signature to 2017 Q4 and 2021 Q4 distribution phases.

pythonShow code
# Simplified classification logic
def classify_regime(metrics: dict) -> RegimeClassification:
    signals = {
        'mvrv': metrics['mvrv_z'] > 3.0,
        'sopr': metrics['sopr_7d_avg'] > 1.05,
        'exchange_inflow': metrics['inflow_zscore_90d'] > 2.0,
        'whale_ratio': metrics['whale_ratio'] > 0.5,
        'nvt': metrics['nvt_signal'] > 150,
    }

    triggered = sum(signals.values())
    confidence = triggered / len(signals)

    if triggered >= 3:
        # Pattern match against historical distribution phases
        similarity_2017 = cosine_similarity(
            current_vector, distribution_2017_vector
        )
        similarity_2021 = cosine_similarity(
            current_vector, distribution_2021_vector
        )

        return RegimeClassification(
            phase="distribution",
            confidence=confidence,
            historical_match=max(similarity_2017, similarity_2021),
            triggered_signals=signals
        )

The alert hit my Telegram at 3:47 AM:

πŸ”΄ REGIME SHIFT: Distribution Phase Detected Confidence: 0.80 (4/5 metrics triggered) Pattern similarity: 87% match to Nov 2021 distribution MVRV: 3.4 | SOPR: 1.08 | Whale Ratio: 0.54 | NVT: 167 Only exchange inflows below threshold.

Hari recommends: Reduce crypto allocation from 25% β†’ 10%. Historically, distribution phases precede 30-40% drawdowns within 4-8 weeks.

The Results

MetricBeforeAfterDelta
Crypto allocation25%10%-60%
BTC price at signal$94,200β€”β€”
BTC price 6 weeks laterβ€”$61,400-34.8%
Portfolio drawdown (actual)β€”-5.2%β€”
Portfolio drawdown (if held)β€”-14.7%β€”
Capital preservedβ€”~€47Kβ€”
Time to generate signalβ€”0 min (automated)β€”

The 2021 comparison was the kicker. In November 2021, the same 4 metrics triggered in the same order. BTC dropped 37% in 8 weeks. This time: 35% in 6 weeks. The pattern rhymed.

Try It Yourself

  1. Sign up for Mr.Chief and configure the alpha-vantage + crypto data source skills
  2. Set up API keys for Glassnode or CryptoQuant (free tiers cover basic metrics)
  3. Define your distribution thresholds based on historical analysis
  4. Let the agent run β€” it checks every 6 hours and only alerts on regime shifts
  5. Pair with your investment advisor agent for contextual recommendations

The classifier doesn't tell you to sell. It tells you what phase the data says you're in. What you do with that is your call. But at least the data gets heard before your emotions do.


On-chain data doesn't lie. Your conviction does.

on-chainMVRVSOPRdistribution-phasecrypto-cycles

Want results like these?

Start free with your own AI team. No credit card required.

On-Chain Data Says Distribution Phase β€” My Agent Sold Before the Drop β€” Mr.Chief