---
title: "List multisig wallet signers"
method: GET
path: "/v1/multisig-wallets/{walletId}/signers"
tags: ["Multisig Wallets"]
---

# List multisig wallet signers

`GET /v1/multisig-wallets/{walletId}/signers`

## Request

- Base URL: `https://api.prod.keyban.io`
- URL: `https://api.prod.keyban.io/v1/multisig-wallets/{walletId}/signers`
- Auth: one of:
  - API key in header `X-Api-Key`
  - `bearer` (a scheme the document does not define)

List the organization members enrolled as signers of the wallet with their enrollment status. The address of an enrollment still awaiting validation is withheld: the SAS a validator types derives from it, so serving it would replace the comparison with the candidate's phone.

## Path parameters

- `walletId` string, uuid, required

## Response `200`

List of signers retrieved successfully

- PaginatedMultisigSignerDtoOutput
  - `data` object[], required: Array of items for the current page
    - `id` string, uuid, required: Entity UUID
    - `createdAt` string, date-time, required: Creation date (ISO 8601)
    - `updatedAt` string, date-time, required: Last update date (ISO 8601)
    - `status` 'requested' | 'validated' | 'active' | 'failed', required: Enrollment status: `requested` (address bound, awaiting a peer validation), `validated` (counts towards the threshold), `active` (in the on-chain signer set, can sign), `failed` (on-chain add exhausted its retries).
    - `user` object, nullable, required: Organization member holding the TSS signing key. Null only when the user reference could not be populated.
      - `id` string, uuid, required: User ID of the signer.
      - `name` string, required: Display name of the signer, as set on their user profile.
      - `email` string, email, required: Email address of the signer.
      - `image` string, nullable, required: Avatar URL of the signer (from their sign-in provider); null without one.
    - `signerType` 'eoa' | 'webauthn', required: Kind of key behind this signer: `eoa` (20-byte secp256k1 address) or `webauthn` (84-byte P-256 passkey signer). Derived from the identity, never stored.
    - `address` string, nullable: ERC-7913 identity of the signing key: a 20-byte EVM address for an `eoa` signer, the 84-byte `verifier ‖ qx ‖ qy` bytes for a `webauthn` one. **Withheld while `requested`**: the SAS a validator must type derives from it, so serving it here would let any client compute the code instead of reading it off the candidate's phone — the whole point of the comparison. Revealed once validated.
    - `validatorNonce` string, nullable: The challenge nonce, once a validator has challenged this enrollment. The candidate app reads it to derive the 4-digit SAS it displays; null before a challenge and after the ceremony settles.
    - `validatedAt` string, date-time, nullable, required: When a peer validated this enrollment. Null while requested.
  - `total` integer, required: Total count of items matching the query

## Other responses

- `404`: Multisig wallet not found

---

[API](https://skmtc.dev/keyban/apis/keyban-rest-apis.md) · [All operations](https://skmtc.dev/keyban/apis/keyban-rest-apis/llms.txt) · [OpenAPI document](https://skmtc.dev/keyban/apis/keyban-rest-apis/revisions/0bb79a1da961?raw)
