Skip to main content
The Portfolio provides a unified view of balances and performance across all connected exchanges and accounts.

Portfolio State

Fetch current balances:
curl -u admin:admin -X POST http://localhost:8000/portfolio/state \
  -H "Content-Type: application/json" \
  -d '{}'
Response:
{
  "master_account": {
    "binance": {
      "BTC": {
        "units": 0.5,
        "price": 65000.0,
        "value": 32500.0
      },
      "USDT": {
        "units": 10000.0,
        "price": 1.0,
        "value": 10000.0
      }
    },
    "hyperliquid_perpetual": {
      "USDC": {
        "units": 5000.0,
        "price": 1.0,
        "value": 5000.0
      }
    }
  }
}

Filtering by Account

Request specific accounts:
curl -u admin:admin -X POST http://localhost:8000/portfolio/state \
  -H "Content-Type: application/json" \
  -d '{"account_names": ["master_account"]}'

Filtering by Connector

Request specific connectors:
curl -u admin:admin -X POST http://localhost:8000/portfolio/state \
  -H "Content-Type: application/json" \
  -d '{"connector_names": ["binance", "binance_perpetual"]}'

Via Telegram

Use /portfolio to view:

Dashboard Features

  • Total Value: Aggregated portfolio value in USD
  • 24h Change: Portfolio value change over last 24 hours
  • Distribution: Visual breakdown by asset and exchange

Token Holdings

View current balances with:
  • Token amount
  • Current price
  • USD value
  • 24h price change

Position Monitoring

For perpetual accounts:
  • Open positions with entry price
  • Unrealized P&L
  • Leverage and liquidation price

Time Periods

Analyze performance over:
  • 24 hours
  • 7 days
  • 30 days
  • Custom ranges

Portfolio Metrics

MetricDescription
Total ValueSum of all holdings in quote currency
Unrealized P&LMark-to-market value of open positions
Realized P&LLocked-in P&L from closed positions
24h VolumeTrading volume over last 24 hours

Refresh

Balances are fetched in real-time from exchanges. Use the refresh button in Telegram or call the API again for updated data.
Some exchanges have rate limits on balance queries. The API caches results briefly to avoid hitting limits.