Skip to main content
That said, we have built out several example services and applications to help illustrate the types of functionality that Turnkey can enable.

Demos

Full end-to-end applications to see everything working together.
ExampleDescription
react-wallet-kitComprehensive demo of embedded wallet kit with auth, wallet management, signing, import/export
demo-embedded-walletA minimal consumer wallet app powered by Turnkey and passkeys, with transaction sending
demo-consumer-walletA minimal consumer wallet app powered by Turnkey and WalletConnect
with-react-native-wallet-kitA React Native app demonstrating how to use @turnkey/react-native-wallet-kit to authenticate users, create wallets, export wallets, sign messages, and more
flutter-demo-appA Flutter app that demonstrates how to use the Turnkey’s Flutter packages to authenticate users, create wallets, export wallets, sign messages, and more
swift-sdk/ExamplesNative iOS wallet app with OTP, OAuth, and passkey auth, wallet creation, message signing, and transaction sending

Authentication

ExampleDescription
oauthOAuth login (Google) integration with Turnkey via backend server actions
otp-authEmail OTP authentication with Auth Proxy and a custom backend
magic-link-authMagic link login/signup flow using Turnkey’s email OTP system
wallet-authExternal wallet authentication (MetaMask, Phantom, etc.) with Auth Proxy and custom backend
with-wallet-stamperDemonstrates @turnkey/wallet-stamper for signing Turnkey requests with an external wallet

Key & Wallet Management

ExampleDescription
import-export-with-rwkWallet import and export using React Wallet Kit and Auth Proxy
import-export-with-iframe-stamperWallet import/export via @turnkey/iframe-stamper
wallet-export-signWallet export and signing operations via Turnkey iframe
export-in-nodeWallet export performed on the backend
import-in-nodeWallet import performed on the backend
disaster-recoveryWallet disaster recovery with direct import or encryption key escrow
encryption-key-escrowUse Turnkey to store encryption keys for external recovery bundles

Signing

Signers and chain-specific transaction examples.
ExampleDescription
with-ethersSign messages, send EIP-1559 and legacy transactions, interact with contracts (WETH), and sign EIP-712 typed data (ERC-2612 permit, ERC-3009, Hyperliquid) using @turnkey/ethers
with-viemSign messages, send transactions, sign EIP-712 typed data, and sign EIP-4844 and EIP-7702 transactions using @turnkey/viem
with-eip-1193-providerTurnkey-compatible Ethereum provider adhering to the EIP-1193 standard
with-nonce-managerSign and broadcast multiple Ethereum transactions sequentially or optimistically
with-cosmjsSign and broadcast a Cosmos transaction on Celestia testnet using @turnkey/cosmjs
with-solanaSign and broadcast Solana transactions using @turnkey/solana, including SPL token creation + transfer
with-bitcoinConstruct, sign, and broadcast a Bitcoin transaction using bitcoinjs-lib
with-dogeDogecoin testnet transaction signing using bitcoinjs-lib
with-aptosAptos transaction construction and mainnet fund transfer
with-tonTON transaction construction and mainnet fund transfer
with-tronTron wallet creation, signing, testnet funding, and policy guards
with-stacksStacks transaction signing with secp256k1
with-movementMovement transaction construction and mainnet fund transfer
with-arcArc testnet transaction construction and broadcast
with-tempoTempo testnet transaction construction and broadcast
with-suiConstruct, sign, and broadcast a Sui transaction using Turnkey
with-iotaBuild, sign, and broadcast IOTA transactions using Turnkey

Turnkey Transaction Management

ExampleDescription
tk-gas-stationGasless transactions using Gas Station SDK with EIP-7702 authorization
with-paymasterERC-20 token transfer on EVM with Turnkey paymaster gas sponsorship
with-solana-paymasterSPL token transfer on Solana with Turnkey fee sponsorship
with-balancesFetch token balances and list supported assets using Turnkey APIs
solana-sweeperSolana token sweeper utility
solana-usdc-swapSOL to USDC swap on Solana mainnet via Jupiter
sweeperSweep funds from one address to a different address
rebalancerManage and rebalance funds across multiple wallets and key types

Account Abstraction

ExampleDescription
with-zerodev-aaTransaction construction and broadcast with Turnkey, Viem, and ZeroDev account abstraction
with-biconomy-aaTransaction construction and broadcast with Turnkey, Viem, and Biconomy account abstraction

DeFi & Protocol Integrations

ExampleDescription
with-uniswapSign and broadcast a Uniswap v3 trade using the Ethers signer
eth-usdc-swapETH to USDC swap on Base mainnet via Uniswap Universal Router
with-0xEVM swapping ETH for USDC using 0x Swap API
with-lifiEVM and SVM bridging between ETH and SOL using Li.Fi
with-aaveAave v3 USDC deposit/withdraw with Turnkey policy engine controls
with-morphoMorpho Vaults USDC deposit/withdraw on Base Mainnet
with-yield-xyzYield.xyz vaults deposit/withdraw across 75+ networks
with-portoPorto wallet upgrade and operations using API keys
with-x402Coinbase x402 payment protocol with embedded wallets
with-jupiterSolana token swaps using Jupiter Ultra Swap API
with-breezeSolana USDC staking and yield management via Breeze API
trading-runnerMulti-user Uniswap v3 trading demo with private key tags, user tags, and policies
with-gnosisCreate new Ethereum addresses, configure a 3/3 Gnosis safe, and create + execute a transaction from it

Policies & Access Control

ExampleDescription
with-delegatedDelegated access setup examples

Smart Contracts & Automation

ExampleDescription
deployerCompile and deploy a smart contract
foundrySmart contract setup and broadcast from a Turnkey wallet using Foundry

Advanced & Utilities

ExampleDescription
with-offlineStamp a Turnkey request and produce a signed URL to send it later
kitchen-sinkPlayground scripts for common Turnkey requests via HTTP, sdk-server, and sdk-browser
with-sdk-jsIntegration test suite for @turnkey/core and @turnkey/react-wallet-kit

Demos built with Turnkey

A full-featured embedded wallet demo built with @turnkey/react-wallet-kit, showcasing the latest Turnkey SDK. Includes passkey, email, and OAuth authentication, wallet creation, and more. A wallet application showing how users can register and authenticate using passkeys. Includes features such as:
  • User authentication with passkeys, email auth, and OAuth
  • Creating new wallets and wallet accounts
  • Sending and receiving funds
  • Importing/Exporting a wallet
  • Adding a credential to the wallet
demo embedded wallet login view
demo embedded wallet dashboard view
See https://github.com/tkhq/demo-embedded-wallet for the code.

React Native wallet kit (code)

A React Native app demonstrating how to use @turnkey/react-native-wallet-kit to authenticate users, create wallets, export wallets, sign messages, and more.

Flutter demo app (code)

A Flutter app that demonstrates how to use the Turnkey’s Flutter packages to authenticate users, create wallets, export wallets, sign messages, and more
See https://github.com/tkhq/dart-sdk/tree/main/examples/flutter-demo-app for the code

Demo consumer wallet (code)

A minimal consumer wallet app powered by Turnkey. Behind the scenes, it uses @turnkey/ethers for signing and WalletConnect (v1) for accessing dapps.
See https://github.com/tkhq/demo-consumer-wallet for the code.

Demo viem passkeys with Gelato relay (code)

This example demonstrates how to leverage Turnkey’s secure key management and Gelato’s battle-tested relay infrastructure to enable seamless, sponsored interactions with meta-transactions using the @turnkey/viem signer and @gelatonetwork/relay-sdk-viem.
gelato turnkey screenshot

How Infinex leverages Turnkey and Gelato

Infinex, a platform designed to unify the decentralized ecosystem and applications under a single UX layer, eliminates the complexities of navigating fragmented crypto protocols. By integrating Turnkey and Gelato, Infinex delivers a seamless, secure, and cost-efficient experience for decentralized finance users.
  • Secure Key Management with Turnkey: Infinex ensures private keys are securely managed within Turnkey’s infrastructure, removing the need for traditional wallet pop-ups. This approach streamlines authentication through passkeys, offering a frictionless and secure user experience.
  • Gasless Transactions with Gelato: Leveraging Gelato’s Relay (ERC-2771), Infinex enables fully sponsored transactions, allowing users to interact with decentralized applications without ever paying gas fees. This enhances accessibility and usability, ensuring that users can participate without holding or managing native blockchain tokens for fees.
The synergy between Turnkey and Gelato allows Infinex to offer an intuitive, cost-free user experience while maintaining the highest standards of security and scalability.

Multichain signing (Adamik demo)

This demo shows how the Adamik API has integrated Turnkey to securely sign transactions across 60+ blockchains.