Overview
Turnkey provides secure key management infrastructure that enables you to create and manage signing keys for your users. This guide shows you how to integrate Turnkey signers with Rhinestone smart accounts for secure, non-custodial wallet experiences. How it works: Unlike Privy and Dynamic, Turnkey operates at a lower level. You create a viem-compatible account using@turnkey/viem, then pass that account to Rhinestone. Turnkey handles the secure key management while Rhinestone adds cross-chain capabilities.
Prerequisites
- A Turnkey account and organization
- Turnkey API credentials (API public/private key pair)
- Your organization ID from Turnkey
Create a Signer Wallet
Using the Turnkey dashboard or API, create a new Ethereum (EVM) wallet. This wallet will be the owner of the Rhinestone smart account.
- Log into your Turnkey dashboard
- Navigate to the Wallets section
- Create a new Ethereum wallet
- Note the wallet address for the next step
Create a Turnkey Signer
Use
@turnkey/viem to create a viem-compatible account backed by Turnkey’s signing infrastructure:The
createAccount function from @turnkey/viem returns a full viem LocalAccount with signMessage, signTransaction, and signTypedData already implemented.Usage
Send a Cross-chain Transaction
The Rhinestone account will automatically use the Turnkey signer for all transactions:Don’t forget to fund the account before making any transactions.
Environment Variables
Make sure to set the following environment variables:Next Steps
- Learn about sending cross-chain transactions for more transaction details
- Explore chain abstraction capabilities
- Check out creating an account for more details