---
title: "Revokes a signer address from a subaccount"
method: DELETE
path: "/v1/linked-signer/revoke"
tags: ["LinkedSigner"]
---

# Revokes a signer address from a subaccount

`DELETE /v1/linked-signer/revoke`

## Request

- Base URL: `https://api.ethereal.trade`
- URL: `https://api.ethereal.trade/v1/linked-signer/revoke`
- Auth: none declared
- TypeScript: <https://skmtc.dev/ethereal/apis/ethereal-exchange-api/docs/v1/linked-signer/revoke/delete.ts> (a function with typed inputs; its response is checked against the schema)

## Request body

- RevokeLinkedSignerDto
  - `data` RevokeLinkedSignerDtoData, required
    - `nonce` string, required: Message nonce timestamp (nanoseconds since Unix Epoch)
    - `sender` string, hex, required: Account address that produced the authorizing signature
    - `signedAt` integer, required: Message signedAt current timestamp (seconds since Unix Epoch)
    - `signer` string, hex, required: Address of signer to revoke
    - `subaccount` string, hex, required: Bytes32 encoded subaccount name (0x prefix, zero padded)
    - `subaccountId` string, uuid, required: Id representing the registered subaccount
  - `signature` string, hex, required: Hex-encoded EIP-712 signature authorizing this request

## Response `200`

- SignerDto
  - `blockNumber` string: Block number the signer has been linked on. Undefined means it has not be processed
  - `category` 'TRADE_SESSION' | 'API': Category of the linked signer: API or TRADE_SESSION
  - `createdAt` integer, required: Link signer submission timestamp (ms since Unix Epoch)
  - `expiresAt` integer, required: Signer expiry timestamp (ms since Unix Epoch)
  - `id` string, required: Id representing the linked signer
  - `linkedAt` integer: Onchain linkage timestamp (ms since Unix Epoch)
  - `name` string: Optional name for the linked signer
  - `revokedAt` integer: Onchain revocation timestamp (ms since Unix Epoch)
  - `revokedBlockNumber` string: Block number the signer has been revoked on. Undefined means it has not be processed
  - `signer` string, hex, required: Address of the signer linked with the subaccount (non-checksummed)
  - `status` 'PENDING' | 'ACTIVE' | 'PENDING_REVOKE' | 'REVOKED' | 'REJECTED', required: Status of the signer

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found
- `413`: Payload Too Large
- `422`: Unprocessable Entity
- `429`: Too Many Requests
- `500`: Internal Server Error

## Changes

- **2026-08-25** `63e8937ff6f7`: 1 info
  - added the non-success response with the status `413`
- **2026-06-07** `dc14c1586dfa`: 13 info
  - the `error` response's property default value `Bad Request` was removed for the status `400`
  - the `error` response's property default value `Forbidden` was removed for the status `403`
  - the `error` response's property default value `Not Found` was removed for the status `404`
  - the `error` response's property default value `Too Many Requests` was removed for the status `429`
  - …9 more
- **2026-03-15** `b29881d08c78`: 1 breaking, 3 info
  - the `data/signedAt` request property type changed from `number` to `integer`
  - added the optional property `category` to the response with the `200` status
  - added the optional property `name` to the response with the `200` status
  - added the required property `type` to the response with the `429` status

[Operation history](https://skmtc.dev/ethereal/apis/ethereal-exchange-api/changes/v1/linked-signer/revoke/delete.md)

---

[API](https://skmtc.dev/ethereal/apis/ethereal-exchange-api.md) - [All operations](https://skmtc.dev/ethereal/apis/ethereal-exchange-api/llms.txt) - [OpenAPI document](https://skmtc.dev/ethereal/apis/ethereal-exchange-api/revisions/63e8937ff6f7?raw)
