Skip to main content

Contract Accounts

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: