millefold
FEATURESPRICINGABOUTDONATELOGIN
// IMPORTS

CSV in. Ledger out.

Drop a native export from any of these brokers onto the import field — the parser detects the format and lands every trade, dividend, deposit, and fee as a ledger row. No Plaid. No bank passwords. Your credentials never touch our servers because we never ask for them.

8 BROKERS
+ GENERIC CSV
SUPPORTED BROKERS
AUTO-DETECT ON FILE DROP · MORE COMING IN BETA-2
TR
Trading 212
EU
shares + cash
RE
Revolut
EU
stocks + crypto
TR
Trade Republic
EU
shares + ETFs
DE
DEGIRO
EU
EN / NL / DE / FR / IT / ES
IB
IBKR
GLOBAL
Activity Statement
RO
Robinhood
US
shares + options
CO
Coinbase
GLOBAL
crypto
BI
Binance
GLOBAL
crypto
+
Generic CSV
column-mapper UI
NO PLAID

Most US-built portfolio trackers use Plaid to read your accounts. Plaid asks for your online banking password. We don't.

NO BANK PASSWORDS

Your broker credentials never touch our servers because we never ask for them. We can't be phished into giving up what we don't store.

NO SCREEN-SCRAPING

We don't open headless browsers against your broker. No "connector down" outages, no terms-of-service exposure. CSV in, ledger out.

HOW IT WORKS
3 STEPS · ~20 SECONDS
01
Export from your broker
Account → History → Export CSV. Most brokers expose this in 2-3 clicks.
02
The parser detects which broker it came from. No format selection needed.
03
Review the ledger
Every trade, dividend, deposit, and fee shows up at /dashboard/events grouped by type. Positions reconstruct from the ledger.
DETECTION RULES
FOR THE CURIOUS
BROKERHEURISTIC
Trading 212auto-detect on "Action,Time,ISIN" header
Revolutauto-detect on "Date,Ticker,Type,Quantity"
Trade Republicauto-detect on "Datum;Typ;ISIN" (DE locale)
DEGIROauto-detect on "Date,Time,Product,ISIN" + locale variants
IBKRauto-detect on "Statement,Header,..." multi-section
Robinhoodauto-detect on "Activity Date,Process Date" header
Coinbaseauto-detect on the Coinbase preamble line
Binanceauto-detect on Binance "UTC_Time,Account,Operation" header

CSV uploads are parsed on the Cloudflare Worker server-side, then thrown away — never stored on disk. The resulting ledger rows are encrypted at rest using a per-user data key. Even an operator with database access can't read your trades in plaintext. How that works →

> SIGN_INREAD THE DOCS