Wallet Infrastructure
Wallet Infrastructure
Treasury

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.

ActionRequest
Add a signerAdd passkey with treasury: true
List signersList passkeys
Remove oneRemove 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.

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 laneWhen
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 409 until that network's change is approved.

Discard pending threshold changes drops changes that were never sent (releasing soon).

Approval flow
YouYour serverstart payment
hash
SignersEach signer approvespasskey
approvals
Wallet InfrastructureThreshold reachedsigning threshold
send
NetworkRecipientrecipientAddress
webhooks
YouYour servertransaction.*

Approving a payment

  1. Start the payment. It waits for approvals.
  2. Each signer approves it with their passkey.
  3. It is sent once the signing threshold is reached.
StepRequest
StartPrepare userOp (EVM) · Submit transaction (other networks)
ApproveSubmit userOp signature · Submit transaction, once per signer
TrackGet userOp status · List pending approvals (releasing soon)
CancelCancel pending approval (releasing soon)

For payments that several signers approve over days, use a proposal.

Errors

CodeStatusCause
validation_failed409The threshold is higher than the number of signers, or a treasury payment was made on a network still behind the threshold.
forbidden403A threshold above 1 was set on a customer wallet that is not a treasury.
not_found404No pending approval matches, or it has expired.
idempotency_conflict409The pending approval already reached its threshold, so it cannot be cancelled.

On this page