# stake-availability (/docs/query/stake-availability)

`locked` is conviction-locked mass (plus any miner collateral reserved
against the coldkey on that subnet). `available` is what can still be
unstaked or transferred without moving lock mass. Both are denominated in
the subnet's own currency (TAO on netuid 0).

**Category:** Staking

## Parameters [#parameters]

| Parameter      | Type    | Description                              |
| -------------- | ------- | ---------------------------------------- |
| `coldkey_ss58` | string  | Coldkey whose free/locked stake to read. |
| `netuid`       | integer | Subnet to query.                         |

## CLI [#cli]

```bash
btcli query stake-availability --coldkey <ss58|name> --netuid <integer> --json
```

## Python [#python]

Namespace method (autocomplete, signature help):

```python
import bittensor as bt

sub = bt.Subtensor()
result = sub.staking.stake_availability(coldkey_ss58="5F...", netuid=1)
```

Or dispatch by name, as an agent would:

```python
result = sub.read("stake_availability", coldkey_ss58="5F...", netuid=1)
```

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

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

* Runtime API [`StakeInfoRuntimeApi.get_stake_availability_for_coldkeys`](/code/pallets/subtensor/src/rpc_info/stake_info.rs#L153-L207)

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