FAQ

Short answers to the questions users, integrators, and security-conscious readers usually ask first.

What is DCA Onchain?

DCA Onchain is a self-custodial protocol for automated dollar-cost averaging. You deposit USDC into your own strategy account, and on the schedule you chose the protocol buys your chosen asset for you.

Can I use it right now?

Yes. DCA Onchain is live on Base mainnet. Before opening to users it completed an end-to-end canary: a strategy was created, funded, executed, and fully withdrawn, all observable on chain.

New strategies are created on Base mainnet. The lifecycle evidence and the deployed addresses are listed under Deployed contracts.

Where does my money go?

Your USDC goes to a UserStrategyAccount created for your strategy. If idle yield is enabled, that USDC is supplied to Aave through a per-account yield adapter. Bought assets are forwarded to the wallet that owns the strategy, or held as claimable pending withdrawals if delivery fails.

Can the operator withdraw my funds?

No. Administration can configure protocol settings and pause execution, but it cannot call withdraw() on your strategy account. Only the strategy owner can withdraw.

Can the executor steal funds?

The executor can only call executeBatch. Each strategy account enforces timing, exact amount, nonce use, and target-asset match. The executor cannot withdraw, over-pull, change settings, or lower the oracle floor.

Who runs the automation?

A scheduled keeper triggers due batches on Base mainnet. It can only call executeBatch; it cannot withdraw, over-pull, change settings, or lower the oracle floor.

The executor is a plain address rather than a hardcoded service, so whichever keeper runs it in production can be swapped with one setExecutor transaction, without redeploying anything.

What happens if automation is down?

Scheduled buys can be delayed. Your funds remain in your strategy account or its yield adapter and remain withdrawable. Automation downtime is a liveness risk, not a custody transfer.

What assets can I accumulate?

On Base mainnet you can accumulate WETH and cbBTC, both through direct Uniswap V3 pools. More assets require a separate liquidity, oracle, routing and monitoring review.

Can I change my amount, asset, or frequency later?

No. Strategy parameters are immutable after creation. To change them, withdraw and create a new strategy.

Can I withdraw anytime?

Yes. withdraw() is available to the strategy owner regardless of factory or executor pause state. It is a full exit and permanently closes the strategy.

Why does creating a strategy require multiple transactions?

The frontend first creates the account so it knows the account address. Then you approve USDC to that account. Then you deposit USDC into it. This keeps custody with the strategy account, not the factory.

What fees does the protocol charge?

The execution fee is 15 bps, or 0.15%, of each buy. It is computed on the USDC collected for the batch and deducted in USDC before the swap, so the treasury is paid in USDC and the entire purchased asset goes to the users who funded the batch.

The yield fee is 15% of positive idle yield, charged only at withdrawal and only when the yield is actually positive.

Both have hard on-chain caps (100 bps and 30% respectively), and there is nothing else: no subscription, no management fee, no performance cut, and no referral share.

Is there a referral program?

Not on chain. No contract computes, stores, or pays a referral share, and there is no publicly resolvable referral attribution to look up.

Strategy creation does carry a blinded commitment value that the factory emits and does not interpret. It exists so an off-chain program could be built later without changing the contracts. No such program is running, so nothing is being credited to anyone today.

How was the protocol reviewed?

The contracts were reviewed, and issues found during that process were resolved in source and covered by regression tests. Separately, the deployed governance configuration was audited on chain: ownership, the timelock delay, the role grants, and the absence of any residual deployer privilege.

Neither is a guarantee that the protocol is bug-free. The security page explains the current user-facing controls and limits.

What happens if a swap price is bad?

The executor submits a quote-based minimum output, and the on-chain oracle computes its own independent floor. The swap must satisfy the stricter of the two. If it cannot, the batch reverts and no trade happens.

What happens if my wallet cannot receive the token?

The strategy records the output as a pending withdrawal. You can claim it later with withdrawPending(asset).

Does pause lock user funds?

No. Pausing can block new strategy creation or batch execution, but user withdrawal remains available.

Is the protocol upgradeable?

The MVP contracts are immutable. There is no proxy upgrade path for core contracts. Fixing a core bug would require migration to new contracts, not silently upgrading the existing ones.

Where can developers start?

Start with Architecture, then Contracts, then Price oracle. The deployed addresses and the canary evidence are in Deployed contracts.