DCA
Time-sliced buying or selling on Solana from your own wallet, with price and market-cap guards, randomized sizes and timing, and per-order settlement you can audit.
The DCA app splits an allocation into evenly sized orders and places one per interval through Relay, with no API key on your side and the platform fee inside each swap. It is a console: start it once, and it runs on its schedule until the plan is complete or you stop it.
What you set
| Input | Meaning |
|---|---|
| Direction | Sell the spend token for the receive token, or buy. |
| Token you spend / receive | Any Solana token Relay can resolve, fresh launches included; unverified tokens are flagged in the confirmation. Defaults: SOL into USDC. |
| Size the plan by | A token amount, US dollars (converted once at Start using the live price, then pinned as a token amount), or a percent of your balance (measured once at the first order and pinned from then on). |
| Number of orders | 2 to 100. Each order is allocation ÷ orders; rounding dust lands in the final order. |
| Interval | 5 minutes to daily. |
| Price limit | Sell only above, or buy only below, this USD price. Orders outside the limit hold and resume on their own. |
| Market-cap floor / ceiling | Hold while the token's market cap is below the floor or above the ceiling. Data from Jupiter's public token data (no key). |
| Price-impact guard | On by default at 10%: orders whose executable quote exceeds the ceiling are held, never filled. Turn it off to trade at any impact. |
| Randomize order size / timing | Symmetric jitter (up to ±80%) on each order's size and on the gap between orders. Totals never change; the final order is never jittered. |
| Start after | Delay the first order, for example 30m, 2h, 1d. |
| Report fills to | The run log, Telegram (your connected bot plus a chat ID), or Discord (your connected webhook). |
Each order must be worth at least $1. For amount and USD plans, Start checks this against the live price for every order the plan can produce (size jitter included) and refuses otherwise. Percent plans measure your balance once, at the first order, and pin that allocation for the rest of the plan; the minimum is checked before every order, and a slice under it holds the plan for Skip or Retry instead of placing dust. Start and Update also read your wallet: an amount plan must be fully covered by your balance today (plus 0.02 SOL kept for network fees when you spend SOL), and a percent plan needs a nonzero balance to measure. The same check runs when you resume, apply an update, or retry a held order, against what the plan still has to work. The reserve is a budget for the whole plan: network fees come out of it order by order, and the final order keeps back only its own share (plus the transient rent of the wrapped-SOL account a swap opens), so a plan funded to exactly the amount Start showed still finishes. It is a check at that moment, not a reservation: funds you move out afterwards, or a second plan on the same token, can still leave an order waiting.
How an order runs
- The schedule admits the plan when its next order is due. A plan that is paused, held, or stopped is never admitted, and an early minute never creates a run.
- The app claims the order in a durable progress store, reads the price, balance, and market cap, and sizes the order from what is actually left of the allocation.
- The swap is quoted, checked against your price-impact ceiling, signed by your wallet, simulated as the exact signed bytes, recorded, and only then broadcast. On the Relay venue the platform fee is part of that same transaction, so there is no separate fee transfer afterwards. A Telegram or Discord report that fails to send is recorded on the run but never fails the order or pauses the plan.
- The fill is read back from the chain (never from the quote), the order is settled, and the plan advances in the same transaction that records the fill.
- The platform fee was part of the swap itself, so there is no second transaction and nothing to refund. An order that never fills pays no fee.
Every step writes evidence before it acts, so a crash or retry can never spend the same slice twice. A reconciler keeps resolving anything left in flight, independently of your schedule and of Stop, until it settles; most orders settle within minutes.
Held orders
If an order fails five times, the plan holds instead of retrying forever. Nothing was spent on the swap and no platform fee was collected. A plan also holds when the remaining slice falls under the $1 minimum. The plan panel shows the held order with two actions:
- Retry order reopens the order with a fresh set of attempts.
- Skip order marks it done without spending and moves to the next order.
Orders held by a price limit or market-cap guard are different: they are simply waiting, and they resume on their own when the condition clears.
Fees
The standard Solaris AI swap fee applies per order: 0.4% of the order's spend amount, less with SOLARIS holdings, on any spend token. It is routed inside the swap through Relay, so an order that never fills pays no fee and there is never a second transaction. For very small orders in tokens other than SOL or USDC, Relay may be unable to collect the fee; the order still executes and the plan panel shows it as waived. The amount shown as collected is what Relay's own record confirms, never the quote: for a few seconds after a fill the panel may show the fee as confirming with Relay, and it settles to the collected amount, or to waived, once Relay has indexed the swap. Solana network fees for any swap that was broadcast, including one that failed on chain, are paid by your wallet and are not refundable. Every fee, waived or paid, and every network fee is visible per order in the plan panel.
Changing a running plan
Open Settings on the plan page. Changing the tokens, the allocation, or the order count starts a new plan from order 1. Changing the interval, guards, jitter, or reporting keeps your progress. Editing the workflow on the canvas marks the instance as customized: it stays an app instance but stops trading and stops using Solaris AI keys until you restore the stock graph from Manage. To keep your edits, use Keep a copy in Workflows in that dialog; the copy is a regular workflow.
