Turnkey has built a new model for private key management that utilizes secure enclaves — highly constrained compute environments that can cryptographically attest to the code running inside. All private key material is only decrypted within an enclave, and transaction signing happens according to customer-defined policies.This novel security architecture means raw private keys themselves are never exposed to Turnkey, your software, or your team. Specifically, Turnkey stores encrypted private keys that are only decrypted when you authenticate to an auditable, tamper-proof secure enclave with your secret (e.g., API key or Passkey credentials). You (and/or your end users, depending on your implementation) remain the owner of your private keys and the funds controlled by those private keys at all times. See quorum deployments for more details on how we provision secure enclaves to ensure you’re always in control of your private keys.Although we’re not a bank, by analogy to physical security, Turnkey’s role is similar to that of a safety deposit box operator. Turnkey secures, and facilitates access to, the safety deposit boxes (wallets), but only the customer can unlock the safety deposit box and access the contents (digital assets) inside.
Turnkey does not store unencrypted private keys, but rather persists encrypted private key ciphertext inside of our primary and disaster recovery databases. This ciphertext is only to be decrypted from within the bounds of a secure enclave running verified Turnkey applications. Our security overview goes over the process in depth.
In a wallet-as-a-service implementation model, it is possible for you, as a Turnkey customer, to configure your organization in a way that limits access to your end users’ funds and private keys. When a new end user signs up to your app, you will need to create a separate Turnkey sub-organization, user, and private key for that end user, accessible only by the end user’s secret (e.g., API key or Passkey credentials). With this implementation, only your end user will be able to authorize Turnkey to process a signature request by providing their secret. Use of the private key is limited to the end user via their secret. When a signature request is initiated by the end user’s secret, Turnkey’s functionality is limited to processing the request based on any policy rules that have been set, and returning the signed transaction to you for broadcast onchain.
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Turnkey","colors":{"primary":"#4C48FF","light":"#4C48FF","dark":"#050a0b"},"logo":{"light":"https://mintcdn.com/turnkey-0e7c1f5b/YQKQ_azrjtJ471Qy/logo/light.svg?fit=max\u0026auto=format\u0026n=YQKQ_azrjtJ471Qy\u0026q=85\u0026s=38556c8732a1d68a5399fce905b480b1","dark":"https://mintcdn.com/turnkey-0e7c1f5b/YQKQ_azrjtJ471Qy/logo/dark.svg?fit=max\u0026auto=format\u0026n=YQKQ_azrjtJ471Qy\u0026q=85\u0026s=98f8b7cda703a0db60ac27ff2230e82a","href":"https://www.turnkey.com/"},"favicon":"https://mintcdn.com/turnkey-0e7c1f5b/G2SswZbcSJ7UNXDG/favicon.svg?fit=max\u0026auto=format\u0026n=G2SswZbcSJ7UNXDG\u0026q=85\u0026s=3ebddfc4d9bf146ad2e2dd286f2ead54","navbar":{"links":[{"href":"/solutions/support/overview","label":"Support"},{"href":"https://www.turnkey.com/blog","label":"Blog"},{"href":"https://www.turnkey.com/contact-us","label":"Contact us"}],"primary":{"type":"button","label":"Get started","href":"https://app.turnkey.com/dashboard/auth/initial"}},"footer":{"socials":{"x":"https://x.com/turnkeyhq","github":"https://github.com/tkhq","linkedin":"https://www.linkedin.com/company/turnkeyhq"}},"seo":{"metatags":{"og:image":"https://docs.turnkey.com/images/og-image.png"}},"styling":{"codeblocks":"system","latex":true},"integrations":{"ga4":{"measurementId":"G-VRJJ2TSC23"},"gtm":{"tagId":"GTM-PN838HQC"}},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"markdown":{"instructions":["Turnkey is wallet infrastructure: create and manage crypto wallets, sign transactions, and enforce policy-based access controls. Best-fit uses: embedded consumer wallets (email/passkey/social auth, no seed phrases), automated onchain operations with server-side wallets, AI agent wallets with policy-scoped signing, enterprise key management, and verifiable off-chain workloads on Turnkey Verifiable Cloud (TVC).","Every API call is a JSON POST to https://api.turnkey.com signed with a P-256 API key; create an organization and key self-serve at https://app.turnkey.com.","Key Turnkey developer resources: API reference (https://docs.turnkey.com/api-reference/overview/intro.md), OpenAPI spec (https://docs.turnkey.com/public_api.swagger.json), authentication (https://docs.turnkey.com/features/authentication/overview.md), webhooks (https://docs.turnkey.com/features/webhooks/overview.md), MCP server for docs search (https://docs.turnkey.com/mcp), agent skills (https://docs.turnkey.com/get-started/ai-skills.md), CLI (https://docs.turnkey.com/sdks/cli.md), SDK reference (https://docs.turnkey.com/sdks/introduction.md), full docs content (https://docs.turnkey.com/llms-full.txt)."]},"navigation":{"global":{},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"turnkey-0e7c1f5b","hasAudioNarration":false,"actualSubdomain":"turnkey-0e7c1f5b","customDomains":["docs.turnkey.com"],"gitSource":{"type":"github","owner":"tkhq","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae4f75e0b43f7bd960c2317","collectionId":"0420ea6d-6b5e-4c8a-be4b-ac67990070fa","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae4f75e0b43f7bd960c2317"},"feedback":{"thumbs":true,"edits":true,"issues":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae4f75e0b43f7bd960c2317","clientVersion":"0.0.4043","searchFilterCounts":[{"language":"default","tag":"API \u0026 SDK reference","count":450},{"language":"default","tag":"SDK reference","count":241},{"language":"default","tag":"REST API","count":209},{"language":"default","tag":"Documentation","count":126},{"language":"default","tag":"Activities","count":118},{"language":"default","tag":"Features","count":115},{"language":"default","tag":"Solutions","count":106},{"language":"default","tag":"React wallet kit","count":94},{"language":"default","tag":"Queries","count":75},{"language":"default","tag":"Embedded Wallets","count":70}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[],"googleFontsInlined":false},"customCss":[{"filePath":"styles.css","content":".sms-price-lookup-container{position:relative;margin-top:1rem;margin-bottom:1rem}.sms-country-list,.sms-country-trigger{width:100%;background-color:#fff;border:1px solid #ced4da}.sms-country-trigger{display:block;font-size:1rem;font-family:inherit;line-height:1.5;color:#495057;background-clip:padding-box;border-radius:.25rem;text-align:left;cursor:pointer;padding:.5rem 2rem .5rem .75rem;background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e\");background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px}.sms-country-list{display:none;position:absolute;top:100%;left:0;max-height:200px;overflow-y:auto;border-top:none;border-radius:0 0 .25rem .25rem;z-index:1000;box-shadow:0 .5rem 1rem rgba(0,0,0,.15);margin:0;padding:0;list-style:none}.sms-country-item{display:block;width:100%;padding:.5rem .75rem;font-size:1rem;font-family:inherit;color:#495057;text-align:left;background-color:transparent;border:0;cursor:pointer;white-space:nowrap}.sms-country-item:focus,.sms-country-item:hover{background-color:#f8f9fa;color:#16181b;outline:0}#hidden-content-simple[data-open=false]{display:none}#hidden-content-simple[data-open=true]{display:block}@font-face{font-family:'ABC Favorit';src:url(/fonts/ABCFavorit-Regular.woff2) format('woff2');font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:'ABC Favorit';src:url(/fonts/ABCFavorit-Bold.woff2) format('woff2'),url(/fonts/ABCFavorit-Bold.woff) format('woff');font-weight:700;font-style:normal;font-display:swap}a.nav-tabs-item[href=\"/welcome\"]>img{display:none!important}a.nav-tabs-item[href=\"/welcome\"]::before{content:\"\";display:block;width:1rem;height:1rem;flex-shrink:0;background-color:currentColor;mask-image:url(/images/icons/home-02.svg);mask-size:contain;mask-repeat:no-repeat;mask-position:center;-webkit-mask-image:url(/images/icons/home-02.svg);-webkit-mask-size:contain;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center}a.nav-tabs-item[data-active=true],a.nav-tabs-item[data-active=true].text-gray-800{color:#4c48ff!important;text-shadow:none!important}.dark a.nav-tabs-item[data-active=true],.dark a.nav-tabs-item[data-active=true].dark\\:text-gray-200{color:#5b68ff!important;text-shadow:none!important}a.nav-tabs-item[href=\"/welcome\"][data-active=true]::before{background-color:#4c48ff!important}.dark a.nav-tabs-item[href=\"/welcome\"][data-active=true]::before{background-color:#5b68ff!important}.scroll-mt-\\[var\\(--scroll-mt\\)\\]:has(.tk-page){max-width:none!important;width:100%!important;margin-inline:0!important;padding-inline:0!important}#content-container:has(.tk-page)>.flex.flex-row-reverse{flex-direction:row!important}#content-container:has(.tk-page) #content-area{width:100%!important;max-width:none!important;padding:0!important;margin:0!important}#content-container:has(.tk-page) #sidebar{display:none!important}#content-container:has(.tk-page) #content{max-width:none!important;padding:0!important}.tk-page{width:100%;max-width:92rem;margin-inline:auto;padding:0 3rem 5rem;box-sizing:border-box}@media (max-width:1000px){.tk-page{padding-inline:40px}}@media (max-width:868px){.tk-page{padding-inline:20px;padding-bottom:2.5rem}}.tk-img-light{display:block!important}.dark .tk-img-light,.tk-img-dark{display:none!important}.dark .tk-img-dark{display:block!important}.dark .tk-page{--tk-surface:#0B0B0F}.tk-placeholder{background:#f3f4f6;border:2px dashed #d1d5db;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:1.5rem;text-align:center;font-size:.75rem;color:#9ca3af;box-sizing:border-box}.dark .tk-placeholder{background:#1f2937;border-color:#374151;color:#6b7280}.section-divider{border:0;border-top:1px solid #e5e7eb;margin:0}.dark .section-divider{border-top-color:rgba(255,255,255,.06)}.tk-hero{position:relative;overflow:hidden;padding:2.5rem 0 3rem;min-height:360px;display:flex;align-items:stretch;justify-content:flex-start;gap:2.5rem}.tk-hero-content{flex:0 1 720px;max-width:62%;min-width:0;align-self:flex-start;position:relative;z-index:2}.tk-hero-headline{color:var(--Black, #111);font-family:'ABC Favorit',sans-serif;font-size:82px;font-style:normal;font-weight:400;line-height:95%;letter-spacing:-4.1px;font-synthesis:none;margin:0 0 1.25rem;max-width:720px}.dark .tk-hero-headline{color:#f9fafb}.tk-build-body,.tk-hero-body,.tk-whitepaper-text{color:#414146;font-family:Inter,sans-serif;font-style:normal;font-weight:400;line-height:28px}.tk-hero-body{font-size:18px;font-feature-settings:'ss01' on,'ss03' on;margin:0 0 1.5rem;max-width:720px}.dark .tk-build-body,.dark .tk-hero-body,.dark .tk-whitepaper-text{color:#a1a1aa}.tk-build-body,.tk-whitepaper-text{font-size:16px}.tk-search-bar{display:flex;align-items:center;gap:12px;border-radius:12px;border:1px solid var(--Black-20, rgba(0, 0, 0, 0.20));background:var(--Black-4, rgba(0, 0, 0, 0.04));padding:12px 16px;cursor:pointer;max-width:500px;transition:border-color .15s,background .15s}.tk-search-bar:hover{border-color:rgba(0,0,0,.28);background:rgba(0,0,0,.06)}.tk-search-icon{flex-shrink:0;color:#737277}.tk-search-placeholder{flex:1;color:#737277;text-align:left;font-family:Inter,sans-serif;font-size:16px;font-style:normal;font-weight:400;line-height:24px}.dark .tk-search-icon,.dark .tk-search-placeholder{color:#a1a1aa}.dark .tk-search-bar{border-color:rgba(255,255,255,.2);background:rgba(255,255,255,.04)}.dark .tk-search-bar:hover{border-color:rgba(255,255,255,.28);background:rgba(255,255,255,.06)}.tk-search-kbd{color:#737277;text-align:center;font-family:\"SF Pro\",-apple-system,BlinkMacSystemFont,sans-serif;font-size:12px;font-style:normal;font-weight:590;line-height:16px;border:0;border-radius:0;padding:0;background:0 0}.dark .tk-search-kbd{color:#a1a1aa;background:0 0}.tk-hero-illustration{position:relative;flex:0 0 657px;width:657px;min-height:329px;display:flex;align-items:center;justify-content:flex-start;z-index:1;pointer-events:none;user-select:none}.tk-hero>.tk-hero-grid{flex:none}.tk-hero-illustration>*{pointer-events:none;cursor:default}.tk-hero-grid{position:absolute;top:0;right:0;width:640px;height:512px;z-index:0;pointer-events:none}.tk-hero-grid img{display:block;width:640px;height:512px}.tk-hero-img{position:relative;flex-shrink:0;pointer-events:none;border:0}.tk-hero-img,.tk-hero-img svg{display:block;width:657px;height:329px}@media (max-width:1440px) and (min-width:869px){.tk-hero{position:relative;flex-direction:row;align-items:flex-start;justify-content:flex-start;gap:1rem;width:100vw;max-width:100vw;margin-left:calc(50% - 50vw);padding:2.3125rem 0 2.5rem 3rem;min-height:auto;overflow:hidden;box-sizing:border-box}.tk-hero-grid{top:-3.3125rem;right:0;left:auto;width:640px;height:512px}.tk-hero-grid img{width:640px;height:512px;max-height:none;object-fit:none}.tk-hero-content{display:flex;flex-direction:column;gap:24px;flex:0 0 612px;max-width:612px;width:612px;align-self:flex-start;position:relative;z-index:2;isolation:isolate}.tk-hero-content::before{content:\"\";position:absolute;z-index:-1;top:0;right:0;bottom:0;left:0;width:100%;pointer-events:none;background:linear-gradient(90deg,#fff 0,#fff 75%,rgba(255,255,255,0) 100%)}.dark .tk-hero-content::before{background:linear-gradient(90deg,var(--tk-surface, #0B0B0F) 0%,var(--tk-surface, #0B0B0F) 75%,rgba(11,11,15,0) 100%)}.tk-hero-headline{font-size:74px;letter-spacing:-3.7px;line-height:.95}.tk-hero-body,.tk-hero-headline{margin:0;max-width:none}.tk-search-bar{max-width:437px}.tk-hero-illustration{position:absolute;top:2.3125rem;right:0;display:block;flex:none;width:657px;min-width:657px;min-height:328px;margin:0;overflow:visible;z-index:1}.tk-hero-img{display:block;width:657px;max-width:none;height:auto}}@media (max-width:1190px) and (min-width:869px){.tk-hero-illustration{right:-100px}}@media (max-width:1000px) and (min-width:869px){.tk-hero{padding-left:40px}}@media (max-width:1000px){.tk-whitepaper{padding:20px 40px 0}}@media (max-width:868px){.tk-hero{flex-direction:column;gap:0;padding:2.25rem 0 2.5rem;min-height:auto;overflow:visible}.tk-hero-content::before,.tk-hero-grid,.tk-hero-illustration{display:none}.tk-hero-content{display:flex;flex-direction:column;gap:24px;flex:1 1 auto;max-width:100%;width:100%;isolation:auto}.tk-hero-headline{font-size:44px;letter-spacing:-2.2px;line-height:.95;margin:0}.tk-hero-body{margin:0}.tk-search-bar{max-width:none;width:100%}.tk-build,.tk-features-section,.tk-solutions-section,.tk-whitepaper-section{margin:2.5rem 0}}.tk-section-heading{font-family:Inter,sans-serif;font-size:30px;font-weight:700;letter-spacing:-.75px;line-height:1.2;margin:0 0 1.25rem;color:#1a191e}.dark .tk-build-heading,.dark .tk-section-heading{color:#f9fafb}.tk-build{display:grid;grid-template-columns:1fr;gap:28px;align-items:start;margin:52px 0}.tk-build-intro{display:contents}.tk-build-copy,.tk-build-visual{display:flex;flex-direction:column;gap:28px;grid-column:1;grid-row:1}.tk-build-visual{flex-direction:row;align-items:center;justify-content:flex-start;gap:40px;grid-row:2;width:100%;justify-self:start}.tk-build-links{grid-column:1;grid-row:3}.tk-build-selectors{flex:0 0 auto;min-width:0;justify-content:flex-start}@media (min-width:869px) and (max-width:1379px){.tk-build-visual{justify-content:center;justify-self:center;width:fit-content;max-width:100%;margin-inline:auto}}@media (min-width:1380px){.tk-build{display:grid;grid-template-columns:minmax(0,558px) auto;width:100%;gap:40px;align-items:center;justify-items:start}.tk-build-intro{display:flex;flex-direction:column;gap:28px;min-width:0;max-width:558px}.tk-build-copy{max-width:none}.tk-build-copy,.tk-build-links,.tk-build-visual{grid-column:unset;grid-row:unset}.tk-build-visual{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:40px;width:auto;min-width:0;justify-self:start}.tk-build-selectors{flex:0 0 auto;min-width:auto;max-width:none;justify-content:flex-start}.tk-selector-list{width:max-content;max-width:100%}}.tk-build-heading{font-family:Inter,sans-serif;font-size:30px;font-weight:700;letter-spacing:-.75px;line-height:normal;margin:0;color:#1a191e}.tk-build-body{margin:0}.tk-build-links{display:flex;flex-direction:row;gap:40px;flex-wrap:wrap}.tk-build-link{display:inline-flex;align-items:center;gap:7px;color:#4c48ff;font-weight:500;text-decoration:none;font-size:.875rem;transition:opacity .15s}.tk-build-link-icon{flex-shrink:0}.dark .tk-build-link,.dark .tk-build[data-selected=a] #tk-row-a .tk-selector-icon,.dark .tk-build[data-selected=a] #tk-row-a .tk-selector-label,.dark .tk-build[data-selected=b] #tk-row-b .tk-selector-icon,.dark .tk-build[data-selected=b] #tk-row-b .tk-selector-label,.dark .tk-build[data-selected=c] #tk-row-c .tk-selector-icon,.dark .tk-build[data-selected=c] #tk-row-c .tk-selector-label{color:#5b68ff}.tk-build-link:hover{opacity:.75}.tk-build-cube{width:149px;flex-shrink:0;margin:0;padding:0;align-self:center}.tk-cube-wrapper{position:relative;width:149px;height:170px;margin:0;padding:0;pointer-events:none;user-select:none}.tk-plane-img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:contain;opacity:0;visibility:hidden;transition:none;pointer-events:none;cursor:default}.tk-build[data-selected=a] .tk-plane-img[data-plane=a],.tk-build[data-selected=b] .tk-plane-img[data-plane=b],.tk-build[data-selected=c] .tk-plane-img[data-plane=c]{opacity:1;visibility:visible}.tk-build-selectors{display:flex;flex-direction:row;align-items:center;gap:17px;width:max-content;max-width:100%;flex-shrink:0;overflow:visible}.tk-build-connectors{position:relative;flex-shrink:0;width:40px;height:120px;margin-left:-24px;pointer-events:none}.tk-connector-line{position:absolute;left:0;width:40px;height:0}.tk-connector-line--a{top:20px}.tk-connector-line--b{top:60px}.tk-connector-line--c{top:100px}.tk-connector-line::after{content:\"\";position:absolute;left:0;right:0;top:0;height:1px;background:rgba(0,0,0,.2);transition:background .15s}.dark .tk-connector-line::after{background:rgba(255,255,255,.2)}.tk-build[data-selected=a] .tk-connector-line--a::after,.tk-build[data-selected=b] .tk-connector-line--b::after,.tk-build[data-selected=c] .tk-connector-line--c::after{background:#4c48ff}.dark .tk-build[data-selected=a] .tk-connector-line--a::after,.dark .tk-build[data-selected=b] .tk-connector-line--b::after,.dark .tk-build[data-selected=c] .tk-connector-line--c::after{background:#5b68ff}.tk-selector-list{position:relative;flex-shrink:0;display:grid;grid-template-columns:1fr;gap:0;width:max-content;max-width:100%}.tk-selector-row{position:relative;display:flex;align-items:center;gap:12px;box-sizing:border-box;width:100%;height:40px;min-height:40px;padding:8px 36px 8px 12px;white-space:nowrap;text-decoration:none;color:inherit;border-radius:8px;border:0;transition:background .15s,color .15s}.tk-build[data-selected=a] #tk-row-a,.tk-build[data-selected=b] #tk-row-b,.tk-build[data-selected=c] #tk-row-c{background:rgba(76,72,255,.12)}.dark .tk-build[data-selected=a] #tk-row-a,.dark .tk-build[data-selected=b] #tk-row-b,.dark .tk-build[data-selected=c] #tk-row-c{background:rgba(91,104,255,.12)}.tk-selector-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#28282c;opacity:.5;background:0 0;border-radius:0;transition:color .15s,opacity .15s}.tk-selector-icon,.tk-selector-icon svg{width:24px;height:24px}.tk-selector-chevron svg path,.tk-selector-icon svg g path,.tk-selector-icon svg path{stroke-width:1.5}.dark .tk-selector-icon{color:#d1d5db}.tk-selector-desc,.tk-selector-label{font-family:Inter,sans-serif;font-size:14px}.tk-selector-label{font-weight:600;line-height:normal;color:#28282c;flex-shrink:0;transition:color .15s}.dark .tk-selector-label{color:#f3f4f6}.tk-build[data-selected=a] #tk-row-a .tk-selector-label,.tk-build[data-selected=b] #tk-row-b .tk-selector-label,.tk-build[data-selected=c] #tk-row-c .tk-selector-label{color:#4c48ff}.tk-build[data-selected=a] #tk-row-a .tk-selector-icon,.tk-build[data-selected=b] #tk-row-b .tk-selector-icon,.tk-build[data-selected=c] #tk-row-c .tk-selector-icon{opacity:1;color:#4c48ff}.tk-selector-desc{font-weight:400;line-height:1.48;color:#505454;flex-shrink:1;min-width:0}.dark .tk-selector-desc{color:#9ca3af}.tk-selector-chevron{position:absolute;right:8px;top:50%;display:flex;align-items:center;justify-content:center;transform:translateY(-50%);opacity:0;color:#4c48ff;pointer-events:none;transition:opacity .2s ease}.dark .tk-selector-chevron{color:#5b68ff}.tk-selector-chevron,.tk-selector-chevron svg{width:20px;height:20px}.tk-build[data-selected=a] #tk-row-a .tk-selector-chevron,.tk-build[data-selected=b] #tk-row-b .tk-selector-chevron,.tk-build[data-selected=c] #tk-row-c .tk-selector-chevron,.tk-selector-row:hover .tk-selector-chevron{opacity:1}@media (max-width:868px){.tk-build{grid-template-columns:1fr;align-items:start;gap:28px}.tk-build-intro{display:contents}.tk-build-copy,.tk-build-links{grid-column:1/-1;grid-row:1}.tk-build-links{grid-row:2;gap:40px}.tk-build-visual{grid-column:1/-1;grid-row:3;flex-direction:column;gap:16px;width:100%;align-items:center;padding:0}.tk-build-cube{width:100%;max-width:149px;margin:0 auto}.tk-cube-wrapper{width:149px;height:170px;margin:0 auto}.tk-build[data-selected=c]:not([data-user-picked]) .tk-plane-img[data-plane=c]{opacity:0;visibility:hidden}.tk-build[data-selected=c]:not([data-user-picked]) .tk-plane-img[data-plane=a]{opacity:1;visibility:visible}.tk-build-selectors{width:100%;max-width:100%;justify-content:stretch}.tk-build-connectors{display:none}.tk-selector-list{width:100%;max-width:100%;gap:0}.tk-selector-row{display:grid;grid-template-columns:24px minmax(0,1fr) 20px;grid-template-rows:auto auto;column-gap:12px;row-gap:0;align-items:center;width:100%;max-width:100%;height:auto;min-height:54px;padding:8px;white-space:normal;background:0 0!important;border-radius:0}.tk-selector-row+.tk-selector-row{border-top:1px solid rgba(0,0,0,.12);margin-top:4px}.dark .tk-selector-row+.tk-selector-row{border-top-color:rgba(255,255,255,.06)}.tk-selector-icon{grid-column:1;grid-row:1/3;align-self:center;opacity:1;color:#4c48ff}.dark .tk-selector-icon,.dark .tk-selector-label{color:#5b68ff}.tk-selector-label{grid-column:2;grid-row:1;font-weight:500;color:#4c48ff}.tk-selector-desc{grid-column:2;grid-row:2;white-space:normal;overflow:visible;text-overflow:unset}.tk-selector-chevron{grid-column:3;grid-row:1/3;position:static;transform:none;opacity:1}}.tk-solutions-section{display:flex;flex-direction:column;gap:28px;margin:52px 0}.tk-solutions-section .tk-solution-card{display:grid!important}.tk-solutions-section .tk-section-heading{margin:0}.tk-solutions-grid{display:grid;grid-template-columns:repeat(3,1fr);column-gap:24px;row-gap:20px;width:100%}.tk-solution-card{grid-row:span 3;display:grid;grid-template-rows:subgrid;box-sizing:border-box;padding:20px 32px 36px;background:rgba(0,0,0,.02);border:1px solid rgba(13,12,17,.1);border-radius:16px}.tk-solution-copy{display:flex;flex-direction:column;gap:8px;min-width:0}.dark .tk-solution-card{background:rgba(255,255,255,.02);border-color:rgba(255,255,255,.12)}.tk-solution-thumbnail{width:120px;height:120px;flex-shrink:0}.tk-solution-thumbnail img{display:block;width:100%;height:100%;object-fit:contain}.tk-solution-card>.tk-solution-title-row,.tk-solution-copy .tk-solution-title{min-width:0}.tk-solution-title-row{display:inline-flex;align-items:center;gap:12px;flex-wrap:nowrap;width:fit-content;max-width:100%}.tk-solution-title-row .tk-solution-title{width:auto;max-width:none}.tk-solution-title-long{display:inline}.tk-solution-title-short{display:none}.tk-solution-title{font-family:Inter,sans-serif;font-size:24px;font-weight:600;letter-spacing:-.6px;line-height:32px;margin:0;color:#111827;text-decoration:none}.dark .tk-solution-title{color:#f9fafb}.tk-solution-desc{margin:0;font-family:Inter,sans-serif;font-size:14px;font-weight:400;line-height:1.48;color:#414146;min-width:0}.dark .tk-solution-desc{color:#a1a1aa}.tk-solution-links{display:flex;flex-direction:column;gap:16px;align-items:flex-start;min-width:0;border-top:1px solid rgba(0,0,0,.12);padding-top:20px}.dark .tk-solution-links{border-top-color:rgba(255,255,255,.06)}.tk-solution-link{text-decoration:none;font-family:Inter,sans-serif;font-size:14px;font-weight:500;color:#4c48ff;transition:opacity .15s}.tk-solution-link:hover{opacity:.75;color:#4c48ff}.dark .tk-solution-link{color:#5b68ff}.dark .tk-solution-link:hover{opacity:.75}@media (max-width:768px){.tk-solutions-grid{grid-template-columns:1fr}}.tk-features-section{display:flex;flex-direction:column;gap:28px;margin:52px 0}.tk-features-section .tk-section-heading{margin:0}.tk-features-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;width:100%}.tk-feature-column{display:flex;flex-direction:column;gap:12px;min-width:0}.tk-feature-column-heading{font-family:Inter,sans-serif;font-size:18px;font-weight:600;line-height:32px;color:#111827;margin:0}.dark .tk-feature-column-heading{color:#f9fafb}.tk-feature-items{display:flex;flex-direction:column;gap:8px;width:100%}.tk-feature-divider{border:0;height:1px;margin:0;background:rgba(0,0,0,.12)}.dark .tk-feature-divider{background:rgba(255,255,255,.06)}.tk-feature-row{display:flex;align-items:center;gap:12px;padding:4px 0;text-decoration:none;color:#000;font-family:Inter,sans-serif;font-size:16px;font-weight:500;line-height:normal;transition:color .12s ease}.dark .tk-feature-row{color:#f3f4f6}.tk-feature-row:focus-visible,.tk-feature-row:hover{color:#4c48ff}.dark .tk-feature-row:focus-visible,.dark .tk-feature-row:hover{color:#5b68ff}.tk-feature-icon-circle{display:flex;align-items:center;justify-content:center;flex-shrink:0;padding:6px;border-radius:9999px;background:rgba(0,0,0,.04);border:1px solid rgba(0,0,0,.12);color:#000;transition:background .12s ease,border-color .12s ease,color .12s ease}.dark .tk-feature-icon-circle{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.12);color:#f3f4f6}.tk-feature-row:focus-visible .tk-feature-icon-circle,.tk-feature-row:hover .tk-feature-icon-circle{background:#f1f3ff;border-color:#c9ceff;color:#4c48ff}.dark .tk-feature-row:focus-visible .tk-feature-icon-circle,.dark .tk-feature-row:hover .tk-feature-icon-circle{background:rgba(91,104,255,.15);border-color:rgba(91,104,255,.35);color:#5b68ff}.tk-feature-icon-circle .tk-feature-icon-img,.tk-feature-icon-circle svg{width:20px;height:20px;display:block;flex-shrink:0;opacity:.5;transition:opacity .12s ease}.tk-feature-row:focus-visible .tk-feature-icon-circle .tk-feature-icon-img,.tk-feature-row:focus-visible .tk-feature-icon-circle svg,.tk-feature-row:hover .tk-feature-icon-circle .tk-feature-icon-img,.tk-feature-row:hover .tk-feature-icon-circle svg{opacity:1}.tk-feature-icon-img,.tk-feature-row::after{background-color:currentColor;mask-repeat:no-repeat;mask-position:center;mask-size:contain;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain}.tk-feature-icon-img--wallet-embedded{mask-image:url(/images/icons/wallet-embedded.svg);-webkit-mask-image:url(/images/icons/wallet-embedded.svg)}.tk-feature-icon-img--fuel{mask-image:url(/images/icons/fuel.svg);-webkit-mask-image:url(/images/icons/fuel.svg)}.tk-feature-icon-circle svg circle,.tk-feature-icon-circle svg g path,.tk-feature-icon-circle svg line,.tk-feature-icon-circle svg path,.tk-feature-icon-circle svg rect,.tk-whitepaper-link-icon svg path{stroke-width:1.5px;vector-effect:non-scaling-stroke}.tk-feature-label{flex:1;min-width:0}.tk-feature-row::after{content:'';width:20px;height:20px;flex-shrink:0;opacity:0;transition:opacity .12s ease;background-color:#4c48ff;mask-image:url(/images/icons/chevron-right.svg);-webkit-mask-image:url(/images/icons/chevron-right.svg)}.dark .tk-feature-row::after{background-color:#5b68ff}.tk-feature-row:focus-visible::after,.tk-feature-row:hover::after{opacity:1}@media (max-width:868px){.tk-features-grid{grid-template-columns:1fr;gap:40px}.tk-feature-row--chevron::after{opacity:1}}.tk-whitepaper-section{margin:52px 0}.tk-whitepaper{position:relative;display:flex;align-items:flex-start;justify-content:center;padding:20px 48px 0;background:rgba(0,0,0,.02);border:1px solid rgba(13,12,17,.1);border-radius:16px;overflow:hidden}.dark .tk-whitepaper{background:rgba(255,255,255,.02);border-color:rgba(255,255,255,.1)}.tk-whitepaper-inner{display:flex;gap:40px;align-items:flex-start;width:auto;max-width:100%;box-sizing:border-box;padding:0;min-height:132px}.tk-whitepaper-thumb-wrap{position:relative;flex-shrink:0;align-self:flex-end;width:121px;height:132px;overflow:hidden;box-shadow:0 4px 12px rgba(0,0,0,.1)}.tk-whitepaper-thumb{position:absolute;top:0;left:-46.26%;height:100%;width:192.52%;max-width:none;display:block;pointer-events:none}.tk-whitepaper-content{display:flex;flex-direction:column;gap:12px;align-items:flex-start;align-self:flex-start;padding-top:12px;padding-bottom:0;min-width:0;max-width:476px}.tk-whitepaper-text{margin:0;max-width:476px}.tk-whitepaper-link{display:inline-flex;align-items:center;gap:8px;color:#4c48ff;font-family:Inter,sans-serif;font-size:14px;font-weight:500;line-height:normal;text-decoration:none;transition:opacity .15s;white-space:nowrap}.tk-whitepaper-link-icon{display:flex;flex-shrink:0;width:20px;height:20px;color:#4c48ff}.tk-whitepaper-link-icon svg{width:20px;height:20px;display:block}.dark .tk-whitepaper-link,.dark .tk-whitepaper-link-icon{color:#5b68ff}.tk-whitepaper-link:hover{opacity:.75}@media (max-width:868px){.tk-whitepaper{justify-content:flex-start;padding:0}.tk-whitepaper-thumb-wrap{position:absolute;left:24px;bottom:0}.tk-whitepaper-inner{flex-direction:column;align-items:flex-start;gap:0;width:100%;padding:20px 24px 132px}.tk-whitepaper-content{padding-top:12px;padding-bottom:0;margin-bottom:24px;align-items:flex-start;align-self:stretch;text-align:left;width:100%}.tk-whitepaper-text{max-width:none}}.tk-badge{font-family:Inter,sans-serif;font-size:10px;font-weight:500;line-height:normal;background:#ede9fe;color:#4c48ff;border-radius:4px;padding:2px 6px;flex-shrink:0}.dark .tk-badge{background:rgba(91,104,255,.2);color:#5b68ff}.tk-card-icon-wrap{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:44px;height:44px;border-radius:9999px;border:1px solid rgba(0,0,0,.16);background:#fff;box-sizing:border-box}.dark .tk-card-icon-wrap{background:0 0;border-color:rgba(255,255,255,.16)}.tk-card-icon{display:block;flex-shrink:0;width:24px;height:25px;background-color:#505454;mask-size:contain;mask-repeat:no-repeat;mask-position:center;-webkit-mask-size:contain;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center}.dark .tk-card-icon{background-color:#fff}.tk-card-row{display:flex;align-items:flex-start;gap:16px}.tk-network-cards .tk-card-row{align-items:center}.tk-card-network-logo{display:block;width:24px;height:24px;object-fit:contain}.dark .tk-network-cards .tk-card-network-logo[src$=\"aptos.svg\"],.dark .tk-network-cards .tk-card-network-logo[src$=\"cosmos.svg\"],.dark .tk-network-cards .tk-card-network-logo[src$=\"iota.svg\"],.dark .tk-network-cards .tk-card-network-logo[src$=\"tempo.svg\"]{filter:brightness(0) invert(1)}.tk-card-icon-img{display:block;flex-shrink:0;width:44px;height:44px}#content [data-table-wrapper=true]{width:100%!important;max-width:100%!important;margin-inline:0!important;contain:none!important}.policy-language :is(h3, h4) a[aria-label=\"Navigate to header\"]{opacity:1}.policy-language a[id]{scroll-margin-top:var(--scroll-mt)}.policy-language [data-table-wrapper=true] :is(th, td, th *, td *){overflow-wrap:anywhere}.policy-language [data-table-wrapper=true] td{min-width:5rem}@media (min-width:768px){.policy-language [data-table-wrapper=true] td:not(:last-child){min-width:max(8.5rem,25cqi)}.policy-language [data-table-wrapper=true] table:has(th:nth-child(5)) td:not(:last-child){min-width:max(6.5rem,18cqi)}}#content .policy-language [data-table-wrapper=true]{width:calc(100% + (var(--page-padding)*2))!important;max-width:none!important;margin-inline:calc(var(--page-padding)*-1)!important}@media (min-width:1280px){#content-area:has(.policy-language){width:calc(100% - 15rem)!important;padding-left:2rem!important;margin-left:0!important}#content-container:has(.policy-language) #table-of-contents-layout{width:14rem!important;padding-left:1.5rem!important}#content-container:has(.policy-language) #table-of-contents{width:auto!important}}"}],"page":{"pagePath":"security/non-custodial-key-mgmt","slug":"/security/non-custodial-key-mgmt","pageMetadata":{"title":"Non-custodial key management","description":null,"href":"/security/non-custodial-key-mgmt"},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,p:`p`,..._provideComponents(),...props.components},{Heading}=_components;if(!Heading)_missingMdxReference(`Heading`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`turnkey’s-non-custodial-infrastructure`,children:`Turnkey’s non-custodial infrastructure`}),`\n`,_jsx(_components.p,{children:`Turnkey has built a new model for private key management that utilizes secure enclaves — highly constrained compute environments that can cryptographically attest to the code running inside. All private key material is only decrypted within an enclave, and transaction signing happens according to customer-defined policies.`}),`\n`,_jsxs(_components.p,{children:[`This novel security architecture means raw private keys themselves are never exposed to Turnkey, your software, or your team. Specifically, Turnkey stores encrypted private keys that are only decrypted when you authenticate to an auditable, tamper-proof secure enclave with your secret (e.g., API key or Passkey credentials). You (and/or your end users, depending on your implementation) remain the owner of your private keys and the funds controlled by those private keys at all times. See `,_jsx(_components.a,{href:`/security/quorum-deployments`,children:`quorum deployments`}),` for more details on how we provision secure enclaves to ensure you’re always in control of your private keys.`]}),`\n`,_jsx(_components.p,{children:`Although we’re not a bank, by analogy to physical security, Turnkey’s role is similar to that of a safety deposit box operator. Turnkey secures, and facilitates access to, the safety deposit boxes (wallets), but only the customer can unlock the safety deposit box and access the contents (digital assets) inside.`}),`\n`,_jsx(Heading,{level:`2`,id:`private-key-storage`,children:`Private key storage`}),`\n`,_jsxs(_components.p,{children:[`Turnkey does not store unencrypted private keys, but rather persists encrypted private key ciphertext inside of our primary and disaster recovery databases. This ciphertext is only to be decrypted from within the bounds of a secure enclave running verified Turnkey applications. Our `,_jsx(_components.a,{href:`/security/our-approach`,children:`security overview`}),` goes over the process in depth.`]}),`\n`,_jsx(Heading,{level:`2`,id:`non-custodial-wallets-for-end-users`,children:`Non-custodial wallets for end users`}),`\n`,_jsx(_components.p,{children:`In a wallet-as-a-service implementation model, it is possible for you, as a Turnkey customer, to configure your organization in a way that limits access to your end users’ funds and private keys. When a new end user signs up to your app, you will need to create a separate Turnkey sub-organization, user, and private key for that end user, accessible only by the end user’s secret (e.g., API key or Passkey credentials). With this implementation, only your end user will be able to authorize Turnkey to process a signature request by providing their secret. Use of the private key is limited to the end user via their secret. When a signature request is initiated by the end user’s secret, Turnkey’s functionality is limited to processing the request based on any policy rules that have been set, and returning the signed transaction to you for broadcast onchain.`})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":"system","config":{},"pageMetadata":{"title":"Non-custodial key management","description":null,"href":"/security/non-custodial-key-mgmt"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Turnkey’s non-custodial infrastructure","slug":"turnkey’s-non-custodial-infrastructure","depth":2,"children":[]},{"title":"Private key storage","slug":"private-key-storage","depth":2,"children":[]},{"title":"Non-custodial wallets for end users","slug":"non-custodial-wallets-for-end-users","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/turnkey-0e7c1f5b/788886ec77a9d964/ga.js","/_mintlify/custom/turnkey-0e7c1f5b/c849d0b15d4f5866/hero-animation.js"],"subdomain":"turnkey-0e7c1f5b","siteName":"Turnkey","title":"Non-custodial key management - Turnkey","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-29T18:28:41.726Z","originalFileLocation":"security/non-custodial-key-mgmt.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"application-name\" content=\"Turnkey\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/turnkey-0e7c1f5b/umYhjB0nyuI1BMHQ/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/turnkey-0e7c1f5b/umYhjB0nyuI1BMHQ/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/turnkey-0e7c1f5b/umYhjB0nyuI1BMHQ/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/turnkey-0e7c1f5b/umYhjB0nyuI1BMHQ/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/turnkey-0e7c1f5b/umYhjB0nyuI1BMHQ/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/turnkey-0e7c1f5b/umYhjB0nyuI1BMHQ/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/turnkey-0e7c1f5b/umYhjB0nyuI1BMHQ/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/turnkey-0e7c1f5b/umYhjB0nyuI1BMHQ/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/turnkey-0e7c1f5b/umYhjB0nyuI1BMHQ/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Non-custodial key management - Turnkey\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Turnkey\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.turnkey.com/security/non-custodial-key-mgmt\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://docs.turnkey.com/images/og-image.png\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Non-custodial key management - Turnkey\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://docs.turnkey.com/images/og-image.png\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/turnkey-0e7c1f5b/umYhjB0nyuI1BMHQ/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Turnkey\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#4C48FF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.turnkey.com/security/non-custodial-key-mgmt\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/security/non-custodial-key-mgmt.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.turnkey.com/#organization\",\"name\":\"Turnkey\",\"url\":\"https://docs.turnkey.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/turnkey-0e7c1f5b/YQKQ_azrjtJ471Qy/logo/light.svg?fit=max\u0026auto=format\u0026n=YQKQ_azrjtJ471Qy\u0026q=85\u0026s=38556c8732a1d68a5399fce905b480b1\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.turnkey.com#website\",\"name\":\"Turnkey\",\"url\":\"https://docs.turnkey.com\",\"publisher\":{\"@id\":\"https://docs.turnkey.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.turnkey.com/security/non-custodial-key-mgmt#webpage\",\"url\":\"https://docs.turnkey.com/security/non-custodial-key-mgmt\",\"name\":\"Non-custodial key management\",\"dateModified\":\"2026-10-29T18:28:41.726Z\",\"isPartOf\":{\"@id\":\"https://docs.turnkey.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.turnkey.com/security/non-custodial-key-mgmt#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.turnkey.com/security/non-custodial-key-mgmt#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Architecture\",\"item\":\"https://docs.turnkey.com/security/our-approach\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Non-custodial key management\",\"item\":\"https://docs.turnkey.com/security/non-custodial-key-mgmt\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.turnkey.com/security/non-custodial-key-mgmt#article\",\"headline\":\"Non-custodial key management\",\"name\":\"Non-custodial key management\",\"url\":\"https://docs.turnkey.com/security/non-custodial-key-mgmt\",\"mainEntityOfPage\":{\"@id\":\"https://docs.turnkey.com/security/non-custodial-key-mgmt#webpage\"},\"image\":\"https://docs.turnkey.com/images/og-image.png\",\"dateModified\":\"2026-10-29T18:28:41.726Z\",\"publisher\":{\"@id\":\"https://docs.turnkey.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.turnkey.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Turnkey\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Turnkey","nav":{"global":{},"tabs":[{"tab":"Home","icon":"https://mintlify.s3.us-west-1.amazonaws.com/turnkey-0e7c1f5b/images/icons/home-02.svg","pages":[{"title":"Home","href":"/welcome"}]},{"tab":"Solutions","pages":[{"title":"Solutions","href":"/solutions/overview"}]},{"tab":"Documentation","pages":[{"title":"Documentation","href":"/get-started/about-turnkey"}]},{"tab":"API \u0026 SDK reference","pages":[{"title":"API \u0026 SDK reference","href":"/api-reference/overview/intro"}]},{"tab":"Security","groups":[{"group":"Overview","pages":[{"title":"Security \u0026 architecture","sidebarTitle":"Overview","href":"/security/overview"},{"title":"Turnkey shared responsibility model","href":"/security/shared-responsibility-model"}]},{"group":"Architecture","pages":[{"title":"Our approach","description":null,"href":"/security/our-approach"},{"title":"Non-custodial key management","href":"/security/non-custodial-key-mgmt"},{"title":"Secure enclaves","description":null,"href":"/security/secure-enclaves"},{"title":"Quorum deployments","href":"/security/quorum-deployments"},{"title":"Enclave to end-user secure channels","sidebarTitle":"Enclave secure channels","href":"/security/enclave-secure-channels"},{"title":"Verifiable data","href":"/security/verifiable-data"},{"title":"Remote attestation","href":"/security/remote-attestation"}]},{"group":"Resources","pages":[{"title":"Turnkey Verified","href":"/security/turnkey-verified"},{"title":"Disaster recovery","href":"/security/disaster-recovery"},{"title":"The Turnkey Whitepaper","href":"/security/whitepaper"},{"title":"Trust Center","href":"/security/trust-center"},{"title":"Reporting a vulnerability","href":"/security/reporting-a-vulnerability"}]}]}]},"basePath":"","title":"Non-custodial key management - Turnkey","buildId":"dpl_G9nrg4qeJSZtah1Ziwbc2n6WkLch","deploymentId":"dpl_G9nrg4qeJSZtah1Ziwbc2n6WkLch","dynamics":[],"chunks":[]}