Multisig thresholds
Update and validate the approval threshold for a DALP smart wallet that uses weighted multisig signing.
Smart wallet thresholds define how much signer weight must approve a multisig operation before the wallet executes it. Use the threshold API to change that value on an existing smart wallet with an installed weighted multisig validator. For co-signer participation on pending operations, see Smart wallet approvals.
Requires: advanced accounts enabled for the deployment.
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, which means the
signer with weight 3 must approve with at least one other signer before the wallet executes the operation.
Prerequisites
Before sending the update:
- Use credentials for the wallet owner. Co-signers approve pending operations through the multisig approval flow.
- Confirm the smart wallet has an installed weighted multisig validator.
- Read the wallet's signer configuration with
GET /api/v2/smart-wallets/{address}/signers. - Choose a threshold that can be met by the configured signer weights.
Request validation accepts threshold only when it is a decimal string from 1
through 18446744073709551615 (2^64-1). If you send a threshold that cannot be reached by
the configured signer weights, the wallet operation rejects it rather than
initial request validation, so track the transaction result before you retry.
Quickstart
Submit the update with a wallet-owner credential:
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. See Smart wallet approvals for how co-signers participate.
Endpoint reference
The threshold endpoint sets the multisig approval threshold for a smart wallet. It targets only wallets with an installed weighted multisig validator. Choose the new threshold before calling this endpoint: a value that exceeds the total configured signer weight passes initial validation but fails when the account-abstraction operation executes on-chain.
PUT /api/v2/smart-wallets/{address}/threshold
Path parameters
The address path parameter identifies the smart wallet to update. Use the wallet address returned when the wallet was provisioned or listed.
| Parameter | Type | Description |
|---|---|---|
address | Ethereum address | Smart wallet contract address |
Request body
The request body carries a single threshold field. Send a decimal string within the uint64 range and within the total weight of your configured signers. Read the current signer configuration with GET /api/v2/smart-wallets/{address}/signers before choosing a value.
| 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
Only the wallet owner can call this endpoint. Co-signers use the multisig approval flow to approve operations that require their signature weight.
Response
Threshold updates use the blockchain mutation response shape. Depending on the request preference and execution timing, the API returns one of these responses:
| Shape | Fields | Use it for |
|---|---|---|
| Accepted for asynchronous processing | transactionId, status, statusUrl | Persist the transaction ID and poll statusUrl until the operation reaches a terminal state. |
| Completed mutation | data, meta.txHashes, links | Persist the updated wallet data and transaction hashes. The same transaction hashes are also emitted through X-Transaction-Hash response headers. |
When you send Prefer: respond-async, the response includes a
Preference-Applied header for the accepted preference.
Behaviour
- The endpoint targets smart wallets with an installed weighted multisig validator.
- The platform submits the threshold change as an account-abstraction operation against the wallet's multisig validator.
- Synchronous request validation checks the smart wallet address, positive
decimal-string format, and
uint64bounds. - The owner-only check runs before the blockchain mutation is submitted.
- A threshold that exceeds available signer weight is not a valid multisig configuration. Track that failure through the transaction status instead of expecting pre-submission rejection.
Error cases
| Case | What it means | Next step |
|---|---|---|
| Wallet cannot be resolved | The platform cannot find the smart wallet for the caller's organisation and chain. | Verify the address, chain context, and indexer state before retrying. |
| Caller is not the owner | The authenticated participant is not allowed to change this setting. | Use the owner credential, or have co-signers approve pending operations through the approval flow instead. |
| Multisig validator is missing | The wallet does not have the weighted multisig validator installed. | Install or use a wallet configured for weighted multisig before changing this value. |
| Invalid threshold value | The value is not a decimal string from 1 through 18446744073709551615. | Send a positive decimal string inside the supported range. |
| Transaction fails | The mutation was accepted but the account-abstraction operation did not complete. | Poll the status URL, inspect the terminal status, and only retry after confirming the prior operation will not apply. |
Related operations
- Use
GET /api/v2/smart-wallets/{address}/signersto inspect signer weights before choosing a threshold. - Use
GET /api/v2/smart-wallets/{address}/approvalsto list pending multisig approvals for a wallet. - Use
POST /api/v2/smart-wallets/{address}/approvals/{userOpHash}/signwhen a co-signer needs to sign a pending approval.
Related
Multisig approvals
Create, inspect, and sign weighted multisig approvals for smart wallet user operations that need more signer weight before submission.
Account native balance API
Read indexed native balances and history for accounts, plus the live custody wallet gas balance, in the active DALP system.