DCA Onchain

Stack crypto. Stay chill.

A self-custodial protocol for automated dollar-cost averaging. Deposit USDC once; the protocol accumulates ETH and BTC for you on a fixed schedule - without ever taking custody of your funds.

Network: Base mainnet (EVM-agnostic) Stablecoin: USDC Assets: WETH, cbBTC Stage: Live Last Updated: 2026-09-17
In one paragraph

You deposit USDC into your own on-chain account. On the schedule you chose (daily, weekly, biweekly, or monthly), an automated executor pools your buy with everyone else's, makes one efficient swap into your chosen asset, and sends the result toward your wallet. While your USDC waits, it can earn yield in Aave. You keep control the entire time: only you can withdraw, and your strategy's own settings (asset, amount, schedule, yield choice) can never be changed out from under you.

Protocol-level configuration, such as fees within their caps or which oracle is used, can change. Not instantly, though: those changes sit behind a public two-day delay, so you always have notice and time to leave. Trust & failures is explicit about which is which.

What this site covers

This is the human-facing documentation for the protocol: what it is, the current state of the project, and how every piece actually works. Each page opens with a plain-language summary, then goes deep for engineers and reviewers.

Why it exists

Dollar-cost averaging - buying a fixed dollar amount on a regular schedule regardless of price - is the most reliable way for ordinary people to accumulate volatile assets without trying to time the market. Doing it by hand is tedious and easy to abandon. Doing it on a centralized exchange means trusting that exchange with your money.

DCA Onchain automates the schedule without the custody trade-off. Your funds sit in a contract that only you can withdraw from. The automation is allowed to do exactly one thing - trigger your scheduled buy - and nothing else. It cannot change your strategy, redirect your assets, or take more than your per-period amount.

Current state

Status at a glance

DCA Onchain is live on Base mainnet. Contract source is verified, the governance configuration was audited on chain, and the complete create, fund, execute, withdraw lifecycle was verified by an end-to-end mainnet canary before launch.

New strategies are created on Base mainnet, accumulating WETH or cbBTC with optional Aave yield on idle USDC.

  • Built and reviewed. The core contracts, oracle layer, and key safety properties are covered by automated tests and security review. Issues found during review were resolved in source and covered by regression tests, summarized in Security & controls.
  • Deployed and verified on Base mainnet. All contracts are source-verified, and the governance configuration (a timelock owning every administrative contract, with a narrowly scoped guardian) has been audited on chain.
  • Lifecycle observed. One strategy was created, funded, executed in a batch, and fully withdrawn. The fee landed in the treasury, the whole swap output reached the user, and the closed strategy left the active registry. See Deployed contracts for the transaction-level evidence.
  • Live on Base mainnet. Open now: WETH and cbBTC, direct Chainlink price floors, optional Aave yield on idle USDC, and scheduled automation, with monitoring wired per stack.
AreaLive on Base mainnet
NetworkBase mainnet (chain 8453)
Accumulation assetsWETH and cbBTC
Idle yieldAave V3 on idle USDC, optional per strategy
Price floorChainlink direct feeds, with staleness and sequencer-uptime checks
ExecutionScheduled automation, with a swappable executor

See Deployed contracts for the mainnet addresses, the canary evidence, and the external dependencies.

The core idea in five steps

  1. Deposit. You create a strategy and fund your personal account with USDC.
  2. Earn while you wait. Idle USDC can be supplied to Aave V3 for yield (optional).
  3. Execute on schedule. When your window comes due, the executor pools your buy with others and makes one swap.
  4. Receive. Your fair share of the purchased asset is sent to your wallet.
  5. Withdraw anytime. You can withdraw your full balance whenever you want - even if the protocol is paused.

What you sign

Creating a strategy through the current app is intentionally explicit. You sign a transaction to create your strategy account, a USDC approval for that account, and a deposit transaction into it. The factory creates the account, but the account holds your USDC. Later top-ups also require approval first, then the deposit. See User flows for the full lifecycle.

What to trust

The protocol is self-custodial, but it is not trustless in every dimension. Configuration changes sit behind a two-day timelock, a guardian can pause instantly and swap the automation address, and Aave, Uniswap, Chainlink, Base, and RPC providers are external dependencies. These assumptions and failure modes are explained directly in Trust & failures.

Glossary

DCA (dollar-cost averaging)
Buying a fixed dollar amount of an asset at regular intervals, smoothing out the effect of price swings over time.
Self-custodial
You hold your own funds in a contract only you can withdraw from. No company or operator can move your money.
Strategy / UserStrategyAccount
Your personal on-chain account holding your USDC and your fixed, immutable settings (asset, amount, frequency).
Executor
The agent permitted only to trigger scheduled buys. On Base mainnet it is a scheduled keeper. It is a plain address, swappable via setExecutor, so the keeper can be replaced without touching anything else.
Batch
A group of users buying the same asset at the same time, combined into one swap to save gas and reduce slippage.
Basis point (bps)
One hundredth of a percent. 15 bps = 0.15%. Fees in this protocol are stored in basis points with hard on-chain caps.
Slippage floor / price oracle
An independent on-chain minimum on what a swap must return, so a buggy or hostile executor cannot accept a terrible price. See Price oracle.