Wallet Infrastructure
Wallet Infrastructure
Treasury

Set signing threshold

PUT
/v1/signing-threshold

Requires scope wallets:write.

Authorization

ApiKey
headerAuthorizationBearer <sk_test_ or sk_live_ key>

Your sk_live_ / sk_test_ API key

Request Body

application/json
  1. body
treasury?boolean

Which owner the threshold belongs to.

threshold*integer

How many distinct passkey signers must approve a transfer.

Range1 <= value
lane?string

How the on-chain change is carried. userop (default): one userOp per deployed chain, approved within the quorum window (minutes) and re-prepared when it lapses. proposal: one threshold_change treasury proposal per deployed chain not yet at the target, which approvers sign over days through /v1/treasury/proposals.

Value in"userop""proposal"
ttlSeconds?integer

lane proposal only: how long each proposal collects signatures, from 3600 up to the platform's proposal lifetime (7 days by default).

Range3600 <= value

Response Body

200application/json

Threshold now in force

TypeScript Definitions

Use the response body type in TypeScript.

data*
status*number
success*boolean
401application/json

The Authorization header is missing, malformed, or the API key is unknown or revoked

TypeScript Definitions

Use the response body type in TypeScript.

data*
status*number
success*boolean
429application/json

The API key exceeded its request budget for the window

TypeScript Definitions

Use the response body type in TypeScript.

data*
status*number
success*boolean

Language

curl -X PUT 'https://api.pilot.shiga.io/v1/signing-threshold' \  -H 'Authorization: Bearer sk_test_...' \  -H 'Content-Type: application/json' \  -d '{  "threshold": 1}'
Example Response
{  "data": {    "threshold": 0,    "signers": 0,    "pendingThreshold": 0,    "pendingLower": 0,    "pendingRaise": 0,    "pendingLane": "userop",    "chains": [      {        "chain": "base",        "status": "unchanged",        "safeTxHash": "string",        "nonce": 0,        "requiredSignatures": 0,        "proposalStatus": "string",        "statusReason": "string",        "expiresAt": "string",        "userOpHash": "string",        "pendingKind": "threshold_change",        "recoveryKeyPresent": true,        "foreignModules": [          "string"        ],        "currentThreshold": 1,        "threshold": 2,        "passkeyOwners": 2,        "allowances": [          {            "delegate": "string",            "token": "string",            "asset": "USDT",            "amountBaseUnits": "5000000",            "spentBaseUnits": "1000000",            "remainingBaseUnits": "4000000",            "amount": "5",            "spent": "1",            "remaining": "4",            "resetTimeMinutes": 1440,            "nextResetAt": "2019-08-24T14:15:22Z"          }        ],        "allowancesUnreadable": true,        "missingOwners": [          "string"        ],        "reason": "string"      }    ],    "approveWithinSeconds": 180,    "approvalNote": "string"  },  "status": 200,  "success": true}