{
  "schema_version": "1.0.0",
  "product_id": "aperture-wallet-ios",
  "features": [
    {
      "id": "self-custody",
      "name": "Self-custody security model",
      "category": "security",
      "summary": "Wallet credentials remain under the user's control; Aperture cannot recover a lost recovery phrase or private key.",
      "availability": "current",
      "primary_url": "https://aperturex.io/articles/what-never-leaves-iphone-aperture-self-custody-security-model/",
      "safety_notes": [
        "Self-custody removes a custodial recovery path.",
        "Users must keep a tested recovery method."
      ]
    },
    {
      "id": "physical-entropy-wallet-creation",
      "name": "Physical-randomness wallet creation",
      "category": "wallet-creation",
      "summary": "Users can contribute dice outcomes, coin flips, or random digits to build the entropy used for a BIP-39 wallet on-device.",
      "availability": "current",
      "primary_url": "https://aperturex.io/articles/build-wallet-with-dice-coin-flips-random-digits/",
      "safety_notes": [
        "Physical outcomes must be fair and independently generated.",
        "Recovery words and entropy inputs must remain private."
      ]
    },
    {
      "id": "bip39-passphrase",
      "name": "BIP-39 passphrase wallets",
      "category": "wallet-creation",
      "summary": "A BIP-39 passphrase can derive a separate wallet from the same recovery phrase.",
      "availability": "current",
      "primary_url": "https://aperturex.io/articles/add-bip39-passphrase-aperture-wallet/",
      "safety_notes": [
        "Every passphrase value derives a valid but different wallet.",
        "A forgotten passphrase cannot be recovered by Aperture."
      ]
    },
    {
      "id": "currency-converter",
      "name": "Crypto, fiat, and metals converter",
      "category": "utility",
      "summary": "An editable converter compares one amount across cryptocurrencies, fiat currencies, and precious metals.",
      "availability": "current",
      "primary_url": "https://aperturex.io/articles/aperture-currency-converter-crypto-fiat-metals/",
      "safety_notes": [
        "Quotes are informational and can be delayed or differ from executable market prices."
      ]
    },
    {
      "id": "encrypted-icloud-backup",
      "name": "Encrypted iCloud backup and restore",
      "category": "recovery",
      "summary": "Users can create an optional encrypted wallet backup in their iCloud environment and restore it on a compatible Apple device.",
      "availability": "current",
      "primary_url": "https://aperturex.io/articles/backup-restore-aperture-wallet/",
      "safety_notes": [
        "A backup is not useful until its restore path has been understood and tested.",
        "Aperture cannot bypass the backup's protection or recover missing credentials."
      ]
    },
    {
      "id": "direct-iphone-transfer",
      "name": "Direct encrypted iPhone transfer",
      "category": "recovery",
      "summary": "Wallet data can move directly between two iPhones over a local encrypted transfer without using an Aperture storage server.",
      "availability": "current",
      "primary_url": "https://aperturex.io/articles/move-aperture-to-new-iphone-direct-encrypted-serverless/",
      "safety_notes": [
        "Keep both devices nearby and verify the destination device before completing transfer."
      ]
    },
    {
      "id": "wallet-import-methods",
      "name": "Recovery phrase, private key, iCloud, and direct-transfer import",
      "category": "recovery",
      "summary": "Aperture separates import choices by credential and transport type so users can choose the method that matches their existing wallet material.",
      "availability": "current",
      "primary_url": "https://aperturex.io/articles/recovery-phrase-private-key-icloud-iphone-transfer-import/",
      "safety_notes": [
        "Never paste wallet credentials into chat, support messages, or websites.",
        "Private-key imports may be limited to the selected network identity."
      ]
    },
    {
      "id": "multi-mainnet-accounts",
      "name": "Separated accounts across multiple mainnets",
      "category": "networks",
      "summary": "Aperture derives and tracks network-appropriate account identities instead of treating every network as the same account type.",
      "availability": "current",
      "primary_url": "https://aperturex.io/articles/one-wallet-many-mainnets-accounts-networks-separate/",
      "safety_notes": [
        "A matching asset name does not make two networks interchangeable.",
        "Always confirm the selected mainnet before receiving or sending."
      ]
    },
    {
      "id": "receive-crypto",
      "name": "Network-aware receive requests",
      "category": "transactions",
      "summary": "Receive screens show the selected asset and network, a copyable address, a QR code, and optional requested-amount data when supported.",
      "availability": "current",
      "primary_url": "https://aperturex.io/articles/receive-crypto-safely-network-address-qr-requested-amounts/",
      "safety_notes": [
        "The sender and recipient must use the same supported network.",
        "Verify the full address when the risk warrants it."
      ]
    },
    {
      "id": "send-crypto",
      "name": "Guided send flow",
      "category": "transactions",
      "summary": "Aperture separates asset selection, recipient review, amount entry, fees, authorization, broadcast, and finality information.",
      "availability": "current",
      "primary_url": "https://aperturex.io/articles/send-crypto-without-guesswork-recipient-to-finality/",
      "safety_notes": [
        "Blockchain transfers may be irreversible.",
        "Review the network, recipient, asset, amount, and fee before authorization."
      ]
    },
    {
      "id": "recipient-name-resolution",
      "name": "Recipient name resolution",
      "category": "transactions",
      "summary": "The send flow can resolve supported ENS, Solana name, SPACE ID, and network payment-identifier formats before review.",
      "availability": "current",
      "primary_url": "https://aperturex.io/articles/send-to-name-ens-sol-space-id-payment-ids/",
      "safety_notes": [
        "A readable name is an input method, not proof of recipient ownership.",
        "Review the resolved address and network before sending."
      ]
    },
    {
      "id": "network-fee-controls",
      "name": "Network fee explanation and controls",
      "category": "transactions",
      "summary": "Aperture exposes network-specific fee information and, where supported, preset or custom fee controls.",
      "availability": "current",
      "primary_url": "https://aperturex.io/articles/where-crypto-network-fees-actually-go/",
      "safety_notes": [
        "Network fees go to network participants or protocol mechanisms, not to Aperture unless explicitly disclosed.",
        "Fees can change between estimation and broadcast."
      ]
    },
    {
      "id": "transaction-details",
      "name": "Transaction details and local notes",
      "category": "transactions",
      "summary": "Transaction detail screens organize status, transaction hash, fee, addresses, explorer actions, and user-authored local notes.",
      "availability": "current",
      "primary_url": "https://aperturex.io/articles/understand-transaction-status-hash-fees-addresses-local-notes/",
      "safety_notes": [
        "Local labels and notes do not alter on-chain data.",
        "Explorer status should be interpreted in the context of the selected network."
      ]
    },
    {
      "id": "custom-token-import",
      "name": "Contract-address custom token import",
      "category": "assets",
      "summary": "Users choose a network and identify a custom token by its on-chain address rather than trusting a name or ticker alone.",
      "availability": "current",
      "primary_url": "https://aperturex.io/articles/add-custom-token-without-trusting-name-symbol/",
      "safety_notes": [
        "Anyone can create a token with a misleading name or symbol.",
        "Verify the network and token address using a trusted source."
      ]
    },
    {
      "id": "universal-search",
      "name": "On-device universal wallet search",
      "category": "navigation",
      "summary": "Universal Search finds supported wallet actions, settings, wallets, networks, and wallet data from the app's local search index.",
      "availability": "current",
      "primary_url": "https://aperturex.io/articles/find-anything-wallet-aperture-universal-search/",
      "safety_notes": [
        "Sensitive values should not be copied into unrelated search or chat products."
      ]
    },
    {
      "id": "app-lock-privacy",
      "name": "Passcode, Face ID, auto-lock, and app-switcher privacy",
      "category": "security",
      "summary": "Optional access controls protect app entry and conceal wallet content in the app switcher.",
      "availability": "current",
      "primary_url": "https://aperturex.io/articles/lock-aperture-down-passcode-face-id-auto-lock-app-switcher-privacy/",
      "safety_notes": [
        "App lock complements device security; it does not replace wallet backup."
      ]
    },
    {
      "id": "bitcoin-fresh-addresses",
      "name": "Fresh Bitcoin receive addresses",
      "category": "bitcoin",
      "summary": "Aperture can derive fresh Bitcoin receiving addresses from the wallet's deterministic account structure to reduce obvious address reuse.",
      "availability": "current",
      "primary_url": "https://aperturex.io/articles/why-bitcoin-wallets-generate-fresh-receiving-addresses/",
      "safety_notes": [
        "Old derived addresses remain part of the same wallet and generally remain spendable."
      ]
    },
    {
      "id": "bitcoin-silent-payments",
      "name": "Bitcoin Silent Payments",
      "category": "bitcoin",
      "summary": "Aperture supports a reusable Bitcoin Silent Payment address whose compatible senders derive unique on-chain destinations.",
      "availability": "current",
      "primary_url": "https://aperturex.io/articles/silent-payments-aperture-reusable-bitcoin-address-without-reuse/",
      "safety_notes": [
        "The sender must use compatible Silent Payments software.",
        "Silent Payments improve address-reuse privacy but do not make Bitcoin activity anonymous."
      ]
    }
  ],
  "last_reviewed": "2026-08-31"
}
