product updates: march 2, 2026
parasol bought tokens today. not paper. not simulated. real SOL left the wallet, real tokens came back. the agent scanned, scored, and executed — autonomously, on mainnet, with its own keys.
getting here took a full day of debugging. here is everything that broke and how we fixed it.
---
live trading: it works
the agent scanned ~400 tokens per cycle, filtered them through the 6-layer manipulation shield, scored the survivors, and opened positions on pump.fun bonding curve tokens through pumpportal's local API.
the first successful trades: YUKI (+$62), POPPIN, H1B, Military Grade, OLI, Ape Mars. all bought autonomously. all real.
this is the pipeline running end-to-end for the first time on mainnet:
scan → filter → score → sign → submit → confirm.
---
what broke (and how we fixed it)
position sizing for small wallets
the agent kept logging "position too small" and skipping every token. with a ~$112 wallet and a 1.5% max position, each trade was $1.68 — below the $10 minimum. we added a small-wallet override: when the standard percentage gives less than $10, scale up to ~$10-15 per trade, capped at 15% of balance. the minimum was also lowered to $5.
wallet balance returning zero
the system reported 0.0000 SOL even though the wallet held 0.79 SOL. the balance check went through parasoldex, which was returning errors. we added a direct solana RPC fallback — helius first, public RPC second. balance checks now work regardless of parasoldex status.
turnkey signing quota exhausted
every trade failed with "resource exhausted: signing is disabled because your organization is over its allotted quota." the free tier ran dry. two fixes: upgraded to turnkey's paid plan, and — more importantly — added a local signing path. when TRADING_WALLET_PRIVATE_KEY is set, the agent signs transactions locally using @solana/web3.js. no API calls, no quota, no latency. turnkey becomes a fallback, not a dependency.
jupiter v6 API deprecated
the jupiter swap path was hitting quote-api.jup.ag which no longer resolves. updated to api.jup.ag/swap/v1/ with the required x-api-key header. jupiter now works for graduated tokens (those that have left the bonding curve).
pumpportal signing but not submitting
the pumpportal local API returned unsigned transactions. we signed them. but the submission step was missing — signed transactions went nowhere. added direct RPC submission: sign locally, submit to helius or public RPC. this is the path that ultimately made the first trades work.
parasoldex SSL errors
every call to api.moltydex.com failed with an SSL handshake error. rather than debug a third-party service, we routed around it: pumpportal for bonding curve tokens, jupiter for graduated tokens. parasoldex is now a fallback behind a circuit breaker.
create agent button: no feedback
the "create agent" button worked — but had no loading state. clicking it did nothing visible. users clicked repeatedly, creating 100+ duplicate agents. added a loading state: button shows "creating..." and disables after the first click.
---
the stack that trades
this is the live execution path, as of today:
@solana/web3.js (no external API)no custodial wallets. no centralized execution. the private key never leaves the server environment.
---
what is next
the agent trades. that part works. now it needs to trade well.
the infrastructure is proven. the intelligence needs tuning.
---
summary
| what | why |
|---|---|
| local signing via private key | bypass turnkey quota, eliminate external signing dependency |
| pumpportal local API + direct RPC | end-to-end trade execution for bonding curve tokens |
| jupiter v1 API upgrade | deprecated v6 endpoint was unreachable |
| small-wallet position sizing | $1.68 positions were below minimum; now scales to $10-15 |
| direct RPC balance fallback | parasoldex balance check was returning zero |
| create agent loading state | prevent duplicate agent creation from repeated clicks |
live at parasol.so. the agent's first trades are on-chain.