Kraken
a read-only key we prove ourselves
Give a read-only key, and your Kraken history joins the ledger: fills, fees and transfers, priced when they happened. Kraken publishes no key permissions, so we test the key with requests that cannot execute.
What lands in the book
The movements
not just the balance

- Kraken · USD
- $18,240.00
- Spot fills this month
- 24
- Trading fees
- −$41.20
- Two legs per fill
- What left and what arrived, so a sale has the price it happened at rather than a guess.
- Fees as their own line
- In the currency Kraken charged them in.
- Deposits and withdrawals
- Arrive as transfers, and pair with the wallets you also connected.
- Next to the bank
- In the same book as every other account, so the total includes it.
What goes by itself
Read every hour
and never a single order
- Kraken fills since the last hourTwo legs each, at the price they filled
- A withdrawal to your own walletMatched by hash, one internal move
- Trading feesTheir own rows, in the coin charged
- An order or a withdrawalNever: the key cannot do either
- Two tax years from day one
- The first sync reaches back to 1 January of the previous calendar year, then keeps up hourly.
- Your own coins are not a sale
- A withdrawal to your own wallet is matched to its arrival by transaction hash and booked as one move, with no gain.
- Unmatched is left out
- A transfer with no matching arrival is left out of the disposals rather than counted as a sale.
- Nothing leaves
- The key reads. It cannot place an order on Kraken or withdraw from it, and Orla pays nothing from it.
The key you give us
Kraken will not say
so we ask in a way that costs nothing

- Order, validate only, volume zero
- Refused on permission
- Withdrawal to an address that cannot exist
- Refused on permission
- Any other answer
- Key refused
- No permissions endpoint
- Kraken exposes nothing that reports the rights on an API key, and not knowing is not a reason to accept.
- Two requests that cannot execute
- An order in Kraken's own validate mode for a volume of zero, and a withdrawal enquiry to an address that cannot exist on your account.
- Only the refusal counts
- If Kraken refuses on permission, the key is accepted. If it complains about the request itself, the permission was let through and the key is rejected.
- Anything else is refused
- A timeout, a renamed method, an unknown error: none of it is evidence. Once accepted, the secret is encrypted and never shown again.
Other exchanges
- Binance →
- Spot fills as two legs, fees on their own line, transfers joined to the wallet.
- Bybit →
- The same rows, with the key's permissions read before it is saved.
- OKX →
- Key, secret and passphrase, with the permission list read before any is saved.
- Coinbase →
- Fills, fees and transfers as transactions, rather than a balance that answers nothing when January comes.
- Hyperliquid →
- No key at all: equity, deposits and daily results from a public address.
On autopilot
What goes by itself
and what still waits for you
Goes by itself
- A bill or a payout inside its budget in the mandate
- From Airwallex, PayPal or the account inside Orla
- An agent's card or API spend inside its cap
Waits for you
- A new payee, and bank details that changed
- Anything past a budget or a limit
- Every payment from Mercury, Slash, a Safe or a wallet you sign
The brakes above both
- $2,000 a payment and $10,000 a day until you change them
- Loosening a limit waits 24 to 72 hours
- One pause stops every payment at once
Questions
The questions people ask before they connect it
Can Orla trade or withdraw on my Kraken account?
No, and Kraken is the interesting case: it publishes no endpoint that reports the rights on a key. So we ask the venue itself with two requests that cannot execute, an order in Kraken's validate mode for a volume of zero and a withdrawal enquiry naming an address that cannot exist on your account. If Kraken refuses on permission the key is read only; if it complains about the request instead, the permission had already been let through and the key is rejected. Anything else, including a timeout, is refused.
Does it import my history or just the balance?
Both, and the history is the point. Fills, deposits and withdrawals become transactions in the ledger, so the capital gains engine can work a cost basis out by lot. The first sync reaches back to 1 January of the previous calendar year, which covers the current tax year and the one before it as well.
Will moving coins to my own wallet look like a sale?
No. The withdrawal is matched to the arrival on the other side, by transaction hash where the venue gives one and by coin, amount and date where it does not, and the pair becomes one internal move. An unmatched withdrawal is left out of disposals rather than counted as a sale of any kind.
Connect Kraken
and see the year add up
Exchanges connect on every plan, the free one included, and reading them costs nothing.