> ## Documentation Index
> Fetch the complete documentation index at: https://developers.stellar.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Contract Accounts

> Build, evaluate, and extend contract accounts on Stellar.

Contract accounts are smart contracts that act like accounts. They hold balances and use `__check_auth` to decide who can act and under what conditions.

Use a contract account when:

* You need custom authentication in the contract (passkeys/WebAuthn, hardware keys, or other signer checks).
* You need on chain rules such as spend caps, allow lists, or timelocks.

Stay with a classic account when:

* You want the simplest path: one private key, fund the account, no extra contract code or infrastructure.
* You must interoperate with systems/tools that expect memos (for example, some exchanges require payments with memos from a G-address; contract account payments go through the Stellar Asset Contract as muxed transfers, so transfers from contracts are not supported by exchanges today).

Quick links:

* [Simple Account example](/docs/build/smart-contracts/example-contracts/simple-account.md)
* [Complex Account example](/docs/build/smart-contracts/example-contracts/complex-account.md)
* [Contract authorization starter guide](/docs/build/guides/auth/contract-authorization.md) and [Authorization fundamentals](/docs/learn/fundamentals/contract-development/authorization.md)
* [Choose a fee sponsorship approach](/docs/build/guides/transactions/fee-sponsorship.md): contract accounts can't pay their own transaction fees
