Skip to main content
Pass viem Account objects as the session owners. The SDK uses their signMessage methods when the session authorizes a transaction: Examples on this page use @rhinestone/sdk, where rhinestone is the RhinestoneSDK instance from Create a session with a custom setup.
Treat the session owner’s private key as a scoped application credential. Store it separately from the smart account’s owner key and revoke the session if it is exposed.

Require several signatures

Add multiple accounts and set a threshold:
The threshold defaults to 1. The standard session signing flow invokes the configured owners and assembles their validator contribution. Independent owner-signature collection with assembleTransaction is not available for session keys, so every required signer must be reachable by the process that calls signTransaction.
The session owner controls only the authority granted by that session. Restrict its calls, signing capability, duration, and spend instead of treating the validator threshold as the only security boundary.