Trading Dashboard
Monitor every open position, watch your PnL in real time, and manage DCA strategies — all from a single unified view.
What is this?
The Trading Dashboard (/studio/trading) is your cross-bot command center for live trading activity. It aggregates positions and orders from every bot connected to your account and presents them in one place. You can check your total equity, see realized gains and losses, and manage dollar-cost averaging without opening each bot individually.
Prerequisites
Before you can see data in the Trading Dashboard, you need:
- At least one bot created in Studio (see Your First Bot)
- A primary wallet set for the chain you want to trade on (see Wallet Management)
- At least one completed trade — the dashboard shows live data only; there is no synthetic demo mode
How to reach the Trading Dashboard
- Sign in to your Balchemy account at app.balchemy.ai.
- Click Trading in the left sidebar under the Studio section.
- The dashboard loads your positions, PnL, and open orders automatically.
How trading works
When a bot decides to trade, the request flows through a strict pipeline before any on-chain action happens:
- Intent — Your bot (or you via chat) sends a trade request.
- Pre-trade report — The system runs security checks (RugCheck for Solana, GoPlus/Honeypot for EVM) and fetches a live quote from the aggregator.
- Policy check — Risk limits (max drawdown, daily loss limit, position size) are evaluated. If any limit would be breached, the trade is rejected before it reaches the chain.
- Execution — The trading engine submits the signed transaction to the network.
- Verification — The callback confirms the on-chain result and updates the order status.
- Notification — If you have trading notifications enabled, you receive an alert.
Tip: You can review the full execution timeline for any order by clicking a row in the Trading Dashboard and opening the Order Details drawer.
Dashboard sections
KPI strip
The top row shows four live metrics:
| Metric | What it means |
|---|---|
| Total Equity | Sum of all position values at current market price |
| 24h PnL | Realized profit/loss over the last 24 hours |
| Active Positions | Number of open token positions across all bots |
| Open Orders | Number of orders in pending, queued, or submitted state |
PnL is shown in green when positive and red when negative. Both the value and the sign (+/−) update automatically via the real-time trading socket — you do not need to refresh the page.
PnL Overview chart
Below the KPI strip, a line chart plots cumulative realized PnL over time. Data points are derived from the last 30 trade timestamps. If fewer than two trades have completed, the chart is hidden until there is enough history to draw a meaningful line.
Positions table
The Positions table lists every open token position aggregated across all bots:
- Token — Symbol of the held token
- Chain — Solana or EVM (Base)
- Amount — Net token quantity held
- Entry Price — Volume-weighted average entry price
- Current Price — Live price from the trading engine
- PnL % — Unrealized percentage gain/loss since entry
- PnL $ — Unrealized dollar gain/loss since entry
Warning: Current prices are sourced from the trading engine cache and may lag by up to 30 seconds during high network load. Do not use these values for time-sensitive decisions without cross-referencing a live exchange feed.
Open Orders table
Pending and in-flight orders are shown here in real time. Each row includes the order ID (truncated for readability — hover to see the full ID), trading pair, chain, order type, status badge, and creation timestamp.
Order status values:
| Status | Meaning |
|---|---|
| Pending | Received by the system, awaiting policy check |
| Queued | Passed policy checks, waiting in execution queue |
| Submitted | Sent to the network, awaiting on-chain confirmation |
| Filled | Fully executed on-chain |
| Partially Filled | Some but not all of the order quantity was filled |
| Cancelled | Cancelled before execution |
| Failed | Execution attempted but rejected by the chain |
| Expired | Limit order reached its TTL without being matched |
DCA Strategy section
If you have an active Dollar-Cost Averaging strategy configured, a dedicated section appears below the orders table. It shows:
- Status — Active (running) or Paused
- Total Orders — How many DCA buys have executed in this strategy
- Total Volume — Cumulative USD value of all DCA purchases
- Next Execution — Scheduled timestamp for the next buy
You can pause or resume DCA directly from this section without navigating away. For the full DCA management view with per-strategy breakdown and the investment chart, visit /studio/trading/dca.
Step-by-step: reviewing an order in detail
- From the Trading Dashboard, locate the order in the Open Orders or Positions table.
- Click any row — a detail drawer slides in from the right.
- In the drawer, review the Execution Timeline: each step (Previewed → Queued → Submitted → Filled) shows a timestamp and status icon.
- If the order failed, the timeline shows the error reason at the Failed step.
- Scroll down to Raw Data and click to expand a JSON view of the full order record. Use the copy button to copy it to your clipboard.
- Close the drawer with the X button or by pressing Escape.
Trading settings
Global trading configuration lives at /studio/trading/settings (Settings in the sidebar under Trading). From there you can adjust:
- Risk limits — Max drawdown, max position size, risk per trade, daily loss limit
- Trade defaults — Default order type (market / limit / auto), default slippage tolerance
- Pool preferences — Preferred DEXes (Raydium, Orca, Jupiter, Meteora), minimum pool liquidity, max pool slippage
- Token watchlist — Favorite tokens your bot monitors with priority
- Token blacklist — Tokens the AI will never trade regardless of signals
- Trading notifications — Toggle per-event alerts (trade executed, order filled, stop-loss triggered, etc.)
See Trading Settings for a full walkthrough.
Real-time updates
The dashboard connects to the trading WebSocket on page load. You will see order statuses change live as the engine processes them — no manual refresh required. If the socket disconnects, the page falls back to polling and shows a subtle reconnecting indicator.
Tips and warnings
Tip: Sort any column in the Positions or Orders table by clicking the column header. Click again to reverse direction. A third click removes the sort and returns to insertion order.
Tip: Use the Trading Dashboard as a quick sanity check before adjusting a bot's strategy. If you see an unexpectedly large position, navigate to that bot's cockpit to investigate the strategy parameters.
Warning: Cancelling an order from the dashboard is not yet supported for Solana orders that have already been submitted to the network. Once a Solana transaction is broadcast, it cannot be recalled.
Warning: PnL figures shown here reflect the trading engine's position tracker, which is updated after each verified on-chain trade. They are not guaranteed to match the exact value a DEX would show for the same position at a given moment due to price feed differences.
Common issues
Dashboard shows "No active trading activity" but I have bots running.
Your bots may not have placed any trades yet. Open a bot's chat at /studio/chat/[botId] and ask it to check the current market or place a test trade. Trades appear in the dashboard within a few seconds of on-chain confirmation.
Positions table shows a position I already sold. The trading engine position tracker uses net amounts. A position closes when net amount reaches zero across all buys and sells. If you see a stale entry, it means the closing trade has not yet been confirmed or the aggregation is still processing. Wait 60 seconds and refresh.
Open Orders count does not match what I see in Trade History.
Trade History (/studio/trades) shows all orders across all statuses and all time. The Trading Dashboard's Open Orders section shows only currently active orders (pending, queued, submitted). The counts will differ.
PnL chart is empty. The chart requires at least two completed trades with different timestamps to draw a line. After your first two trades are filled, the chart will appear automatically.
Real-time updates stopped working. Check your network connection. If you are on a corporate VPN or firewall that blocks WebSocket connections, the dashboard will fall back to polling at 30-second intervals. You will still see updated data, but changes will arrive less frequently.
Related pages
- Trade History — Full filterable history of every order across all statuses
- Portfolio — Per-asset allocation breakdown and risk concentration charts
- Wallet Management — Connect and manage Solana and EVM wallets
- Solana Trading — How Solana trades are executed via Jupiter
- EVM Trading — How Base/EVM trades are executed via 0x
- DCA Management — Dollar-cost averaging strategies in detail