# Turnkey ## Docs - [Create API Keys](https://docs.turnkey.com/api-reference/activities/create-api-keys.md): Add api keys to an existing User - [Create Authenticators](https://docs.turnkey.com/api-reference/activities/create-authenticators.md): Create Authenticators to authenticate requests to Turnkey - [Create Invitations](https://docs.turnkey.com/api-reference/activities/create-invitations.md): Create Invitations to join an existing Organization - [Create Oauth Providers](https://docs.turnkey.com/api-reference/activities/create-oauth-providers.md): Creates Oauth providers for a specified user - BETA - [Create Policies](https://docs.turnkey.com/api-reference/activities/create-policies.md): Create new Policies - [Create Policy](https://docs.turnkey.com/api-reference/activities/create-policy.md): Create a new Policy - [Create Private Key Tag](https://docs.turnkey.com/api-reference/activities/create-private-key-tag.md): Create a private key tag and add it to private keys. - [Create Private Keys](https://docs.turnkey.com/api-reference/activities/create-private-keys.md): Create new Private Keys - [Create Read Only Session](https://docs.turnkey.com/api-reference/activities/create-read-only-session.md): Create a read only session for a user (valid for 1 hour) - [Create Read Write Session](https://docs.turnkey.com/api-reference/activities/create-read-write-session.md): Create a read write session for a user - [Create Sub-Organization](https://docs.turnkey.com/api-reference/activities/create-sub-organization.md): Create a new Sub-Organization - [Create User Tag](https://docs.turnkey.com/api-reference/activities/create-user-tag.md): Create a user tag and add it to users. - [Create Users](https://docs.turnkey.com/api-reference/activities/create-users.md): Create Users in an existing Organization - [Create Wallet](https://docs.turnkey.com/api-reference/activities/create-wallet.md): Create a Wallet and derive addresses - [Create Wallet Accounts](https://docs.turnkey.com/api-reference/activities/create-wallet-accounts.md): Derive additional addresses using an existing wallet - [Delete API Keys](https://docs.turnkey.com/api-reference/activities/delete-api-keys.md): Remove api keys from a User - [Delete Authenticators](https://docs.turnkey.com/api-reference/activities/delete-authenticators.md): Remove authenticators from a User - [Delete Invitation](https://docs.turnkey.com/api-reference/activities/delete-invitation.md): Delete an existing Invitation - [Delete Oauth Providers](https://docs.turnkey.com/api-reference/activities/delete-oauth-providers.md): Removes Oauth providers for a specified user - BETA - [Delete Policy](https://docs.turnkey.com/api-reference/activities/delete-policy.md): Delete an existing Policy - [Delete Private Key Tags](https://docs.turnkey.com/api-reference/activities/delete-private-key-tags.md): Delete Private Key Tags within an Organization - [Delete Private Keys](https://docs.turnkey.com/api-reference/activities/delete-private-keys.md): Deletes private keys for an organization - [Delete Sub Organization](https://docs.turnkey.com/api-reference/activities/delete-sub-organization.md): Deletes a sub organization - [Delete User Tags](https://docs.turnkey.com/api-reference/activities/delete-user-tags.md): Delete User Tags within an Organization - [Delete Users](https://docs.turnkey.com/api-reference/activities/delete-users.md): Delete Users within an Organization - [Delete Wallets](https://docs.turnkey.com/api-reference/activities/delete-wallets.md): Deletes wallets for an organization - [Export Private Key](https://docs.turnkey.com/api-reference/activities/export-private-key.md): Exports a Private Key - [Export Wallet](https://docs.turnkey.com/api-reference/activities/export-wallet.md): Exports a Wallet - [Export Wallet Account](https://docs.turnkey.com/api-reference/activities/export-wallet-account.md): Exports a Wallet Account - [Import Private Key](https://docs.turnkey.com/api-reference/activities/import-private-key.md): Imports a private key - [Import Wallet](https://docs.turnkey.com/api-reference/activities/import-wallet.md): Imports a wallet - [Init Email Recovery](https://docs.turnkey.com/api-reference/activities/init-email-recovery.md): Initializes a new email recovery - [Init Generic OTP](https://docs.turnkey.com/api-reference/activities/init-generic-otp.md): Initiate a Generic OTP activity - [Init Import Private Key](https://docs.turnkey.com/api-reference/activities/init-import-private-key.md): Initializes a new private key import - [Init Import Wallet](https://docs.turnkey.com/api-reference/activities/init-import-wallet.md): Initializes a new wallet import - [Init OTP auth](https://docs.turnkey.com/api-reference/activities/init-otp-auth.md): Initiate an OTP auth activity - [Login with a Stamp](https://docs.turnkey.com/api-reference/activities/login-with-a-stamp.md): Create a session for a user through stamping client side (api key, wallet client, or passkey client) - [Login with Oauth](https://docs.turnkey.com/api-reference/activities/login-with-oauth.md): Create an Oauth session for a user - [Login with OTP](https://docs.turnkey.com/api-reference/activities/login-with-otp.md): Create an OTP session for a user - [Oauth](https://docs.turnkey.com/api-reference/activities/oauth.md): Authenticate a user with an Oidc token (Oauth) - BETA - [OTP auth](https://docs.turnkey.com/api-reference/activities/otp-auth.md): Authenticate a user with an OTP code sent via email or SMS - [Activities](https://docs.turnkey.com/api-reference/activities/overview.md): Activities are requests to securely execute a workload in Turnkey. - [Perform Email Auth](https://docs.turnkey.com/api-reference/activities/perform-email-auth.md): Authenticate a user via Email - [Recover a user](https://docs.turnkey.com/api-reference/activities/recover-a-user.md): Completes the process of recovering a user by adding an authenticator - [Remove Organization Feature](https://docs.turnkey.com/api-reference/activities/remove-organization-feature.md): Removes an organization feature. This activity must be approved by the current root quorum. - [Set Organization Feature](https://docs.turnkey.com/api-reference/activities/set-organization-feature.md): Sets an organization feature. This activity must be approved by the current root quorum. - [Sign Raw Payload](https://docs.turnkey.com/api-reference/activities/sign-raw-payload.md): Sign a raw payload - [Sign Raw Payloads](https://docs.turnkey.com/api-reference/activities/sign-raw-payloads.md): Sign multiple raw payloads with the same signing parameters - [Sign Transaction](https://docs.turnkey.com/api-reference/activities/sign-transaction.md): Sign a transaction - [Update Policy](https://docs.turnkey.com/api-reference/activities/update-policy.md): Update an existing Policy - [Update Private Key Tag](https://docs.turnkey.com/api-reference/activities/update-private-key-tag.md): Update human-readable name or associated private keys. Note that this activity is atomic: all of the updates will succeed at once, or all of them will fail. - [Update Root Quorum](https://docs.turnkey.com/api-reference/activities/update-root-quorum.md): Set the threshold and members of the root quorum. This activity must be approved by the current root quorum. - [Update User](https://docs.turnkey.com/api-reference/activities/update-user.md): Update a User in an existing Organization - [Update User Tag](https://docs.turnkey.com/api-reference/activities/update-user-tag.md): Update human-readable name or associated users. Note that this activity is atomic: all of the updates will succeed at once, or all of them will fail. - [Update Wallet](https://docs.turnkey.com/api-reference/activities/update-wallet.md): Update a wallet for an organization - [Verify Generic OTP](https://docs.turnkey.com/api-reference/activities/verify-generic-otp.md): Verify a Generic OTP - [API Reference](https://docs.turnkey.com/api-reference/overview.md): Review our [API Introduction](/developer-reference/api-overview/intro) to get started. - [Get Activity](https://docs.turnkey.com/api-reference/queries/get-activity.md): Get details about an Activity - [Get API key](https://docs.turnkey.com/api-reference/queries/get-api-key.md): Get details about an API key - [Get API keys](https://docs.turnkey.com/api-reference/queries/get-api-keys.md): Get details about API keys for a user - [Get Authenticator](https://docs.turnkey.com/api-reference/queries/get-authenticator.md): Get details about an authenticator - [Get Authenticators](https://docs.turnkey.com/api-reference/queries/get-authenticators.md): Get details about authenticators for a user - [Get Configs](https://docs.turnkey.com/api-reference/queries/get-configs.md): Get quorum settings and features for an organization - [Get Oauth providers](https://docs.turnkey.com/api-reference/queries/get-oauth-providers.md): Get details about Oauth providers for a user - [Get Policy](https://docs.turnkey.com/api-reference/queries/get-policy.md): Get details about a Policy - [Get Private Key](https://docs.turnkey.com/api-reference/queries/get-private-key.md): Get details about a Private Key - [Get Suborgs](https://docs.turnkey.com/api-reference/queries/get-suborgs.md): Get all suborg IDs associated given a parent org ID and an optional filter. - [Get User](https://docs.turnkey.com/api-reference/queries/get-user.md): Get details about a User - [Get Verified Suborgs](https://docs.turnkey.com/api-reference/queries/get-verified-suborgs.md): Get all email or phone verified suborg IDs associated given a parent org ID. - [Get Wallet](https://docs.turnkey.com/api-reference/queries/get-wallet.md): Get details about a Wallet - [Get Wallet Account](https://docs.turnkey.com/api-reference/queries/get-wallet-account.md): Get a single wallet account - [List Activities](https://docs.turnkey.com/api-reference/queries/list-activities.md): List all Activities within an Organization - [List Policies](https://docs.turnkey.com/api-reference/queries/list-policies.md): List all Policies within an Organization - [List Private Key Tags](https://docs.turnkey.com/api-reference/queries/list-private-key-tags.md): List all Private Key Tags within an Organization - [List Private Keys](https://docs.turnkey.com/api-reference/queries/list-private-keys.md): List all Private Keys within an Organization - [List User Tags](https://docs.turnkey.com/api-reference/queries/list-user-tags.md): List all User Tags within an Organization - [List Users](https://docs.turnkey.com/api-reference/queries/list-users.md): List all Users within an Organization - [List Wallets](https://docs.turnkey.com/api-reference/queries/list-wallets.md): List all Wallets within an Organization - [List Wallets Accounts](https://docs.turnkey.com/api-reference/queries/list-wallets-accounts.md): List all Accounts within a Wallet - [Queries](https://docs.turnkey.com/api-reference/queries/overview.md): Queries are read requests to Turnkey's API. They allow you to retrieve data about your organization and its resources. - [Who am I?](https://docs.turnkey.com/api-reference/queries/who-am-i.md): Get basic information about your current API or WebAuthN user and their organization. Affords Sub-Organization look ups via Parent Organization for WebAuthN or API key users. - [Backend Authentication](https://docs.turnkey.com/authentication/backend-setup.md): Guide for setting up a secure backend proxy with Turnkey authentication, focusing on JWT implementation and user data management. - [Email Auth & Recovery](https://docs.turnkey.com/authentication/email.md): Email Authentication enables users to authenticate and recover their Turnkey accounts using email-based verification. There are two methods of email authentication: - [Overview](https://docs.turnkey.com/authentication/overview.md): Learn about supported authentication methods for Turnkey, how to add them, and usage details. - [Discoverable vs. Non-Discoverable](https://docs.turnkey.com/authentication/passkeys/discoverable-vs-non-discoverable.md): Also known as "resident" vs. "non-resident" credentials. From [the spec](https://www.w3.org/TR/webauthn-2/) - [Integrating Passkeys](https://docs.turnkey.com/authentication/passkeys/integration.md) - [Introduction to Passkeys](https://docs.turnkey.com/authentication/passkeys/introduction.md): Passkeys are born out of a new standard being pushed by major industry players: Apple and Google. - [Native Passkeys](https://docs.turnkey.com/authentication/passkeys/native.md): If you're unfamiliar with passkeys broadly, head to for an overview. TL;DR: passkeys are cryptographic key pairs generated and stored on secure hardware. Typically this is your Mac's or iPhone's , your Android's , or an external security key plugged in via USB. - [Passkey Options](https://docs.turnkey.com/authentication/passkeys/options.md): Whether you use the raw browser APIs or one of our helpers you'll have flexibility to set your own registration and authentication options. This page provides an overview and some recommendations related to these options. - [Proxying signed requests](https://docs.turnkey.com/authentication/proxying-signed-requests.md): Turnkey has an open CORS policy for its public API. This means your frontend can choose to POST sign requests straight to `https://api.turnkey.com`. Your frontend can also choose to forward the requests via a backend server (which POSTs the signed request to Turnkey). - [Sessions](https://docs.turnkey.com/authentication/sessions.md): Turnkey sessions allow a user to take multiple, contiguous actions in a defined period of time. - [SMS Authentication](https://docs.turnkey.com/authentication/sms.md): SMS authentication enables users to authenticate their Turnkey account using their phone number via a 6-9 digit or bech32 alphanumeric one-time password (OTP). When authenticated, users receive an expiring API key stored in memory within an iframe, which functions like a session key to access their wallet. - [Social Logins](https://docs.turnkey.com/authentication/social-logins.md): Social logins provide a familiar and convenient way for users to access applications using their existing accounts from popular platforms like Google, Apple, or Facebook. Under the hood, this functionality is powered by OAuth - a robust authentication protocol that enables secure user verification through OpenID Connect ([OIDC](https://openid.net/specs/openid-connect-core-1_0.html)) tokens. This feature is available exclusively for sub-organization users. - [Advanced](https://docs.turnkey.com/category/advanced.md): Use Turnkey's low-level http libraries directly - [Code Examples](https://docs.turnkey.com/category/code-examples.md) - [Code Examples](https://docs.turnkey.com/category/code-examples-1.md) - [Security & Architecture](https://docs.turnkey.com/category/security.md): Learn how Turnkey achieves innovative, cloud scale, no single point of failure security. - [Web3 Libraries](https://docs.turnkey.com/category/web3-libraries.md): Turnkey Web3 Libraries - [API Key Stamper](https://docs.turnkey.com/changelogs/api-key-stamper/readme.md) - [Cosmjs](https://docs.turnkey.com/changelogs/cosmjs/readme.md) - [Crypto](https://docs.turnkey.com/changelogs/crypto/readme.md) - [Dart](https://docs.turnkey.com/changelogs/dart/readme.md) - [Eip 1193 Provider](https://docs.turnkey.com/changelogs/eip-1193-provider/readme.md) - [Encoding](https://docs.turnkey.com/changelogs/encoding/readme.md) - [Ethers](https://docs.turnkey.com/changelogs/ethers/readme.md) - [Go](https://docs.turnkey.com/changelogs/golang/readme.md) - [Http](https://docs.turnkey.com/changelogs/http/readme.md) - [Iframe Stamper](https://docs.turnkey.com/changelogs/iframe-stamper/readme.md) - [React Native Passkey Stamper](https://docs.turnkey.com/changelogs/react-native-passkey-stamper/readme.md) - [SDK Browser](https://docs.turnkey.com/changelogs/sdk-browser/readme.md) - [SDK React Native](https://docs.turnkey.com/changelogs/sdk-react-native/readme.md) - [SDK React](https://docs.turnkey.com/changelogs/sdk-react/readme.md) - [SDK Server](https://docs.turnkey.com/changelogs/sdk-server/readme.md) - [Solana](https://docs.turnkey.com/changelogs/solana/readme.md) - [Telegram Cloud Storage Stamper](https://docs.turnkey.com/changelogs/telegram-cloud-storage-stamper/readme.md) - [Viem](https://docs.turnkey.com/changelogs/viem/readme.md) - [Wallet Stamper](https://docs.turnkey.com/changelogs/wallet-stamper/readme.md) - [Webauthn Stamper](https://docs.turnkey.com/changelogs/webauthn-stamper/readme.md) - [Organizations](https://docs.turnkey.com/concepts/organizations.md): An organization is a logical grouping of resources (e.g. users, policies, wallets). These resources can only be accessed by authorized and permissioned users within the organization. Resources are not shared between organizations. - [Overview](https://docs.turnkey.com/concepts/overview.md): Turnkey is flexible, scalable, and secure wallet infrastructure that can be used for transaction automation (e.g., payments flows, smart contract management), or non-custodial embedded wallets. Turnkey offers low-level primitives that can be combined to accomplish a variety of goals. - [Delegated Access](https://docs.turnkey.com/concepts/policies/delegated-access.md): With Turnkey you can create multi-user accounts with flexible co-ownership controls. This primitive enables you to establish delegated access to a user’s wallet, reducing or removing the need for them to manually approve each action. You can provide a smoother user experience while ensuring that end-users maintain full control over their wallets. - [Policy examples](https://docs.turnkey.com/concepts/policies/examples.md) - [Policy language](https://docs.turnkey.com/concepts/policies/language.md): This page provides an overview of how to author policies using our policy language. To begin, we'll need to get familiar with the language's grammar, keywords, and types. - [Policy overview](https://docs.turnkey.com/concepts/policies/overview.md): Our policy engine is the foundation for flexible controls and permissions within your organization. This page provides an overview of how to author policies. - [Policy quickstart](https://docs.turnkey.com/concepts/policies/quickstart.md): This guide will help you add an additional user to your Turnkey organization and set permissions for that user through Policies. Specifically, we will create an API-only user with permissions to sign transactions to an allowlisted address. - [Resource Limits](https://docs.turnkey.com/concepts/resource-limits.md): We have limits on the number of resources within a single organization to avoid performance slowdowns and overly complex permission models. You can scale your organizational resources beyond these limits via . You can create an unlimited number of sub-organizations within a single organization. - [Sub-Organizations](https://docs.turnkey.com/concepts/sub-organizations.md): Using Turnkey's flexible infrastructure, you can programmatically create and manage sub-organizations for your end-users. sub-organizations aren't subject to size limits: you can create as many sub-organizations as needed. The parent organization has **read-only** visibility into all of its sub-organizations, and activities performed in sub-organizations roll up to the parent for billing purposes. - [Introduction to users](https://docs.turnkey.com/concepts/users/introduction.md): Turnkey users are resources within organizations or sub-organizations that can submit activities to Turnkey via a valid credential (e.g., API key, passkey). - [Wallets](https://docs.turnkey.com/concepts/wallets.md): A [hierarchical deterministic (HD) Wallet](https://learnmeabitcoin.com/technical/hd-wallets) is a collection of cryptographic private/public key pairs that share a common seed. A Wallet is used to generate Accounts. - [Errors](https://docs.turnkey.com/developer-reference/api-overview/errors.md): An error returned by the Turnkey API might look something like this: - [Introduction](https://docs.turnkey.com/developer-reference/api-overview/intro.md): Turnkey's API is a remote procedure call (RPC) API. - [Queries](https://docs.turnkey.com/developer-reference/api-overview/queries.md): Queries are read requests to Turnkey's API. Query URL paths are prefixed with `/public/v1/query`. Queries are not subject to enforcement of the policy engine. All users within an organization can read any data within the organization. - [Stamps](https://docs.turnkey.com/developer-reference/api-overview/stamps.md): Every request made to Turnkey must include a signature over the POST body attached as a HTTP header. Our secure enclave applications use this signature to verify the integrity and authenticity of the request. - [Submissions](https://docs.turnkey.com/developer-reference/api-overview/submissions.md): Submissions are requests to securely execute a workload. Submission URL paths are prefixed with `/public/v1/submit`. Submissions requests, if valid, produce an `Activity`. - [Using LLMs](https://docs.turnkey.com/developer-reference/using-llms.md) - [Activity Webhooks](https://docs.turnkey.com/developer-reference/webhooks.md): Webhooks provide a powerful mechanism to receive real-time notifications about activity requests in your Turnkey organization. Additionally, you'll be able to receive all activity requests for both the parent organization and all its child organizations. This functionality can be enabled via the organization feature capabilities of our platform, as detailed in the section on [organization features](/concepts/organizations#features). - [Add an Additional Passkey](https://docs.turnkey.com/embedded-wallets/code-examples/add-credential.md): This guide demonstrates how to add a new credential (specifically, a passkey) to an existing wallet using the Turnkey SDK. - [Authenticate a User with Email](https://docs.turnkey.com/embedded-wallets/code-examples/authenticate-user-email.md) - [Authenticate a User with a Passkey Credential](https://docs.turnkey.com/embedded-wallets/code-examples/authenticate-user-passkey.md) - [Create a User Passkey Session](https://docs.turnkey.com/embedded-wallets/code-examples/create-passkey-session.md): A passkey session is an expiring session enabled by an initial passkey authentication. You could think of this as a "lightning mode" of sorts: creating a passkey session allows users to authenticate subsequent requests touch-free. Under the hood, this is powered by our [indexedDbStamper](/sdks/advanced/indexed-db-stamper). These sessions are enabled by creating a short-lived embedded API key in the browser, stored in localStorage, and cryptographically scoped to a public key generated by IndexedDB. - [Create a Sub-Org with a Passkey User](https://docs.turnkey.com/embedded-wallets/code-examples/create-sub-org-passkey.md): In this guide, we'll walk through the process of creating a new end user with a passkey. - [Create a User with Email Only](https://docs.turnkey.com/embedded-wallets/code-examples/create-user-email.md): This example demonstrates how to create a sub organization using just an end-user's email: passkeys not required! Note that this flow does not require emails to be verified. - [Recover a User with Email](https://docs.turnkey.com/embedded-wallets/code-examples/email-recovery.md): In this guide, we'll walk through the process of recovering a user using their email. - [Export Wallet or Private Key](https://docs.turnkey.com/embedded-wallets/code-examples/export.md): This is a guide to exporting your wallet or private key from Turnkey. For more information about the security of this flow, check out [Enclave secure channels](/security/enclave-secure-channels). - [Import Wallet or Private Key](https://docs.turnkey.com/embedded-wallets/code-examples/import.md): This is a guide to importing your wallet or private key into Turnkey. For more information about the security of this flow, check out [Enclave secure channels](/security/enclave-secure-channels). - [Signing Transactions](https://docs.turnkey.com/embedded-wallets/code-examples/signing-transactions.md): This is a guide to signing transactions in the browser context. While these snippets leverage Ethers, it can be swapped out for other signers in the Viem or Solana contexts. See [here](https://github.com/tkhq/sdk/tree/main/examples/with-eth-passkeys-galore) for an example with both Ethers and Viem in the passkey + browser context, and [here](https://github.com/tkhq/sdk/tree/main/examples/with-solana-passkeys) for a similar example with Solana. - [Wallet Authentication](https://docs.turnkey.com/embedded-wallets/code-examples/wallet-auth.md): In this guide, we'll explore how to leverage the `WalletClient` in the Turnkey SDK to authenticate requests to Turnkey's API using either Solana or Ethereum wallets. - [Features](https://docs.turnkey.com/embedded-wallets/features/overview.md) - [Overview](https://docs.turnkey.com/embedded-wallets/overview.md) - [FAQ](https://docs.turnkey.com/faq.md) - [Embedded Wallets Quickstart](https://docs.turnkey.com/getting-started/embedded-wallet-quickstart.md): Turnkey's Embedded Wallets enable you to integrate secure, custom wallet experiences directly into your product. With features like advanced security, seamless authentication, and flexible UX options, you can focus on building great products while we handle the complexities of private key management. - [Examples](https://docs.turnkey.com/getting-started/examples.md): Turnkey infrastructure is flexible by default. We intentionally prioritize low-level primitives in our product to avoid creating blockers for developers building new kinds of applications on Turnkey. - [Account Setup](https://docs.turnkey.com/getting-started/quickstart.md): Before diving into the code, let's set up your organization and conjure up an API keypair to unlock the full potential of Turnkey! - [Transaction Automation Quickstart](https://docs.turnkey.com/getting-started/signing-automation-quickstart.md): Turnkey's Transaction Automation enables you to build secure, programmatic signing workflows directly into your applications. With features like customizable policies, multi-party approvals, and support for any blockchain, you can confidently automate complex signing operations while maintaining enterprise-grade security. - [Overview](https://docs.turnkey.com/home.md): Welcome to Turnkey! - [Aptos support on Turnkey](https://docs.turnkey.com/networks/aptos.md) - [Bitcoin support on Turnkey](https://docs.turnkey.com/networks/bitcoin.md) - [Cosmos support on Turnkey](https://docs.turnkey.com/networks/cosmos.md) - [Ethereum (EVM) support on Turnkey](https://docs.turnkey.com/networks/ethereum.md) - [Movement](https://docs.turnkey.com/networks/movement.md): Movement support on Turnkey - [Others](https://docs.turnkey.com/networks/others.md) - [Overview](https://docs.turnkey.com/networks/overview.md): Turnkey operates at the **cryptographic curve** level rather than specific assets. As a result Turnkey is asset agnostic and can be used with any type of asset as long as we support the underlying curve. - [Sei support on Turnkey](https://docs.turnkey.com/networks/sei.md) - [Solana (SVM) support on Turnkey](https://docs.turnkey.com/networks/solana.md) - [Sui support on Turnkey](https://docs.turnkey.com/networks/sui.md) - [Tron support on Turnkey](https://docs.turnkey.com/networks/tron.md) - [Embedded Wallets Implementation Guide](https://docs.turnkey.com/production-checklist/embedded-wallet.md): Designing your embedded wallet implementation - [Production Checklist](https://docs.turnkey.com/production-checklist/production-checklist.md): This checklist contains recommendations and steps specifically for deploying an Embedded Wallet production environment. - [Transaction Automation Implementation Guide](https://docs.turnkey.com/production-checklist/transaction-automation.md): Implementing transaction automation with Turnkey - [Multi-Chain Support](https://docs.turnkey.com/products/embedded-wallets/features/multi-chain-support.md): Overview of our multi-chain network support. - [null](https://docs.turnkey.com/products/transaction-automation/features/export-wallets.md) - [null](https://docs.turnkey.com/products/transaction-automation/features/import-wallets.md) - [Multi-Chain Support](https://docs.turnkey.com/products/transaction-automation/features/multi-chain-support.md): Overview of our multi-chain network support. - [QuorumOS](https://docs.turnkey.com/products/transaction-automation/features/security/quorum-os.md) - [Remote Attestation](https://docs.turnkey.com/products/transaction-automation/features/security/remote-attestation.md) - [Secure Hardware](https://docs.turnkey.com/products/transaction-automation/features/security/secure-hardware.md) - [Account Abstraction Wallets](https://docs.turnkey.com/reference/aa-wallets.md): Turnkey offers flexible infrastructure to create and manage keys. These keys can be used as a signer inside of an [Account Abstraction wallet](https://www.erc4337.io/), and we've partnered with [Alchemy](https://www.alchemy.com/) and [ZeroDev](https://zerodev.app/) to integrate in a few lines of code. - [Embedded Wallet Kit (EWK)](https://docs.turnkey.com/reference/embedded-wallet-kit.md): Turnkey offers a suite of react components to create embedded wallets without having to setup a backend by using Next.js [server actions](https://nextjs.org/docs/app/building-your-application/data-fetching/server-actions-and-mutations) and associated directives. Each component uses the **indexedDbClient** from [@turnkey/sdk-react](https://www.npmjs.com/package/@turnkey/sdk-react). - [How to Integrate Gasless Transactions On Solana With Turnkey](https://docs.turnkey.com/reference/solana-gasless-transactions.md) - [ApiKeyStamper](https://docs.turnkey.com/sdks/advanced/api-key-stamper.md) - [IframeStamper](https://docs.turnkey.com/sdks/advanced/iframe-stamper.md) - [TurnkeyClient](https://docs.turnkey.com/sdks/advanced/turnkey-client.md) - [WalletStamper](https://docs.turnkey.com/sdks/advanced/wallet-stamper.md) - [WebauthnStamper](https://docs.turnkey.com/sdks/advanced/webauthn-stamper.md) - [Using the CLI](https://docs.turnkey.com/sdks/cli.md): This quickstart will guide you through Turnkey’s onboarding, adding an API key, creating a wallet, and signing your first Ethereum transaction. - [Flutter](https://docs.turnkey.com/sdks/flutter.md): This documentation contains guides for using the Flutter SDK. - [Golang](https://docs.turnkey.com/sdks/golang.md): Turnkey offers native tooling for interacting with the API using Golang. See [https://github.com/tkhq/go-sdk](https://github.com/tkhq/go-sdk) for more details. - [SDK Reference](https://docs.turnkey.com/sdks/introduction.md): Turnkey provides a variety of client and server SDKs which simplify interacting with Turnkey's API. The SDKs offer methods, utilities, and helper functions to quickly implement features and perform common workflows. - [JavaScript Browser](https://docs.turnkey.com/sdks/javascript-browser.md) - [JavaScript Server](https://docs.turnkey.com/sdks/javascript-server.md): The [`@turnkey/sdk-server`](https://www.npmjs.com/package/@turnkey/sdk-server) package exposes functionality that lets developers build server-side functionality for applications that interact with the Turnkey API. - [Migration Path](https://docs.turnkey.com/sdks/migration-path.md): This guide aims to cover the process for migrating from lower-level Turnkey SDK (i.e. `@turnkey/{ http, api-key-stamper, webauthn-stamper, iframe-stamper }`) libraries, to our more recent abstractions: `@turnkey/{ sdk-browser, sdk-server, sdk-react }` - [Python](https://docs.turnkey.com/sdks/python.md): Turnkey offers support for interacting with the API using Python. See [https://github.com/tkhq/python-sdk](https://github.com/tkhq/python-sdk) for more details. - [React](https://docs.turnkey.com/sdks/react.md) - [React Native](https://docs.turnkey.com/sdks/react-native.md): This documentation contains guides for using Turnkey's React Native compatible [JavaScript packages](https://github.com/tkhq/sdk/tree/main/packages). - [Rust](https://docs.turnkey.com/sdks/rust.md): Turnkey offers native tooling for interacting with the API using Rust. See [https://github.com/tkhq/rust-sdk](https://github.com/tkhq/rust-sdk) for more details. - [Turnkey Swift SDK](https://docs.turnkey.com/sdks/swift.md): This documentation contains guides for using the [Turnkey Swift SDK](https://github.com/tkhq/swift-sdk). - [Proxy Middleware](https://docs.turnkey.com/sdks/swift/proxy-middleware.md): The [`ProxyMiddleware`](https://github.com/tkhq/swift-sdk/blob/bd8993b4b6b35c44d4a917b06dd44490961c4f28/Sources/Middleware/ProxyMiddleware.swift) is integrated into the `TurnkeyClient` through its initializer that accepts a proxy server URL. - [Introduction](https://docs.turnkey.com/sdks/swift/register-passkey.md): This guide explains how to use the `PasskeyManager` class to register a new passkey within your iOS application. We'll cover the necessary configurations and provide code examples with detailed explanations. - [CosmJS](https://docs.turnkey.com/sdks/web3/cosmjs.md): [`@turnkey/cosmjs`](https://www.npmjs.com/package/@turnkey/cosmjs) exports a `TurnkeyDirectWallet` that serves as a drop-in replacement for a CosmJS direct wallet. It includes support for `signDirect`. See full implementation [here](https://github.com/tkhq/sdk/tree/main/packages/cosmjs) for more details and examples. - [EIP 1193](https://docs.turnkey.com/sdks/web3/eip-1193.md): [`@turnkey/eip-1193-provider`](https://www.npmjs.com/package/@turnkey/eip-1193-provider) is a Turnkey-compatible Ethereum provider that conforms to the [EIP-1193](https://eips.ethereum.org/EIPS/eip-1193) standard. It's built to seamlessly integrate with a broad spectrum of EVM-compatible chains, offering capabilities like account management, transaction signing, and blockchain interaction. - [Ethers](https://docs.turnkey.com/sdks/web3/ethers.md): [`@turnkey/ethers`](https://www.npmjs.com/package/@turnkey/ethers) exports a `TurnkeySigner` that serves as a drop-in replacement for an Ethers signer. - [Solana](https://docs.turnkey.com/sdks/web3/solana.md): We have released a package that you can use to sign transactions and messages: [`@turnkey/solana`](https://www.npmjs.com/package/@turnkey/solana). See [here](https://github.com/tkhq/sdk/tree/main/examples/with-solana) for an example. - [Viem](https://docs.turnkey.com/sdks/web3/viem.md): [`@turnkey/viem`](https://www.npmjs.com/package/@turnkey/viem) provides a Turnkey [Custom Account](https://viem.sh/docs/accounts/custom.html#custom-account) (signer) which implements the signing APIs expected by Viem clients. - [Disaster Recovery](https://docs.turnkey.com/security/disaster-recovery.md): We have a comprehensive disaster recovery process in place for all critical Turnkey data. - [Enclave to end-user secure channels](https://docs.turnkey.com/security/enclave-secure-channels.md): Turnkey does not trust anything running outside of secure enclaves. See [our approach](/security/our-approach) for more details. When enclaves and end-users need to exchange private information, we've rely on a protocol based on [HPKE](https://datatracker.ietf.org/doc/html/rfc9180) to establish a **secure channel**. - [Non-Custodial Key Management](https://docs.turnkey.com/security/non-custodial-key-mgmt.md) - [Our Approach](https://docs.turnkey.com/security/our-approach.md): At Turnkey we’ve developed a security framework that allows us, and eventually our users, to prove that all systems with security critical workloads are running exactly the software we expect at any given time, no single engineer can access any enclave or reconstruct a secret, and the system is always safe as long as enclaves are not compromised. - [Quorum Deployments](https://docs.turnkey.com/security/quorum-deployments.md): To run our applications in secure enclaves, we built QuorumOS: a minimal, immutable, and deterministic Linux unikernel build system for use cases that require high security and accountability. QuorumOS also contains an initialization and attestation framework for running applications within this environment. - [Reporting a Vulnerability](https://docs.turnkey.com/security/reporting-a-vulnerability.md): Turnkey highly values the security of our software, services, and systems and we actively encourage the ethical reporting of any security vulnerabilities discovered. We invite researchers and users to report potential security vulnerabilities to our Bug Bounty Program via the form below, or to us via email at [security@turnkey.com](mailto:security@turnkey.com). When submitting a report via email, please provide a thorough description of the vulnerability, including steps to reproduce it and its potential impact. - [Secure Enclaves](https://docs.turnkey.com/security/secure-enclaves.md): A core security anchor at Turnkey is the ability to prove to ourselves and our users that all systems within secure enclaves are running exactly the software we expect at any given time. To accomplish this, all security-critical Turnkey services, which perform actions including key generation, signing, and our policy engine, are deployed in secure enclaves. - [Verifiable Data](https://docs.turnkey.com/security/verifiable-data.md): Enclave applications in Turnkey’s infrastructure are stateless meaning, there is no persistent data held behind the enclave boundary. Instead, data is held in a PostgreSQL instance in our primary AWS account. Before any enclave applications operate on the data in a Turnkey account, it first verifies that that data has been recently notarized by Turnkey’s notarizer. A recent stamp could be the result of an update or initiated by the heartbeat service. - [The Turnkey Whitepaper](https://docs.turnkey.com/security/whitepaper.md): We have published an in-depth whitepaper describing the principles with which we've built Turnkey and explaining in great detail the infrastructure foundations as well as the system architecture underpinning our product. - [Co-signing Transactions](https://docs.turnkey.com/signing-automation/co-signing-transactions.md): Learn how to set up and use co-signing (multi-sig) wallets with Turnkey. - [Signing Transactions](https://docs.turnkey.com/signing-automation/code-examples/signing-transactions.md): This is a guide to signing transactions in a server context. While these snippets leverage Ethers, it can be swapped out for other signers in the Viem or Solana contexts. An example for Ethers can be found , and for Viem in the server context. A similar example with Solana can be found . - [Overview](https://docs.turnkey.com/signing-automation/overview.md) - [Claim Links](https://docs.turnkey.com/wallets/claim-links.md): Enable your users to send crypto to people who haven’t signed up yet through secure, non-custodial magic claim links. This feature creates pre-funded wallets that new users can claim by simply clicking a URL. - [Export Wallets and Keys](https://docs.turnkey.com/wallets/export-wallets.md): Turnkey's export functionality allows your end users to backup or transfer a [Wallet](/concepts/wallets) by securely viewing the wallet's [mnemonic phrase](https://learnmeabitcoin.com/technical/mnemonic), a [Wallet Account](/concepts/wallets#accounts) or a raw [Private Key](/concepts/wallets#private-keys). We engineered this feature to ensure that the user can export their mnemonic or private key without exposing it to Turnkey or your application. - [Import Wallets and Keys](https://docs.turnkey.com/wallets/import-wallets.md): Turnkey's import functionality allows your end users to securely transfer a [Wallet](/concepts/wallets) or a [Private Key](/concepts/wallets#private-keys) onto the Turnkey platform via CLI or an embedded iframe. We engineered this feature to ensure that the user can import their mnemonic or private key into a Turnkey secure enclave without exposing it to Turnkey or your application. - [Pre-Generated Wallets](https://docs.turnkey.com/wallets/pregenerated-wallets.md): Turnkey allows you to pre-generate wallets for your user before they authenticate. This is helpful if you already know the users email or phone number, and want to create a deposit address for them or airdrop a reward before they authenticate to Turnkey. - [Integrating an Embedded Wallet with Wagmi](https://docs.turnkey.com/wallets/wagmi.md) ## Optional - [Support](https://join.slack.com/t/clubturnkey/shared_invite/zt-31v4yhgw6-PwBzyNsWCCBTk2xft3EoHQ) - [Blog](https://www.turnkey.com/blog) - [Contact Us](https://www.turnkey.com/contact-us)