Skip to content

Connect Kraken

Kraken, in the same book as everything else

A read-only key, and your Kraken history joins the ledger: fills, fees and transfers, priced when they happened.

Read only, and refused if the key can trade or withdraw. Kraken is the interesting case, and it is below.

Connections · Kraken

The Kraken card on the Connections screen and its drawer: what Orla reads, what it never does, and the read-only key it asks for. Nothing is saved until Kraken has answered what the key may do, and a key with more than read rights is refused.

What lands in the book

The movements, not just the total

A balance answers what you have. A history answers what you owe in January.

  • Spot fills arrive as two legs, what left and what arrived, with the price recorded at the moment it happened.
  • Fees arrive as their own line, in the currency Kraken charged them in.
  • Deposits and withdrawals arrive as transfers and are matched against your own wallets.
  • The first sync reaches back to 1 January of the previous calendar year, then keeps up hourly.

The key you give us

Kraken will not say what a key can do, so we ask in a way that costs nothing

Kraken publishes no permissions, and not knowing is not a reason to accept.

The problem
Kraken exposes no endpoint that reports the rights on an API key. Asking it directly is not an option.
What we do instead
Two requests that cannot execute: an order in Kraken's own validate mode for a volume of zero, and a withdrawal enquiry naming an address that cannot exist on your account. Neither one can move a coin, even if the venue lets it through.
How we read the answer
Only their complaint counts. If Kraken refuses on permission, the key cannot trade or withdraw and we accept it. If Kraken instead complains about the contents of the request, it had already let the permission through, and the key is rejected on the spot.
Anything else
Refused. A timeout, a renamed method, an error we do not recognise: none of it is evidence, so none of it is accepted as evidence.
Where the secret lives
Encrypted at rest once it is accepted, and never returned by our API again.

Both probes are built so the worst case is nothing happening, rather than trusting the checkbox you ticked on their site.

The part that gets tax wrong

Moving your own coins is not a sale

Most tools book it as one anyway, and the bill is real.

  • A withdrawal to your own wallet is matched to the arrival on the other side by transaction hash.
  • Matched, the two legs become one internal move and no gain is calculated.
  • Unmatched, it is left out of the disposals rather than counted as a sale.

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.

Other exchanges

Connect Kraken, and see the year add up

Exchanges connect on every plan, the free one included. A plan counts the rows synced in a month, not the connections.

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.

See it on your own books

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