# Signers

The keys in an account's signer set that approve its transactions

A signer is a [signing key](https://splits.org/docs/members/keys) (a passkey or EOA belonging to a [member](https://splits.org/docs/members)) that has been added to an [account](https://splits.org/docs/accounts)'s signer set. Approvals are counted against the account's [threshold](https://splits.org/docs/accounts/thresholds): a transaction executes once enough signers have signed. The signer set stores public keys onchain; private keys stay with the members.

Managing signers is an onchain edit to one account's signer set (see [Editing](https://splits.org/docs/accounts/editing)), and is separate from managing a member's [signing keys](https://splits.org/docs/members/keys) in personal settings: adding or removing a key changes no account's signer set, and removing a signer from an account doesn't delete the member's key.

## Signers vs membership

Signing authority is separate from [membership](https://splits.org/docs/members) and [roles](https://splits.org/docs/workspaces/roles). The two often overlap 1:1, but are distinct:

| | Workspace member | Signer |
| --- | --- | --- |
| Stored | Offchain | Onchain (account's signer set) |
| Scoped to | A workspace | An account |
| What it is | A person's association with a workspace | A signing key belonging to a member |
| Grants | Visibility + [role](https://splits.org/docs/workspaces/roles) capabilities | Authority to approve transactions, counted against the account's threshold |
| Managed in | [Settings > Members](https://app.splits.org/settings/team/members/) | Account settings > Signers ([how](https://splits.org/docs/accounts/editing#changing-signers-and-thresholds)) |

Two rules connect them:

1. **Every signer on a workspace's accounts must be a member of that workspace.**
2. **Neither membership nor any role ever makes someone a signer.** Adding a signer is a separate, onchain action.

## Recovery signers

The [Root account](https://splits.org/docs/accounts#root)'s signers are the workspace's recovery signers: EOAs chosen at workspace setup that can reset every other account's signers. See [Recovery](https://splits.org/docs/workspaces/recovery#recovery-signers).

## Programmatic access

Via the [Splits CLI / MCP](https://splits.org/docs/introduction/agents):

* `splits accounts signers <address>`: an account's signers and threshold (**Read** scope)
* `splits accounts update-signers <address> ...`: propose signer/threshold changes; approval happens in the web UI (**Owner** scope)
* `splits members signers <userId>`: a member's passkey IDs, for adding them as a signer (**Read** scope)
