# validator-basket-summary (/docs/query/validator-basket-summary)

Valuation (realizable NAV and spot NAV), lifetime deposited/redeemed TAO
and the lifetime return multiple `(nav + redeemed) / deposited`, the
validator's root weight vector, the per-subnet alpha holdings each
valued at spot and at realizable depth, and `basket_rate` — the
cumulative β raw units minted per rao of root stake (a lifetime
accumulator that includes migration-seeded history). For staker returns
use `chain_pricing` (`staker_twr` / `stake_price` ratios), not rate
deltas. All figures are TAO (or alpha for the holdings themselves).

**Category:** Staking

## Parameters [#parameters]

| Parameter     | Type   | Description                                 |
| ------------- | ------ | ------------------------------------------- |
| `hotkey_ss58` | string | Validator hotkey whose basket to summarize. |

## CLI [#cli]

```bash
btcli query validator-basket-summary --hotkey <ss58|name> --json
```

## Python [#python]

Namespace method (autocomplete, signature help):

```python
import bittensor as bt

sub = bt.Subtensor()
result = sub.staking.validator_basket_summary(hotkey_ss58="5F...")
```

Or dispatch by name, as an agent would:

```python
result = sub.read("validator_basket_summary", hotkey_ss58="5F...")
```

Async is the same surface awaited: `async with bt.Subtensor() as client:`.

## On-chain implementation [#on-chain-implementation]

* Storage [`SubtensorModule.BasketRate`](/code/pallets/subtensor/src/lib.rs#L3017)
* Runtime API [`BetaBasketRuntimeApi.get_validator_basket_summary`](/code/pallets/subtensor/src/rpc_info/basket_info.rs#L179-L208)

Every file is browsable under [/code](/code) exactly as built into the runtime.
