Signers and Approvals
Manage signers, require multiple approvals, and change the approval threshold.
Releasing soon
Proposals, the lane option, discarding pending threshold changes, and
listing or cancelling pending approvals are being released.
Treasury wallets
Create a treasury wallet with isTreasury: true. Requests for your business's own treasury leave out the x-customer-id header; requests for a customer's treasury include it.
Signers
Each signer is a passkey.
| Action | Request |
|---|---|
| Add a signer | Add passkey with treasury: true |
| List signers | List passkeys |
| Remove one | Remove passkey |
Adding or removing a signer can also be approved over days as a proposal.
Signing threshold
The signing threshold is how many signers must approve a payment. It applies on every network the treasury holds.
- Set signing threshold changes it.
- Get signing threshold returns it, the number of signers, and its state on each network.
Changes need the current signers. A new threshold takes effect only once the current signers have approved it on every network. Until then payments use the current threshold, and the response shows the new value as pendingThreshold.
Choose lane | When |
|---|---|
userop (default) | One person approves at once. Approvals must arrive within minutes. |
proposal (releasing soon) | Several people approve over days. See Proposals. |
Limits.
- The threshold cannot exceed the number of signers (
409). - Customer wallets that are not treasuries can only use a threshold of 1.
- A treasury payment on a network still behind the threshold is refused with
409until that network's change is approved.
Discard pending threshold changes drops changes that were never sent (releasing soon).
start paymentpasskeysigning thresholdrecipientAddresstransaction.*Approving a payment
- Start the payment. It waits for approvals.
- Each signer approves it with their passkey.
- It is sent once the signing threshold is reached.
| Step | Request |
|---|---|
| Start | Prepare userOp (EVM) · Submit transaction (other networks) |
| Approve | Submit userOp signature · Submit transaction, once per signer |
| Track | Get userOp status · List pending approvals (releasing soon) |
| Cancel | Cancel pending approval (releasing soon) |
For payments that several signers approve over days, use a proposal.
Errors
| Code | Status | Cause |
|---|---|---|
validation_failed | 409 | The threshold is higher than the number of signers, or a treasury payment was made on a network still behind the threshold. |
forbidden | 403 | A threshold above 1 was set on a customer wallet that is not a treasury. |
not_found | 404 | No pending approval matches, or it has expired. |
idempotency_conflict | 409 | The pending approval already reached its threshold, so it cannot be cancelled. |