Watchtower

Security

How we keep bank connections and personal information safe.

You connect through a bank aggregator. We encrypt that connection, keep the wrap key out of the database, and keep names and emails off your money records.

We never take your bank password

When you connect an account, you sign in through a bank aggregator. We use Plaid. Many banks send you to their own login page. Watchtower does not see that password and does not store it. Plaid confirms it is you. We use the connection afterward to show balances and transactions.

The bank connection is encrypted

After you connect, Plaid gives our servers a token so we can refresh your accounts. That token is encrypted before it is saved. The wrapping key is not stored in the same database. In production that wrap is Google Cloud KMS: the application can encrypt and decrypt, and it cannot export the key. The token never goes to your browser. It is not written to logs. A stolen copy of the database would not contain a usable bank connection.

Names and emails stay off the money records

We keep an email so you can sign in and invite someone to a household. We do not copy names, emails, or phone numbers onto transactions, budgets, or account rows. We do not sell your financial data. We do not offer support tools for looking up your financial data.

Your household stays yours

Watchtower is a private household product, not a social feed. The server only serves financial data for the household you belong to. Hiding a page in the app is not how that is enforced.

We store what we need for budgeting

Connected accounts, balances, transactions (including the original bank line), categories, and budgets. We do not keep extra raw exports just in case. If language models help with wording, we avoid sending unnecessary raw financial detail.

Where financial data lives

Production runs on Google Cloud and Vercel.

The site and signed-in app are hosted on Vercel. The API and database are hosted on Google Cloud. We chose that split so the database can stay off the public internet, and so wrapping keys are used rather than copied into an environment variable.

Private database
Production Postgres lives on Cloud SQL with no public IP. The API reaches it on a private network.
Keys stay in KMS
Bank-connection wrap uses Cloud KMS. Secrets the app needs (sign-in, Plaid, mail) sit in Secret Manager, not next to your financial data.
Split hosts
Vercel serves the marketing site and signed-in app. Cloud Run serves the API. The API does not run on the same host as the pages you browse.

Watchtower is operated by Watchtower Money, LLC. Legal terms are in our Terms and Privacy policy. Security questions: security@watchtower.money.