Exporting Wallet Keys
Organization owners can export the private key for an ORGANIZATION_CONTROLLED managed wallet.
The export is owner-authorized and end-to-end encrypted: Conto relays the signed request and returns
HPKE ciphertext, but never receives the customer owner private key, the HPKE recipient private key,
or the plaintext wallet key.
This flow is not available for CONTO_MANAGED wallets. The control model is fixed when a wallet is
created.
Before You Start
You need two customer-controlled P-256 keys with different purposes:
- The owner authorization key registered in Settings → Wallet Control. Keep its private
half in your KMS or offline signing environment.
- A new HPKE recipient key for this export. Keep its private half outside Conto; Conto receives
only its base64 SPKI public key.
Anyone with the decrypted wallet key can sign outside Conto and bypass Conto policies. Treat the
export as a high-risk governance action and secure the resulting key accordingly.
Export From The Dashboard
- Sign in as the organization Owner.
- Open Wallets, open the organization-controlled wallet menu, and select Export encrypted
key.
- Paste the HPKE recipient public key and choose Prepare owner authorization.
- Copy and base64-decode the authorization payload. Sign the decoded bytes outside Conto with the
registered owner authorization private key using ECDSA P-256 with SHA-256 and DER encoding.
- Paste the base64 DER signature and download the encrypted export before the displayed expiry.
- Decrypt
ciphertext using encapsulatedKey, the HPKE recipient private key, and this suite:
DHKEM(P-256, HKDF-SHA256) / HKDF-SHA256 / ChaCha20-Poly1305.
For a base64 PKCS8 owner authorization private key, this Node.js snippet produces the signature the
dialog expects:
The downloaded JSON is deliberately encrypted and is never persisted by Conto. A successful export
marks the wallet’s key-access status as exported and writes an audit event, without storing the
ciphertext or plaintext. Conto records an export intent before contacting the provider. If the
provider response or the final audit write is ambiguous, keyAccess becomes
EXPORT_RECONCILIATION_REQUIRED; another export is blocked until Conto reconciles the provider’s
durable export timestamp.
Operational Boundaries
- The owner authorization payload is bound to the provider wallet, recipient public key, request
body, Conto app ID, and a ten-minute expiry.
- Only an authenticated organization Owner can prepare or submit an export.
- Conto’s additional-signer key cannot authorize export or administer the customer owner quorum.
- Conto can continue signing through its normal policy and approval path after export, but the
exported key also permits signing outside Conto.
See Custody Modes for the broader control and enforcement comparison.