<!-- tempo-docs-context -->
> Source: [/docs/accounts/authentication](https://tempo.xyz/developers/docs/accounts/authentication.md)
> Section: [Accounts](https://tempo.xyz/developers/docs/accounts.md). Create accounts, set up signing methods, policies, access keys, key rotation, and fees, and follow guides for users, automations, agents, and teams.
> [Documentation index](https://tempo.xyz/developers/llms.txt) · [Docs skill](https://tempo.xyz/developers/SKILL.md)

> Tempo MCP: Use `search`, `find_pages`, `read_page`, and `code` at `https://mcp.tempo.xyz` for Tempo and related documentation.
> If an indexed page is missing or reflects an older site, read this site’s [documentation index](https://tempo.xyz/developers/llms.txt) and Markdown pages directly.

# Signing Methods

A signing method is the kind of key that approves an account's transactions.

<span id="tempo-account-signer-types" />

<span id="tempo-sign-in-methods" />

<span id="tempo-signing-methods" />

<span id="what-a-signer-is" />

<span id="what-a-signing-method-is" />

<span id="how-it-works" />

## Overview

A signing method is a passkey, a device key, or a private key. Choose one by who should hold it. A passkey or device key stays with the customer. A private key on your server or with a wallet provider lets that party sign too.

Every method works on mainnet and testnet today. Each can be the one key of a [single-key account](https://tempo.xyz/developers/docs/accounts/how-it-works#address) or an [access key](https://tempo.xyz/developers/docs/accounts/access-keys).

Tempo verifies three kinds of signature onchain:

* **secp256k1:** Ethereum wallets use it.
* **P-256:** Device keys and P-256 private keys use it.
* **WebAuthn P-256:** Passkeys use it.

The kind of key decides where it can live and how the holder approves. Its role on the account decides what it can do.

<span id="signer-rules" />

<span id="authentication-limits" />

<span id="signing-method-limits" />

<span id="choose-a-signing-method" />

<span id="set-up-a-sign-in-method" />

<span id="private-keys" />

<span id="p-256-keys" />

<span id="device-sessions" />

<span id="try-a-passkey-account" />

<span id="add-email-sign-in" />

<span id="how-login-signers-work" />

<span id="use-a-hosted-auth-service-as-the-issuer" />

<span id="restore-the-session-on-a-returning-visit" />

<span id="publish-your-providers-keys" />

<span id="self-hosted-relay" />

<span id="run-your-relay" />

<span id="relay-trust" />

<span id="who-can-sign-in-as-a-customer" />

<span id="who-can-sign-for-a-customer" />

<span id="choose-a-key-by-who-holds-it" />

## Methods

[Passkeys](https://tempo.xyz/developers/docs/accounts/authentication/passkeys): The customer approves with Face ID or a fingerprint. Synced across their devices, and tied to your domain.

[Device Keys](https://tempo.xyz/developers/docs/accounts/authentication/device-keys): A key the customer's phone, computer, or browser creates and can't export, for payments without a prompt.

[Private Keys](https://tempo.xyz/developers/docs/accounts/authentication/private-keys): A key in a wallet, a wallet provider, or your KMS or HSM, for servers, treasury approvers, and backups.

<span id="combine-signing-methods" />

## Combining Methods

Each key joins the account in one of two roles:

| Role | What it does |
| --- | --- |
| Signer | Approves with a weight. A transaction runs once the approving signers' weights reach the account's [threshold](https://tempo.xyz/developers/docs/accounts/policies/signing-thresholds). |
| [Access key](https://tempo.xyz/developers/docs/accounts/access-keys) | Pays alone within its limits. Never counts toward the threshold. |

Add device keys and server payout keys as access keys. A signer has no spending limit.

:::warning
**Multiple signers arrive with the [T14 network upgrade](https://tempo.xyz/developers/docs/protocol/upgrades/t14).** Until T14 activates, an account with several signers and a threshold runs only on the [Tempo Accounts devnet](https://tempo.xyz/developers/docs/accounts/create#connect-to-the-devnet), not on mainnet or testnet, and may still change.
:::

Several weighted signers on one account need a configurable account. Tempo has no override. Your app or a provider can approve only with the signers it holds. Set weights so no one but the customer reaches the threshold alone. [Recommended signer setups](https://tempo.xyz/developers/docs/accounts/policies/signing-thresholds#recommended-signer-setups) gives the weights for customer accounts, embedded wallets, and treasuries.

<span id="login-sign-in-in-code" />

## Related

[Signing Thresholds](https://tempo.xyz/developers/docs/accounts/policies/signing-thresholds): Covers signer weights and the threshold a transaction must reach.

[Access Keys](https://tempo.xyz/developers/docs/accounts/access-keys): Covers keys that pay alone within limits, expiry, and scopes.

[Configurable Accounts](https://tempo.xyz/developers/docs/development/configurable-accounts): Covers accounts with several weighted signers and a threshold.

[Multisig Signatures](https://tempo.xyz/developers/docs/development/configurable-accounts#multisig-signature-format): Covers the signature format for a transaction that several signers approve.
