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. Each call is timestamped to Bitcoin the moment it's made, so the record can't be faked. When the feed is live, your bot audits that history itself and decides whether we're worth listening to. No vendor trust required.
// 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: block entries, flatten "state": "risk_off", // plain state, not our formula "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
A human judges a signal vendor on vibes: the founder seems smart, 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.
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.
The signal never tells your bot what to buy and never opens a trade. On HOLD it does nothing; on CASH it blocks entries and flattens. It fails open if the feed is stale, so it can't nuke your strategy on a network blip. You keep all of your edge.
You bring the coin your strategy already picked, and we return its regime, or NO_OPINION if it's outside our coverage. We never publish or impose a basket of our own. Your selection stays yours; ours stays ours.
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.
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.
Re-derives the hash, checks it against the on-chain anchor, returns the Bitcoin block height. Always free.
~15 lines you graft into your own strategy: HOLD = no-op, CASH = block entries and exit. MIT-licensed and verified in a Freqtrade 2025.6 backtest.
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.
# 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 # verified in a Freqtrade 2025.6 backtest: # exit fired on the CASH flip, re-entry blocked until HOLD returned.
Every call is hashed and anchored to Bitcoin via OpenTimestamps the moment it's published, an append-only record we can't edit or quietly prune. When the feed goes live, that ledger is public: point your bot, or your own eyes, at the proof.
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 has made fabrication impossible by construction. We can't hide our losers. That's the entire point.
Backtested with universe rotation, point-in-time selection, real costs, and explicit guards against look-ahead and overfitting. We don't promise returns. We cap the catastrophe.
| Metric | unhodl | BTC buy & hold |
|---|---|---|
| Worst drawdown | −26.7% | −76.6% |
| 2022 bear market | −8.9% | −64.2% |
| Sharpe (rotation, out-of-sample) | 1.29 | ~ 0.9 |
| Verified on-chain | Yes | n/a |
// walk-forward, rotation-aware backtest with transaction costs. pre-live estimate. the number that matters is the live ledger, so verify it yourself.
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 passed a Freqtrade 2025.6 backtest.
The oracle and verification are free, and stay free, so you can decide we're worth it. If builders tell us they want more, that's what we'll charge for: completeness and delivery, never the right to check our honesty.
The overlay is open-source today. Join the waitlist and we'll email you once, when the live feed and public ledger go up.