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: EVM-agnostic Stablecoin: USDC Stage: Available on Base mainnet Last Updated: 2026-07-08
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 the protocol's parameters can never be changed out from under you.

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

The protocol is live on Base mainnet. Users can inspect the deployed contract source on Basescan, and scheduled GitHub Actions automation handles the regular process of collecting due deposits, executing pooled buys, and distributing the purchased assets. Base Sepolia remains available as the historical testnet environment.

  • Built & reviewed - the core contracts, oracle layer, and key safety properties are covered by automated tests and security review.
  • Live on mainnet - deployed on Base with verified source code and scheduled automation for daily, weekly, biweekly, and monthly strategies.
  • Mainnet reference - deployed addresses, ownership, oracle routes, automation, and external dependencies are listed in Deployed contracts.
  • Security review complete - issues found during review were resolved before launch and are summarized in Security & controls.

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 toward your destination 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. GitHub Actions currently runs the executor, a 2-of-3 Safe controls protocol configuration, and Aave, Uniswap, Chainlink, Base, RPC providers, and GitHub Actions 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, destination).
Executor
The automated agent (a GitHub Actions bot wallet on both testnet and mainnet, interim; swappable via setExecutor) permitted only to trigger scheduled buys.
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.