Welcome to Rhinestone
Rhinestone is the leading ERC-7579 modular smart account infrastructure platform. We provide tools and services that help developers build, deploy, and manage the smart account modules that will power the next wave of powerful onchain products with seamless UX.
Beginner
Get started The simplest way to use pre-built smart account modules without writing Solidity. Tap into powerful smart account features with just a few lines of code.
Advanced
Get started A set of developer tools and helper libraries for building smart account-agnostic modules. Tap into the programmable validation and execution of smart accounts to unlock powerful onchain products with seamless UX.
Infrastructure
Learn more Explore Rhinestone’s services for security and smart account automation. Get your module audited and integrated into the Module Registry and ModuleSDK, and build automations with the Rhinestone Automations service.
What are Smart Account Modules
Modules are self-contained smart contracts that extend a smart account's feature set. This creates a new paradigm for developers to access the programmable validation and execution of smart accounts, unlocking new product capabilities without compromising user self-sovereignty.
There are four types of modules today:
- Validators: Allow developers to modify how transactions are authenticated or what can be authorized against an account. This can unlock powerful features like session keys or quantum-proof signatures.
- Executors: Allow developers to create executions on an account with custom logic. This, for example, can unlock portfolio management products like a take profit or stop loss feature on a DeFi platform. ZK Email (opens in a new tab) is a novel example of how powerful and versatile an executor can be.
- Hooks: Allow developers to augment a smart account's execution flow by hooking in pre- or post-execution and enforcing conditions or any custom logic. A simple example is a spending limit.
- Fallbacks: Extend the account logic to add more functionality. For example, this can allow an account to be compatible with new module types in the future.