Skip to main content
Rotate the signing key for this agent’s sub-vault. Always requires principal step-up. The configured rotation implementation returns a proposal identifier and updated policy version; inspect the proposal to confirm execution.

Metadata

Annotations

Input schema

Output schema

Auth

Caller’s grant must include the treasury:rotate-signer scope. Grants whose scope set is a superset of the required scope are accepted.

Request examples

Response examples

Step-up required (always on first call)
Success (after sigil redemption)

Errors

Step-up flow

vault.rotateSigner always requires principal step-up. There is no threshold — every rotation through this tool requires approval. The sigil is bound to the reason field, so a sigil minted for grant_issue is rejected here.
  1. Call vault.rotateSigner with new_signer_public_key and reason. The server always returns -32003.
  2. Use the configured approval flow for data.step_up_url to obtain a token bound to reason: "rotate_signer". The current URL-mode page does not complete that flow by itself.
  3. Re-submit with step_up_sigil: "<sigil>". The server verifies the sigil’s expected_reason matches "rotate_signer" and that it was not already redeemed.
  4. On success, a multisig proposal is submitted on-chain. proposal_id can be tracked in the Actions inbox. new_policy_version is the post-rotation policy version.