A modern web browser (Chrome, Firefox, Safari, or Edge)
An Excel or CSV file from your bank (optional, but recommended)
A secure password or OAuth account (Google/GitHub)
Home Account uses end-to-end encryption, which means your password is the key to your financial data. Choose a strong password and set up recovery mechanisms immediately.
Option 2: OAuth (Google or GitHub)Click “Continue with Google” or “Continue with GitHub”. After OAuth authentication, you’ll be redirected to set up a PIN for encryption.
After registration, check your email for a verification link. You must verify your email before logging in.
2
Set up encryption (first login)
On your first login, your browser will derive encryption keys from your password:
import { argon2id } from '@noble/hashes/argon2'// Derive User Key from password (happens automatically in browser)const userKey = argon2id( password, keySalt, { t: 3, m: 65536, p: 4, dkLen: 32 })// Decrypt Account Key with User Keyconst accountKey = await decryptAccountKey( encryptedAccountKey, userKey)
This process happens automatically in your browser. The server never sees your decrypted keys.
If you used OAuth: You’ll be prompted to create a 6-8 digit PIN. This PIN replaces your password for encryption purposes. Learn more in the OAuth + PIN guide.
3
Set up recovery phrase (critical!)
Immediately after login, you’ll be redirected to set up a BIP39 recovery phrase:
Click “Set up recovery” in the dashboard warning banner
Write down the 24-word recovery phrase on paper
Store it securely (safe deposit box, password manager, etc.)
Confirm the phrase by entering specific words
Without your recovery phrase, losing your password means permanent data loss. The server cannot decrypt your data without your keys.
The recovery phrase encrypts a copy of your Account Key and stores it in the database. If you forget your password, you can use these 24 words to regain access.See the Password Recovery guide for more details.
4
Create your first financial account
Home Account separates “user accounts” (your login) from “financial accounts” (your bank accounts, wallets, etc.). Create your first financial account:
Click “Create Account” in the sidebar
Enter a name (e.g., “Personal Checking”, “Household Budget”)
Click “Create”
You can create up to 3 financial accounts. Each account has its own encryption key and can be shared with family members via invitations.
Accounts are created with default categories automatically:
ALIMENTACION (Food)
TRANSPORTE (Transport)
RESTAURANTES (Dining)
SALUD (Health)
HOGAR (Home)
OCIO (Leisure)
VEHICULO (Vehicle)
ROPA (Clothing)
INGRESOS (Income)
TRANSFERENCIAS (Transfers)
OTROS (Other)
5
Import transactions from Excel (recommended)
The fastest way to get started is to import transactions from your bank:
Export transactions from your bank as Excel or CSV
Click “Import” in the sidebar
Upload your file
Preview the transactions and AI-suggested categories
Review and edit category mappings
Click “Confirm” to import
Supported formats:
Generic Excel (.xlsx, .xls)
CSV with headers (date, description, amount)
Specialized formats: “Control de Gastos”, “Movimientos CC”, “Revolut”
AI-powered categorization:The system automatically suggests categories based on transaction descriptions:
Budget spending is calculated client-side from decrypted transactions. The server only stores budget limits, not actual spending.
8
Explore investment features (optional)
Home Account includes an AI-powered investment module:
Navigate to “Investments” in the sidebar
Complete the 7-step risk profile questionnaire:
Age and income
Job stability
Emergency fund status
Investment time horizon
Risk reaction scenarios
Investment experience
View personalized recommendations based on your profile
Chat with the AI investment assistant for questions
View real-time market data (BTC, ETH, EUR/USD, S&P 500, MSCI)
Investment chats and risk profiles are NOT end-to-end encrypted yet. They’re visible to the AI provider and stored in plain text.
9
Understand the unlock flow
After your first session, if you refresh the page or return later, you’ll need to “unlock” your data:For password users:
You’re redirected to /unlock
Enter your password
Browser derives User Key from password
Account Keys are decrypted
Dashboard loads with decrypted data
For OAuth + PIN users:
You’re already authenticated (cookies persist)
You’re redirected to /unlock
Enter your PIN
Browser derives User Key from PIN
Account Keys are decrypted
Dashboard loads with decrypted data
Your session (JWT cookies) persists, but encryption keys are cleared on page refresh for security. The unlock flow re-derives your keys without re-authenticating.
Unfortunately, without a recovery phrase, your data is permanently lost. The end-to-end encryption model means the server cannot decrypt your data without your password.Prevention: Always set up your recovery phrase immediately after registration.
Import fails with 'Invalid file format'
The file parser supports Excel (.xlsx, .xls) and CSV formats. Ensure your file has these columns:
Date (YYYY-MM-DD or DD/MM/YYYY)
Description or Concept
Amount (decimal with . or , separator)
If your bank uses a custom format, contact support to add it to the parser.
Transactions show as encrypted in the API response
This is expected! Transactions are stored encrypted. Your browser automatically decrypts them using your Account Key when displaying them. If you’re using the API directly, you’ll need to implement the decryption logic yourself.
'CSRF token mismatch' error
CSRF tokens are tied to your session. If you see this error:
Log out and log back in
Clear your browser cookies
Try the operation again
This usually happens if your session expired while the page was open.