Upstream archive
04 / 04EcosystemJune 12, 2026 · 4 min read

Building on BNB Chain: AI Meets On-Chain Risk

Note: Rewritten in September 2026 during the BNB Chain migration.

DRIFT started as two ideas that almost merged completely. DRIP was an on-chain yield optimizer. DRIFT was the AI trading layer that would sit on top. We merged them, scoped the MVP to what we could verify in a weekend, and shipped: the Python engine, Bybit CeFi execution, and MacroGuard — an on-chain risk guard on BNB Chain.

Why BNB Chain

BNB Smart Chain is EVM-compatible, cheap and fast enough that recording every bot decision on-chain is practical, and it has deep stablecoin liquidity (USDT, USDC, FDUSD), PancakeSwap as its main DEX and Chainlink price feeds. That makes it a natural home for a transparent, non-custodial risk layer that sits under an off-chain trading engine.

What we built (and shelved)

The DRIP contracts exist, are tested (17 forge tests), and are not yet deployed. Three components:

  • AgentController.sol — enforces rebalance bounds on-chain: max allocation per asset, turnover limit, correlation check, drawdown stop. Seven invariants (I1 through I7).
  • Venue adapters — lending-market supply of stablecoins for yield on BNB Chain.
  • DripVault.sol — ERC-4626 NAV accounting, non-custodial deposits.

None of that is in DRIFT today beyond MacroGuard. The MVP is CeFi-only, in-memory, no persistence. But the architecture is compatible: the signal layer DRIFT runs on Bybit can be replicated as a signed intent that the on-chain AgentController validates before executing a venue-adapter rebalance.

What is next

The roadmap: a strategy that routes idle capital into stablecoin yield while the bot is flat, managed by an on-chain risk guard that cannot be overridden by a dashboard toggle. The alpha is generated off-chain (Python, Bybit signals). The safety floor is on-chain (BNB Chain, AgentController). Neither can be gamed without changing both.

A trading system whose risk controls live on-chain is categorically harder to manipulate than one that lives in a Python process. That is the thesis.