# update-crowdloan-cap (/docs/tx/update-crowdloan-cap)

Raises or lowers the total the crowdloan can collect. Only the creator may
change it, and only while the loan has not been finalized. Reaching the
(new) cap is what allows the creator to finalize.

| Signer    | Pallet    | Wraps                  |
| --------- | --------- | ---------------------- |
| `coldkey` | Crowdloan | `Crowdloan.update_cap` |

## Parameters [#parameters]

| Parameter      | Type              | Required | Description                                                |
| -------------- | ----------------- | -------- | ---------------------------------------------------------- |
| `crowdloan_id` | integer           | yes      | Identifier of the crowdloan, assigned when it was created. |
| `new_cap_tao`  | number \| `"all"` | yes      | New maximum total the crowdloan can raise.                 |

Address parameters (`--hotkey`, `--coldkey`, `--dest`, ...) accept a raw ss58
address, an address-book or proxy-book name, or a local wallet/hotkey name.

## CLI [#cli]

Preview with `--dry-run` (shows fee, effects, and policy result without
submitting), then submit:

```bash
btcli tx update-crowdloan-cap \
  --crowdloan-id <int> \
  --new-cap-tao <amount|all> --dry-run
btcli tx update-crowdloan-cap \
  --crowdloan-id <int> \
  --new-cap-tao <amount|all> -w my_coldkey
```

## Python [#python]

```python
import bittensor as sub
from bittensor.wallet import Wallet

wallet = Wallet(name="my_coldkey", hotkey="my_hotkey")
intent = sub.UpdateCrowdloanCap(crowdloan_id=0, new_cap_tao=1.0)

async with sub.Client("finney") as client:
    plan = await client.plan(intent, wallet)   # fee, effects, policy — no submission
    result = await client.execute(intent, wallet)
    if not result.success:
        print(result.error.code, result.error.remediation)
```

Or build it by op name, as an agent would:

```python
await client.execute_tool("update_crowdloan_cap", {...}, wallet)
```
