<!-- tempo-docs-context -->
> Source: [/docs/accounts/how-it-works](https://tempo.xyz/developers/docs/accounts/how-it-works.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.

# How It Works

A Tempo account holds stablecoins, and only the account's own keys can move them.

## Overview

A Tempo account is an address with two kinds of keys. Tempo checks what each key can do on every transaction:

* **Signers:** Own the account. They approve payments and any change to the account's keys. An existing wallet's account starts with one signer, its existing key.
* **Access Keys:** Pay on their own within the limits you set, such as a daily amount or a single recipient. Access keys are optional, and the signers authorize each one.

No one, including Tempo, can [move an account's funds](https://tempo.xyz/developers/docs/accounts/security) any other way.

Say you run a payments app and give each customer a Tempo account. The customer's passkey can approve anything on its own. If they lose their phone, their backup key and your app's recovery key replace it together. Your app's server holds an access key that pays the customer's scheduled bills, up to 500 OUSD a day.

<span id="tempo-account-model" />

<span id="signers-change-the-address-doesnt" />

<span id="address" />

<span id="the-address-holds-the-funds" />

## Addresses

An address holds stablecoins, access keys, and a fee token. It is either a single-key account, where one private key approves, or a configurable account, where weighted signers reach a threshold.

The address is the account's public ID. It holds the account's stablecoins and sets its default [fee token](https://tempo.xyz/developers/docs/accounts/fees), the stablecoin it pays network fees in.

A single-key account has one key, like a standard Ethereum account (an EOA). Losing the key loses the account. A [configurable account](https://tempo.xyz/developers/docs/development/configurable-accounts) has signers instead. Its address stays the same when they change. The customer keeps their address and balance after replacing a lost phone. You can [upgrade a single-key account](https://tempo.xyz/developers/docs/accounts/account-configuration/account-upgrade) to a configurable one at the same address.

Single-key accounts and their access keys work on mainnet and testnet today. They work in the [wallets](https://tempo.xyz/developers/docs/accounts/wallets) your users already have, your [app's embedded wallets](https://tempo.xyz/developers/docs/accounts/apps), your [backend automations](https://tempo.xyz/developers/docs/accounts/automations), and [custodians](https://tempo.xyz/developers/docs/accounts/custodians).

:::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.
:::

<span id="what-tempo-checks-on-every-transaction" />

<span id="how-tempo-approves-a-transaction" />

<span id="signers-approve-together" />

## Signers

Three signers with weights: a passkey at 2, and a backup key and a recovery key at 1 each, toward a threshold of 2. The passkey approves alone, or both keys approve together.

Each signer is a [private key](https://tempo.xyz/developers/docs/accounts/authentication/private-keys), a [device key](https://tempo.xyz/developers/docs/accounts/authentication/device-keys), or a [passkey](https://tempo.xyz/developers/docs/accounts/authentication/passkeys), with a weight. A payment, a new access key, or a configuration update goes through once its approvers' weights reach the account's [threshold](https://tempo.xyz/developers/docs/accounts/policies/signing-thresholds).

In the example, the threshold is 2. The passkey has weight 2, and the backup and recovery keys have weight 1 each. The passkey pays alone. Your recovery key alone reaches 1 of 2, so you can't move the customer's funds. If the customer loses their phone, the backup and recovery keys together [replace the passkey](https://tempo.xyz/developers/docs/accounts/apps/recover-an-account).

<span id="access-keys-pay-alone" />

## Access Keys

An access key has a key type (passkey, P-256, or secp256k1), spending limits per TIP-20 token that apply once or per period, an expiry, and scopes over contracts, functions, and recipients. An admin access key has no limits and manages other access keys.

A payout server can't ask for the customer's passkey on every payout. Instead, the signers approve an [access key](https://tempo.xyz/developers/docs/accounts/access-keys) once. From then on, it pays alone within its bounds. Its bounds are a spending limit per stablecoin, an expiry, and scopes. Scopes limit which contracts and functions it calls and whom it pays. Tempo checks those bounds on every transaction. A leaked payout server key can't spend past its daily limit.

An [admin access key](https://tempo.xyz/developers/docs/accounts/access-keys/admin-access-keys) has no bounds and can manage the account's other access keys. Give one only to a party you'd trust with the whole balance. No access key counts toward the threshold, admin or not. Only the signers can change the signers or the threshold.

## Related

[Security](https://tempo.xyz/developers/docs/accounts/security): Covers who can move an account's funds and what a breach exposes.

[Signing Methods](https://tempo.xyz/developers/docs/accounts/authentication): Covers passkeys, device keys, and private keys, and who holds each.

[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 the limits, expiry, and scopes Tempo checks for a key that pays alone.

[Account Upgrade](https://tempo.xyz/developers/docs/accounts/account-configuration/account-upgrade): Use for turning a single-key account into a configurable one at the same address.
