# Smart wallet multisig thresholds

Source: https://docs.settlemint.com/docs/developer-guides/api-integration/smart-wallet-thresholds
Update and validate the approval threshold for a DALP smart wallet that uses weighted multisig signing.



Use the smart wallet threshold API when an integration needs to change how much
signer weight is required before a multisig smart wallet operation can be
approved.

The threshold is a weighted approval value, not a signer count. A smart wallet
with signer weights of `3`, `2`, and `1` can use threshold `4` so the signer
with weight `3` must approve with at least one other signer.

## How to update a threshold [#how-to-update-a-threshold]

Before sending the update, read the wallet's current signer configuration and
choose a threshold that can be met by the configured signer weights.

Request validation accepts a `threshold` only when it is:

* a decimal string
* at least `1`
* no more than `18446744073709551615` (`2^64-1`)

Choose a value that is no more than the sum of all signer weights for the
wallet. If the value cannot be reached by the configured signer weights, that
failure is reported through the asynchronous blockchain mutation status rather
than by the initial request validation.

Submit the update using credentials for the wallet owner:

```bash
curl -X PUT https://your-platform.example.com/api/v2/smart-wallets/0x1234567890AbcdEF1234567890aBcdef12345678/threshold \
  -H "X-Api-Key: YOUR_DALP_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Prefer: respond-async" \
  -d '{
    "threshold": "4"
  }'
```

The endpoint submits an asynchronous blockchain mutation. Treat the response as
the start of an on-chain operation: persist the returned status information and
poll the status URL when the response includes one. If confirmation times out,
check transaction status before retrying the same threshold update.

Co-signers do not call this endpoint directly. They approve pending multisig
operations through the multisig approval flow.

## Endpoint reference [#endpoint-reference]

`PUT /api/v2/smart-wallets/{address}/threshold`

Sets the multisig approval threshold for a smart wallet.

### Path parameters [#path-parameters]

| Parameter | Type             | Description                   |
| --------- | ---------------- | ----------------------------- |
| `address` | Ethereum address | Smart wallet contract address |

### Request body [#request-body]

| Field       | Type   | Required | Description                                                                                                                               |
| ----------- | ------ | -------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| `threshold` | string | Yes      | Positive decimal integer string from `1` through `18446744073709551615`. Choose a value that can be met by the configured signer weights. |

### Authorisation [#authorisation]

Only the wallet owner can call this endpoint. Co-signers use the multisig
approval flow to approve operations that require their signature weight.

### Behaviour [#behaviour]

* The endpoint targets smart wallets with an installed weighted multisig
  validator.
* The threshold update is submitted as an asynchronous blockchain mutation.
* Synchronous request validation checks only the positive decimal-string and
  `uint64` bounds.
* A threshold that exceeds available signer weight is not a valid multisig
  configuration; if the chain rejects it, track that failure through the queued
  transaction or on-chain status instead of expecting pre-submission rejection.

## Related operations [#related-operations]

* Use `GET /api/v2/smart-wallets/{address}/signers` to inspect signer weights
  before choosing a threshold.
* Use `GET /api/v2/smart-wallets/{address}/approvals` to list pending multisig
  approvals for a wallet.
* Use `POST /api/v2/smart-wallets/{address}/approvals/{userOpHash}/sign` when a
  co-signer needs to sign a pending approval.

## Related [#related]

* [Developer guides](/docs/developer-guides)
* [Organization system scope](/docs/developer-guides/api-integration/organization-system-scope)
