Skip to main content

Smart wallets

Smart wallets are contract accounts that act as user wallets. They hold assets and enforce authorization in __check_auth instead of a single secret key. Passkeys (WebAuthn) are common, but you can also use Ed25519 keys, policy signers, session keys or anything the contract can verify.

When to use a smart wallet​

  • You need programmable authorization (limits, allow lists, multi-factor approvals such as user plus device key).
  • You want a passkey or hardware key experience without exposing seed phrases.
  • You need flexible signer mixes: passkeys for UX, Ed25519 for compatibility, policy or multisig signers for risk controls.

WebAuthn​

WebAuthn is a browser standard for passwordless authentication using public key cryptography. A device creates a keypair and proves possession with a challenge/response flow. Keys stay on the device or synced across devices through cloud providers.

Benefits:

  • Works across modern browsers and platforms.
  • Familiar flows (Touch ID, Face ID, hardware keys) without seed phrases.
  • Produces signatures you verify in __check_auth.

secp256r1 on Stellar​

secp256r1 (prime256v1) is the curve most WebAuthn authenticators use. Stellar added native verification for this curve in Protocol 21, so contracts can validate WebAuthn signatures on chain.

Passkeys​

  • WebAuthn is the browser standard for passwordless auth.
  • secp256r1 is the curve most authenticators use; Stellar verifies it on-chain.
  • Passkeys are the platform or hardware-backed credentials that implement WebAuthn.
  • See examples for real projects.

Passkeys in practice​

  • Registration: use WebAuthn to create a device keypair; store the public key (and optional credential ID) in contract state.
  • Signing: request a WebAuthn assertion when the user approves an action; it returns a signature over the payload.
  • Verification: pass the signature and credential ID to your contract; in __check_auth, verify the secp256r1 signature and apply any policy checks (limits, allow lists, timelocks).

Tooling​

Get involved​