bullpen solana stats¶
Last updated: July 13, 2026
Show Solana PnL, volume, and closed-position stats
Usage¶
Subcommands¶
| Subcommand | Description |
|---|---|
closed-positions |
Show closed Solana token positions sorted by realized PnL |
Live Help¶
Show Solana PnL, volume, and closed-position stats
Usage: bullpen solana stats [OPTIONS] [COMMAND]
Commands:
closed-positions Show closed Solana token positions sorted by realized PnL
help Print this message or the help of the given subcommand(s)
Options:
--output <OUTPUT>
Output format for command results
[possible values: table, json]
--env <ENV>
Target environment to connect to (overrides config.toml)
[env: BULLPEN_ENV=]
[possible values: staging, production]
--window <WINDOW>
Time window for swap aggregation (1d, 7d, 30d, 90d, or all)
[default: 30d]
--config <CONFIG>
Path to a custom config.toml file (overrides $BULLPEN_CONFIG and the default location).
Explicit --config and BULLPEN_CONFIG paths fail closed: if the file is missing, the CLI exits validation instead of silently loading defaults. Credentials still resolve via BULLPEN_HOME, so set BULLPEN_HOME too when isolating a session.
--mint <MINT>
Restrict stats to one SPL token mint
--include-closed-positions
Include closed positions in table output
--refresh
Refresh the upstream chain PnL cache before fetching
--read-only
Enable read-only mode: blocks all mutating commands
--non-interactive
Suppress interactive prompts; does NOT imply --yes for money-moving commands
[env: BULLPEN_NON_INTERACTIVE=]
-h, --help
Print help (see a summary with '-h')
EXAMPLES:
# Show Solana stats for the default 30d window
bullpen solana stats
# Show all-time Solana stats
bullpen solana stats --window all
# Show 90d Solana stats
bullpen solana stats --window 90d
# Show closed Solana positions
bullpen solana stats closed-positions
# Export Solana stats as JSON
bullpen solana stats --output json
Example Commands¶
bullpen solana stats
bullpen solana stats --window all
bullpen solana stats --window 90d
bullpen solana stats closed-positions
bullpen solana stats --output json
bullpen solana stats --help
JSON Output¶
Contract: JSON Output Contract.
Successful output is a single JSON document. The shape below is representative for this command family; commands may add fields without breaking the shared contract.
Schema version: 1 when a command emits schema_version; otherwise treat the current command shape as contract version 1.
Top-level Keys¶
| key | type | nullable | notes |
|---|---|---|---|
address |
string | no | Bullpen Solana wallet address whose stats were queried |
chain |
string | no | Always solana |
window |
string | no | Selected aggregation window: 1d, 7d, 30d, 90d, or all |
mint |
string | yes | SPL mint filter when supplied |
window_start_unix_secs |
integer | yes | Window lower bound; null for all |
window_end_unix_secs |
integer | no | Window upper bound used for the query |
chain_pnl |
object | no | Chain-level or mint-filtered realized/unrealized PnL and volume summary |
window_stats |
object | no | Cursor-paginated Bullpen swap PnL/volume aggregation |
thirty_day_volume |
object | no | Current 30d volume and delta vs the prior 30d window |
closed_positions |
array | no | All-time zero-balance positions sorted by realized PnL |
closed_positions_scope |
string | no | Currently all_time |
include_closed_positions |
boolean | no | Whether table mode requested expanded closed positions |
fetched_at_unix_secs |
integer | no | Local fetch timestamp |
Example¶
Example JSON output
{
"address": "7qRkWTrM4DLpmeSnB8xT8p8mpqLQ9JdYatYczS4u1G8e",
"chain": "solana",
"window": "30d",
"mint": null,
"window_start_unix_secs": 1777328575,
"window_end_unix_secs": 1779920575,
"chain_pnl": {
"realized_pnl_usd": "42.5",
"unrealized_pnl_usd": "3.25",
"buy_volume_usd": "500",
"sell_volume_usd": "550",
"total_volume_usd": "1050",
"tokens_held": 3,
"biggest_win_usd": "25"
},
"window_stats": {
"pnl_usd": "12.5",
"volume_usd": "250",
"biggest_win_usd": "8",
"tx_count": 4,
"page_count": 1,
"truncated": false
},
"thirty_day_volume": {
"value_usd": "250",
"delta_usd": "50",
"percent_delta_pct": "25"
},
"closed_positions": [
{
"mint": "So11111111111111111111111111111111111111112",
"balance": "0",
"realized_pnl_usd": "25",
"unrealized_pnl_usd": "0",
"buy_volume_usd": "100",
"sell_volume_usd": "125",
"buy_count": 2,
"sell_count": 1,
"realized_pnl_pct": "25"
}
],
"closed_positions_scope": "all_time",
"include_closed_positions": false,
"fetched_at_unix_secs": 1779920575
}
Stability¶
Patch releases may add nullable or optional fields. Minor releases may add required fields or increment schema_version. Major releases may remove or rename fields.