Crypto budgeting app
A crypto budgeting app that puts crypto in the budget, not next to it.
A crypto budgeting app is one that puts exchange trades, wallet transfers and stablecoin income into your budget as categorised transactions, next to rent and groceries, rather than showing a coin balance on a separate screen. On the evidence of their own help pages, Orla is the one doing that today, and the comparison page has the receipts. Nearly every budgeting app now says it supports crypto. Almost all of them mean the same thing: a balance on the net worth screen that goes up and down and never lands in a category. That's a price ticker with a login. This page is about the other thing, the one that's actually hard: getting a trade, a transfer and a stablecoin invoice to behave like transactions.
What "supports crypto" turns out to mean
You don't have to take our word for any of this. It's in their own documentation, checked on 27 July 2026.
- Lunch Money
- Copilot Money
- Surplus Budget
- Monarch Money
- YNAB
Lunch Money
Lunch Money is the closest thing to a real competitor here, and it got to this idea years before we did. Its marketing says it was first to merge crypto tracking with budgeting, and that's fair. But its own help page is blunt about the limit: automatic syncing covers Coinbase, Ethereum and Kraken, and "crypto wallet transactions are not currently supported in Lunch Money. You may only track the balance of crypto assets at this time" (support.lunchmoney.app/setup/crypto). Everything else is manual entry across 300 plus coins. It's an excellent app run by a small independent team, it's cheaper than the venture-funded ones, and if balances plus a clean budget is what you need, look at it seriously before you look at us.
Copilot Money
Copilot Money lists Binance.US, Bitstamp, Coinbase, Gemini and Kraken on iOS, fewer on web, plus Bitcoin and Ethereum addresses and an xPub for Ledger and Trezor. The help page describes tracking holdings and their near real-time value. Transactions and spending categories aren't part of it (help.copilot.money/en/articles/6162313). Beautiful app. The crypto is a watch layer.
Surplus Budget
Surplus Budget puts crypto next to property and brokerage accounts. Its FAQ describes adding a coin by typing the symbol, the quantity and optionally a wallet address (surplus-budget.com/faq). Prices update. Holdings are tracked. Nothing becomes a transaction.
Monarch Money
Monarch Money connects Coinbase directly and lists other exchanges and wallets as planned (monarch.com/blog/coinbase-organizing-accounts-rules; thecollegeinvestor.com/35342/monarch-review, checked 26.07.2026). Its budgeting is genuinely good, better than ours in places: goal planning is more mature and the household features have had years of polish. But whatever sits on Kraken is a number you type in.
YNAB
YNAB is the most honest of the lot. Crypto goes in as a tracking account, and a tracking account by definition stays out of spending and income reports (support.ynab.com, "Tracking Investment Accounts in YNAB").
So the field splits in a way nobody advertises
Almost every app shows a crypto balance. Almost none turn crypto activity into transactions with categories, and that's the part that decides whether your budget is complete or decorative.
One question that sorts the whole category
Ask any budgeting app this: when I sell 0.25 ETH on Binance, what appears in my monthly report? If the answer is "your net worth changes", the crypto is a ticker. If the answer is "nothing, that's an investment account", the crypto is furniture. The answer you want is boring and specific. A trade is not income, so it shouldn't inflate your month. A withdrawal to your own wallet is not spending, so it shouldn't leave a 600 dollar hole in your cashflow. A client paying you 900 USDT is income, and it belongs in the same income line as your salary when you close the month. The fee is an expense, it's small, and it still belongs somewhere. Four behaviours, four answers. An app that treats all four as "balance changed" gives you a budget that's wrong in four directions at once.
The three doors, and why they behave differently
People assume one connection type does everything. It doesn't, and the differences are the interesting part. Longer version on Accounts and sync.
A bank
A bank connects through open banking, which is a legal framework before it's a technology. You approve it inside the bank's own hosted window. Orla receives balances and transactions and nothing else: no password, and no ability to start a payment. Remove the connection and access is withdrawn at the provider, not just hidden here. Some US banks, Chase and Bank of America among them, do the sign-in on their own site and hand you back.
An exchange
An exchange connects with a read-only API key you create yourself: Binance, Bybit, OKX, Kraken, Coinbase. OKX also wants its passphrase. Coinbase uses a CDP key name and private key, which is fiddly and always has been. The key is verified with the exchange before it's saved, so a dead key never gets stored, and on Binance, Bybit and OKX a key carrying trade or withdrawal rights is refused outright. Kraken and Coinbase don't expose those rights to us, so there we ask you to create the key read-only yourself. That distinction matters and most write-ups skip it, so we repeat it every time. Balances in the top 25 coins refresh hourly. Trade history imports too, from 1 January of the previous year: spot trades, deposits and withdrawals arrive as transactions on those accounts. That's the whole point of the exercise.
- Binance
- Bybit
- OKX
- Kraken
- Coinbase
A wallet
A wallet connects by address on BTC, EVM chains and TRON. Nothing to authorise, nothing to revoke. If you want to send from Orla, import or create the wallet instead: the twelve words are shown once and encrypted in your browser, and only the public address reaches a server. EVM and Tron addresses can be verified by signing a short challenge, which puts a green badge on the account. BTC can't be verified yet. That's a real gap and we'd rather write it here than have you find it on a Tuesday.
- BTC
- EVM chains
- TRON
How current is "current", and what happens when it breaks
Exchange balances refresh every hour, with a manual sync button per connection for the impatient. Bank balances refresh from the provider. Watch-only wallets update on a schedule. When something breaks it says so instead of showing a stale number. An exchange key the exchange keeps rejecting gets marked "needs new key", the sync pauses, a notification lands in your bell inbox, and "Update key" swaps in a fresh one without losing the connection or its accounts. A bank link that wants a re-login gets a "needs re-linking" badge and a Reconnect button. There's also a daily automation whose entire job is to notice that a sync has been silent for over a day. Stale financial data is worse than missing financial data. That's the whole design principle behind those two paragraphs.
Then the boring part, which is the point
Connections are the demo. Categories are the product. A ledger full of "Binance", "0x4a2f9c", "TRANSFER 8841" is not a budget, it's a log. So the filing happens in layers. Your own rules, which are literally "payee contains X, category Y". A merchant dictionary for the chains and shops everyone has. Similar-payee matching against your own history. And a repeating series check for rows whose text tells you nothing: same amount, same account, weekly, monthly or yearly, with at least two earlier occurrences already categorised. Those rows get a small repeat badge so you know why they were filed that way, and correcting one offers to write an exclusion. Text always beats the rhythm signal when both have an opinion. There's an AI pass as well, and you review it before anything is applied. It's useful. It isn't magic, and we don't put it on posters.
Once rows carry categories the rest works
Limits by week, month, quarter or year, a warning threshold you set, a line telling you the day of the month you're on pace to cross the limit, and unused budget rolling into next month instead of evaporating. Everyday tracking goes through it properly.
When your bank or exchange isn't on the list
This happens, particularly outside the EU and the US, and it's the honest weak spot of every app in this category including ours. Only five exchanges connect directly. Only three chain families sync. Two fallbacks.
CSV import
CSV import, where the file's encoding (UTF-8, Windows-1251, Windows-1252, Windows-1255), the separator, the decimal style and the date format are detected and prefilled, and every guess can be overridden. Banks that split amounts into separate debit and credit columns, common in Israeli and German exports, are handled: map the debit column as the amount and pick the credit column in the field for it. If the day and month order can't be told apart, the page stops and asks instead of guessing.
Or a PDF, or a photo
Upload a PDF or a picture of a statement in any language, including right to left, and it's read into rows you preview before importing. It detects the statement currency and preselects a matching account. Lines it couldn't parse are counted and shown above the preview rather than dropped silently. Very long statements can exceed what the reader handles, and then you split the file. Statement scans are metered per calendar month by the plan of whoever owns the space, with the remaining count shown next to the button. CSV imports and receipt scans aren't metered.
What Orla is not, so you don't waste a Saturday
We're not a portfolio tool. No charts of your coins, no P&L dashboard, no signals. If you want to look at positions all day, a tracker will make you happier. We don't cover DeFi: LP tokens, farming, staking derivatives, lending positions across five protocols. Aave lending has a page in the app, but the general answer is no. No brokerage accounts, no property, no vehicles. Kubera and Empower do that side and we don't.
Live bank and exchange sync sits on the paid plans
On Free you get a real ledger, manual accounts and CSV imports, and the Banks and Exchanges tabs show what a paid plan would connect. We think that's the honest place to draw the line, but it does mean the free tier isn't the thing this page describes. Prices are on the pricing page and come from the live plan catalogue, so there are no numbers quoted here.
There's no App Store or Google Play app
Orla installs from the browser: "Install app" on Android and desktop Chrome, Share then "Add to Home Screen" on iPhone. Some people hate that. Worth knowing before you sign up.
Who this is actually for
The person this was built for earns and spends mostly in fiat, keeps a meaningful chunk of savings on an exchange and in a wallet, and sometimes gets paid in stablecoins. Freelancers. People who moved countries. Anyone with a Kraken balance they've been retyping into a spreadsheet on the last Sunday of the month for two years. If your money is entirely in one bank in one country, Monarch and YNAB are mature and excellent and you don't need us. If your money is entirely on chain and you never touch a bank account, a tracker plus Koinly is a better pair than we are. We're for the middle, which turns out to be a lot of people.
One month, with the arithmetic showing
Notice what the ETH trade did to the month. Nothing. It moved 0.25 ETH into USDT at whatever the price was, and the only money that left was the 1.80 fee, which folds into the cost basis instead of becoming a random expense line. Notice the 600 too. It appears twice, leaving the exchange and arriving in the wallet, and it nets to zero. Orla pairs those legs by their on-chain hash and keeps them out of cashflow, so your savings rate for the month isn't fiction. The 900 from the client is income. It lands in an income category, and at year end it lands in an income line in the tax center as well.
With the arithmetic showing
A made-up month for one person. Base currency USD. Salary at a bank, part of the savings on Binance, a MetaMask wallet and a TRON address for stablecoins. Every figure is illustrative. The sums are real, so add them yourself.
+3,050.50
Bank +2,335.70. Exchange +297.20. Wallet +417.60. They add up to +3,050.50, which is also 5,100.00 of income minus 2,044.30 of spending minus 5.20 in fees.
- Category
- Budgeting app
- Banks
- Open banking: EU, UK, US and other regions, read-only
- Exchanges
- Binance, Bybit, OKX, Kraken, Coinbase (read-only key)
- Key rights
- Verified before saving. Trade and withdrawal keys refused on Binance, Bybit, OKX
- Exchange refresh
- Balances hourly, plus a manual sync per connection
- Trade history
- Spot trades, deposits, withdrawals, from 1 January of the previous year
- Chains
- BTC, EVM chains, TRON (TRX, USDT-TRC20)
- Wallet modes
- Watch only, imported, or created in the browser
- Address verification
- EVM and Tron by signature. BTC not yet
- Failure states
- "Needs new key", "needs re-linking", daily silent-sync alert
- Categorisation
- Rules, merchant dictionary, similar payee, repeating series, reviewed AI pass
- Budgets
- Per category, weekly to yearly, pace warning, rollover
- Transfers
- Two legs matched by on-chain hash, kept out of cashflow
- Year end
- FIFO capital gains by lot, short and long term split, base currency
- Import
- CSV in any encoding, statement photo or PDF in any language including RTL
- Languages
- English, Spanish, Portuguese, Russian
- Apps
- Installs from the browser. No App Store or Google Play listing
Which budgeting apps actually support crypto transactions?
Going by each app's own documentation on 28 July 2026, Lunch Money, Copilot, Monarch, YNAB and Surplus all stop at balances, and CoinStats is a portfolio tracker with no budget at all. Orla files the activity as transactions. The compared page quotes each source and dates it.
Does crypto really enter the budget, or just net worth?
The budget. Exchange trades, deposits and withdrawals become transactions on their accounts, wallet activity does too, and they carry categories, count against limits and appear in the monthly report the way a card payment does.
Can Orla trade or withdraw anything?
No, and it's built so it can't. Bank connections are read-only open banking. Exchange connections take a read-only API key, and on Binance, Bybit and OKX a key with trade or withdrawal rights is refused when you add it. On Kraken and Coinbase we can't read the rights, so you create the key read-only yourself. More at Trust and control, and on the security page.
My exchange isn't one of the five.
Then it's CSV, or the statement as a PDF or a photo. That's worse than a connection and we won't pretend otherwise.
I have four years of history on Binance. Can I bring it?
Automatic import starts at 1 January of the previous year. Anything older comes in by CSV or a PDF statement.
What about my seed phrase?
Generated or imported in your browser and encrypted there. The server only ever stores the public address. If you lose the password to it, we can't recover it, which is the actual trade-off of holding your own keys.
A token I own is missing from a synced wallet.
Probably spam filtering, which drops airdropped junk with fake tickers and absurd balances, or the token sits outside the chain's canonical set. A junk token you can see on a block explorer is sometimes missing here on purpose.
Can I connect a bank on the free plan?
No. Live bank and exchange sync is part of the paid plans. Manual accounts and CSV imports work on Free. See the pricing page.
Is this a tax product?
No. There's a tax center that builds a year's package out of the same ledger: FIFO capital gains by lot, income by line, deductible expenses. Every screen and the PDF say informational, not tax advice. If your situation is complicated, you want Koinly and an accountant.
Connect one account and see what changes.
The first one takes about four minutes. The second is the one that surprises people.