product updates: march 11, 2026
seven days of live trading on the books. we have real numbers to share, a fee system that now actually works, and a stack of improvements driven by what we're seeing in production. here's everything.
---
the numbers: one week of real money trading
parasol went live with real SOL one week ago. here's where we are:
| live trades executed | 3,530 |
| unique live trading wallets | 12 |
| open volume | $19,365 |
| realized PnL | +$760 |
| win rate | 39.6% |
that last number needs context. 39.6% win rate sounds like most trades lose — but the average winner returned +$3.38 and the average loser only cost -$2.10. positive expectancy. the goal isn't to win every trade, it's to make sure the wins are bigger than the losses. so far, they are.
paper trading has been running for four days alongside live, logging 7,376 simulated trades. the agents are clearly less sharp in paper mode — lower win rate, more loss — which tells us the live trading execution is adding real edge from timing and slippage management. paper trading remains useful for testing new configurations before committing real SOL.
---
fee collection: fully hardened
the 0.5% platform fee was shipping on buy transactions but unreliably. three separate root causes, all fixed:
problem 1: rate limit blip permanently disabled fees. isFeeWalletReady() cached the result once on startup. if that first check hit a Helius -32429 rate limit error, fees were silently disabled for the rest of the session — not just until the next retry, forever. the fix: leave the cache as unknown on error so the next trade re-checks.
problem 2: fee transaction blockhash had no retry. on a brief rate limit window, the separate fee transaction couldn't get a fresh blockhash and failed silently. added retry logic (500ms → 1200ms → 2500ms backoff) specifically for the blockhash fetch.
problem 3: pump.fun fee errors were completely swallowed. pump.fun uses a separate fee-collection path from Jupiter. errors on that path were caught and discarded with .catch(() => {}) — no log, no trace, no alert. changed to console.warn so failures are visible.
fee collection is now confirmed working end-to-end across all four trading paths (PumpPortal, Jupiter, Jupiter-Direct, ParasolDEX).
---
sienna's safety improvements — driven by live data
we ran a full analysis of every Sienna trade since launch: 208 live closes, broken down by exit type.
the results were instructive:
| exit type | W/L | PnL |
|---|---|---|
| take profit | 20W / 0L | +$166 ✅ |
| trailing stop | 36W / 1L | +$134 ✅ |
| loss cap | 0W / 46L | -$157 ❌ |
the TP and trailing stop logic is working exactly as designed. the problem is the loss cap. 46 trades hit the cap, every single one a loss, accounting for the bulk of total losses.
the root cause: tokens that rug don't bleed slowly. they collapse within a single 45-second polling cycle — meaning by the time the price is checked, the token has already dropped 80-85% rather than the intended 20%. you can't catch a rug with a polling-based stop.
the only real defense is better entry filtering. we tightened Sienna's criteria:
the TP and trailing stop levels are untouched — they're working.
---
sell retry: escalating delays and auto write-off
when a live sell fails, the position used to retry every two minutes indefinitely. a position that couldn't sell would stay stuck in the SELL FAILED state until manually resolved.
the new logic:
the UI badge now shows progress: SELL FAILED (3/5) so you can see how many attempts have been made. after the fifth attempt, the position is written off automatically — no manual cleanup required.
---
scanner: fresh token rotation every cycle
the most common feedback from this week was "i keep seeing the same coins." it was accurate.
two root causes: the discovery API caches were set to 3 minutes, and there was no mechanism to prevent the same tokens from appearing in consecutive scan results. every 45-second cycle was surfacing the same trending pool.
three fixes:
the net effect: each scan cycle now surfaces a meaningfully different set of candidates than the previous one.
---
sell half added to wallet holdings
the wallet holdings section (tokens in your wallet not managed by an agent) now has a SELL ½ button alongside the existing SELL button. sends 50% of the position via the same execution path as a full sell. both buttons disable while either operation is in progress to prevent double execution.
useful for taking partial profits on positions you entered manually or that were left over after an agent partial exit.
---
orca pools blocked
tokens trading on Orca pools are now filtered out of scan results. Orca has been moved from the trusted DEX list to the blocked list alongside Meteora.
the reasoning: Orca pools are concentrated liquidity (Whirlpools). entry and exit prices on CL pools are notoriously unpredictable for the execution sizes and speed the agents operate at. the risk/reward of trading Orca tokens doesn't fit the current agent strategy. pumpswap, raydium, and pumpfun pools remain fully supported.
---
what's next
stay sharp. parasol keeps you covered.