Crypto Exchange API Permissions: Read-Only vs Trade vs Withdraw
Every crypto exchange API key comes with permission settings — and understanding them is central to zero-knowledge security that control what actions the key can perform. Getting these permissions right is one of the most important security decisions you will make as a crypto trader. Enable too few and your bot cannot function. Enable too many and a compromised key could drain your account.
This guide breaks down the three core permission levels offered by major exchanges, explains when each is appropriate, and provides exchange-specific configuration guides for the most popular platforms.
Types of API Permissions
While the exact naming varies by exchange, all major platforms offer three fundamental permission levels.
Read-Only Permissions
What it allows:
- View account balances and portfolio holdings
- Access trade history and order history
- Read market data (prices, order books, charts)
- View open orders and positions
- Access account settings (non-sensitive)
What it does NOT allow:
- Placing, modifying, or canceling orders
- Transferring funds between accounts
- Withdrawing funds to external wallets
When to use: Portfolio tracking apps, tax reporting tools, analytics dashboards, read-only monitoring. If the tool only needs to display information and never needs to take action on your behalf, read-only is the correct choice.
Trade Permissions
What it allows (in addition to read):
- Placing new orders (market, limit, stop-loss, take-profit)
- Modifying existing orders
- Canceling open orders
- Opening and closing positions (futures/margin)
- Setting leverage and margin mode
What it does NOT allow:
- Withdrawing funds to external wallets
- Transferring funds to other accounts (on most exchanges)
When to use: Trading bots, automated strategies, signal execution clients. Any tool that needs to place orders on your behalf requires trade permissions. Critically, trade permissions WITHOUT withdrawal permissions mean that even a compromised key cannot move your funds off the exchange.
Withdraw Permissions
What it allows (in addition to read and trade):
- Withdrawing funds to external wallet addresses
- Creating new withdrawal addresses
- Initiating transfers to other accounts
When to use: Almost never. There are very few legitimate reasons to grant withdrawal permissions to an API key. Withdrawal keys are the highest-risk permission level. If this key is compromised, an attacker can send your crypto to their own wallet.
Why Permissions Matter
The history of crypto is filled with API key breaches where the damage was directly proportional to the permissions granted.
The Permission Hierarchy of Risk
Risk Level: LOW -------- MEDIUM -------- CRITICAL
Read-Only Trade Withdraw
Breach Impact:
See data Manipulate Steal funds
trades permanently
With read-only keys, a breach exposes your balance and trade history but cannot affect your funds. Inconvenient but not catastrophic.
With trade keys, a breach allows an attacker to place malicious trades (buying worthless tokens at inflated prices, for example) but cannot withdraw your funds off the exchange. Damaging but limited.
With withdraw keys, a breach allows an attacker to send all your funds to their own wallet. Irreversible and catastrophic. This is what happened in the 3Commas security incident, where attackers used leaked API keys with withdrawal permissions to steal millions.
Recommended Setup for Trading Bots
For any automated trading bot, the recommended API key configuration is:
| Permission | Setting | Reason |
|---|---|---|
| Read | Enabled | Bot needs to check balances and market data |
| Trade (Spot) | Enabled if trading spot | Bot needs to place spot orders |
| Trade (Futures) | Enabled if trading futures | Bot needs to place futures orders |
| Withdraw | DISABLED | Never needed for trading bots |
| Transfer | DISABLED | Not needed for standard trading |
| IP Whitelist | ENABLED | Restricts key usage to known IPs |
Additionally, if your trading platform supports zero-knowledge architecture, your keys are stored locally rather than on the platform's servers, providing an extra layer of protection.
Exchange-Specific Guides
Here is how permissions map on the three most popular exchanges.
Binance
| Binance Permission | Category | Bot Recommendation |
|---|---|---|
| Enable Reading | Read | Enable |
| Enable Spot & Margin Trading | Trade | Enable for spot strategies |
| Enable Futures | Trade | Enable for futures strategies |
| Enable Withdrawals | Withdraw | NEVER enable |
| Enable Internal Transfer | Transfer | Disable |
| Enable Vanilla Options | Trade | Disable unless needed |
| Restrict to Trusted IPs | Security | Always enable |
Binance-specific note: Binance allows you to create up to 30 API keys per account. Use separate keys for different tools. Binance also offers "Restrict to Trusted IPs" which should always be enabled. For a detailed walkthrough, see our API key setup guide.
Bybit
| Bybit Permission | Category | Bot Recommendation |
|---|---|---|
| Read-Only | Read | Enable |
| Trade (Spot/Derivatives) | Trade | Enable as needed |
| Wallet (Transfers) | Transfer | Disable |
| Exchange (Convert) | Utility | Disable |
| NFT | Utility | Disable |
| Link to IP | Security | Always enable |
Bybit-specific note: Bybit's permission system is more granular within the Trade category, allowing you to limit access to specific contract types. If you only trade perpetual futures, disable spot trading access and vice versa.
OKX
| OKX Permission | Category | Bot Recommendation |
|---|---|---|
| Read | Read | Enable |
| Trade | Trade | Enable |
| Withdraw | Withdraw | NEVER enable |
| IP Whitelist | Security | Always enable |
| Passphrase | Security | Set a strong unique passphrase |
OKX-specific note: OKX requires a passphrase in addition to the API key and secret. This three-factor approach adds an extra security layer. Never use the same passphrase across different API keys or platforms.
For complete step-by-step instructions for each exchange, see our comprehensive API key setup guide.
Common Mistakes
Avoid these frequent permission-related errors.
Enabling Withdraw "Just in Case"
Some traders enable withdrawal permissions because they think they might need it later. They never do, and every day the key exists with withdraw permissions is a day of unnecessary risk. If you ever need to withdraw, do it manually through the exchange's web interface with full 2FA verification.
Using One Key for Everything
Creating a single API key with all permissions enabled and using it across multiple tools is a recipe for disaster. If any one tool is compromised, all permissions are exposed. Create separate, minimally-permissioned keys for each tool.
Forgetting IP Whitelisting
IP whitelisting is the most effective single security measure for API keys, yet many traders skip it because it requires knowing their server's IP address. If you use Sentinel Bot's signal-push architecture, you whitelist your own client's IP, adding a critical defense layer.
Not Rotating Keys
API keys should be rotated every 3-6 months. Old keys accumulate risk: they may have been inadvertently exposed in logs, screenshots, or configuration files over time. Create a new key, update your bot, verify it works, then delete the old key.
Sharing Keys via Insecure Channels
Never send API keys via email, chat, or text message. Use a password manager's secure sharing feature if you must share keys (e.g., with a trusted partner managing a shared trading account). Never post keys in GitHub repositories, Discord channels, or support tickets.
Frequently Asked Questions
Can a trading bot work with read-only API keys?
A trading bot cannot place orders with read-only keys. However, read-only keys are sufficient for portfolio tracking, analysis tools, and backtesting platforms that only need to display your account data. If you want automated trade execution, you need trade permissions.
Is it safe to give trade permissions to a bot platform?
It depends on the platform's architecture. Platforms that store your keys on their servers (custodial model) present a single-point-of-failure risk. Platforms like Sentinel Bot that use zero-knowledge architecture keep your keys local, meaning the platform itself cannot be breached for your credentials. Always combine trade permissions with IP whitelisting.
What is the worst that can happen with a trade-only API key breach?
With trade-only permissions (no withdraw), an attacker could place malicious trades to manipulate your positions, potentially causing losses. However, they cannot withdraw your funds off the exchange. The damage is limited to your account balance, not total theft. IP whitelisting prevents even this scenario by blocking unauthorized IPs from using the key.
Take control of your API key security today. Sign up for Sentinel Bot and use a zero-knowledge trading platform that never asks you to trust a server with your exchange credentials.
Disclaimer: This article is for educational purposes only and does not constitute financial advice. Exchange interfaces and available permissions may change over time. Always verify current settings on your exchange. Cryptocurrency trading involves significant risk of loss.