Verifiable regime signal · feed live soon

Your bot shouldn't trust our track record.
It should verify it.

Your bot asks about the coin it's about to trade, and we answer hold or cash for that one coin. We never see or impose our own picks. Every daily per-coin signal is published once and cryptographically committed to the public ledger. When the feed is live, your bot audits that history itself and decides whether we're worth listening to. No vendor trust required.

the per-coin oracle · plain JSON over HTTPS
// spec — the feed goes live with the public ledger
// your bot asks about the coin it's about to trade
GET https://unhodl.io/v0/regime/BTC

{
  "coin":        "BTC",
  "as_of":       "2026-06-03",
  "regime":      "CASH",           // risk-off — your policy decides what to do with it
  "state":       "risk_off",       // plain state, not our formula
  "model_version": "1.0.0",
  "ots_proof":   "ots://bafy…3kd9",   // anchored to Bitcoin
  "verifiable":  true
}

// a coin outside our coverage never gets a guessed answer
GET https://unhodl.io/v0/regime/SHIB"regime": "NO_OPINION"   // overlay no-ops

// verify any call yourself: re-hash it, check the anchor, no key
> verify_signal("BTC", "2026-06-03")
   matches the anchor committed in a Bitcoin block
Every price oracle returns a number. Unhodl returns a decision (stay exposed, or get out) with a receipt you can check against Bitcoin. A verifiable regime-signal API for the bot & agent stack.

Bots can't read marketing.
They can read proof.

A human judges a signal vendor on impressions: the founder seems credible, the chart looks good. An automated strategy has none of that. As bots and agents move real capital under drawdown ceilings and kill-switches, "just trust the feed" stops being good enough. The honest options collapse to two: blindly trust an unverifiable source, or check it cryptographically.

01

A record only counts if it can't be edited

A private list of past calls is worthless as evidence: the vendor can rewrite, cherry-pick, or back-date it. Every unhodl call is hashed and anchored to Bitcoin at publication, so we can't have edited it after the fact. The chain says when.

02

It can veto. It can't add exposure.

The signal never opens a trade and never tells your bot what to buy. On HOLD the reference overlay does nothing; on CASH it stops opening and exits. It fails open if the feed is stale. The honest cost: a CASH call can cut a winner short. Whipsaws are real, and we timestamp ours. What it can never do is add exposure you didn't choose.

03

We answer per coin, never our universe

We never impose a basket on you. You bring the coin your strategy already picked, and we return its regime, or NO_OPINION if it's outside our coverage. Our own record basket is published in the ledger so the track record stays auditable. Nothing we answer depends on your portfolio looking like ours.

Plug it into the bot you already run.

Start with the open-source Freqtrade overlay; it's the worked example. Ask for any covered coin's call over plain HTTPS. Verification is a first-class, free operation, not a dashboard you have to trust. The API gives you the state; the policy is yours: advisory, entry-gate, exposure-reduction, or hard-exit. The reference overlay implements the last one.

get_regime(coin)

Ask about the coin your bot is about to trade: HOLD, CASH, or NO_OPINION if it's outside coverage. One cached GET per coin. Free.

verify_signal(coin, date)

Re-derives the hash, checks it against the on-chain anchor, returns the Bitcoin block height. Always free.

unhodl-freqtrade-overlay MIT

~15 lines you graft into your own strategy: HOLD = no-op, CASH = block entries and exit. MIT-licensed; exercised end-to-end in a Freqtrade 2025.6 backtest.

MCP connector coming

A drop-in server so LLM agents can call the oracle and verifier natively, with an optional structured risk rationale a risk-management node can reason over. On the roadmap.

freqtrade · the open-source overlay (excerpt)
# MaxDrawdown stops you AFTER the hit. this steps aside before it.
def custom_exit(self, pair, trade, *a, **k):
    if self._is_cash(pair):
        return "unhodl_risk_off"   # flatten on a regime turn

# exercised in a Freqtrade 2025.6 backtest:
# exit fired on the CASH flip, re-entry blocked until HOLD returned.

Don't trust. Timestamp.

Every call is hashed and anchored to Bitcoin via OpenTimestamps the moment it's published, an append-only record. We cannot retrospectively edit any signal that has already been published and timestamped. When the feed goes live, that ledger is public: point your bot, or your own eyes, at the proof.

// the graveyard

We timestamp the calls we get wrong as loudly as the ones we get right: every false exit, every whipsaw, anchored and undeniable. A vendor that nails its own mistakes to an immutable chain can't edit or back-date a published call. We can't quietly delete a loser we already published. That's the entire point.

Defensive, not delusional.

Backtested with real costs and explicit guards against look-ahead. We don't promise returns. The system is designed to reduce catastrophic drawdowns.

MetricunhodlBTC buy & hold
Worst drawdown−26.7%−76.6%
2022 bear market−8.9%−64.2%

Figures are from our reference portfolio following the signals across all covered coins (equal-weight), not BTC-with-signals. Whether the signal improves your strategy is yours to test. The overlay makes that a ten-minute backtest.

// full-window backtest with transaction costs. pre-live estimate. the number that matters is the live ledger, so verify it yourself.

Live signal ledger: Every signal published after launch will be timestamped with OpenTimestamps and independently verifiable against Bitcoin.

Run the overlay against the ledger. Reproduce the record.

unhodl-freqtrade-overlay is a small, MIT-licensed Freqtrade integration that flattens-to-cash and re-enters on the per-coin call. It's not the product; it's the worked example that makes the whole chain (signal → proof → execution) inspectable end to end. It already runs end-to-end in a Freqtrade 2025.6 backtest.

  • Give away the connector, not a bot. The overlay, the oracle, and the verifier are open and free. The signal generation and the backtest rigor stay closed.
  • The schema becomes the standard. Whoever writes the reference integration writes the de-facto interface for "defensive regime signal."
  • The unfakeable demo. Once the ledger is public, anyone can run the overlay against it and reproduce the record, so anyone can judge for themselves whether the signals work.

Give your bot a verifiable circuit breaker.

The overlay is open-source today. Join the waitlist and we'll email you once, when the live feed and public ledger go up.