Stream USDC to a Ledger-signed DCA agent that buys ETH/BTC, bounded to hours of flow, not TVL.


StreamBot was built for the purpose of making automated DeFi strategies safer to use. For on-chain strategies — DCA, yield, hedging — to be adopted widely, users shouldn't have to lock all their capital upfront and stay 100% exposed from day one. StreamBot was built with the same goal: it replaces deposit-and-pray with capital-on-demand. You stream your capital to an autonomous bot while you use it, so your exposure is measured in hours of flow, not your full balance. Not only does it bound risk, but it also lets developers build any streaming vault — yield routing, rebalancing, hedging — on top of the same StreamVaults primitive.
StreamBot is divided into three different parts:
Stream => Lets the user fund the strategy by opening a continuous Superfluid USDC stream toward a per-user smart account (deployed as an EIP-1167 minimal-proxy clone). The protocol only ever guards what you have already flowed in, and the user can cut the stream on the next block.
Execute => An autonomous executor — either a Node.js bot or a Chainlink CRE workflow — DCAs the streamed capital into BTC/ETH using the Uniswap Trading API, and settles the output straight back to the user's wallet, so the smart account trends to zero balance between purchases. Swaps run through executeSwap, behind router and token whitelists.
Control => The user authorizes the entire setup from their Ledger in a single hardware-signed EIP-7702 transaction, made readable on-device via ERC-7730 clear signing, and keeps 4 independent kill switches (pause the stream, revoke permissions, withdraw, downgrade USDCx → USDC). The Ledger is the agent's trust boundary; the bot never holds the user's key.
On-chain interface the executor drives, per smart account -> executeSwap to run a DCA buy -> closeStreamIfLow to pre-emptively protect the Superfluid buffer -> onReport to land Chainlink CRE's DON-attested reports (gated to config.bot(), dispatched by 4-byte selector to the same saved internal logic).
The Frontend is built on top of a Next.js 16 application (App Router + Turbopack), with design built with HTML, Tailwind CSS 4, and React 19 for the best User Experience and a clean, interactive interface.
TypeScript & React are used for building the core logic of the platform to enable a type-safe and smooth experience.
The Solc compiler (via Hardhat) is used for compiling the contract code in Solidity. viem + wagmi facilitate contract deployment and interaction with the blockchain. Reown AppKit (WalletConnect) plus the Ledger Device Management Kit over WebHID enable wallet connection — including a hardware-signed EIP-7702 onboarding path — on Base mainnet.
The user's capital is streamed on-chain via Superfluid (USDC ↔ USDCx) to a per-user smart account deployed as an EIP-1167 minimal-proxy clone by the StreamVaults gateway. Each smart account is tracked in a SmartAccountRegistry contract deployed on Base mainnet (chainId 8453), which is also used for discovery later on. From there, an autonomous executor — either a Node.js bot or a Chainlink CRE workflow — drives the DCA strategy, pulling swap calldata from the Uniswap Trading API and settling BTC/ETH back to the user via StreamVaults.executeSwap / onReport.

