Skip to content

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 it does

The long version

One row per capability, with the specifics under it.

What it does

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. Hyperliquid is the exception, because it issues no keys at all: you paste your wallet address and we read the balance from a public endpoint that accepts no signature. 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 all five a key carrying trade or withdrawal rights is refused outright. How we ask differs: Binance, Bybit and OKX report the rights, Coinbase answers through its key permissions endpoint, and Kraken is asked indirectly, because its API answers permission before arguments. 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. On Hyperliquid, which is a perpetuals venue, it's the last 90 days of deposits, withdrawals and one trading result per day instead. That's the whole point of the exercise, after all.
  • Binance
  • Bybit
  • OKX
  • Kraken
  • Coinbase
  • Hyperliquid
A wallet
A wallet connects by address on BTC, EVM chains, TRON and Solana. 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, Tron and Solana 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
What happens when a sync 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 six exchanges connect directly, only four chain families sync, and there are 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 which order it is, rather than guessing at the answer.
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.
The app doesn't come from a store yet
Orla installs from the browser: "Install app" on Android and desktop Chrome, Share then "Add to Home Screen" on iPhone. A native iPhone app is built and close to release, but it is not published yet, so today this is how you get it. 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.

One month

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.

One month · illustrative
Salary01 · Bank+4,200.00
Rent03 · Bank1,650.00
Trader Joe's05 · Bank214.30
Client pays in USDT08 · Exchange+900.00
Sold 0.25 ETH for USDT (fee)09 · Exchange1.80
Withdrawal to your own wallet14 · Exchange600.00
Withdrawal fee14 · Exchange1.00
Arrived from the exchange14 · Wallet+600.00
Gas19 · Wallet2.40
Ana, flat share, USDT-TRC2023 · Wallet180.00
Three books, three resultsBank +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.+3,050.50

The specifics

Specifics

The part a sceptic reads first.

The specifics

Category
Budgeting app
Banks
Open banking: EU, UK, US and other regions, read-only
Exchanges
Binance, Bybit, OKX, Kraken, Coinbase by read-only key, Hyperliquid by wallet address
Key rights
Verified before saving. Trade and withdrawal keys refused on Binance, Bybit, OKX. Hyperliquid needs no key
Exchange refresh
Balances hourly, plus a manual sync per connection
Trade history
Spot trades, deposits, withdrawals since 1 January last year
Chains
BTC, EVM chains, TRON (TRX, USDT-TRC20)
Wallet modes
Watch only, imported, or created in the browser
Address verification
EVM, Tron and Solana 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, an AI pass you review
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, one row per lot
Import
CSV in any encoding, a statement photo or PDF in any language, RTL ones included
Languages
English, Spanish, Portuguese, Russian
Apps
Installs from the browser; a native iPhone app is built and not yet in the store

Questions

What people ask before they try it.

Which budgeting apps actually support crypto transactions?

Most of them show a crypto balance and stop there, which keeps the activity out of your budget and out of your monthly report. Orla files trades, deposits and withdrawals as transactions with categories, on the same ledger as the bank account, and the year ends with a FIFO capital gains report from 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 all five a key with trade or withdrawal rights is refused when you add it: Binance, Bybit and OKX report the rights, Coinbase answers through its key permissions endpoint, and Kraken is asked indirectly. Hyperliquid hands out no keys, so there we hold only your address. More at Trust and control, and on the security page of this site.

My exchange isn't one of the five.

Then it's CSV, or the statement as a PDF or a photo. That is worse than a live connection, and we will not 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 as a statement PDF, page by page.

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 rather than a budgeting app.

See it on your own books.

Thirty minutes: we connect an account, drop a real bill in, and close a month together.