A Rhinestone smart account is a smart contract wallet. It doesn’t hold keys. Instead, you configure one or more signers that are authorised to control it. The account is deployed on the first transaction, not at creation time.Documentation Index
Fetch the complete documentation index at: https://docs.rhinestone.dev/llms.txt
Use this file to discover all available pages before exploring further.
Create an account
Pass the owner signer when callingcreateAccount. Here’s an example using an external wallet (MetaMask) via Viem:
Creating an account only computes a counterfactual address. The smart contract is not deployed until you send the first outbound transaction on a given chain. Receiving tokens (funding the address) does not trigger deployment.
Custom nonce
By default, the SDK uses a nonce of0 to derive the account address. Pass a custom nonce to get a different address for the same set of owners. This is useful when you need multiple accounts per signer.
Different nonce = different account address, even with identical owners.
Restore an existing account
There is noimportAccount method. The SDK derives the account address deterministically from the owner configuration, so calling createAccount with the same owners (and nonce) always returns the same account. To restore an account in a new session or on a different device, just call createAccount again with the original signer:
Choose a signer type
The example above uses an ECDSA signer (external wallet). Rhinestone supports several signer types: passkeys, embedded wallets, external wallets, and multi-factor combinations.Signer types
Choose the right signer for your use case: native keys, embedded wallets, or external wallets.
EIP-7702
Add smart account features to an existing EOA without changing its address.