A simple on-chain trend-following strategy. Hold BTC when price is above its 45-day moving average. Hold USDC when below. Binary, transparent, daily.
The vault maintains a 45-entry daily price ring buffer on-chain. Each day, the keeper pushes the latest BTC/USD price (via Pyth oracle) into the buffer and the contract computes the simple moving average.
If BTC price > SMA(45d), the target weight is 100% BTC (WBTC). If BTC price ≤ SMA(45d), the target weight is 0% BTC (100% USDC). No gradients, no complex math — just above or below.
The keeper rebalances WBTC/USDC holdings daily to match the signal. Swaps execute via Uniswap V3 multi-hop (USDC→WETH→WBTC) with 0.05%+0.05% = 0.10% total fee and 1% max slippage.
Check the current signal. If ABOVE SMA, you need WBTC. If BELOW SMA, you need USDC (native, not USDC.e). Send to your wallet on Arbitrum One.
Approve the vault to spend your token (WBTC or USDC depending on signal), then deposit. Shares are minted instantly. No swap on deposit.
USDC: 6 decimals (100 USDC = 100000000). WBTC: 8 decimals (1 WBTC = 100000000). Entry fee: 0.10%.
vpBTC shares are in your wallet immediately. The vault automatically rebalances BTC/USDC daily based on the MA(45d) trend signal.
Withdraw your pro-rata share of USDC + WBTC immediately. No swap, no slippage, no fee. Sell the WBTC yourself on any DEX.
SHARES is in 6 decimals. 1 share = 1000000.
The MA(45d) signal may lag during sharp reversals. In choppy, sideways markets the strategy can whipsaw — flipping between BTC and USDC repeatedly, incurring swap costs without capturing trend. Past backtest performance does not guarantee future results. You can lose money.
Each signal flip costs ~0.10% in multi-hop swap fees (USDC→WETH→WBTC, 0.05%+0.05%). With ~13 flips/year, annual swap drag is ~1.3%. In choppy markets, flips may increase. 10% drift gate and 1% max slippage protect against excessive trading.
Mitigated by in-kind model — all deposits and withdrawals are in-kind (pro-rata USDC + WBTC). No oracle-priced USDC payout that could create insolvency during a depeg. The vault never needs to sell WBTC at a depegged price.
If the keeper stops, the vault cannot rebalance or update the SMA buffer. Users can always exit via redeemInKind regardless of keeper status. Withdrawals always work, even when the vault is paused.
| DeltaVault | 0x3034E68Ecc4e5B133a148d7D8c9F5c2Cf2a2EF12 |
| Network | Arbitrum One (Chain ID: 42161) |
| Token | vpBTC — Value-Protected Bitcoin (ERC-20) |
| Holdings | USDC (native) + WBTC |
| Strategy | Binary MA(45d) — 100% BTC above SMA, 0% below |
| SMA Window | 45-day on-chain ring buffer (no oracle contract) |
| Price Oracle | Pyth BTC/USD (MAX_PRICE_AGE = 120s) |
| Rebalance | Daily (1-day minimum interval, keeper-triggered) |
| Swap Route | USDC → WETH → WBTC (0.05%+0.05% = 0.10%) |
| Drift Gate | 10% |
| Streaming Fee | 0.5% / year |
| Entry Fee | 0.10%. No exit fee. |
| Slippage Guard | 1% max per rebalance swap |
| Deposits | In-kind only (WBTC when weight=100%, USDC when weight=0%) |
| Withdrawals | redeemInKind — pro-rata USDC + WBTC, no fee, always available |