dca
Dollar-Cost Averaging (DCA)
Create recurring buy orders that automatically swap a fixed amount of one token into another at regular intervals. Supports AVNU and Ekubo DCA providers.
Prerequisites
- Active session required.
- Sufficient balance of the sell token for the total DCA amount.
- Account must be deployed on-chain.
Rules
- BEFORE any DCA operation, you MUST run
npx starkfi@latest statusandnpx starkfi@latest balanceto verify connectivity and funds. - ALWAYS run
dca-previewbeforedca-createto verify the expected output per cycle. - The
--per-cycleflag is required fordca-create. It sets the amount sold each execution cycle. - Frequency uses ISO 8601 duration format:
P1D(daily),PT12H(12 hours),P1W(weekly). - Suggest using
--simulatefirst to verify the DCA order would succeed. - AFTER a successful creation, verify with
npx starkfi@latest tx-status <hash>.
Commands
Preview a Cycle
npx starkfi@latest dca-preview <amount> <sell_token> <buy_token> [--provider <avnu|ekubo>] [--json]
Create a DCA Order
npx starkfi@latest dca-create <total_amount> <sell_token> <buy_token> \
--per-cycle <amount> \
[--frequency <duration>] \
[--provider <avnu|ekubo>] \
[--simulate] [--json]
List DCA Orders
npx starkfi@latest dca-list [--status <ACTIVE|CLOSED|INDEXING>] [--provider <avnu|ekubo>] [--page <n>] [--json]
Cancel a DCA Order
npx starkfi@latest dca-cancel <order_id_or_address> [--provider <avnu|ekubo>] [--json]
Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
amount |
string | Total sell amount (create) or per-cycle amount (preview) | Yes |
sell_token |
string | Token to sell (e.g. STRK, ETH) |
Yes |
buy_token |
string | Token to buy (e.g. USDC, ETH) |
Yes |
order_id_or_address |
string | The UUID OR on-chain contract address (0x...) from dca-list |
Yes (cancel) |
--per-cycle |
string | Amount to sell per cycle | Yes (create) |
--frequency |
string | ISO 8601 duration (default: P1D=daily) |
No |
--provider |
string | DCA provider: avnu (default) or ekubo |
No |
--status |
string | Filter orders: ACTIVE, CLOSED, INDEXING |
No (list) |
--simulate |
flag | Estimate fees without broadcasting | No |
--json |
flag | Output as JSON | No |
Examples
User: "Buy 10 USDC worth of ETH every day for 100 days"
npx starkfi@latest status
npx starkfi@latest balance
npx starkfi@latest dca-preview 10 USDC ETH
npx starkfi@latest dca-create 1000 USDC ETH --per-cycle 10 --frequency P1D --simulate
npx starkfi@latest dca-create 1000 USDC ETH --per-cycle 10 --frequency P1D
npx starkfi@latest tx-status <hash>
User: "DCA into STRK weekly with 50 USDC per week, total 200 USDC"
npx starkfi@latest status
npx starkfi@latest balance
npx starkfi@latest dca-preview 50 USDC STRK
npx starkfi@latest dca-create 200 USDC STRK --per-cycle 50 --frequency P1W
User: "Show my active DCA orders"
npx starkfi@latest dca-list --status ACTIVE --json
User: "Cancel my DCA order"
npx starkfi@latest dca-list --status ACTIVE
npx starkfi@latest dca-cancel <order_id_or_address>
npx starkfi@latest tx-status <hash>
Error Handling
| Error | Action |
|---|---|
DCA_FAILED |
Check the error message for details (balance, provider). |
Insufficient balance |
Check balance for the sell token. |
Not authenticated |
Run authenticate-wallet skill first. |
Invalid frequency |
Use ISO 8601 format: P1D, PT12H, P1W, P1M. |
Related Skills
- Use
tradefor a one-time swap instead of recurring. - Use
batchto combine a DCA creation with other operations. - Use
portfolioto check your overall positions and balances.
More from ahmetenesdur/starkfi
send
Send STRK, ETH, or any ERC-20 token to a Starknet address. Supports simulation (dry-run) before execution. Use this skill when the user wants to send, transfer, pay, tip, or move tokens to another wallet address on Starknet. Also trigger when the user mentions sending funds to someone, making a payment, transferring assets, or moving crypto to a specific address — even if they just say "pay 10 STRK to 0x...".
10trade
Swap tokens on Starknet via Fibrous DEX aggregator. Supports per-provider selection (avnu, ekubo, or auto to race all). Use this skill when the user wants to swap, exchange, trade, convert, buy, or sell one token for another on Starknet. Also use when the user asks about token prices, exchange rates, DEX routing, best swap route, or wants to check how much they would receive for a given amount — even if they don't explicitly say "swap".
10balance
Check Starknet wallet token balances — STRK, ETH, and all ERC-20 tokens. Use this skill when the user asks about their balance, holdings, funds, tokens, wallet contents, or wants to know how much of something they have. Also use before any transaction to verify sufficient funds. Trigger whenever the user says "check my balance", "how much ETH do I have", "what's in my wallet", "do I have enough", "show my tokens", or any variation about checking available assets — even if they don't use the word "balance".
9staking
Stake, unstake, claim, and compound rewards for STRK, WBTC, tBTC, SolvBTC, and LBTC on Starknet. View validators, pools, and staking positions. Use this skill when the user mentions staking, delegating, validators, staking pools, rewards, compounding, unstaking, earning yield, passive income on crypto, or wants to earn on their STRK or BTC tokens — even if they don't say "stake" explicitly.
9config
View and modify StarkFi CLI configuration — set custom RPC URLs, switch networks, manage gas settings, and check transaction status. Use this skill when the user mentions RPC, rate limits, network settings, gas mode, gas token, configuration, settings, preferences, or wants to check a transaction hash. Also trigger when the user wants to customize their setup, troubleshoot connection issues, fix errors, switch between mainnet and testnet, change how gas is paid, enable free gas, "gas fees too high", "not working", verify whether a transaction succeeded, or check tx status — even if they don't say "config".
9multi-swap
Execute multiple token swaps in a single Starknet transaction via Fibrous (default). Supports per-provider selection (avnu, ekubo, or auto to race all). Supports 2-3 swap pairs bundled into one multicall. Use this skill when the user wants to swap multiple token pairs at once, do batch swaps, execute several trades simultaneously, perform parallel swaps, or do bulk trading in one transaction. Also trigger when the user mentions "two swaps", "three swaps", "swap X and Y at the same time", or wants to convert multiple tokens in a single call.
9