Local-first. Zero servers.
VaultMemo does not operate any proprietary servers. Your memo content is never transmitted to any server or recorded on the blockchain. Only a cryptographic hash fingerprint and transaction metadata are recorded on-chain.
Data Collection
VaultMemo collects no personal information. No account or registration is required.
Local Data Storage
The following data is stored locally on your device only and never transmitted to any server:
- Wallet info: Your public key (wallet address), MWA auth token, and wallet URI base for reconnecting without re-authorization.
- Encryption key: Never stored. The AES-256 session key is derived from a Seed Vault hardware signature on every unlock and exists only in memory during an active session. It is cleared from memory when the app enters the background.
- Vault initialized flag: A simple boolean stored in AsyncStorage (
@vm_initialized) to indicate that first-time vault setup is complete. Contains no sensitive data.
- Transaction metadata: TxID, payment amount, and timestamp are embedded inside each
.vam file. Never transmitted to any server.
- Encrypted memo files (.vam): Stored in the user-selected SAF folder. Persists across app reinstalls.
- Theme & language preference: Stored locally in AsyncStorage.
In-App File Management
VaultMemo includes an in-app file list that reads encrypted .vam files from the user-selected SAF folder. All file operations are performed locally on-device only.
- File list: Reads file metadata (name, size, modification date) only. No file contents are read unless the user initiates decryption.
- Hide from list: Removes a file from the in-app list view without deleting the file from storage. The hidden file URI is stored in AsyncStorage and excluded from list display.
- Permanent delete: Permanently deletes the
.vam file from the SAF folder. This action is irreversible.
- Rename: File names are changed within the SAF folder. No external services are contacted.
On-Chain Integrity Verification
When you tap "Verify On-Chain" on a decrypted file, VaultMemo:
- Sends a request to a Solana RPC endpoint to fetch the transaction by its TxID. Only the TxID is transmitted — no memo content or private data.
- Uses a two-endpoint fallback chain:
rpc.ankr.com/solana (primary), api.mainnet-beta.solana.com (secondary).
- Parses the transaction's log messages to extract the stored hash prefix and compares it with a locally computed SHA-256 hash.
Encryption Certificate
VaultMemo allows users to generate a shareable encryption certificate image. The certificate is generated entirely on-device and contains only:
- File name (as displayed in the app)
- Wallet address (truncated: first 6 and last 6 characters)
- Transaction ID (truncated)
- Encryption tier, algorithm, file size, save timestamp, and TX confirmation time (Solana block time)
Sharing is performed through the Android system share sheet. No certificate data is transmitted to VaultMemo servers (none exist).
File Storage (On-Device)
Upon user action, VaultMemo writes encrypted .vam files to the user-selected SAF folder (chosen once via the Android system folder picker). SAF permissions persist across app reinstalls, so files remain accessible without re-granting permission.
Each file contains the AES-256-GCM encrypted memo (base64), the Solana TxID, and a timestamp. Memo content is never readable without the correct encryption key.
Blockchain Data (Public)
When you save a memo, VaultMemo submits a Solana transaction containing:
- A partial hash: the first 16 hex characters of the SHA-256 hash of your encrypted data, plus a Unix timestamp (SPL Memo instruction).
- A token transfer from your wallet to the developer's wallet (usage fee — see pricing tiers in the EULA).
- A Solana Pay reference key (randomly generated) for transaction tracking.
Your wallet address and the above data are visible on the public Solana blockchain. Your memo content is never included in or derivable from the on-chain record.
Hardware Security (Seed Vault)
VaultMemo uses the Solana Mobile Seed Vault as the hardware security element for session authentication. Signing is performed entirely within the Seed Vault chip — the app never receives private keys or raw biometric data. Because the encryption key is derived from the Seed Vault signature, it is hardware-bound and cannot be extracted from the device.
Wallet Security
VaultMemo does not access your private keys or seed phrase. All signing is handled exclusively via the Solana Mobile Seed Vault (built-in on Saga/Seeker devices) through the Mobile Wallet Adapter (MWA) protocol.
Third-Party Services
VaultMemo does not integrate advertising or analytics services. It communicates with the following external services only:
Solana RPC
primaryrpc.ankr.com/solana
fallbackapi.mainnet-beta.solana.com
Transaction submission, balance queries, and on-chain verification. Only your public wallet address and TxID are included.
Jupiter Price API
api.jup.ag — Real-time SKR/SOL price for fee calculation. No personal data is transmitted.
CoinGecko API
api.coingecko.com — Fallback price source. No personal data is transmitted.
Firebase Remote Config (Google)
Used to deliver app announcements and dynamic pricing configuration. Firebase Remote Config may collect a Firebase Installation ID and basic device/app metadata (OS version, app version) as part of its standard operation. No memo content or wallet private keys are transmitted.
firebase.google.com/support/privacy ·
Google Privacy Policy
Solscan
solscan.io — Opened in your browser when you tap a TxID. No data is sent by the app itself.
Children's Privacy
VaultMemo does not knowingly collect any data from anyone, including children under 13.
Changes to This Policy
If this policy is updated, the new version will be published at this URL with a revised date.