---
title: "Update an agent signer or authorization key"
method: PATCH
path: "/agents/{agentId}/signers/{signerId}"
tags: ["Agent Authorization"]
---

# Update an agent signer or authorization key

`PATCH /agents/{agentId}/signers/{signerId}`

## Request

- Base URL: `http://localhost:3200`
- URL: `http://localhost:3200/agents/{agentId}/signers/{signerId}`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/steward-fi/apis/steward-api/docs/agents/:agentId/signers/:signerId/patch.ts> (a function with typed inputs; its response is checked against the schema)

Authority-changing updates such as key type, public key, permissions, metadata, address, chain family, signer type, or status require recent MFA.

## Headers

- `X-Steward-Request-Timestamp` string
- `X-Steward-Request-Expires-At` string
- `X-Steward-Signature` string
- `X-Steward-Signing-Key-Id` string
- `Idempotency-Key` string

## Request body

- object
  - `signerType` 'owner' | 'delegated' | 'service' | 'quorum_member'
  - `subjectType` 'user' | 'wallet' | 'api_key' | 'external'
  - `subjectId` string
  - `keyType` 'hmac' | 'p256'
  - `publicKey` string, nullable
  - `address` string, nullable
  - `chainFamily` 'evm' | 'solana' | 'null', nullable
  - `label` string, nullable
  - `permissions` string[]
  - `policyIds` string[]
  - `metadata` object
  - `issueCredential` boolean
  - `status` 'active' | 'paused' | 'revoked'

## Response `200`

JSON response

- object
  - `ok` true, required
  - `data` object, required
    - `id` string, required
    - `tenantId` string, required
    - `agentId` string, required
    - `signerType` 'owner' | 'delegated' | 'service' | 'quorum_member', required
    - `subjectType` 'user' | 'wallet' | 'api_key' | 'external', required
    - `subjectId` string, required
    - `keyType` 'hmac' | 'p256', required
    - `publicKey` string, nullable, required
    - `address` string, nullable
    - `chainFamily` 'evm' | 'solana' | 'null', nullable
    - `label` string, nullable
    - `permissions` string[], required
    - `policyIds` string[]
    - `metadata` object, required
    - `hasCredential` boolean
    - `status` 'active' | 'paused' | 'revoked', required
    - `createdBy` string, nullable
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required

## Other responses

- `400`: JSON response
- `401`: JSON response
- `403`: JSON response
- `404`: JSON response
- `408`: JSON response
- `409`: JSON response

## Changes

- **2026-08-17** `261a7c8070b2`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/steward-fi/apis/steward-api/changes/agents/:agentId/signers/:signerId/patch.md)

---

[API](https://skmtc.dev/steward-fi/apis/steward-api.md) - [All operations](https://skmtc.dev/steward-fi/apis/steward-api/llms.txt) - [OpenAPI document](https://skmtc.dev/steward-fi/apis/steward-api/revisions/b88b4b97a664?raw)
