starkfi 0.4.4 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/MCP.md CHANGED
@@ -21,7 +21,7 @@ To integrate StarkFi into your AI environment, configure your MCP client setting
21
21
 
22
22
  ## Tool Registry
23
23
 
24
- Upon initialization, the StarkFi server dynamically provisions **27 tool schemas** to the connected AI client. Tools are organized into domain-specific registration modules (`src/mcp/tools/`): **auth** (2), **wallet** (5), **trade** (5), **staking** (8), and **lending** (7).
24
+ Upon initialization, the StarkFi server dynamically provisions **42 tool schemas** to the connected AI client. Tools are organized into domain-specific registration modules (`src/mcp/tools/`): **auth** (2), **wallet** (6), **trade** (5), **staking** (8), **lending** (10), **dca** (4), and **confidential** (7).
25
25
 
26
26
  ---
27
27
 
@@ -59,21 +59,23 @@ _No input parameters required._
59
59
 
60
60
  #### `get_swap_quote`
61
61
 
62
- Calculates optimal routing, expected output, and slippage prior to execution. Always call this **before** `swap_tokens` so the user can review the expected output.
62
+ Calculates swap routing via Fibrous (default). Returns the expected output amount and quote details. Optionally specify a different provider or use `auto` to race all providers for best price. Always call this **before** `swap_tokens` so the user can review the expected output.
63
63
 
64
64
  | Parameter | Type | Required | Description |
65
65
  | ------------ | ------ | -------- | ---------------------------------------------------- |
66
66
  | `amount` | string | **Yes** | Amount to swap (e.g. `0.1`, `100`) |
67
67
  | `from_token` | string | **Yes** | Source token symbol to sell (e.g. `ETH`, `USDC`) |
68
68
  | `to_token` | string | **Yes** | Destination token symbol to buy (e.g. `STRK`, `DAI`) |
69
+ | `provider` | string | No | Swap provider: `fibrous` (default), `avnu`, `ekubo`, or `auto` (race all). |
69
70
 
70
71
  #### `get_multi_swap_quote`
71
72
 
72
- Calculates optimal batch routing for 2-3 swap pairs at once. Uses Fibrous `routeBatch` API when all pairs share the same output token, otherwise falls back to parallel individual routes.
73
+ Calculates routing for 2-3 swap pairs at once. Each pair uses Fibrous by default, or specify a different provider.
73
74
 
74
- | Parameter | Type | Required | Description |
75
- | --------- | ------------------------------------------------------- | -------- | ------------------------------- |
76
- | `swaps` | array of `{ amount, from_token, to_token }` (2-3 items) | **Yes** | Array of swap pairs (2-3 items) |
75
+ | Parameter | Type | Required | Description |
76
+ | ---------- | ------------------------------------------------------- | -------- | ------------------------------- |
77
+ | `swaps` | array of `{ amount, from_token, to_token }` (2-3 items) | **Yes** | Array of swap pairs (2-3 items) |
78
+ | `provider` | string | No | Swap provider: `fibrous` (default), `avnu`, `ekubo`, or `auto` (race all per pair). |
77
79
 
78
80
  #### `list_validators`
79
81
 
@@ -107,7 +109,7 @@ Generates a consolidated staking dashboard across validators. Accepts an optiona
107
109
 
108
110
  #### `list_lending_pools`
109
111
 
110
- Enumerates active Vesu V2 lending pools with live data from the Vesu API — assets (with APY/APR), supported pairs, protocol version, and deprecation status.
112
+ Enumerates active Vesu V2 lending pools — assets (with APY/APR), supported pairs, and pool addresses.
111
113
 
112
114
  | Parameter | Type | Required | Description |
113
115
  | --------- | ------ | -------- | ------------------------------------------------------- |
@@ -123,6 +125,137 @@ Retrieves the user's supplied yield, outstanding debt, Health Factor, and Risk L
123
125
  | `collateral_token` | string | **Yes** | Collateral token symbol (e.g. `ETH`, `STRK`) |
124
126
  | `borrow_token` | string | No | Borrow token symbol (e.g. `USDC`, `USDT`). Optional for supply-only checks. |
125
127
 
128
+ #### `lending_quote_health`
129
+
130
+ Simulates the impact of a lending action (borrow, repay, deposit, withdraw) on position health factor **without executing**. Returns current and projected health.
131
+
132
+ | Parameter | Type | Required | Description |
133
+ | ------------------ | ------ | -------- | ------------------------------------------------------------- |
134
+ | `pool` | string | **Yes** | Pool name (e.g. `Prime`, `Re7`) or contract address (`0x...`) |
135
+ | `collateral_token` | string | **Yes** | Collateral token symbol (e.g. `ETH`, `STRK`) |
136
+ | `debt_token` | string | **Yes** | Debt token symbol (e.g. `USDC`, `USDT`) |
137
+ | `action` | enum | **Yes** | Action to simulate: `borrow`, `repay`, `deposit`, `withdraw` |
138
+ | `amount` | string | **Yes** | Amount for the action (e.g. `100`, `0.5`) |
139
+
140
+ ---
141
+
142
+ ### DCA (Dollar-Cost Averaging) Tools
143
+
144
+ #### `dca_preview`
145
+
146
+ Previews a single DCA cycle by estimating the swap output for one execution. Always call this **before** `dca_create` so the user can review the expected output per cycle.
147
+
148
+ | Parameter | Type | Required | Description |
149
+ | --------------- | ------ | -------- | --------------------------------------------------------- |
150
+ | `sell_token` | string | **Yes** | Token to sell (e.g. `USDC`, `ETH`) |
151
+ | `buy_token` | string | **Yes** | Token to buy (e.g. `STRK`, `ETH`) |
152
+ | `amount` | string | **Yes** | Amount to sell per cycle (e.g. `10`, `100`) |
153
+ | `provider` | string | No | DCA provider: `avnu` (default) or `ekubo` |
154
+
155
+ #### `dca_create`
156
+
157
+ Creates a recurring DCA order that automatically executes swaps at regular intervals. Only call this **after** previewing with `dca_preview`.
158
+
159
+ | Parameter | Type | Required | Description |
160
+ | ---------------- | ------- | -------- | --------------------------------------------------------- |
161
+ | `sell_token` | string | **Yes** | Token to sell (e.g. `USDC`, `ETH`) |
162
+ | `buy_token` | string | **Yes** | Token to buy (e.g. `STRK`, `ETH`) |
163
+ | `amount` | string | **Yes** | Total amount to sell across all cycles |
164
+ | `amount_per_cycle` | string | **Yes** | Amount sold per cycle (e.g. `10`) |
165
+ | `frequency` | string | No | ISO 8601 duration (default: `P1D`). E.g. `PT12H`, `P1W` |
166
+ | `provider` | string | No | DCA provider: `avnu` (default) or `ekubo` |
167
+ | `simulate` | boolean | No | Set `true` to estimate fees without sending a transaction |
168
+
169
+ #### `dca_list`
170
+
171
+ Lists the user's DCA orders with optional filtering by status and provider.
172
+
173
+ | Parameter | Type | Required | Description |
174
+ | ---------- | ------ | -------- | ---------------------------------------------------------- |
175
+ | `status` | string | No | Filter by status: `ACTIVE`, `CLOSED`, or `INDEXING` |
176
+ | `provider` | string | No | Filter by provider: `avnu` or `ekubo` |
177
+ | `page` | number | No | Page number for pagination (default: `0`) |
178
+
179
+ #### `dca_cancel`
180
+
181
+ Cancels an active DCA order. Requires either the order ID or order address.
182
+
183
+ | Parameter | Type | Required | Description |
184
+ | --------------- | ------- | -------- | --------------------------------------------------------- |
185
+ | `order_id` | string | No* | DCA order ID (from `dca_list`) |
186
+ | `order_address` | string | No* | DCA order contract address (`0x...`) |
187
+ | `provider` | string | No | DCA provider: `avnu` or `ekubo` |
188
+
189
+ \*At least one of `order_id` or `order_address` is required.
190
+
191
+ ---
192
+
193
+ ### Confidential Transfer Tools (Tongo Cash)
194
+
195
+ Privacy-preserving transfers using ZK proofs via Tongo. Amounts are hidden on-chain; recipients are identified by elliptic curve public keys (x, y), not Starknet addresses.
196
+
197
+ #### `confidential_setup`
198
+
199
+ Configures Tongo Cash credentials. The private key is stored locally and never sent to the network. Must be called before any other confidential operations.
200
+
201
+ | Parameter | Type | Required | Description |
202
+ | ------------------ | ------ | -------- | ------------------------------------------------------ |
203
+ | `tongo_key` | string | **Yes** | Tongo private key (kept locally, never sent to network) |
204
+ | `contract_address` | string | **Yes** | Tongo contract address on Starknet (`0x…`) |
205
+
206
+ #### `confidential_balance`
207
+
208
+ Returns the confidential account state: active balance, pending balance, nonce, and Tongo address. Call this before fund/transfer/withdraw to verify state.
209
+
210
+ _No input parameters required._
211
+
212
+ #### `confidential_fund`
213
+
214
+ Funds the confidential account by converting public ERC-20 tokens into private confidential balance.
215
+
216
+ | Parameter | Type | Required | Description |
217
+ | ---------- | ------- | -------- | --------------------------------------------------------- |
218
+ | `amount` | string | **Yes** | Amount to fund (e.g. `100`) |
219
+ | `token` | string | No | Token symbol (default: `USDC`) |
220
+ | `simulate` | boolean | No | Set `true` to estimate fees without sending a transaction |
221
+
222
+ #### `confidential_transfer`
223
+
224
+ Transfers tokens confidentially to another Tongo account. Generates ZK proofs locally and submits on-chain. Recipient is identified by elliptic curve point (x, y), NOT a Starknet address.
225
+
226
+ | Parameter | Type | Required | Description |
227
+ | ------------- | ------- | -------- | --------------------------------------------------------- |
228
+ | `amount` | string | **Yes** | Amount to transfer |
229
+ | `recipient_x` | string | **Yes** | Recipient public key X coordinate (BigNumberish) |
230
+ | `recipient_y` | string | **Yes** | Recipient public key Y coordinate (BigNumberish) |
231
+ | `token` | string | No | Token symbol (default: `USDC`) |
232
+ | `simulate` | boolean | No | Set `true` to estimate fees without sending a transaction |
233
+
234
+ #### `confidential_withdraw`
235
+
236
+ Withdraws from confidential account to a public Starknet address. Converts private balance back to public ERC-20 tokens.
237
+
238
+ | Parameter | Type | Required | Description |
239
+ | ---------- | ------- | -------- | --------------------------------------------------------- |
240
+ | `amount` | string | **Yes** | Amount to withdraw |
241
+ | `to` | string | No | Recipient Starknet address (default: own wallet) |
242
+ | `token` | string | No | Token symbol (default: `USDC`) |
243
+ | `simulate` | boolean | No | Set `true` to estimate fees without sending a transaction |
244
+
245
+ #### `confidential_ragequit`
246
+
247
+ Emergency exit — withdraws the entire confidential balance to a public address. Use when you need to exit immediately.
248
+
249
+ | Parameter | Type | Required | Description |
250
+ | --------- | ------ | -------- | ------------------------------------------------ |
251
+ | `to` | string | No | Recipient Starknet address (default: own wallet) |
252
+
253
+ #### `confidential_rollover`
254
+
255
+ Activates pending confidential balance. Received transfers start as "pending" and must be rolled over to become spendable.
256
+
257
+ _No input parameters required._
258
+
126
259
  ---
127
260
 
128
261
  ### Transactional Tools
@@ -137,7 +270,7 @@ _No input parameters required._
137
270
 
138
271
  #### `swap_tokens`
139
272
 
140
- Broadcasts an aggregated token swap transaction via the Fibrous router. Only call this **after** showing the user a quote via `get_swap_quote`.
273
+ Broadcasts a token swap transaction via Fibrous (default) or a specified provider. Only call this **after** showing the user a quote via `get_swap_quote`.
141
274
 
142
275
  | Parameter | Type | Required | Description |
143
276
  | ------------ | ------- | -------- | --------------------------------------------------------- |
@@ -145,6 +278,7 @@ Broadcasts an aggregated token swap transaction via the Fibrous router. Only cal
145
278
  | `from_token` | string | **Yes** | Source token symbol to sell (e.g. `ETH`, `STRK`) |
146
279
  | `to_token` | string | **Yes** | Destination token symbol to buy (e.g. `USDC`, `DAI`) |
147
280
  | `slippage` | number | No | Slippage tolerance in % (default: `1`) |
281
+ | `provider` | string | No | Swap provider: `fibrous` (default), `avnu`, `ekubo`, or `auto` (race all). |
148
282
  | `simulate` | boolean | No | Set `true` to estimate fees without sending a transaction |
149
283
 
150
284
  #### `send_tokens`
@@ -160,21 +294,22 @@ Broadcasts a standard token transfer transaction for STRK, ETH, or ERC-20 assets
160
294
 
161
295
  #### `multi_swap`
162
296
 
163
- Executes 2-3 token swaps in a single transaction via Fibrous batch routing. Call `get_multi_swap_quote` first to preview.
297
+ Executes 2-3 token swaps in a single transaction. Each pair uses Fibrous by default. Call `get_multi_swap_quote` first to preview.
164
298
 
165
299
  | Parameter | Type | Required | Description |
166
300
  | ---------- | ------------------------------------------------------- | -------- | --------------------------------------------- |
167
301
  | `swaps` | array of `{ amount, from_token, to_token }` (2-3 items) | **Yes** | Array of swap pairs (2-3 items) |
168
302
  | `slippage` | number | No | Slippage tolerance in % (default: `1`) |
303
+ | `provider` | string | No | Swap provider: `fibrous` (default), `avnu`, `ekubo`, or `auto` (race all per pair). |
169
304
  | `simulate` | boolean | No | Set `true` to estimate fees without executing |
170
305
 
171
306
  #### `batch_execute`
172
307
 
173
- Executes multiple DeFi operations (swap, stake, supply, send) in a single Starknet multicall. Minimum 2 operations.
308
+ Executes multiple DeFi operations (swap, stake, supply, send, borrow, repay, withdraw, dca-create, dca-cancel) in a single Starknet multicall. Minimum 2 operations.
174
309
 
175
310
  | Parameter | Type | Required | Description |
176
311
  | ------------ | ----------------------------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
177
- | `operations` | array of `{ type, params }` (min 2 items) | **Yes** | Each operation has a `type` (`swap`, `stake`, `supply`, `send`) and a `params` record. **swap**: `{amount, from_token, to_token}`. **stake**: `{amount, token?, pool? or validator?}`. **supply**: `{amount, token, pool}`. **send**: `{amount, token, to}`. |
312
+ | `operations` | array of `{ type, params }` (min 2 items) | **Yes** | Each operation has a `type` (`swap`, `stake`, `supply`, `send`, `borrow`, `repay`, `withdraw`, `dca-create`, `dca-cancel`) and a `params` record. **swap**: `{amount, from_token, to_token}`. **stake**: `{amount, token?, pool? or validator?}`. **supply**: `{amount, token, pool}`. **send**: `{amount, token, to}`. **borrow**: `{collateral_amount, collateral_token, borrow_amount, borrow_token, pool}`. **repay**: `{amount, token, collateral_token, pool}`. **withdraw**: `{amount, token, pool}`. **dca-create**: `{sell_token, buy_token, sell_amount, amount_per_cycle, frequency?, provider?}`. **dca-cancel**: `{order_id?, order_address?, provider?}`. |
178
313
  | `simulate` | boolean | No | Set `true` to estimate fees without executing |
179
314
 
180
315
  #### `stake_tokens`
@@ -216,13 +351,14 @@ Atomically claims staking rewards and re-stakes them into the same pool in a sin
216
351
 
217
352
  #### `supply_assets`
218
353
 
219
- Deposits specified assets into a Vesu V2 pool to generate yield. The tokens are deposited into the pool's ERC-4626 vToken vault.
354
+ Deposits specified assets into a Vesu V2 pool to generate yield.
220
355
 
221
356
  | Parameter | Type | Required | Description |
222
357
  | --------- | ------ | -------- | ------------------------------------------------------------- |
223
- | `pool` | string | **Yes** | Pool name (e.g. `Prime`, `Re7`) or contract address (`0x...`) |
224
- | `amount` | string | **Yes** | Amount to supply (e.g. `100`, `0.5`) |
225
- | `token` | string | **Yes** | Token symbol to supply (e.g. `STRK`, `ETH`, `USDC`) |
358
+ | `pool` | string | **Yes** | Pool name (e.g. `Prime`, `Re7`) or contract address (`0x...`) |
359
+ | `amount` | string | **Yes** | Amount to supply (e.g. `100`, `0.5`) |
360
+ | `token` | string | **Yes** | Token symbol to supply (e.g. `STRK`, `ETH`, `USDC`) |
361
+ | `simulate`| boolean | No | Set `true` to estimate fees without sending a transaction |
226
362
 
227
363
  #### `withdraw_assets`
228
364
 
@@ -230,13 +366,14 @@ Redeems supplied assets from a Vesu V2 lending pool.
230
366
 
231
367
  | Parameter | Type | Required | Description |
232
368
  | --------- | ------ | -------- | ------------------------------------------------------------- |
233
- | `pool` | string | **Yes** | Pool name (e.g. `Prime`, `Re7`) or contract address (`0x...`) |
234
- | `amount` | string | **Yes** | Amount to withdraw (e.g. `100`, `0.5`) |
235
- | `token` | string | **Yes** | Token symbol to withdraw (e.g. `STRK`, `ETH`, `USDC`) |
369
+ | `pool` | string | **Yes** | Pool name (e.g. `Prime`, `Re7`) or contract address (`0x...`) |
370
+ | `amount` | string | **Yes** | Amount to withdraw (e.g. `100`, `0.5`) |
371
+ | `token` | string | **Yes** | Token symbol to withdraw (e.g. `STRK`, `ETH`, `USDC`) |
372
+ | `simulate`| boolean | No | Set `true` to estimate fees without sending a transaction |
236
373
 
237
374
  #### `borrow_assets`
238
375
 
239
- Executes an atomic collateral deposit and subsequent asset borrow against a Vesu V2 pool. Supports using previously supplied vTokens as collateral.
376
+ Executes an atomic collateral deposit and subsequent asset borrow against a Vesu V2 pool. Supports using previously supplied earn positions as collateral.
240
377
 
241
378
  | Parameter | Type | Required | Description |
242
379
  | ------------------- | ------- | -------- | ------------------------------------------------------------------------- |
@@ -245,7 +382,8 @@ Executes an atomic collateral deposit and subsequent asset borrow against a Vesu
245
382
  | `collateral_token` | string | **Yes** | Collateral token symbol (e.g. `STRK`, `ETH`) |
246
383
  | `borrow_amount` | string | **Yes** | Amount to borrow (e.g. `100`) |
247
384
  | `borrow_token` | string | **Yes** | Token to borrow (e.g. `USDC`, `USDT`) |
248
- | `use_supplied` | boolean | No | Set `true` to use previously supplied vTokens as collateral via multicall |
385
+ | `use_supplied` | boolean | No | Set `true` to use previously supplied earn position as collateral via multicall |
386
+ | `simulate` | boolean | No | Set `true` to estimate fees without sending a transaction |
249
387
 
250
388
  #### `repay_debt`
251
389
 
@@ -256,7 +394,8 @@ Processes the repayment of borrowed assets against an existing Vesu V2 position.
256
394
  | `pool` | string | **Yes** | Pool name (e.g. `Prime`, `Re7`) or contract address (`0x...`) |
257
395
  | `amount` | string | **Yes** | Amount to repay (e.g. `50`, `100`) |
258
396
  | `token` | string | **Yes** | Token to repay (e.g. `USDC`, `USDT`) |
259
- | `collateral_token` | string | **Yes** | Collateral token of the position (e.g. `ETH`, `STRK`). Needed to identify the position. |
397
+ | `collateral_token` | string | **Yes** | Collateral token of the position (e.g. `ETH`, `STRK`). Needed to identify the position. |
398
+ | `simulate` | boolean | No | Set `true` to estimate fees without sending a transaction |
260
399
 
261
400
  #### `close_position`
262
401
 
@@ -265,8 +404,43 @@ Atomically closes an active Vesu V2 lending position. Repays all outstanding deb
265
404
  | Parameter | Type | Required | Description |
266
405
  | ------------------ | ------ | -------- | ------------------------------------------------------------- |
267
406
  | `pool` | string | **Yes** | Pool name (e.g. `Prime`, `Re7`) or contract address (`0x...`) |
268
- | `collateral_token` | string | **Yes** | Collateral token symbol of the position (e.g. `STRK`, `ETH`) |
269
- | `debt_token` | string | **Yes** | Borrowed token symbol of the position (e.g. `USDC`, `USDT`) |
407
+ | `collateral_token` | string | **Yes** | Collateral token symbol of the position (e.g. `STRK`, `ETH`) |
408
+ | `debt_token` | string | **Yes** | Borrowed token symbol of the position (e.g. `USDC`, `USDT`) |
409
+ | `simulate` | boolean | No | Set `true` to estimate fees without sending a transaction |
410
+
411
+ #### `monitor_lending_position`
412
+
413
+ Monitors health factors across lending positions. Returns alerts and actionable recommendations when health factor drops below configurable thresholds.
414
+
415
+ | Parameter | Type | Required | Description |
416
+ | ------------------- | ------ | -------- | -------------------------------------------------------------------------------- |
417
+ | `pool` | string | No | Pool name or address. Omit to scan all pools for active borrow positions. |
418
+ | `collateral_token` | string | No | Collateral token symbol. Required when specifying a pool. |
419
+ | `borrow_token` | string | No | Debt token symbol. Required when specifying a pool. |
420
+ | `warning_threshold` | number | No | Custom warning threshold (default: `1.3`). |
421
+
422
+ #### `auto_rebalance_lending`
423
+
424
+ Automatically adjusts a lending position to restore health factor via debt repayment or additional collateral. Supports simulation mode.
425
+
426
+ | Parameter | Type | Required | Description |
427
+ | ---------------------- | ------- | -------- | ------------------------------------------------------------------------ |
428
+ | `pool` | string | **Yes** | Pool name or address |
429
+ | `collateral_token` | string | **Yes** | Collateral token symbol |
430
+ | `borrow_token` | string | **Yes** | Debt token symbol |
431
+ | `strategy` | enum | No | `repay`, `add-collateral`, or `auto` (default: `auto`) |
432
+ | `target_health_factor` | number | No | Target health factor (default: `1.3`) |
433
+ | `simulate` | boolean | No | Set `true` to preview adjustment without executing |
434
+
435
+ #### `rebalance_portfolio`
436
+
437
+ Rebalances a portfolio to match a target allocation. Calculates optimal swaps and executes as a single batch transaction via Fibrous (default).
438
+
439
+ | Parameter | Type | Required | Description |
440
+ | ----------- | ------- | -------- | ----------------------------------------------------------------- |
441
+ | `target` | string | **Yes** | Target allocation, e.g. `"50 ETH, 30 USDC, 20 STRK"` |
442
+ | `slippage` | number | No | Slippage tolerance % (default: `1`) |
443
+ | `simulate` | boolean | No | Set `true` to preview plan without executing |
270
444
 
271
445
  ---
272
446
 
@@ -274,19 +448,22 @@ Atomically closes an active Vesu V2 lending position. Repays all outstanding deb
274
448
 
275
449
  #### `config_action`
276
450
 
277
- Views and modifies global CLI behavior: RPC routing, network selection, and Gas Abstraction.
451
+ Views and modifies global CLI behavior: RPC routing, network selection, and Gas Abstraction. Network changes take effect immediately — no re-authentication required.
278
452
 
279
453
  | Parameter | Type | Required | Description |
280
454
  | --------- | ------ | -------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
281
455
  | `action` | enum | **Yes** | One of: `list`, `reset`, `set-rpc`, `get-rpc`, `set-network`, `set-gasfree`, `set-gas-token` |
282
- | `value` | string | No | `set-gasfree`: `on`/`off`. `set-gas-token`: symbol (`USDC`, `ETH`) or `reset`/`off`. `set-rpc`: URL string. `set-network`: `mainnet`/`sepolia`. |
456
+ | `value` | string | No | `set-gasfree`: `on`/`off`. `set-gas-token`: symbol (`USDC`, `ETH`) or `reset`/`off`. `set-rpc`: URL string. `set-network`: `mainnet`/`sepolia` (instant switch, overrides session). |
283
457
 
284
458
  ---
285
459
 
286
460
  ## Agent Best Practices
287
461
 
288
- 1. **Always quote before executing** — Call `get_swap_quote` before `swap_tokens`, and `get_multi_swap_quote` before `multi_swap`
462
+ 1. **Always quote before executing** — Call `get_swap_quote` before `swap_tokens`, `get_multi_swap_quote` before `multi_swap`, and `dca_preview` before `dca_create`
289
463
  2. **Use simulation for transparency** — Set `simulate: true` on any transactional tool to preview fees before executing
290
464
  3. **Confirm with the user** — Never execute a transactional tool without explicit user confirmation
291
465
  4. **Use `get_auth_status` first** — Verify the session is active before attempting any wallet operations
292
- 5. **Check `get_stake_status` and `get_lending_position`** Query existing positions before staking/lending to avoid duplicate operations
466
+ 5. **Check existing positions** — Query `get_stake_status`, `get_lending_position`, and `dca_list` before creating new positions to avoid duplicates
467
+ 6. **Network awareness** — Use `config_action` with `set-network` to switch between `mainnet` and `sepolia`. Lending, staking, batch, portfolio, and wallet tools are fully network-aware. Swap tools (`swap_tokens`, `multi_swap`, `rebalance_portfolio`) are mainnet-only
468
+ 7. **DCA lifecycle** — Always preview with `dca_preview` first, list existing orders with `dca_list` to avoid duplicates, and confirm cancellation before calling `dca_cancel`
469
+ 8. **Confidential lifecycle** — Always call `confidential_setup` and `confidential_balance` before transactional operations. After receiving a transfer, remind the user to `confidential_rollover` to activate pending balance