Research
Signal methodology, model architecture, performance data, and technical roadmap for the BV-7X oracle.
4-Signal Parsimonious Model
BV-7X produces directional BTC signals using four independent indicators. Each signal votes independently. The final action is determined by a decision matrix — not a weighted average. The model is designed to be transparent, auditable, and minimal.
| Signal | Input | Bullish | Bearish |
|---|---|---|---|
| Trend | Price / MA200 ratio | > 1.05 | < 0.95 |
| Momentum | 7-day rate of change | > +5% | < -5% or DD > 15% |
| Flow | ETF 7d net inflows | > +$100M | < -$100M |
| Value | MVRV Z-Score | < 0 (cheap) | > 3 (expensive) |
Signal to Action
The four signals are combined through a rule-based decision matrix. No machine learning, no black box. Every decision can be traced back to the four inputs.
| Action | Condition |
|---|---|
| BUY | Trend + Flow both BULLISH, Momentum not BEARISH, Value not EXPENSIVE |
| WEAK BUY | Trend + Momentum both BULLISH, Value not EXPENSIVE |
| SELL | Trend + Flow both BEARISH, or Momentum + (Trend or Flow) both BEARISH |
| WEAK SELL | Momentum BEARISH + Trend not BULLISH |
| HOLD | Conflicting signals — no clear directional consensus |
Capitulation override: When Fear & Greed Index falls below 20 and RSI drops under 35, the model forces HOLD regardless of other signals. Selling into capitulation is historically unprofitable.
Prediction market filter (v4.4): After the 4-signal decision, Kalshi KXBTC implied probabilities act as a post-decision blocker. A BUY is blocked if the market prices <45% upside probability. A SELL is blocked if the market prices >55% upside probability.
Model Performance
All predictions are published in real-time with timestamps. Wins and losses are permanently on the record.
Self-testing framework: The model runs daily backtests at 03:00 UTC with grid search optimization. A confidence gating system automatically blocks signals when accuracy drops below 40%, downgrades below 50%, and enters cooldown after 3 consecutive losses.
Signal schedule: One signal per day at 08:00 UTC, when all daily inputs are freshest. Outcomes are evaluated on a 7-day horizon.
Data Sources
Real-time market data feeds from multiple sources with redundancy and fallback chains.
| Data | Source | Refresh |
|---|---|---|
| BTC Price | Kraken, CoinGecko, CryptoCompare | 15 seconds |
| Order Book | 6 exchanges (Kraken, Coinbase, Binance, Bitfinex, Bitstamp, Gemini) | 30 seconds |
| ETF Flows | Farside Investors | Hourly |
| Fear & Greed | Alternative.me | 30 minutes |
| MVRV Z-Score | CryptoQuant | Daily |
| Liquidations | CryptoQuant | 5 minutes |
| Prediction Markets | Kalshi (KXBTC) | 5 minutes |
| Macro | Fed, ISM, Treasury yields | 5 minutes |
| Ecosystem | X, Telegram, Moltbook, 4claw | Continuous |
Public Endpoints
All signal data is freely available via public API. No authentication required.
Model History
Active Research
Staking Contract: Multi-Reward Architecture
Research into audited, battle-tested staking contracts for $BV7X staking with WETH rewards — designed to support additional reward tokens in the future without migration.
Requirements: Users stake $BV7X and earn WETH automatically from protocol fee revenue. Must support adding a second reward token later without redeploying or requiring users to migrate. Must be audited and battle-tested.
Leading Candidate: Curve Multi-Rewards
A fork of the Synthetix StakingRewards contract (the industry standard since 2019) extended to support multiple reward tokens. Same core math, same reward drip logic, with a mapping of reward tokens instead of a single one.
| Feature | Synthetix StakingRewards | Curve Multi-Rewards |
|---|---|---|
| Reward tokens | 1 (fixed at deploy) | Unlimited (add anytime) |
| Core math | Original | Identical (forked) |
| Audit depth | Deep (iosiro, 0xMacro, multiple firms) | Inherits Synthetix + delta review needed |
| Battle-tested | 6+ years, billions in TVL | 4+ years, used by Curve |
| Future-proof | No — redeploy + migrate | Yes — addReward() |
| Solidity | 0.5.16 (needs update) | Needs 0.8.x port |
| License | MIT | MIT |
How It Works
Deploy: stakingToken = $BV7X. No reward tokens set at deploy — added dynamically.
Add WETH rewards: Owner calls addReward(WETH, distributor, 7 days). Distributor loads WETH into contract and calls notifyRewardAmount() to start a 7-day drip.
Stakers earn: Rewards accrue proportionally to share of staked $BV7X. Users call getReward() anytime to claim all active reward tokens. exit() = unstake + claim in one tx.
Add future token: Owner calls addReward(NEW_TOKEN, distributor, duration). Existing stakers immediately begin accruing the new reward. No migration, no restaking, no user action required.
Key Functions
| Function | Caller | Description |
|---|---|---|
stake(amount) | User | Deposit $BV7X into the contract |
withdraw(amount) | User | Remove staked $BV7X |
getReward() | User | Claim all accrued rewards (WETH + any future tokens) |
exit() | User | Withdraw all + claim all in one transaction |
addReward(token, distributor, duration) | Owner | Register a new reward token |
notifyRewardAmount(token, amount) | Distributor | Load rewards and start drip period |
setRewardsDuration(token, duration) | Owner | Adjust drip period for a reward token |
recoverERC20(token, amount) | Owner | Recover accidentally sent tokens (cannot recover staking token) |
Known Issues & Mitigations
Reward dust bug (inherited from Synthetix): If notifyRewardAmount() is called when no tokens are staked, a portion of rewards gets stuck in the contract. Mitigation: Ensure at least 1 wei is staked before notifying, or use an updated fork that handles this edge case.
recoverERC20 interaction: If recoverERC20 drains a reward token balance mid-period, claims will fail. Mitigation: Never recover active reward tokens. Add a guard that checks against active reward balances.
No standalone audit: The Curve Multi-Rewards repo has no dedicated audit report. The delta from Synthetix is ~50 lines. Mitigation: Commission a focused audit on the multi-token diff only — significantly cheaper than a full audit since 90% is proven Synthetix code.
Source References
Last updated: February 13, 2026. This section is continuously updated as research progresses.