---
title: "Update Cosigner External Route"
method: PATCH
path: "/v0/platform/cosigners/{id}"
tags: ["cosigner"]
---

# Update Cosigner External Route

`PATCH /v0/platform/cosigners/{id}`

Update a cosigner by ID; the fields you send replace the existing ones.

## Path parameters

- `id` string, required

## Request body

- UpdateCosignerExternalRequest
  - `name` string, nullable
  - `tags` string[], nullable — Tags assigned to the Cosigner.
  - `proposal_actions` union[], nullable — Actions to trigger when a transaction proposal is submitted.
    - union
      - TelegramExternalAction
        - `type` 'telegram', required
        - `chats` TelegramExternalChannel[], required
          - `chat_id` string, required — Telegram channel ID.
          - `topic_ids` integer[], required — Optional topic IDs within the channel where the message should be posted.
        - `message_format` string, nullable
      - SlackExternalAction
        - `type` 'slack', required
        - `channel_ids` string[], required — Slack channel IDs where the message should be posted.
        - `message_format` string, nullable — Customization of the message to send in the Slack notification.
      - EmailExternalAction
        - `type` 'email', required
        - `to` string[], required
        - `cc` string[], nullable — Optional CC email addresses.
        - `bcc` string[], nullable — Optional BCC email addresses.
        - `body` string, nullable
  - `rejection_actions` union[], nullable — Actions to trigger when a transaction proposal is rejected.
    - union
      - TelegramExternalAction
        - `type` 'telegram', required
        - `chats` TelegramExternalChannel[], required
          - `chat_id` string, required — Telegram channel ID.
          - `topic_ids` integer[], required — Optional topic IDs within the channel where the message should be posted.
        - `message_format` string, nullable
      - SlackExternalAction
        - `type` 'slack', required
        - `channel_ids` string[], required — Slack channel IDs where the message should be posted.
        - `message_format` string, nullable — Customization of the message to send in the Slack notification.
      - EmailExternalAction
        - `type` 'email', required
        - `to` string[], required
        - `cc` string[], nullable — Optional CC email addresses.
        - `bcc` string[], nullable — Optional BCC email addresses.
        - `body` string, nullable
  - `approval_actions` union[], nullable — Actions to trigger when a transaction proposal is approved.
    - union
      - TelegramExternalAction
        - `type` 'telegram', required
        - `chats` TelegramExternalChannel[], required
          - `chat_id` string, required — Telegram channel ID.
          - `topic_ids` integer[], required — Optional topic IDs within the channel where the message should be posted.
        - `message_format` string, nullable
      - SlackExternalAction
        - `type` 'slack', required
        - `channel_ids` string[], required — Slack channel IDs where the message should be posted.
        - `message_format` string, nullable — Customization of the message to send in the Slack notification.
      - EmailExternalAction
        - `type` 'email', required
        - `to` string[], required
        - `cc` string[], nullable — Optional CC email addresses.
        - `bcc` string[], nullable — Optional BCC email addresses.
        - `body` string, nullable
  - `data` union, required
    - FireblocksCosignerUpdateExternal
      - `type` 'fireblocks', required
      - `unsupported_chains_fallback_policy` 'approve' | 'reject' — What the cosigner should do when a transaction is proposed (e.g. sign, reject).
      - `security_mode` 'blockaid_engine' | 'labels' | 'policy_engine' — The method by which transaction decisions are made for this Cosigner: - `blockaid_engine` - Automatically rejects malicious transactions and approves safe ones. - `policy_engine` - Add custom rules on top of Blockaid’s Default Policy for granular control. Custom policies are set using the GetPolicies and SetPolicies endpoints.
      - `signing_mode` 'strict' | 'always_approve' — This Cosigner's participation level in transaction approval: - `strict` - Cosigner actively approves or rejects transactions. - `always_approve` - Cosigner approves all transactions.
      - `vault_ids` string[], nullable
    - FordefiCosignerUpdateExternal
      - `type` 'fordefi', required
      - `unsupported_chains_fallback_policy` 'approve' | 'reject' — What the cosigner should do when a transaction is proposed (e.g. sign, reject).
      - `security_mode` 'blockaid_engine' | 'labels' | 'policy_engine' — The method by which transaction decisions are made for this Cosigner: - `blockaid_engine` - Automatically rejects malicious transactions and approves safe ones. - `policy_engine` - Add custom rules on top of Blockaid’s Default Policy for granular control. Custom policies are set using the GetPolicies and SetPolicies endpoints.
      - `signing_mode` 'strict' | 'read_only' — This Cosigner's participation level in transaction approval: - `strict` - Cosigner actively approves or rejects transactions. - `read_only` - Cosigner reviews transactions without approving or signing.
      - `vault_ids` string[], nullable
    - CosignerSafeUpdateDataExternal
      - `type` 'safe', required
      - `security_mode` 'blockaid_engine' | 'labels' | 'policy_engine' — The method by which transaction decisions are made for this Cosigner: - `blockaid_engine` - Automatically rejects malicious transactions and approves safe ones. - `policy_engine` - Add custom rules on top of Blockaid’s Default Policy for granular control. Custom policies are set using the GetPolicies and SetPolicies endpoints.
      - `signing_mode` 'strict' | 'read_only' — This Cosigner's participation level in transaction approval: - `strict` - Cosigner actively approves or rejects transactions. - `read_only` - Cosigner reviews transactions without approving or signing.
      - `override_address` string, nullable
      - `safe_address` string, nullable
    - CosignerSquadsUpdateDataExternal
      - `type` 'squads', required
      - `security_mode` 'blockaid_engine' | 'labels' | 'policy_engine' — The method by which transaction decisions are made for this Cosigner: - `blockaid_engine` - Automatically rejects malicious transactions and approves safe ones. - `policy_engine` - Add custom rules on top of Blockaid’s Default Policy for granular control. Custom policies are set using the GetPolicies and SetPolicies endpoints.
      - `signing_mode` 'strict' | 'read_only' — This Cosigner's participation level in transaction approval: - `strict` - Cosigner actively approves or rejects transactions. - `read_only` - Cosigner reviews transactions without approving or signing.
      - `squads_address` string, nullable

## Response `200`

Successful Response

- CosignerExternalResponse
  - `tags` string[], required
  - `proposal_actions` union[], required
    - union
      - TelegramExternalAction
        - `type` 'telegram', required
        - `chats` TelegramExternalChannel[], required
          - `chat_id` string, required — Telegram channel ID.
          - `topic_ids` integer[], required — Optional topic IDs within the channel where the message should be posted.
        - `message_format` string, nullable
      - SlackExternalAction
        - `type` 'slack', required
        - `channel_ids` string[], required — Slack channel IDs where the message should be posted.
        - `message_format` string, nullable — Customization of the message to send in the Slack notification.
      - EmailExternalAction
        - `type` 'email', required
        - `to` string[], required
        - `cc` string[], nullable — Optional CC email addresses.
        - `bcc` string[], nullable — Optional BCC email addresses.
        - `body` string, nullable
  - `rejection_actions` union[], required
    - union
      - TelegramExternalAction
        - `type` 'telegram', required
        - `chats` TelegramExternalChannel[], required
          - `chat_id` string, required — Telegram channel ID.
          - `topic_ids` integer[], required — Optional topic IDs within the channel where the message should be posted.
        - `message_format` string, nullable
      - SlackExternalAction
        - `type` 'slack', required
        - `channel_ids` string[], required — Slack channel IDs where the message should be posted.
        - `message_format` string, nullable — Customization of the message to send in the Slack notification.
      - EmailExternalAction
        - `type` 'email', required
        - `to` string[], required
        - `cc` string[], nullable — Optional CC email addresses.
        - `bcc` string[], nullable — Optional BCC email addresses.
        - `body` string, nullable
  - `approval_actions` union[], required
    - union
      - TelegramExternalAction
        - `type` 'telegram', required
        - `chats` TelegramExternalChannel[], required
          - `chat_id` string, required — Telegram channel ID.
          - `topic_ids` integer[], required — Optional topic IDs within the channel where the message should be posted.
        - `message_format` string, nullable
      - SlackExternalAction
        - `type` 'slack', required
        - `channel_ids` string[], required — Slack channel IDs where the message should be posted.
        - `message_format` string, nullable — Customization of the message to send in the Slack notification.
      - EmailExternalAction
        - `type` 'email', required
        - `to` string[], required
        - `cc` string[], nullable — Optional CC email addresses.
        - `bcc` string[], nullable — Optional BCC email addresses.
        - `body` string, nullable
  - `id` string, required — The Cosigner's assigned unique ID.
  - `name` string, nullable, required — The Cosigner name as defined upon creation.
  - `status` 'pending' | 'ok' | 'error', required — The current status of the Cosigner. - `ok` - The Cosigner is active. - `pending` - The Cosigner is waiting for the final activation steps in the multisig wallet to be completed. - `error` - Something went wrong and the Cosigner is not working properly.
  - `error` string, nullable — If the Cosigner status is `error`, this field will show more information about the error.
  - `created_at` string, date-time, required — The timestamp the Cosigner was created.
  - `updated_at` string, date-time, required
  - `updated_by` string, required — The user who last updated the Cosigner.
  - `added_by` string, required — The user who added the Cosigner.
  - `data` union, required
    - FireblocksCosignerResponseExternal
      - `type` 'fireblocks', required
      - `unsupported_chains_fallback_policy` 'approve' | 'reject', required — What the cosigner should do when a transaction is proposed (e.g. sign, reject).
      - `security_mode` 'blockaid_engine' | 'labels' | 'policy_engine', required — The method by which transaction decisions are made for this Cosigner: - `blockaid_engine` - Automatically rejects malicious transactions and approves safe ones. - `policy_engine` - Add custom rules on top of Blockaid’s Default Policy for granular control. Custom policies are set using the GetPolicies and SetPolicies endpoints.
      - `integration_instance_id` string, required — The ID of the integration instance used to connect to the Fireblocks workspace. Acquired using the Search Integrations endpoint.
      - `scope` 'specific_vaults'
      - `signing_mode` 'strict' | 'always_approve', required — This Cosigner's participation level in transaction approval: - `strict` - Cosigner actively approves or rejects transactions. - `always_approve` - Cosigner approves all transactions.
      - `vaults` union[], required
        - union
          - VaultDetails
            - `vault_id` string, required
            - `name` string, required
            - `addresses` AddressDetails[], required
              - …
          - VaultError
            - `vault_id` string, required
            - `error` string, required
    - FordefiCosignerResponseExternal
      - `type` 'fordefi', required
      - `unsupported_chains_fallback_policy` 'approve' | 'reject', required — What the cosigner should do when a transaction is proposed (e.g. sign, reject).
      - `security_mode` 'blockaid_engine' | 'labels' | 'policy_engine', required — The method by which transaction decisions are made for this Cosigner: - `blockaid_engine` - Automatically rejects malicious transactions and approves safe ones. - `policy_engine` - Add custom rules on top of Blockaid’s Default Policy for granular control. Custom policies are set using the GetPolicies and SetPolicies endpoints.
      - `integration_instance_id` string, required
      - `scope` 'all_workspace' | 'specific_vaults', required
      - `signing_mode` 'strict' | 'read_only', required — This Cosigner's participation level in transaction approval: - `strict` - Cosigner actively approves or rejects transactions. - `read_only` - Cosigner reviews transactions without approving or signing.
      - `vaults` union[], required
        - union
          - VaultDetails
            - `vault_id` string, required
            - `name` string, required
            - `addresses` AddressDetails[], required
              - …
          - VaultError
            - `vault_id` string, required
            - `error` string, required
    - CosignerSafeResponseExternal
      - `signing_mode` 'strict' | 'read_only', required — This Cosigner's participation level in transaction approval: - `strict` - Cosigner actively approves or rejects transactions. - `read_only` - Cosigner reviews transactions without approving or signing.
      - `chain` string, required
      - `security_mode` 'blockaid_engine' | 'labels' | 'policy_engine', required — The method by which transaction decisions are made for this Cosigner: - `blockaid_engine` - Automatically rejects malicious transactions and approves safe ones. - `policy_engine` - Add custom rules on top of Blockaid’s Default Policy for granular control. Custom policies are set using the GetPolicies and SetPolicies endpoints.
      - `type` 'safe', required
      - `override_address` string, nullable
      - `safe_address` string, required
      - `cosigner_address` string, required
    - CosignerSquadsResponseExternal
      - `signing_mode` 'strict' | 'read_only', required — This Cosigner's participation level in transaction approval: - `strict` - Cosigner actively approves or rejects transactions. - `read_only` - Cosigner reviews transactions without approving or signing.
      - `chain` 'solana-mainnet', required
      - `security_mode` 'blockaid_engine' | 'labels' | 'policy_engine', required — The method by which transaction decisions are made for this Cosigner: - `blockaid_engine` - Automatically rejects malicious transactions and approves safe ones. - `policy_engine` - Add custom rules on top of Blockaid’s Default Policy for granular control. Custom policies are set using the GetPolicies and SetPolicies endpoints.
      - `type` 'squads', required
      - `squads_address` string, required
      - `cosigner_address` string, required
    - UtilaCosignerResponseExternal
      - `type` 'utila', required
      - `unsupported_chains_fallback_policy` 'approve' | 'reject', required — What the cosigner should do when a transaction is proposed (e.g. sign, reject).
      - `security_mode` 'blockaid_engine' | 'labels' | 'policy_engine', required — The method by which transaction decisions are made for this Cosigner: - `blockaid_engine` - Automatically rejects malicious transactions and approves safe ones. - `policy_engine` - Add custom rules on top of Blockaid’s Default Policy for granular control. Custom policies are set using the GetPolicies and SetPolicies endpoints.
      - `integration_instance_id` string, required
      - `signing_mode` 'strict' | 'read_only', required — This Cosigner's participation level in transaction approval: - `strict` - Cosigner actively approves or rejects transactions. - `read_only` - Cosigner reviews transactions without approving or signing.
      - `addresses` AddressDetails[], required
        - `address` string, required
        - `chain` string, required

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/blockaid-official/apis/blockaid-api.md) · [All operations](https://skmtc.dev/blockaid-official/apis/blockaid-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/blockaid-official/blockaid-api/revisions/3debd2bfcd43/schema)
