Finrock supports three distinct wallet architectures — MPC wallets, Legacy wallets, and HSM cold storage — each designed for different security postures and operational requirements. Understanding the trade-offs between them helps you select the right approach for your custody strategy, whether you prioritize automation, self-custody of key material, or the highest possible physical security.
MPC Wallets
Legacy Wallets
HSM Cold Storage
MPC Wallets (Recommended)
MPC wallets are Finrock’s default and recommended wallet type for most operational use cases. They use threshold cryptography to split key material across independent signing nodes, so the full private key is never assembled at any point — not during creation, signing, or storage.How it works:
Key shares are distributed across Node A (your application server), Node B (Finrock Mobile App, user-controlled), and Node C (backup/DR node).
A signing threshold (e.g., 2-of-3) determines how many nodes must participate to produce a valid signature.
Nodes communicate over encrypted P2P channels. No key material is ever transmitted between them — only partial signatures.
Distributed Key Generation (DKG) ensures the full private key never exists, even during wallet creation.
Best for:
High-volume operational workflows
Automated transaction processing
Businesses requiring institutional-grade security without air-gapped hardware
MPC wallets support ECDSA (secp256k1) for Bitcoin, Ethereum, and EVM chains, and EdDSA (Ed25519) for Solana. See How MPC Wallets Work for a full architectural overview.
Legacy Wallets
Legacy wallets give you complete ownership and control of your private keys by hosting a Key Management Server (KMS) on your own infrastructure. Finrock’s backend servers never access your private keys, mnemonic phrases, or wallet seeds at any time — by design.How it works:
You deploy the finrock/ng-signer Docker image on your own VM (AWS or Azure recommended).
Your KMS polls Finrock at regular intervals to pick up pending signing jobs — Finrock never pushes tasks to your KMS.
The KMS signs transactions locally and encrypts them before dispatching to the blockchain.
All communication is one-way, end-to-end SHA-512 encrypted. All inbound (ingress) traffic to the KMS must be blocked; only outbound (egress) traffic is allowed.
Passphrase to encrypt the MPC keystore (MPC mode only)
FINROCK_MNEMONIC_PHRASE
String
12-word seed phrase
FINROCK_SECRET
String
Encrypted mnemonic phrase
FINROCK_API_HOST
String
Defaults to https://sapi.finrock.io
Key operational features:
Kill switch: Instantly take the KMS offline to halt all transaction signing.
Recovery option: Generate new private keys for specific addresses or address groups if needed.
Your KMS host must block all inbound network traffic. Only outbound (egress) connections to Finrock’s API are required. Exposing the KMS to inbound traffic defeats its security model.
HSM Cold Storage
HSM (Hardware Security Module) cold storage provides the highest level of physical key security available in Finrock. Private keys are stored inside tamper-resistant hardware devices that are never connected to the internet, making remote extraction or exploitation impossible.Hardware specification:
Physical tamper protection against unauthorized access or key exfiltration
Air-Gapped QR Code Signing Workflow:
1
Initiate the Transaction
Create a transaction from the Finrock platform. The platform converts it into a PSBT (Partially Signed Bitcoin Transaction) or equivalent unsigned payload.
2
Display the QR Code
The unsigned payload is rendered as a QR code on your Finrock workspace. No network transfer occurs at this stage.
3
Scan with Offline Device
Take your air-gapped device running the Finrock Mobile App — with Wi-Fi disabled, mobile data off, and in airplane mode — and scan the QR code. The app has no network access.
4
Sign Offline
The Finrock Mobile App signs the transaction entirely offline using private keys stored in the device’s secure enclave or connected HSM. The signed transaction is displayed as a return QR code.
5
Broadcast the Transaction
Scan the return QR code back into the Finrock platform. The platform broadcasts the signed transaction to the blockchain network.
Key benefits:
Zero Network Exposure
The signing device never requires a network connection. Remote exploits and malware are impossible by design.
FIPS 140-2 Level 3
Industry-standard certification for tamper-resistant hardware used in government and regulated financial environments.
Physical Protection
Keys are stored inside hardware designed to destroy itself if tampered with, preventing physical extraction.
Operational Usability
Designed for real-world treasury operations — not just security theory. The QR workflow makes air-gapped signing practical at scale.
Best for:
High-value treasury reserves and cold storage
Environments with strict physical security requirements
Institutions that cannot accept any online key exposure under any circumstances
Choosing the Right Wallet Type
MPC Wallets
Legacy Wallets
HSM Cold Storage
Key location
Distributed across nodes
Your infrastructure
Offline hardware
Internet exposure
Encrypted P2P only
Egress-only polling
None (air-gapped)
Operational speed
Fastest (automated)
Near-real-time
Manual (QR workflow)
Self-custody
Shared (Node B)
Full
Full
Best use case
Day-to-day operations
Compliance-driven control
Treasury / cold storage
FIPS certified
—
—
✓ Level 3
Many institutions combine wallet types: MPC wallets for operational liquidity and hot wallets, with HSM cold storage for long-term treasury reserves. You can use both within the same Finrock workspace.
Was this page helpful?
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"Finrock","colors":{"primary":"#F6921A","light":"#040404"},"logo":{"light":"https://mintcdn.com/finrock/tGL-zbd_TCbsIV_S/images/Finrocklogo.png?fit=max\u0026auto=format\u0026n=tGL-zbd_TCbsIV_S\u0026q=85\u0026s=5ebb1db67970f798309dd7291873f2b7","dark":"https://mintcdn.com/finrock/tGL-zbd_TCbsIV_S/images/2e3558e0.png?fit=max\u0026auto=format\u0026n=tGL-zbd_TCbsIV_S\u0026q=85\u0026s=dd03ef47767e1348cb231a65d5d3d4f3","href":"https://finrock.io"},"favicon":{"light":"https://mintcdn.com/finrock/tGL-zbd_TCbsIV_S/images/icon-1024-center.jpg?fit=max\u0026auto=format\u0026n=tGL-zbd_TCbsIV_S\u0026q=85\u0026s=40246637b1cb4d6e35d94212b458515e","dark":"https://mintcdn.com/finrock/tGL-zbd_TCbsIV_S/images/icon-1024-center.jpg?fit=max\u0026auto=format\u0026n=tGL-zbd_TCbsIV_S\u0026q=85\u0026s=40246637b1cb4d6e35d94212b458515e"},"api":{"playground":{"display":"interactive"},"mdx":{"auth":{"method":"key","name":"x-api-key"},"server":"https://api.finrock.io"}},"appearance":{"default":"light","strict":true},"navbar":{"primary":{"type":"github","href":"https://github.com/gofinrock"}},"icons":{"library":"lucide"},"integrations":{"gtm":{"tagId":"GTM-PZ4JW889"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"finrock","hasAudioNarration":false,"actualSubdomain":"finrock","customDomains":["apidocs.finrock.io"],"gitSource":{"type":"github","owner":"mintlify-community","repo":"docs-finrock-6e1ffd21","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"},"WEB_MCP":{"status":"DISABLED"},"NARRATION":{"status":"DISABLED"}},"buildId":"6af5be0b5cae6d002f818697","clientVersion":"0.0.4143","searchFilterCounts":[{"language":"default","tag":"API Reference","count":88},{"language":"default","tag":"Documentation","count":28},{"language":"default","tag":"Guides","count":13},{"language":"default","tag":"Wallets \u0026 Addresses","count":7},{"language":"default","tag":"Overview","count":6},{"language":"default","tag":"Core Concepts","count":5},{"language":"default","tag":"Platform Reference","count":5},{"language":"default","tag":"AML","count":4},{"language":"default","tag":"Exchanges","count":4},{"language":"default","tag":"Gas Fee","count":4}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":""}],"page":{"pagePath":"concepts/wallet-types","slug":"/concepts/wallet-types","pageMetadata":{"title":"Wallet Types","sidebarTitle":"Wallet Types","icon":{"name":"wallet","library":"lucide"},"description":null,"href":"/concepts/wallet-types"},"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`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Card,CardGroup,CodeBlock,CodeGroup,Heading,Note,Step,Steps,Tab,Table,Tabs,Tip,Warning}=_components;if(!Card)_missingMdxReference(`Card`,true);if(!CardGroup)_missingMdxReference(`CardGroup`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!CodeGroup)_missingMdxReference(`CodeGroup`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Tab)_missingMdxReference(`Tab`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tabs)_missingMdxReference(`Tabs`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Finrock supports three distinct wallet architectures — MPC wallets, Legacy wallets, and HSM cold storage — each designed for different security postures and operational requirements. Understanding the trade-offs between them helps you select the right approach for your custody strategy, whether you prioritize automation, self-custody of key material, or the highest possible physical security.`}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`MPC Wallets`,id:`mpc-wallets`,\"data-child-heading-ids\":`[\"mpc-wallets-recommended\"]`,children:[_jsx(Heading,{level:`2`,id:`mpc-wallets-recommended`,children:`MPC Wallets (Recommended)`}),_jsx(_components.p,{children:`MPC wallets are Finrock’s default and recommended wallet type for most operational use cases. They use threshold cryptography to split key material across independent signing nodes, so the full private key is never assembled at any point — not during creation, signing, or storage.`}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`How it works:`})}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Key shares are distributed across Node A (your application server), Node B (Finrock Mobile App, user-controlled), and Node C (backup/DR node).`}),`\n`,_jsx(_components.li,{children:`A signing threshold (e.g., 2-of-3) determines how many nodes must participate to produce a valid signature.`}),`\n`,_jsx(_components.li,{children:`Nodes communicate over encrypted P2P channels. No key material is ever transmitted between them — only partial signatures.`}),`\n`,_jsx(_components.li,{children:`Distributed Key Generation (DKG) ensures the full private key never exists, even during wallet creation.`}),`\n`]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Best for:`})}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`High-volume operational workflows`}),`\n`,_jsx(_components.li,{children:`Automated transaction processing`}),`\n`,_jsx(_components.li,{children:`Businesses requiring institutional-grade security without air-gapped hardware`}),`\n`]}),_jsx(Note,{children:_jsxs(_components.p,{children:[`MPC wallets support ECDSA (secp256k1) for Bitcoin, Ethereum, and EVM chains, and EdDSA (Ed25519) for Solana. See `,_jsx(_components.a,{href:`/concepts/mpc-wallets`,children:`How MPC Wallets Work`}),` for a full architectural overview.`]})})]}),_jsxs(Tab,{title:`Legacy Wallets`,id:`legacy-wallets`,\"data-child-heading-ids\":`[\"legacy-wallets\"]`,children:[_jsx(Heading,{level:`2`,id:`legacy-wallets`,children:`Legacy Wallets`}),_jsx(_components.p,{children:`Legacy wallets give you complete ownership and control of your private keys by hosting a Key Management Server (KMS) on your own infrastructure. Finrock’s backend servers never access your private keys, mnemonic phrases, or wallet seeds at any time — by design.`}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`How it works:`})}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`You deploy the `,_jsx(_components.code,{children:`finrock/ng-signer`}),` Docker image on your own VM (AWS or Azure recommended).`]}),`\n`,_jsxs(_components.li,{children:[`Your KMS `,_jsx(_components.strong,{children:`polls`}),` Finrock at regular intervals to pick up pending signing jobs — Finrock never pushes tasks to your KMS.`]}),`\n`,_jsx(_components.li,{children:`The KMS signs transactions locally and encrypts them before dispatching to the blockchain.`}),`\n`,_jsx(_components.li,{children:`All communication is one-way, end-to-end SHA-512 encrypted. All inbound (ingress) traffic to the KMS must be blocked; only outbound (egress) traffic is allowed.`}),`\n`]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Deployment:`})}),_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`docker`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` pull`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` finrock/ng-signer`})]}),`\n`]})})}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Config file (Legacy mode):`})}),_jsx(CodeBlock,{filename:``,numberOfLines:`9`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`9`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"signer_mode\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"LEGACY\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"signer_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2df047e7-xxxxx-xxx-xxxxx-77673f0be16c\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"rsa_prv_key\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"rsa-----xx\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"srds\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"YW1vdW50IGFixxxxxxxxxxxxxxxxxxxyIG1vb24=\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"YW11c2VkIGFiYW5kbxxxxxxxxxxxxRyZXNzIGdyZWF0\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Running the signer (detached container):`})}),_jsxs(CodeGroup,{children:[_jsx(CodeBlock,{filename:`docker run`,numberOfLines:`3`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`docker`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` run`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -d`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --restart`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` always`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --name`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` finrock`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -v`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"$(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`pwd`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`)\"/config.json:/app/config.json:ro`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`finrock/ng-signer`})}),`\n`]})})}),_jsx(CodeBlock,{filename:`docker-compose`,numberOfLines:`8`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`8`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`version`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'3'`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`services`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` signer`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` image`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`finrock/ng-signer`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` container_name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`finrock`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` restart`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`always`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` volumes`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`./config.json:/app/config.json:ro`})]}),`\n`]})})})]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Environment variables:`})}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Variable`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`FINROCK_SIGNER_MODE`})}),_jsx(_components.td,{children:`ENUM`}),_jsxs(_components.td,{children:[`Set to `,_jsx(_components.code,{children:`LEGACY`}),` for this wallet type`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`FINROCK_SIGNER_ID`})}),_jsx(_components.td,{children:`UUID`}),_jsx(_components.td,{children:`Unique signer ID provided by Finrock`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`FINROCK_RSA_PRV_KEY`})}),_jsx(_components.td,{children:`RSA key`}),_jsx(_components.td,{children:`Your RSA private key`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`FINROCK_PASSPHRASE`})}),_jsx(_components.td,{children:`String`}),_jsx(_components.td,{children:`Passphrase to encrypt the MPC keystore (MPC mode only)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`FINROCK_MNEMONIC_PHRASE`})}),_jsx(_components.td,{children:`String`}),_jsx(_components.td,{children:`12-word seed phrase`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`FINROCK_SECRET`})}),_jsx(_components.td,{children:`String`}),_jsx(_components.td,{children:`Encrypted mnemonic phrase`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`FINROCK_API_HOST`})}),_jsx(_components.td,{children:`String`}),_jsxs(_components.td,{children:[`Defaults to `,_jsx(_components.code,{children:`https://sapi.finrock.io`})]})]})]})]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Key operational features:`})}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Kill switch:`}),` Instantly take the KMS offline to halt all transaction signing.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Recovery option:`}),` Generate new private keys for specific addresses or address groups if needed.`]}),`\n`]}),_jsx(Warning,{children:_jsxs(_components.p,{children:[`Your KMS host `,_jsx(_components.strong,{children:`must`}),` block all inbound network traffic. Only outbound (egress) connections to Finrock’s API are required. Exposing the KMS to inbound traffic defeats its security model.`]})})]}),_jsxs(Tab,{title:`HSM Cold Storage`,id:`hsm-cold-storage`,\"data-child-heading-ids\":`[\"hsm-cold-storage\"]`,children:[_jsx(Heading,{level:`2`,id:`hsm-cold-storage`,children:`HSM Cold Storage`}),_jsx(_components.p,{children:`HSM (Hardware Security Module) cold storage provides the highest level of physical key security available in Finrock. Private keys are stored inside tamper-resistant hardware devices that are never connected to the internet, making remote extraction or exploitation impossible.`}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Hardware specification:`})}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Standard:`}),` FIPS 140-2 Level 3 compliant HSMs`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Recommended device:`}),` `,_jsx(_components.a,{href:`https://www.yubico.com/gb/product/yubihsm-2-series/yubihsm-2-fips/`,children:`Yubi HSM-2 FIPS`})]}),`\n`,_jsx(_components.li,{children:`Full key isolation with zero internet exposure`}),`\n`,_jsx(_components.li,{children:`Physical tamper protection against unauthorized access or key exfiltration`}),`\n`]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Air-Gapped QR Code Signing Workflow:`})}),_jsxs(Steps,{children:[_jsx(Step,{title:`Initiate the Transaction`,children:_jsx(_components.p,{children:`Create a transaction from the Finrock platform. The platform converts it into a PSBT (Partially Signed Bitcoin Transaction) or equivalent unsigned payload.`})}),_jsx(Step,{title:`Display the QR Code`,children:_jsx(_components.p,{children:`The unsigned payload is rendered as a QR code on your Finrock workspace. No network transfer occurs at this stage.`})}),_jsx(Step,{title:`Scan with Offline Device`,children:_jsx(_components.p,{children:`Take your air-gapped device running the Finrock Mobile App — with Wi-Fi disabled, mobile data off, and in airplane mode — and scan the QR code. The app has no network access.`})}),_jsx(Step,{title:`Sign Offline`,children:_jsx(_components.p,{children:`The Finrock Mobile App signs the transaction entirely offline using private keys stored in the device’s secure enclave or connected HSM. The signed transaction is displayed as a return QR code.`})}),_jsx(Step,{title:`Broadcast the Transaction`,children:_jsx(_components.p,{children:`Scan the return QR code back into the Finrock platform. The platform broadcasts the signed transaction to the blockchain network.`})})]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Key benefits:`})}),_jsxs(CardGroup,{cols:2,children:[_jsx(Card,{title:`Zero Network Exposure`,icon:`wifi-off`,children:_jsx(_components.p,{children:`The signing device never requires a network connection. Remote exploits and malware are impossible by design.`})}),_jsx(Card,{title:`FIPS 140-2 Level 3`,icon:`award`,children:_jsx(_components.p,{children:`Industry-standard certification for tamper-resistant hardware used in government and regulated financial environments.`})}),_jsx(Card,{title:`Physical Protection`,icon:`lock`,children:_jsx(_components.p,{children:`Keys are stored inside hardware designed to destroy itself if tampered with, preventing physical extraction.`})}),_jsx(Card,{title:`Operational Usability`,icon:`pointer`,children:_jsx(_components.p,{children:`Designed for real-world treasury operations — not just security theory. The QR workflow makes air-gapped signing practical at scale.`})})]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Best for:`})}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`High-value treasury reserves and cold storage`}),`\n`,_jsx(_components.li,{children:`Environments with strict physical security requirements`}),`\n`,_jsx(_components.li,{children:`Institutions that cannot accept any online key exposure under any circumstances`}),`\n`]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`choosing-the-right-wallet-type`,children:`Choosing the Right Wallet Type`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{}),_jsx(_components.th,{children:`MPC Wallets`}),_jsx(_components.th,{children:`Legacy Wallets`}),_jsx(_components.th,{children:`HSM Cold Storage`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Key location`})}),_jsx(_components.td,{children:`Distributed across nodes`}),_jsx(_components.td,{children:`Your infrastructure`}),_jsx(_components.td,{children:`Offline hardware`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Internet exposure`})}),_jsx(_components.td,{children:`Encrypted P2P only`}),_jsx(_components.td,{children:`Egress-only polling`}),_jsx(_components.td,{children:`None (air-gapped)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Operational speed`})}),_jsx(_components.td,{children:`Fastest (automated)`}),_jsx(_components.td,{children:`Near-real-time`}),_jsx(_components.td,{children:`Manual (QR workflow)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Self-custody`})}),_jsx(_components.td,{children:`Shared (Node B)`}),_jsx(_components.td,{children:`Full`}),_jsx(_components.td,{children:`Full`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Best use case`})}),_jsx(_components.td,{children:`Day-to-day operations`}),_jsx(_components.td,{children:`Compliance-driven control`}),_jsx(_components.td,{children:`Treasury / cold storage`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`FIPS certified`})}),_jsx(_components.td,{children:`—`}),_jsx(_components.td,{children:`—`}),_jsx(_components.td,{children:`✓ Level 3`})]})]})]}),`\n`,_jsx(Tip,{children:_jsx(_components.p,{children:`Many institutions combine wallet types: MPC wallets for operational liquidity and hot wallets, with HSM cold storage for long-term treasury reserves. You can use both within the same Finrock workspace.`})})]})}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":{"config":{},"pageMetadata":{"title":"Wallet Types","sidebarTitle":"Wallet Types","icon":{"name":"wallet","library":"lucide"},"description":null,"href":"/concepts/wallet-types"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"MPC Wallets (Recommended)","slug":"mpc-wallets-recommended","depth":2,"children":[],"tabId":"mpc-wallets"},{"title":"Legacy Wallets","slug":"legacy-wallets","depth":2,"children":[],"tabId":"legacy-wallets"},{"title":"HSM Cold Storage","slug":"hsm-cold-storage","depth":2,"children":[],"tabId":"hsm-cold-storage"},{"title":"Choosing the Right Wallet Type","slug":"choosing-the-right-wallet-type","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"finrock","siteName":"Finrock","title":"Wallet Types - Finrock","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-30T21:29:55.105Z","originalFileLocation":"concepts/wallet-types.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=\"light\";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=\"light\"}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=\"Finrock\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/finrock/MCcXnkpjZeC08COI/_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/finrock/MCcXnkpjZeC08COI/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/finrock/MCcXnkpjZeC08COI/_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/finrock/MCcXnkpjZeC08COI/_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/finrock/MCcXnkpjZeC08COI/_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/finrock/MCcXnkpjZeC08COI/_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/finrock/MCcXnkpjZeC08COI/_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/finrock/MCcXnkpjZeC08COI/_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/finrock/MCcXnkpjZeC08COI/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Wallet Types - Finrock\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Finrock\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://apidocs.finrock.io/concepts/wallet-types\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://finrock.mintlify.site/_mintlify/api/og/v2?division=Core+Concepts\u0026amp;title=Wallet+Types\u0026amp;theme=303f00c977b1c5bb32286452\u0026amp;signature=c99abdf6a3c7fb677b734e3b82dab5e0f4687f79844671653c309c0d1e7dda30\">\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=\"Wallet Types - Finrock\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://finrock.mintlify.site/_mintlify/api/og/v2?division=Core+Concepts\u0026amp;title=Wallet+Types\u0026amp;theme=303f00c977b1c5bb32286452\u0026amp;signature=c99abdf6a3c7fb677b734e3b82dab5e0f4687f79844671653c309c0d1e7dda30\">\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/finrock/MCcXnkpjZeC08COI/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Finrock\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#F6921A\">\u003clink data-mint-head rel=\"canonical\" href=\"https://apidocs.finrock.io/concepts/wallet-types\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/concepts/wallet-types.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://apidocs.finrock.io/#organization\",\"name\":\"Finrock\",\"url\":\"https://apidocs.finrock.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/finrock/tGL-zbd_TCbsIV_S/images/Finrocklogo.png?fit=max\u0026auto=format\u0026n=tGL-zbd_TCbsIV_S\u0026q=85\u0026s=5ebb1db67970f798309dd7291873f2b7\"}},{\"@type\":\"WebSite\",\"@id\":\"https://apidocs.finrock.io#website\",\"name\":\"Finrock\",\"url\":\"https://apidocs.finrock.io\",\"publisher\":{\"@id\":\"https://apidocs.finrock.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://apidocs.finrock.io/concepts/wallet-types#webpage\",\"url\":\"https://apidocs.finrock.io/concepts/wallet-types\",\"name\":\"Wallet Types\",\"dateModified\":\"2026-10-30T21:29:55.105Z\",\"isPartOf\":{\"@id\":\"https://apidocs.finrock.io#website\"},\"breadcrumb\":{\"@id\":\"https://apidocs.finrock.io/concepts/wallet-types#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://apidocs.finrock.io/concepts/wallet-types#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Finrock\",\"item\":\"https://apidocs.finrock.io\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Wallet Types\",\"item\":\"https://apidocs.finrock.io/concepts/wallet-types\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://apidocs.finrock.io/concepts/wallet-types#article\",\"headline\":\"Wallet Types\",\"name\":\"Wallet Types\",\"url\":\"https://apidocs.finrock.io/concepts/wallet-types\",\"mainEntityOfPage\":{\"@id\":\"https://apidocs.finrock.io/concepts/wallet-types#webpage\"},\"dateModified\":\"2026-10-30T21:29:55.105Z\",\"publisher\":{\"@id\":\"https://apidocs.finrock.io/#organization\"},\"isPartOf\":{\"@id\":\"https://apidocs.finrock.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Finrock\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Finrock\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/concepts/wallet-types.md","siteName":"Finrock","nav":{"global":null,"tabs":[{"tab":"Documentation","groups":[{"group":"Get Started","pages":[{"title":"Finrock's non-custodial wallets","sidebarTitle":"Introduction","icon":{"name":"house","library":"lucide"},"href":""},{"title":"What are MPC Wallets?","sidebarTitle":"MPC Wallets","icon":{"name":"shield-check","library":"lucide"},"href":"/concepts/mpc-wallets"},{"title":"Key Features","sidebarTitle":"Key Features","icon":{"name":"sparkles","library":"lucide"},"href":"/concepts/key-features"},{"title":"Use Cases","sidebarTitle":"Use Cases","description":"Explore how banks, exchanges, hedge funds, family offices, OTC desks, and merchants use Finrock for custody, payments, POS, and RWA tokenization.","icon":{"name":"briefcase","library":"lucide"},"href":"/concepts/use-cases"}]},{"group":"Core Concepts","pages":[{"title":"Wallet Types","sidebarTitle":"Wallet Types","icon":{"name":"wallet","library":"lucide"},"href":"/concepts/wallet-types"},{"title":"Sub-Accounts: HD Wallets","sidebarTitle":"Sub-Accounts","description":"Use Finrock sub-accounts to separate funds across entities, departments, or client portfolios — each with its own wallets, policies, and permissions.","icon":{"name":"network","library":"lucide"},"href":"/concepts/sub-accounts"},{"title":"Gas Tanks","sidebarTitle":"Gas Tanks","icon":{"name":"fuel","library":"lucide"},"href":"/concepts/gas-tanks"},{"title":"Omnibus vs Isolated Addresses","sidebarTitle":"Omnibus Wallets","icon":{"name":"layers","library":"lucide"},"href":"/concepts/omnibus-wallets"},{"title":"Prepaid Fee","sidebarTitle":"Prepaid Fee","icon":{"name":"receipt","library":"lucide"},"href":"/concepts/prepaid-fee"}]},{"group":"Guides","pages":[{"title":"API Access Key","sidebarTitle":"API Access Key","icon":{"name":"key-round","library":"lucide"},"href":"/quickstart"},{"title":"Whitelist IPs for API Keys","sidebarTitle":"Whitelist IPs","icon":{"name":"list-checks","library":"lucide"},"href":"/guides/whitelist-ips"},{"title":"Cloud Signer (KMS)","sidebarTitle":"Cloud Signer (KMS)","icon":{"name":"server-cog","library":"lucide"},"href":"/guides/cloud-signer"},{"title":"Create Wallets and Deposit Addresses","sidebarTitle":"Wallets \u0026 Addresses","icon":{"name":"wallet","library":"lucide"},"href":"/guides/create-wallet-address"},{"title":"Send Crypto Transactions with the Finrock API","sidebarTitle":"Send Transaction","icon":{"name":"send","library":"lucide"},"href":"/guides/send-transaction"},{"title":"AML Compliance Screening","sidebarTitle":"AML Compliance","icon":{"name":"scan-search","library":"lucide"},"href":"/guides/aml-compliance"},{"title":"Ad-Hoc Addresses","sidebarTitle":"Ad-Hoc Addresses","icon":{"name":"map-pin","library":"lucide"},"href":"/guides/ad-hoc-addresses"},{"title":"Whitelist Withdrawal Addresses","sidebarTitle":"Whitelist Addresses","icon":{"name":"list-checks","library":"lucide"},"href":"/guides/whitelist-addresses"},{"title":"Control Withdrawals with Spending Rules","sidebarTitle":"Spending Rules","icon":{"name":"shield-check","library":"lucide"},"href":"/guides/spending-rules"},{"title":"Contract Addresses","sidebarTitle":"Contract Addresses","icon":{"name":"file-code","library":"lucide"},"href":"/guides/contract-addresses"},{"title":"Gas Fees","sidebarTitle":"Gas Fees","icon":{"name":"fuel","library":"lucide"},"href":"/reference/gas-fees"},{"title":"Embed the Finrock Payment Widget","sidebarTitle":"Payment Widget","icon":{"name":"credit-card","library":"lucide"},"href":"/guides/payment-widget"},{"title":"Accept Payments with Invoices","sidebarTitle":"Invoicing","icon":{"name":"receipt","library":"lucide"},"href":"/guides/invoicing"}]},{"group":"AI Agents","pages":[{"title":"Connect Claude to Finrock","sidebarTitle":"Connect Claude","icon":{"name":"bot","library":"lucide"},"href":"/guides/ai/connect-claude"}]},{"group":"Platform Reference","pages":[{"title":"Transaction Statuses","sidebarTitle":"Transaction Statuses","icon":{"name":"activity","library":"lucide"},"href":"/reference/transaction-statuses"},{"title":"Transaction Sources \u0026 Destinations","sidebarTitle":"Transaction Types","icon":{"name":"arrow-left-right","library":"lucide"},"href":"/reference/transaction-types"},{"title":"Spending Rule Values","sidebarTitle":"Spending Rule Values","icon":{"name":"list-checks","library":"lucide"},"href":"/reference/spending-rule-values"},{"title":"Supported Blockchain \u0026 Coins","sidebarTitle":"Supported Assets","icon":{"name":"coins","library":"lucide"},"href":"/reference/supported-assets"},{"title":"API Rate Limits","sidebarTitle":"API Rate Limits","icon":{"name":"gauge","library":"lucide"},"href":"/reference/api-rate-limits"}]}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api-reference/overview"}]}]},"basePath":"","title":"Wallet Types - Finrock","buildId":"dpl_Fyv1NbzwP68g2bEH2Roy98uY1zmE","deploymentId":"dpl_Fyv1NbzwP68g2bEH2Roy98uY1zmE","dynamics":[],"chunks":[]}