Skip to main content

Technical Security Whitepaper

Updated over a month ago

0. Introduction

This document describes technical details of the security architecture and cryptographic design of Foundation, a high-security backup service for self-custody of cryptocurrency seed phrases.

Foundation is designed to give strong guarantees for confidentiality, durability, and control. It ensures that only the account owner—or, when explicitly configured, a designated legacy member—can access the encrypted contents of an account. All encryption, decryption, and key generation happen on the customer’s personal device, using secure hardware. The Foundation service never holds or derives the encryption keys required to access a vault.

This document is intended for security engineers, cryptographers, compliance reviewers, and technically engaged customers. It describes how Foundation enforces device-bound access, prevents unauthorized recovery, and minimizes trust in the server infrastructure. Our goal is to provide transparency and clarity into how Foundation protects sensitive key material—without requiring blind trust in us.

0.1 Design Philosophy

Foundation is built on a single principle: the only way to access your encrypted account information is using your registered devices, under your control.

To achieve this, Foundation enforces the following design commitments:

  • Encryption keys are derived on-device, using platform-secure hardware modules.
    Each device generates encryption keys using hardened, hardware-bound components (iOS Secure Enclave and Android Keystore). These keys are device bound and non-exportable.

  • Access requires both possession and authentication.
    Decryption requires physical possession of a registered device, successful biometric authentication to activate the device’s secure hardware, and account authentication with multi-factor verification to access server-protected ciphertexts, which are not stored on the device.

  • Recovery is tied to physical hardware, not knowledge.
    Recovery devices use the WebAuthn PRF extension to derive cryptographic keys that are hardware-bound and non-exportable. Recovery requires possession of a registered device—credentials alone are not sufficient.

  • Servers store ciphertext, not secrets.
    Foundation infrastructure stores encrypted backup data and enforces access and inactivity policies. It never stores or derives the cryptographic keys required to decrypt vault contents.

  • Inactivity-based transfer is opt-in, policy-bound, and hardware-enforced.
    Customers may designate a legacy member whose access is triggered after a defined period of verified inactivity. Even then, the legacy device must be pre-registered and physically present to complete decryption.

  • No trust without control.
    Foundation minimizes what it can see or do. Devices hold keys. Strong authentication gates access. Hardware roots trust. The system is designed not to ask for trust—but to make it unnecessary.

These principles are not theoretical. They shape every part of Foundation’s cryptographic architecture and operational policy. The remainder of this document details how they are implemented in practice.


1. System Overview

1.1 Components and Roles

Foundation consists of five key components. Each plays a distinct role in safeguarding encrypted backups while minimizing trust in centralized infrastructure:

📱 Registered Mobile Device

This is the cryptographic center of Foundation. It is responsible for generating encryption keys using platform-secure hardware (iOS Secure Enclave or Android Keystore), and it is the only device that performs any encryption and decryption. No seed phrase ever leaves this device unencrypted. Every access, recovery, or transfer ultimately depends on a mobile device being in the loop.

👤 Account Owner

The account owner is the individual who controls access to all secure account information. They authorize mobile and recovery devices, configure optional legacy transfer settings, and authenticate with MFA to manage their account. While the account is necessary to access ciphertext, decryption can only occur on mobile devices they’ve explicitly enrolled.

🔐 Recovery Device

A recovery device is a FIDO2 security key registered using the WebAuthn PRF extension. It derives a hardware-bound cryptographic seed, gated by the device owner’s PIN. If the original mobile device is lost, a registered recovery device—combined with account authentication—can rederive the necessary keys to decrypt account information. Recovery always requires both possession of the device and knowledge of the PIN.

🧑‍🦳 Legacy Member Device

An optional, pre-authorized device belonging to a designated legacy contact. After a configurable period of inactivity by the account owner, the Foundation service releases encrypted account information that can be accessed on this device. Like recovery, decryption is only possible with the physical legacy device and successful authentication.

☁️ Foundation Service

The Foundation service handles ciphertext storage, enforces access and policy rules, and verifies device identity, account status, and inactivity timers. It does not generate encryption keys or decrypt vaults. The service acts as a policy gate and high-durability ciphertext storage—never as a trusted decryption endpoint.

1.2 High-Level Data Flow

This section walks through how data moves through the system—from input to encryption, storage, access, recovery, and legacy transfer. It’s where you show how Foundation functions end-to-end, emphasizing where encryption happens (device), where ciphertext lives (server), and what’s required to access or recover encrypted information.

Seed Phrase Encryption

The account owner must be authenticated to their Foundation account and use a registered device. This is necessary to have access to the hardware bound encryption keys required to encrypt (or decrypt) seed phrases. The account owner enters their seed phrase directly on their registered mobile device. The device generates the encryption key and encrypts the seed phrase on the device using authenticated encryption. The account owner satisfies a device biometric challenge to access encryption keys and exercise the platform secure encryption hardware (either iOS the Secure Enclave or Android Keystore). The encrypted seed phrase is uploaded to the Foundation service where it is stored as ciphertext. The encryption keys never leave the device, and the plaintext seed phrase is never transmitted or stored by Foundation.

Access

To access encrypted account information, the account owner must authenticate to their Foundation account from a registered mobile device. This involves credential authentication—either an email and passphrase or login via Google or Apple account—and multi-factor authentication using TOTP. Foundation does not support email- or SMS-based MFA, which are excluded due to their vulnerability to interception and account takeover.

The Foundation service verifies account credentials, device registration, software integrity, and inactivity policy before releasing encrypted data to the device. Encrypted account information is never stored locally and is only transmitted after these checks are satisfied.

Recovery

If the account owner's mobile device is lost, damaged, reset, or unavailable, they can regain access using a pre-registered recovery device. Recovery devices are FIDO2 hardware authenticators that support the WebAuthn PRF extension. During registration, the device derives a cryptographic seed that is bound to the physical authenticator and gated by the owner’s PIN.

This seed is used to generate an encryption key, which encrypts sufficient account information to enable recovery. The encrypted recovery payload is stored by the Foundation service and is only released after successful account authentication and multi-factor verification. Recovery requires account authentication, possession of the registered hardware device, and knowledge of the PIN—anything less is insufficient to recover the account.

Legacy Transfer

Account owners may designate a trusted contact as a legacy member, who can access encrypted account information after a defined period of inactivity. The process begins when the account owner sends a secure invitation code to the legacy contact, who must create a Foundation account with multi-factor authentication and register a secure device. As part of enrollment, the legacy contact’s public key is provided to the account owner.

The account owner reviews and confirms the enrollment, including metadata such as the legacy contact’s email, geolocation, and device type. Both parties are shown a safety code that allows them to verify—out of band—that the Foundation service has not tampered with key material. When the account owner confirms, their mobile device encrypts a recovery payload using the legacy contact’s public key and uploads it to the Foundation service.

When the inactivity period expires, Foundation releases this encrypted recovery payload to the legacy contact’s device. As with all other access, decryption requires MFA, secure hardware, and physical possession of the registered device. The encryption model is identical to standard account access—no shortcuts.

1.3 Trust Boundaries

Foundation’s architecture enforces strict separation between encrypted data, cryptographic keys, and access policy enforcement. Each component is constrained by design:

📱 Mobile Devices

Holds all decryption keys, derived locally from platform-secure hardware. Devices perform all encryption and decryption operations. Neither the decryption keys nor the decrypted account information ever leave the device, and decryption is impossible without biometric or PIN authentication enforced by the operating system.

🔐 Recovery and Legacy Devices

Hold cryptographic seeds derived using the WebAuthn PRF extension, gated by a PIN. These seeds are used to derive encryption keys that are used for account recovery. As with mobile devices, decryption can only occur with physical possession of the registered device.

☁️ Foundation Service

Stores encrypted account data and enforces policy—device registration, inactivity monitoring, software version validation, and multi-factor authentication. It cannot generate, access, or decrypt any encrypted material. All cryptographic operations occur on devices the account owner controls.

🧑‍💼 Account Owner and Legacy Member

Account owners control device enrollment, recovery and legacy authorization, and inactivity policy. Legacy members cannot access encrypted information without pre-registration, confirmation, and eventual policy fulfillment. Foundation facilitates communication and key exchange, but cannot enroll legacy members or access decrypted account information.

1.4 Security Invariants

Foundation is built around a set of unbreakable constraints that define what must always be true, regardless of platform, policy, or infrastructure state:

  • Only registered devices can decrypt account information.
    All encryption keys are tied to specific hardware devices, using secure hardware or FIDO2 authenticators. Foundation cannot bypass this constraint.

  • Encryption keys are never stored or transmitted.
    Keys are derived locally on-device and used only when needed. Foundation never sees them, stores them, or proxies their use.

  • Encrypted account data cannot be accessed without MFA.
    Access to ciphertext is gated by credential authentication and TOTP-based multi-factor authentication. Possession alone is never enough.

  • Recovery and legacy access require physical hardware.
    Recovery and legacy devices must be registered in advance, confirmed by the account owner, and physically presented to access encrypted information.

  • Foundation cannot decrypt, impersonate, or forge access.
    The system is designed such that the service cannot read account data, inject unauthorized keys, or fabricate recovery flows—even under compromise.


2. Encryption and Key Management

All key generation, encryption, and decryption operations occur exclusively on the customer’s registered mobile devices. Foundation uses platform‑provided cryptographic libraries and device secure‑hardware modules for cryptographic operations.

2.1 Cryptographic key roster

Device keys are hardware-bound cryptographic keys (asymmetric key pairs) used to encrypt the customer’s vault key. The vault key is used to encrypt vault records (customer-entered seed phrases).

All keys are P-256 ECDH keypairs and all encryption is single-shot ECIES-P-256-HKDF-SHA-256- AES-GCM-128 with sender/receiver keypairs and the ciphersuite bound to ciphertexts via the HKDF info. This is the same public key encryption scheme used in Station70’s institutional backup product, Bunker, and has been audited by Trail of Bits.

  • Enclave keypair – on iOS this is a P-256 ECDH key generated inside the device’s secure enclavel; it is non-exportable, device bound (can only be used on that device), and protected by the device biometric or PIN. On Android, this is a P-256 ECDH key generated using the Android Keystore and protected by the device biometric or PIN. Secure hardware (Android Strongbox) is used whenever present on the mobile device.

    The enclave keypair is used to encrypt and decrypt the vault secret key.

  • Recovery device keypair – P-256 ECDH key generated from device-bound secret. The recovery device keypair (like all device-level keypairs) is used to encrypt and decrypt the vault secret key. Additional details in the recovery device section.

  • Legacy keypair – P-256 ECDH key generated on the legacy member’s mobile device. The legacy device keypair (like all device-level keypairs) is used to encrypt and decrypt the vault secret key. Additional details in the legacy section.

  • Vault keypair - P-256 ECDH key generated on the mobile device when the vault is created (account creation). The vault keypair is used to encrypt and decrypt vault records (seed phrases).


3. Recovery via Hardware Devices

Customers can regain access to encrypted account information by presenting a pre‑registered hardware authenticator—Foundation currently supports Yubico devices on both iOS and Android.

3.1 Device Registration

  1. Invitation & Presence.  The account owner initiates registration from the mobile app and is prompted to tap the authenticator and enter its PIN. FIDO2 devices will require a PIN when using the WebAuthn PRF extension.

  2. WebAuthn PRF Output.  During the makeCredential ceremony, the authenticator produces a 32‑byte PRF output that is cryptographically bound to the device’s secret key material.

  3. Seed‑to‑Key Conversion.  The mobile app converts the PRF output into a P‑256 ECDH keypair and encrypts the vault secret key with the recovery device key.

  4. Server Storage.  The resulting ciphertext is uploaded to the Foundation service and linked to the authenticator’s credential ID.

3.2 Recovery Flow

  1. Authentication. The customer signs in on a new mobile device with credentials and MFA.

  2. Authenticator Presentation. The customer connects a registered hardware recovery key and enters the PIN. The authenticator returns the same PRF output.

  3. Key Derivation & Decryption. The mobile app derives the P‑256 private key, downloads the stored ciphertext from the Foundation service, and decrypts the vault key locally.

  4. Account Access. With the vault key restored, normal decryption of account records resumes on the device. This includes registering the new mobile device with Foundation, generating a fresh enclave key on the new device, and encrypting the vault key with the device's enclave key.

3.3 Security Properties

  • Hardware‑bound:  Only the original authenticator can reproduce the PRF output.

  • PIN‑gated: Use of the device requires physical possession and knowledge of the PIN.

  • Server‑blind:  Foundation stores ciphertext but lacks the keys to decrypt or re‑encrypt it.

  • No override:  If the authenticator is lost and no additional recovery devices, mobile devices, or legacy members are registered, Foundation cannot recover the account.


4. Legacy Access and Inactivity-Based Transfer

Account owners can optionally designate a trusted contact as a legacy member, enabling post‑humous or fallback access to encrypted account information after a defined period of verified inactivity.

4.1 Secure Enrollment

  1. Invitation with security code. The owner sends a time‑bounded invitation containing a secure invitation code (client-generated, random UUID). The account owner’s device registers the hash digest (SHA256) of the invitation code with the Foundation service. This ensures that the Foundation service can verify a secure invitation code when presented, but the code cannot be recovered or misused to enroll an unauthorized legacy member.

    Legacy invitations are sent out-of-band to Foundation service by a method of the account owner’s choice.

  2. Key Exchange & Confirmation. The legacy contact creates a Foundation account with MFA, and uploads a legacy member public key generated on their device.

    Both the owner and the legacy member client devices independently compute a safety code. This is hashed and encoded representation of the public keys for both accounts (vault public key and legacy public key). The owner and legacy member can verify these codes out-of-band to confirm that there has been no server-side tampering of the public key exchange.

    The account owner also sees security-relevant metadata for the legacy member: their reported name, account email address, geolocation (based on IP address), and type of device. The account owner can view these data and must confirm the legacy enrollment.

  3. Payload Encryption. Once confirmed, the owner’s mobile device encrypts the account owner’s vault secret key with the legacy member’s public key and stores the resulting ciphertext (legacy recovery payload) with the Foundation service.

4.2 Inactivity Monitoring

  • The owner defines an inactivity threshold (e.g., 6 months). The Foundation service tracks access to the account which will reset the inactivity timer.

  • The account owner can change the inactivity timer, revoke or change the legacy enrollment. And the legacy member can revoke the legacy membership as well.

  • When the inactivity period reaches the last month, Foundation contacts the account owner via all registered methods (push notification, email). Notifications continue each week. During the last week of an inactivity period, notifications increase in frequency (daily).

  • If the threshold elapses without a verified login, the service marks the legacy payload as eligible for release and the legacy member is notified (push notification, email).

4.3 Access Procedure

  1. Legacy Authentication. The legacy contact signs in with credentials and MFA from the registered device.

  2. Ciphertext Release. The Foundation service releases the legacy recovery payload to the legacy device—no server‑side re‑encryption occurs.

  3. Local Decryption. Using hardware‑based encryption, the legacy device recovers the account contents and converts them to their own account keys. The Foundation app continues to operate normally with the account contents now managed by the legacy member. The original account owner ciphertexts are purged.

4.4 Security Properties

  • Owner Control: Enrollment requires explicit owner confirmation and permits out‑of‑band safety‑code verification. The owner can modify or revoke legacy access any time before the account transfer.

  • Hardware‑bound: Legacy access uses the same hardware-bound device encryption and all encryption and decryption operations are performed on mobile devices.

  • Policy‑enforced: Foundation only releases ciphertext after the inactivity timer expires.

  • No Shortcuts: Encryption, authentication, and MFA requirements mirror standard account access; the legacy path introduces no weaker cryptographic or security assumptions.


5. Authentication and Access Policy

All account activity in Foundation begins with strong account authentication, this includes viewing account information, accessing secured records, adding or modifying information, or making account or legacy member changes. Because ciphertext is stored only on the Foundation service and not on client devices, successful authentication is a required first-step in every workflow. This also prevents access to account information if devices are lost, stolen, or compromised.

Account credentials and MFA

Account owners sign in with either an email + passphrase credential pair or a federated identity from Google or Apple. Foundation uses time-based one-time password (TOTP) MFA. SMS and e-mail 2FA are intentionally unsupported because they are commonly hijacked through SIM-swaps, phishing, or mailbox compromise.

Supported-Platform Policy

Foundation only operates on recent versions of mobile device operating systems (iOS and Android). Limiting the app to very recent versions means every device benefits from the latest vendor patches and runtime hardening and sharply reduces exposure to known jailbreak or rooting techniques. It also guarantees access to up-to-date Secure Enclave (iOS) and StrongBox (Android) features and the most recent cryptographic libraries, so all cryptography uses the strongest primitives offered by the platform.

Verifiable Session Tokens

Once credentials and MFA (or federated identity) are validated, Foundation returns a cryptographically-signed session token that proves the caller’s identity. All tokens include a fixed-length expiry and are presented with every subsequent API request; the service accepts a request only after verifying the signature, timestamp, and account status. Token expiry is critical and tokens are never refreshed automatically (no “forever session”), so Foundation requires periodic re-authentication, including MFA.

Transport Security

Communication between Foundation client and service is carried over the most recent TLS version ( currently TLS 1.3) with a restricted set of secure cipher suites, uses mutual TLS (using client certificates), and endpoints sit behind a zero-trust edge network designed to absorb volumetric DDoS attacks, enforces rate-limits and bot filtering, and screen out malformed or policy-violating packets, The result is encrypted, integrity-checked traffic, bound to an authenticated application, with upstream shielding that preserves availability under adversarial load.


6. Security Assurance

Foundation’s safeguards are verified through independent, point-in-time assessments:

  • External, independent penetration testing of the mobile applications (iOS and Android) and production infrastructure. All critical findings are remediated before application release.

  • SOC 2 Type I attestation by an accredited audit firm has confirmed that key security, availability, and confidentiality controls are in place and appropriately designed and issued a SOC 2 Type I report.

  • Independent cryptographic audit of all critical encryption and key-management code by a specialist consultancy. All findings are remediated before application release.

These third-party evaluations provide objective confirmation that the Foundation design and implementation meet the high standards outlined in this document.

Did this answer your question?