Skip to main content
A Rhinestone account is a smart contract wallet controlled by the user’s passkey. The passkey is created on the user’s device, and its private key never leaves their authenticator. Rhinestone only sees the public key and signed approvals, so it can’t sign for the user or move their funds.

The custody tests

Four tests separate a self-custodial wallet from a custodial service.

If Rhinestone is unavailable

Once deployed, the account is an onchain contract that keeps enforcing its configuration whatever happens to Rhinestone. Passkey signatures are verified onchain rather than by our API, and passkeys sync through the user’s platform or password manager. An outage doesn’t move funds or change who controls the account.

Regulation

Under MiCA, custody means safekeeping crypto-assets or the means of access to them, such as private keys. Rhinestone holds neither. In the US, SEC and FinCEN guidance distinguishes hosted wallets from unhosted wallets, where the user controls the keys and transacts independently. Passkey-controlled smart accounts align with the unhosted model.
This isn’t legal advice. Whether your product counts as non-custodial also depends on how you operate it, your product terms, and your jurisdiction, so review it with your own counsel.

Compared with other architectures

Whether a passkey is device-bound or synced, and whether secure hardware backs it, depends on the user’s authenticator and platform. See Passkeys.