Read-only API keys: create one on Binance, Kraken and OKX, and check it can’t trade or withdraw

A portfolio tracker asks for an API key, and you hesitate. That’s healthy: set up properly, the key can only read your history, and the exchange itself refuses everything else.

An API key with a single switch turned on, the read permission, shown as an eye; the trading and withdrawal switches are off and crossed out. The key is connected to Binance, Kraken and OKX.

Creating an API key on Binance, Kraken or OKX takes two minutes. The real question is different: is my key really read-only? I’ve created read keys on my own three accounts, and two of them were rejected the first time, for reasons that weren’t obvious.

What is an API key?

An API key is access to your account reserved for software. It has two parts: the key, which says who you are, and the secret, which proves it. Unlike a password, it only carries the permissions you give it.

PermissionWhat it allowsFor a portfolio tracker
Readview balances, trades, deposits, withdrawalsthe only one needed
Tradebuy, sell, convertnever
Withdrawsend your crypto to an addressnever
Read-only API key: Crypto Master reads the exchange history, the exchange refuses any order or withdrawal
The guarantee comes from the exchange, not from the software’s good intentions.

If stolen, a read-only key would expose your history and balances, but it couldn’t be used to sell or withdraw.

Three rules before you create a key

  • One key per tool. You can delete it without breaking anything else, and Kraken rejects a key used by two programs at once.
  • Read only. If a portfolio tracker asks for trading or withdrawal permission, it isn’t a portfolio tracker.
  • Copy the secret right away. Exchanges usually show it only once.

Create a read-only API key on Binance

Turn on two-factor authentication and get your identity verified first.

  1. On the website, profile icon, then Account › API Management › Create API.
  2. Choose a System generated key, the type most portfolio trackers ask for.
  3. Name it, then confirm with your security codes.
  4. Copy the API key and the secret key.
  5. In Edit restrictions, only “Enable Reading” should be ticked.

In the mobile app: More › Services, then API Management.

According to Binance’s documentation, a system-generated key with unrestricted IP access can only carry the read permission. Withdrawals require an IP restriction: without one, the box can’t even be ticked.

Binance API Management screen: the “Crypto Master” HMAC key with only “Enable Reading” ticked; trading, withdrawals and transfers unticked, and unrestricted IP access
Binance, editing a key’s restrictions. The start of the key is masked.

On Kraken: one permission, “Query ledger entries”

Create the key on kraken.com, in a browser: the mobile app can’t do it.

  1. Profile icon, Settings, the API section, then Create API key.
  2. Name the key.
  3. In the Data column, tick “Query ledger entries”. Nothing else.
  4. Don’t add two-factor authentication to the key: a tool that runs on its own can’t type in a code.
  5. Copy the API key and the private key in full, including the final “=”.

That one permission is enough: the ledger holds everything, staking included, back to the day the account was opened. Kraken’s help page explains each box.

That’s where I was rejected the first time: my key had other query permissions, just not that one, and Kraken answered “Permission denied”.

Kraken Edit API key screen: in the Data column, only “Query ledger entries” is ticked; no funds or orders box, and no IP address restriction
Kraken, a key’s permissions: a single box ticked.

On OKX: the passphrase and the three-entity trap

  1. On the website, Profile › API, then Create API key. In the app: Menu › API › Create API key.
  2. Name the key and tick only the “Read” permission.
  3. Choose a passphrase, a password separate from the API secret. OKX never shows it again: lose it and the key has to be recreated.
  4. Copy the key and the secret.

“API key doesn’t exist”: a key created at OKX Europe

OKX has three entities, each with its own address: global, European (EEA) and US. A key only exists in the entity where your account was opened. Queried anywhere else, it answers “API key doesn’t exist” (error 50119), as OKX’s API FAQ explains.

That’s what happened to me: my account is with OKX’s European entity, and the global address rejected my perfectly valid key. Recreating the key achieves nothing. Check instead that the tool is querying the right entity, which Crypto Master does on its own. If no entity knows the key, it was deleted, or created in “Demo trading” mode.

OKX Edit API key screen: “Read” permission ticked, “Withdraw”, “Earn”, “Transfer” and “Trade” unticked, trusted IP addresses turned off
OKX, a read-only key: only “Read” is ticked.

Check that a key can’t trade or withdraw

Check the key once, before pasting it anywhere.

  • In your list of keys, it shows only read permissions: nothing about withdrawals, transfers, trading or orders.
  • You received the exchange’s email announcing its creation. A key you didn’t create yourself gets deleted on the spot.
  • Its name says which tool it’s for.

Don’t “test” it by attempting a withdrawal from some other software: you’d be handing it to one more tool. An extra permission? Delete the key and create a new one, rather than unticking it.

Should you restrict the key to an IP address?

All three exchanges let you limit a key to the IP address of the tool’s server. That’s an extra layer if the key leaks, not a necessity for a read-only key.

Crypto Master always queries from the same address, which the screen where you paste the key gives you. A key restricted to another address is rejected (“Invalid IP” at OKX).

The most common error messages

MessageExchangeWhat it means
Permission deniedKrakenthe key exists, but “Query ledger entries” isn’t ticked
Invalid nonceKrakenthe same key is used by another tool at the same time: create a dedicated one
Invalid signatureKrakenthe private key is truncated, often its final “=”
API key doesn’t exist (50119)OKXkey queried in the wrong entity, deleted, or created in demo mode
OK-ACCESS-PASSPHRASE incorrect (50105)OKXit’s not the secret it wants, it’s your passphrase
Invalid IP (50110)OKXthe key is restricted to IP addresses that don’t include the tool’s
Invalid API-key, IP, or permissions for action (-2015)Binancekey copied wrong, IP restriction, or read permission missing

What Crypto Master does with your key

Crypto Master connects to Binance, Kraken, OKX, Coinbase, Bybit, Gate, MEXC, KuCoin, Robinhood, Crypto.com Exchange and Bitget with a read-only key. Rather skip the key altogether? For Kraken and Binance, the history export is enough, into the same account: Kraken’s “Ledgers” export, and Binance’s files just as they download, ZIP included.

Kraken connection screen in the Crypto Master demo: the permission to tick, the check to make, what the key is used for, how it’s encrypted and how to remove it, then the API key and Secret fields
The Kraken key connection screen, in the demo.
  • It’s used to read your history. The software contains no call that places an order or withdraws funds, and an automated test checks that.
  • It’s encrypted (AES-256), with an encryption key kept outside the database. The server decrypts it to query the exchange, which is why read-only matters.
  • It’s never shown back to you, except its last four characters.
  • It can be removed in one click, in Crypto Master or at the exchange. What’s already imported stays.

OKX’s API only returns 90 days of trades. Older history comes in through its export files, into the same account. Everything is detailed on the Security page. The free plan covers 3 connected accounts and 500 transactions (pricing).

Frequently asked questions

What is a Binance read-only API key?

Access to your account reserved for software, with only “Enable Reading” ticked. A tool can view your history with it, but can’t trade or withdraw.

Is it safe to share an API key?

A read-only key can’t sell or withdraw: the exchange refuses. Only give it to a tool that explains how it stores it.

Can I create a Binance API key from the mobile app?

Yes, under More › Services, then API Management. On Kraken, you have to use kraken.com in a browser.

Which permissions does a Kraken API key need?

Just one: “Query ledger entries”, in the Data column.

Why does OKX say “API key doesn’t exist”?

The key was created in a different OKX entity from the one being queried, often OKX’s European entity (EEA).

How do I delete an API key?

In your list of keys at the exchange, where it stops working immediately. In Crypto Master, “Delete the keys” erases it from our servers.

See what an account connected with a read-only key looks like, on a demo portfolio, without signing up.

Open the demo

Share: LinkedIn X Facebook

Read next

Audience measurement We would like to measure traffic on this site with Google Analytics, to learn which pages are actually useful to you. Nothing is stored on your device or sent until you accept. Your choice lasts six months and can be changed at any time from the footer. Read the privacy policy.