Legal

Security & data handling

Specifics rather than adjectives. Everything below is a description of what the system does today, including the parts that are not finished.

Version 1.1 · Effective 30 September 2026 · Node Integration Pty Ltd (ABN 37 162 496 979) trading as Grubless

What Grubless can do with your accounts

It reads. It cannot move anything. Grubless never asks for a private key, a seed phrase or a withdrawal permission, and no part of the product would accept one. Wallets are tracked by public address, which grants no ability to spend.

Exchange connections use API keys you create and scope yourself. Read-only is all we need. Nothing in Grubless can place a trade or make a withdrawal, whatever permissions a key happens to carry.

Wise connects with a read-only API token you create on wise.com. It reads your profiles, balances and statements and cannot send money.

Up is the exception, because Up offers no read-only token: its personal access token can also recategorise and tag your transactions and set up webhooks that send new transactions to a web address. It cannot move money. Grubless only ever reads with it, stores it encrypted, and never sends it back; you can revoke it in the Up app under Data sharing at any time.

How credentials are stored

Keeping accounts apart

Every request is scoped to the requesting account at the database query, not by filtering results afterwards. That boundary is covered by a dedicated integration suite that runs against a real database. The honest reason it exists: an audit of every route found three cross-tenant defects, which we fixed.

Within an account, entity access is role-based: owner, preparer or viewer.

What we can see

There is an operator console for support and billing. Four things constrain it, and they are deliberate:

Where it runs

Australia — Fly.io's Sydney region — for the application, the database, the job queue and the backups. Backups are taken daily and retained on a rolling basis.

The full list of third parties that receive data, and what reaches each, is in the privacy policy.

Signing in

A password is the weakest credential on the account, and everything here exists because of it. All of it is optional and all of it is free.

What we have not finished

A security page that lists only strengths is not informative. As of 22 September 2026:

These are on the roadmap rather than accepted permanently, and this list will change as they land.

Reporting a vulnerability

If you have found a security problem, email security@grubless.io. Include enough detail to reproduce it. We will acknowledge within 3 business days and tell you what we intend to do.

Our undertaking: we will not pursue legal action against anyone acting in good faith under this policy, we will keep you informed while we fix it, and we will credit you if you would like us to. There is no paid bounty programme — we would rather promise something we can honour.

What we ask: report privately and give us a reasonable chance to fix it before publishing; use only your own accounts and test data; do not access, modify or destroy another customer's data; and stop at proof of concept rather than extracting records to demonstrate impact.

A machine-readable version of this is at /.well-known/security.txt.

If we have an incident

We assess any suspected breach against the Notifiable Data Breaches scheme (Part IIIC, Privacy Act 1988) within 30 days. Where a breach is likely to result in serious harm, we notify affected customers and the Office of the Australian Information Commissioner as soon as practicable.

Notification goes to the email address on your account. We will say what happened, what data was involved, what we have done, and what you should do — in that order, and without waiting until we have a complete picture if waiting would leave you exposed.