This repository contains example implementations demonstrating Rhinestone's global wallet functionality. Each example showcases how users can deposit tokens on any supported chain and spend them seamlessly on any other supported chain using a single account address.
All examples are built on @rhinestone/sdk v2 and pinned to a single SDK version through a pnpm workspace, so the whole repo builds as one unit.
dynamic/- Integration with Dynamic wallet connectionprivy/- Integration with Privy authentication and embedded walletsreown/- Integration with Reown (formerly WalletConnect) AppKitpara-viem/- Integration with Para using the Para viem SDKpara-wagmi/- Integration with Para using the Para wagmi SDKmagic/- Integration with Magic authentication
passkey/- Passkey-only account (WebAuthn), no third-party auth providersession-keys/- One-click UX: approve a scoped session once, then execute within its policystandalone-wagmi/- Pure wagmi integration (injected connector), no auth providerstandalone-viem/- Pure viem integration as a runnable Node script, no auth provider or UI
backend/- CLI bundle generator for testing Rhinestone Orchestrator intents (git submodule)
Each frontend example is a Next.js application; standalone-viem is a Node script. The backend provides a CLI tool for generating and testing transaction bundles.
This is a pnpm workspace. Install pnpm if you don't have it (corepack enable), then:
# Clone with the backend submodule, or initialize it after cloning:
git submodule update --init --recursive
# Install all examples in one go
pnpm installShared dependency versions (including @rhinestone/sdk) live in the catalog in pnpm-workspace.yaml — bumping the SDK across every example is a one-line change there.
Each app is a standalone Next.js project. Copy its env.example to .env and fill in the required keys, then:
pnpm --filter @rhinestone-examples/dynamic dev(substitute the app you want). Or cd into the app directory and run pnpm dev.
pnpm typecheck # typecheck every example
pnpm build # build every example
pnpm check:sdk # assert all examples pin the SDK via the catalog (no drift)CI runs check:sdk and typecheck on every example, so an app can't silently fall behind the pinned SDK version.