User Guide

Everything you need to know about using the DCA Bot platform.

Overview

DCA Bot is a non-custodial automated trading platform built on top of Uniswap V3. It allows you to set up automated trading strategies — DCA, grid buying, limit orders, multi-pair grids, and portfolio rebalancing — that execute trades on your behalf using Safe7579 Smart Accounts (Safe + ERC-7579 modules + ERC-4337 account abstraction).

Your funds remain in your own Safe smart contract at all times. The bot uses a server-held execution key whose permissions are enforced on-chain by the Smart Sessions module — restricting it exclusively to Uniswap V3 swaps from your Safe.

Non-custodial

Your keys, your funds

Multi-chain

Ethereum, Arbitrum, Base, OP

5 strategy types

DCA, Grid, Limit, MPG, Rebalance

Safe7579

ERC-4337 + ERC-7579 modules

Getting Started

Follow these steps to start automated trading:

TIPNew to the platform? Start on Sepolia testnet — the Free plan gives you full access to all strategy types with no real funds at risk. Get Sepolia ETH and USDC from a faucet, deploy your Safe, and run live strategies to verify everything works before switching to mainnet.
  1. Connect your wallet — Click "Connect Wallet" in the header. Sign the authentication message to log in. Supports MetaMask, WalletConnect, and other EIP-1193 wallets.
  2. Create a Smart Account — Go to Smart Account and click "Add Account". Select a chain and create. A Safe smart account address will be predicted for you.
  3. Fund EntryPoint (mainnet only) — On mainnet, click "Fund EP" on your Smart Account card and deposit ETH (~0.001 ETH on L2, ~0.005 ETH on Ethereum). This funds the gas deposit that powers all automated operations. On testnets this step is not needed — gas is paid by a paymaster.
  4. Fund your Smart Account — Transfer trading tokens (e.g. USDC) to your Smart Account address. Use the "Fund Safe" button or send directly from your wallet.
  5. Deploy & Activate — Click "Deploy Safe7579" and then "Activate Session" on the Smart Account page. Both steps execute automatically on the server — no MetaMask signatures required. The server deploys your Safe and installs the Smart Sessions validator with swap permissions.
  6. Create a Strategy — Go to Strategies and click "New Strategy". Choose a type, configure parameters, select your Smart Account, and start it.
TIPYou can also use the guided Onboarding wizard at /onboarding to set everything up step by step.

Smart Accounts

Smart Accounts are the core infrastructure behind automated trading on the platform. Understanding how they work will help you set up, fund, and manage your accounts effectively.

What Is a Smart Account?

A Smart Account is a Safe smart contract wallet (formerly Gnosis Safe) — the most battle-tested and widely used smart account on Ethereum. Unlike a regular MetaMask wallet (EOA), a Smart Account is a programmable contract on-chain that can hold funds and execute transactions according to rules defined in its modules.

Your Smart Account is extended with two standards that enable automated trading:

  • ERC-7579 (Modular Accounts) — a standard for installing and managing modules on smart accounts. Through the Safe7579 adapter, your Safe gains the ability to use ERC-7579 modules like Smart Sessions.
  • ERC-4337 (Account Abstraction) — a standard that allows smart contracts to initiate transactions via UserOperations. Instead of the server needing your private key, it creates a UserOperation (a data structure describing the desired action), signs it with a restricted execution key, and submits it to a special node called a Bundler (we use Pimlico). The Bundler includes the UserOp in a regular Ethereum transaction.

Key Components

Safe7579 Adapter

An ERC-7579 adapter module installed on your Safe. It acts as a bridge between ERC-4337 UserOperations and the Safe's execution pipeline. When the EntryPoint contract calls your Safe with a UserOperation, the Safe7579 adapter validates the signature, verifies the caller is the legitimate EntryPoint, and routes the call through the Safe's standard execution flow.

Smart Sessions Module

An ERC-7579 validator module that enforces on-chain permission rules. When activated, it creates a session — a set of restrictions that say: "this specific execution key can only call Uniswap V3's exactInputSingle function, and nothing else." These rules are enforced by the Safe contract itself on-chain. Even if the server were fully compromised, the attacker could only execute Uniswap swaps from your Safe — not transfer tokens, change owners, or call any other contract.

Execution Key

A server-side keypair generated for each Smart Account. It is encrypted at rest with Fernet symmetric encryption and never exposed in the UI, API, or logs. This key is not an owner key — it only has permission to sign UserOperations within the limits defined by the Smart Sessions module. Your MetaMask wallet remains the sole owner of the Safe.

What Is EntryPoint and Why Is It Needed?

EntryPoint is a singleton smart contract deployed by the ERC-4337 standard at address 0x0000000071727De22E5E9d8BAf0edAc6f37da032. It is the central coordinator for all account abstraction operations. Every UserOperation goes through EntryPoint — it validates the operation, calls your Smart Account to execute it, and handles gas payment.

EntryPoint Deposit is a gas prepayment mechanism. You deposit ETH into the EntryPoint contract, crediting it to your Smart Account address. When a UserOperation is executed (deploy, activate session, swap), EntryPoint deducts the gas cost from this deposit. Think of it as a gas tank for your Smart Account:

  • Every operation (deployment, session activation, each swap) consumes a small amount of gas from your EP deposit
  • The current EP balance is displayed on your Smart Account card
  • When the balance gets low, click "Fund EP" to top up from your MetaMask wallet
  • You can also withdraw unused EP balance back to your wallet via "Recover EP"

Testnet vs Mainnet: On testnets (Sepolia, Arbitrum Sepolia), gas is sponsored by a Pimlico paymaster — you don't need to deposit ETH into EntryPoint. On mainnet (Ethereum, Arbitrum, Base, Optimism), there is no paymaster — you must fund the EntryPoint deposit before any operation can execute.

How Much ETH Does EntryPoint Need?

Gas costs vary significantly by chain. Here are approximate costs per operation:

OperationL2 (Arbitrum)Ethereum mainnet
Deploy Safe7579~0.00003 ETH~0.002 ETH
Activate Session (3 steps)~0.00015 ETH~0.005 ETH
Each swap~0.00002 ETH~0.002 ETH
Recommended initial deposit0.001 ETH0.01 ETH

On L2 chains like Arbitrum, a deposit of 0.001 ETH is enough for deployment, activation, and dozens of swaps. Monitor your EP balance on the Smart Account card and top up when needed.

Lifecycle: From Creation to Trading

Here is the complete lifecycle of a Smart Account, step by step:

1

Create Account

Click "Add Account" and select a chain. The system generates a server-side execution keypair (encrypted at rest) and computes your Safe address deterministically via CREATE2. No on-chain transaction happens yet — the address is just predicted. Status: Not Deployed

2

Fund EntryPoint (mainnet only)

Click "Fund EP" on the Smart Account card. This opens a dialog where you deposit ETH from your MetaMask wallet into the EntryPoint contract, credited to your predicted Safe address. The ETH goes to the EntryPoint contract (not to your Safe directly) and will be used to pay gas for all subsequent operations. On testnets, skip this step — the Pimlico paymaster pays gas for you.

3

Deploy Safe7579

Click "Deploy". The server builds a UserOperation that deploys your Safe contract on-chain and installs the Safe7579 adapter module. The deployment is executed through EntryPoint (gas is deducted from your EP deposit on mainnet or paid by paymaster on testnet). No MetaMask signature needed — the server handles everything. Status: Deployed

4

Activate Session

Click "Activate Session". The server sends three sequential UserOperations:

  1. Set Rhinestone Registry — registers the trusted module attestation registry on your Safe
  2. Install Smart Sessions — installs the Smart Sessions validator module on your Safe
  3. Enable Session — creates a permission entry granting the server execution key the right to call Uniswap V3 exactInputSingle only

Status: Active — the bot can now execute swaps autonomously.

5

Fund Trading Tokens

Send trading tokens (e.g. USDC, WETH) directly to your Smart Account address. Use the "Fund Safe" button for a guided flow, or send from any wallet. These are the tokens your strategies will use for swaps.

6

Create a Strategy & Trade

Go to Strategies, create a new strategy, select your Active Smart Account, and start it. The bot will automatically execute swaps when conditions are met, signing UserOperations with the execution key and submitting them through the Pimlico bundler. Each swap deducts a small gas fee from your EP deposit (mainnet) or is paid by paymaster (testnet).

Execution Flow (How Swaps Work)

When a strategy triggers a swap, here is exactly what happens:

  1. The server decrypts the execution key for your Smart Account
  2. Constructs a UserOperation — a data structure containing the swap calldata (Uniswap V3 exactInputSingle)
  3. Signs the UserOp with the execution key. The signature includes a permissionId that tells the Smart Sessions module which session rules to check
  4. Submits the signed UserOp to the Pimlico bundler
  5. The bundler includes the UserOp in an Ethereum transaction and sends it to the EntryPoint contract
  6. EntryPoint calls your Safe → Safe7579 adapter validates the UserOp → Smart Sessions module verifies the session permissions → Safe executes the Uniswap swap
  7. EntryPoint deducts gas cost from your EP deposit (mainnet) or the paymaster covers it (testnet)
  8. The server parses the on-chain ERC-20 Transfer events to record the swap result

Managing Your EP Balance

On mainnet, your EntryPoint deposit is consumed by every operation. Here's how to manage it:

  • Check balance — the EP balance is shown on your Smart Account card (labeled "EP balance"). It updates automatically.
  • Top up — click "Fund EP" on the Smart Account card. Select the amount and confirm in MetaMask. The ETH is deposited into EntryPoint credited to your Safe address. You can top up at any time, even if the account is already active.
  • Withdraw — click "Recover EP" to withdraw unused EntryPoint deposit back to your MetaMask wallet. This sends a UserOperation from your Safe that calls EntryPoint's withdrawTo function.
  • Low balance — if your EP balance is too low to cover gas for a UserOperation, the bundler will reject it with an "AA21" or "AA23" error. Your strategy will retry on the next scheduled interval. Top up EP to resume.

Multiple Accounts

You can have multiple Smart Accounts on the same or different chains. When creating a strategy, select the specific Smart Account you want to use. Only accounts with Smart Sessions enabled (status: Active) can execute trades. Each account has its own EP balance and trading tokens.

TIPStart on Sepolia testnet — deploy, activate, and run a test strategy for free. On testnet the paymaster covers all gas, so you can verify everything works before depositing real ETH on mainnet.
Go to Smart Account page

Strategies Overview

Strategies are automated trading rules that the bot executes on your behalf. The platform supports five strategy types, each suited for different market conditions and goals.

DCA

Buy fixed amounts on a schedule. Best for long-term accumulation.

Price Grid

Buy at predefined price levels as the market dips. Buy low, sell high.

Limit Order

One-shot buy or sell when price reaches your target.

Multi-Pair Grid

Grid strategy across multiple tokens with allocation percentages.

Rebalance

Automatically maintain target portfolio allocations.

Common Settings

All strategies share these configuration options:

  • Chain — which network to trade on
  • Smart Account — which Safe7579 account to use (only accounts with Active session are shown)
  • Fee Tier — Uniswap V3 pool fee (0.05%, 0.3%, or 1%)
  • Slippage — maximum allowed price impact in basis points

Managing Strategies

From the Strategies page you can pause/resume, edit parameters, view detailed statistics, see order history with charts, and export orders to CSV.

DCA (Dollar-Cost Averaging)

DCA buys a fixed amount of a token at regular intervals, regardless of price. This strategy averages out your entry price over time and reduces the impact of volatility.

Configuration

  • Amount per Order — how much to buy each time (in the input token)
  • Total Orders — total number of buys before the strategy completes
  • Interval — time between orders (1h, 4h, 12h, daily, weekly)

Smart DCA

Smart DCA enhances the basic strategy by buying more when market conditions are favorable (i.e. during dips):

  • RSI mode — when the Relative Strength Index drops below your threshold (e.g. RSI < 30), the bot multiplies the order size by your chosen multiplier (e.g. 1.5x)
  • Price Deviation mode — when price drops more than X% from its moving average, the bot buys more
  • Lookback — number of periods used to calculate the indicator (default: 14)

Trailing Stop

Available for DCA strategies. A trailing stop follows the price upward and triggers a sell when the price drops a specified percentage from its peak:

  • Trail % — sell when price drops X% from highest recorded price
  • Activation % — optional, only start trailing after X% gain from entry
TIPFor beginners, start with a simple DCA: weekly buys of a moderate amount into ETH or BTC. Add Smart DCA once you're comfortable with the platform.

Price Grid Strategy

The grid strategy places buy orders at predefined price levels below the current market price. As the price drops, the bot buys more — each level ("leg") triggers a purchase. This is ideal for accumulating tokens during market downturns.

Grid Modes

Choose how price levels are calculated:

  • % from Start — each leg is a fixed percentage below the starting price. Leg 1 = -5%, Leg 2 = -10%, etc.
  • % Between Legs — each leg is X% below the previous leg. Creates exponentially spaced levels.
  • Fixed $ Step — each leg is a fixed dollar amount below the previous. Leg 1 = -$100, Leg 2 = -$200, etc.

Size Multiplier

Controls how order size grows with each leg. A multiplier of 1.0 means flat (same amount each level). A multiplier of 1.5 means each leg buys 1.5x the previous one — buying aggressively as price drops further.

Take Profit & Stop Loss

  • Take Profit — auto-sells all accumulated tokens when price rises X% above your average buy price
  • Stop Loss — auto-sells if price drops X% below your average buy price, limiting downside
  • Trailing Stop — dynamic take profit that follows price upward and sells on a pullback

Grid Preview

Before creating the strategy, a preview table shows all grid legs with their trigger prices, order amounts, and cumulative investment. The preview uses the current Chainlink oracle price as the starting point.

TIPUse "% Between Legs" with a 1.5x multiplier for aggressive dip buying. Combine with Take Profit to automatically sell when the market recovers.

Limit Orders

A limit order is a one-shot conditional trade that executes when the market price reaches your target. Unlike grid strategies, limit orders execute once and complete.

Order Sides

  • Buy — triggers when price drops to your target. Example: "Buy ETH when it drops to $2,000"
  • Sell — triggers when price rises to your target. Example: "Sell ETH when it reaches $4,000"

The bot monitors prices using Chainlink oracles and executes the swap on Uniswap V3 when the target is reached. The current oracle price is displayed in the form for reference.

Multi-Pair Grid

Multi-pair grid extends the grid strategy across multiple tokens simultaneously. Instead of buying one token on dips, you buy several tokens with configurable allocation percentages.

Configuration

  • Buy With Token — the stable token used to buy (e.g. USDC)
  • Pairs & Allocations — select multiple output tokens and assign a percentage to each. Allocations must sum to 100%.
  • The grid mode, step, and multiplier settings apply to all pairs equally

Example: allocate 60% to ETH and 40% to WBTC. When the grid triggers, 60% of the order goes to buying ETH and 40% to WBTC.

Rebalance Strategy

The rebalance strategy maintains target portfolio allocations by automatically swapping tokens when their weights drift beyond a threshold.

Configuration

  • Target Allocations — set target percentages for each token (e.g. 60% WETH, 40% USDC). Must sum to 100%.
  • Drift Threshold — rebalance only when an allocation drifts more than X% from target (default: 5%)
  • Check Interval — how often to check allocations (hourly, 4h, daily, weekly)
  • Minimum Swap Amount — don't rebalance if the required swap is below this amount (avoids dust trades)

You can also manually trigger a rebalance check from the strategy details page using the "Rebalance Now" button.

Manual Swap

The Swap page lets you execute one-off token swaps through Uniswap V3. This is useful for:

  • Quick trades outside of a strategy
  • Swapping tokens before or after a strategy completes
  • Testing that your Smart Account can execute swaps

Execute From

Choose where the swap executes from using the Execute From selector:

  • Connected Wallet — legacy path, uses the server's configured wallet key
  • Smart Account — executes as a Safe7579 UserOperation through the bundler (gas from EP deposit on mainnet, paymaster on testnet). Only accounts with an Active Smart Session on the selected chain are listed. Balances shown reflect the Smart Account's holdings.

Features

  • Chain and token pair selection
  • Real-time balance display (wallet or Smart Account) with MAX button
  • Configurable slippage tolerance and fee tier
  • Price comparison across available sources
Go to Swap page

Demo Mode (Paper Trading)

Demo Mode lets you test any strategy with simulated execution — no real funds, no Smart Account required. Demo orders are tracked, statistics are calculated, and the UI behaves exactly like a live strategy, but no on-chain transaction is submitted.

How It Works

  • Enable the Demo Mode toggle when creating a strategy
  • The bot monitors prices on schedule and records simulated fills at the current Chainlink oracle price
  • Orders appear in your history with a Demo badge
  • The Strategy P&L table highlights demo rows in amber so they're easy to distinguish

What Is Excluded from Real Statistics

Demo strategies are intentionally excluded from all real portfolio metrics:

  • Active Strategies, Orders Executed, Total Invested — demo is not counted
  • Realized P&L and the P&L chart — only real trades contribute
  • Gas Spent — demo gas is shown as an estimate (~) and not summed in totals
  • Win Rate — only real exits (TP/SL) count toward win rate

When to Use Demo Mode

  • Learning the platform without risking funds
  • Backtesting a strategy configuration before going live
  • Exploring new strategy types (grid spacing, TP/SL levels) before committing capital
  • Teaching others or showing the platform to non-crypto users
TIPDemo Mode works on both mainnet and testnet. On testnet you already have no real risk — use Demo Mode to test strategy logic before deploying your Safe and switching to live testnet execution.

Dashboard & P&L

The Dashboard provides an at-a-glance overview of your trading activity:

Summary Cards

  • Active Strategies — number of currently running strategies
  • Orders Executed — total successful trades across all strategies
  • Total Invested — sum of all tokens spent on purchases

Strategy P&L Table

Shows profit/loss for each strategy including: invested amount, tokens bought, average buy price, current status, and order count.

Balances

Displays token balances across all your Smart Accounts and connected wallets, broken down by chain.

Go to Dashboard

Webhooks

Webhooks send real-time HTTP POST notifications to your URL when events occur. Use them to integrate with Telegram bots, Discord, monitoring tools, or custom automation.

Supported Events

  • order_completed — a swap order was successfully executed
  • strategy_finished — a strategy completed all its orders
  • take_profit_triggered — price hit take profit level
  • stop_loss_triggered — price hit stop loss level
  • trailing_stop_triggered — trailing stop was activated
  • rebalance_triggered — portfolio rebalance was executed

Security

Each webhook is signed with an HMAC secret. Your endpoint should verify the signature in the request headers to ensure the payload is authentic. The secret is shown once when the webhook is created — copy and store it securely.

Management

You can create multiple webhooks, each subscribed to different events. Webhooks can be paused/resumed, tested with a sample payload, and deleted from the Settings page.

Go to Settings

Notifications

The platform can send real-time notifications to your personal Telegram account when trades execute, take profits trigger, or your subscription status changes.

Linking Telegram

Go to Settings → Notifications section and click Connect Telegram. You'll receive a deep link to open in Telegram. Send /start to the bot and your account will be linked automatically. After linking, all trade notifications are delivered to your personal chat.

What triggers a notification

  • DCA order executed
  • Grid buy leg triggered
  • Take profit / stop loss / trailing stop executed
  • Limit order filled
  • Portfolio rebalance executed
  • Strategy order failed
  • Subscription expiry warning (3 days and 1 day before)
  • Subscription expired (plan reverted to Free)

Fallback

If you haven't linked Telegram, notifications fall back to the global admin chat configured on the server (if set). Webhooks are always fired regardless of Telegram status.

Go to Settings

Billing & Plans

The platform offers tiered subscription plans with different limits and fee structures.

Plans

Plans differ in the number of active strategies, available features, and profit fee percentage. Profit fees are only charged on profitable exits (take profit, stop loss, trailing stop). You can view and change your plan on the Billing page.

Payment

Subscriptions are paid in USDC via on-chain transfer. Connect your wallet, select a plan, and confirm the transaction. The subscription activates automatically once the transaction is confirmed.

Expiry Warnings

When your subscription is within 3 days of expiring, a warning banner appears on the Billing page. When it expires, the plan reverts to Free and any active strategies above the free limit (3) are automatically paused. A Telegram notification is sent if you have linked your Telegram account.

Fee History

The Billing page shows a complete history of platform fees charged, including the date, trigger type (TP/SL/trailing), token pair, trade amount, fee percentage, and fee amount.

Go to Billing

Referral Program

Earn 30% of every platform fee generated by traders you refer — paid directly in USDC on Arbitrum One. There is no expiry, no cap, and no minimum trading volume required from referred users.

How it works

  1. Go to the Referral page and generate your unique code (format: DCA-XXXXXX).
  2. Share your referral link — https://dcabot.app?ref=YOUR_CODE.
  3. When a new user signs up through your link, they are permanently linked to you.
  4. Every time that user pays a platform fee (on TP / SL / trailing stop exits), you automatically receive 30% of the fee as a pending balance.
  5. Once your pending balance reaches $5 USDC, you can withdraw to any Arbitrum address.

Fee sharing rules

  • Share: 30% of the platform fee per trade
  • Counted only on stable-token fees (USDC, USDC.e, USDT)
  • Demo mode trades are excluded — only real on-chain executions count
  • Referral relationship is permanent and single-level (no multi-tier)
  • Users cannot apply their own referral code (self-referral blocked)

Withdrawing earnings

On the Referral page, click Withdraw USDC when your pending balance is ≥ $5. Enter any Arbitrum One address — the USDC is sent directly on-chain. Minimum withdrawal is $5. The transaction link (Arbiscan) appears once the payout is processed.

TIPYour referral code never expires. Share it once — earn on every fee from referred traders forever.
Go to Referral

Security Model

The platform is designed with a non-custodial security model. Here's how your funds are protected:

Safe7579 Smart Accounts

Your funds are held in audited Safe smart contracts — the most battle-tested smart account infrastructure on Ethereum. You are the sole owner; the server only holds a restricted execution key, not an owner key.

On-chain Smart Sessions

A Smart Sessions validator module is installed on your Safe. It enforces on-chain that the server execution key can only call Uniswap V3's exactInputSingle. Any attempt to call any other contract or function is rejected by the Safe itself — not by the server.

Encrypted Execution Keys

Server-side execution keys are generated per Smart Account and encrypted at rest using Fernet symmetric encryption. Private keys are never exposed in the UI, API responses, or logs.

Swaps Only

Even if the server were fully compromised, the on-chain Smart Sessions permission limits the damage to swaps within your own Safe. The bot cannot transfer tokens to arbitrary addresses, change Safe owners, or call any contract other than the configured Uniswap V3 router.

Frequently Asked Questions

Can the bot withdraw my funds or send tokens to another address?

No. The bot can only execute Uniswap V3 swaps within your Safe. It cannot transfer tokens, change Safe owners, or perform any operation other than swaps.

What happens if a swap fails?

Failed swaps are recorded in the order history with a "failed" status. The strategy continues as normal — DCA strategies will retry at the next interval, and grid strategies will re-attempt when price conditions are met again.

Can I run multiple strategies on the same Smart Account?

Yes. Multiple strategies can share the same Smart Account and trading balance. Make sure you have enough tokens funded to cover all active strategies.

What chains are supported?

Ethereum Mainnet, Arbitrum, Optimism, Base, and Sepolia (testnet). The available tokens differ by chain.

How many transactions do I need to sign to get started?

Two MetaMask signatures per Smart Account. First "Deploy Safe7579" — deploys your Safe and installs the Safe7579 adapter. Second "Activate Session" — installs the Smart Sessions validator and creates the swap permission. Both are one-time setup steps; after that the bot operates autonomously.

What is a Smart Session and why do I need it?

A Smart Session is an on-chain permission stored inside your Safe. It grants the server's execution key the right to call exactly one function — Uniswap V3 exactInputSingle. Without it, the server key has no authority to act on your Safe at all. The permission is enforced by the Safe contract itself, not by the server.

What is the fee tier and how do I choose?

The fee tier is the Uniswap V3 pool fee. 0.3% is standard for most pairs. Use 0.05% for stable-to-stable swaps and 1% for exotic or low-liquidity pairs.

What does slippage (bps) mean?

Slippage tolerance in basis points (1 bps = 0.01%). A value of 50 means 0.50% maximum price impact. If the price moves more than this during execution, the transaction reverts to protect you.

How do I earn with the referral program?

Go to the Referral page, generate your unique DCA-XXXXXX code, and share your link. Every time someone you referred pays a platform fee on a profitable exit, you automatically earn 30% of that fee in USDC. Withdraw to any Arbitrum address once your balance reaches $5.

When do referral earnings appear?

Earnings are credited in real time when your referred user's take profit, stop loss, or trailing stop executes and a platform fee is charged. Demo mode trades are excluded. Your Referral page shows a live breakdown of all pending and paid earnings.

Need help? Check the FAQ above or reach out to support.