Skip to main content
A smart account is a smart contract that holds assets and contains the logic for authenticating signatures and executing transactions. Unlike an EOA, its behaviour is programmable — you can extend it with modules to add new capabilities without changing the underlying account contract. Rhinestone smart accounts follow the ERC-7579 standard for modular smart accounts.

Modules

Modules are self-contained smart contracts that extend a smart account’s feature set. There are four types:
  • Validators: control how transactions are authenticated. Examples: ECDSA key, passkey, multisig, session key.
  • Executors: enable executions on the account with custom logic. Examples: automated trading, scheduled transfers, stop-loss triggers.
  • Hooks: run before or after execution to enforce conditions. Examples: spending limits, transaction guards.
  • Fallbacks: extend the account interface to add new functionality or maintain compatibility with future standards.

Signers

Every smart account must have at least one validator configured. The entity controlling that validator owns the account. Rhinestone supports:
  • Passkeys (WebAuthn / device biometrics)
  • Embedded wallets (Privy, Dynamic, Turnkey, Magic, and others)
  • External wallets (MetaMask, Rabby, any WalletConnect-compatible wallet)
  • ECDSA keys (server-side or agent wallets)

Resources

ERC-7579 specification

The minimal standard for modular smart accounts: module types, interfaces, and interoperability.

ERC-7579 ecosystem

Tools, documentation, and example code for the ERC-7579 smart account ecosystem.

OpenZeppelin ERC-7579 guide

Building modular accounts with ERC-7579: validators, executors, hooks, fallbacks, and social recovery.