Add Withdrawal Addresses - API Permission

Last updated: 13 Agustus 2026

The Add Withdrawal Addresses permission allows an API key to add and remove withdrawal addresses on your Kraken account. This article explains what the permission does, the security risks involved, and the steps you can take to protect your account.

What does this permission do?

When you enable the Add Withdrawal Addresses permission on an API key, any application or service using that key can:

  • Add new cryptocurrency and fiat withdrawal addresses to your account.
  • Remove existing withdrawal addresses from your account.

This means the API key holder can modify where your funds are eligible to be sent without logging in to kraken.com or using the Kraken app.

Security risks

Enabling this permission significantly increases the potential impact if your API key is ever compromised. Before enabling it, carefully consider the following risks.

Unauthorized address additions

If an attacker obtains your API key (through a data breach, phishing, malware, or any other means), they could add their own withdrawal address to your account. Combined with the Withdraw Funds permission, this would allow an attacker to withdraw your assets to an address they control.

Third-party application exposure

Many users connect API keys to third-party services such as portfolio trackers, trading bots, and tax reporting tools. If you grant the Add Withdrawal Addresses permission to a key used by a third-party service:

  • The third-party service itself could be compromised. Even reputable services can suffer security breaches. If an attacker gains access to the service's infrastructure, they could use your stored API key to add a malicious withdrawal address to your account.
  • The third-party may store your key insecurely. You have no control over how a third party stores, transmits, or protects your API credentials.
  • Rogue employees or insiders at a third-party company could misuse API keys that have elevated permissions.

Combined permission risk

The Add Withdrawal Addresses permission becomes especially dangerous when paired with the Withdraw Funds permission on the same API key. An attacker with access to a key that has both permissions could add their own address and immediately initiate a withdrawal, all through the API with no additional verification required beyond the key itself.

How to protect your API key

If you do need to use the Add Withdrawal Addresses permission, take the following steps to reduce your risk.

Enable IP address whitelisting

Restrict your API key so it can only be used from specific IP addresses. This means that even if your key is stolen, it cannot be used from an unauthorized network.

Set an API key expiry

Configure your API key to automatically expire after a set period. This limits the window of time an attacker has to use a compromised key.

Use the principle of least privilege

Only enable the permissions your application actually requires. If an application only needs to read account data or place trades, do not grant it withdrawal or address management permissions.

Create separate keys for separate purposes

Use a dedicated API key for each application or use case. This way, if one key is compromised, only a limited set of permissions is exposed.

Monitor your account activity

Regularly review the withdrawal addresses on your account and check your API key usage logs. If you see addresses or activity you do not recognize, revoke the API key immediately and contact Kraken Support.

Enable two-factor authentication (2FA) for your API key

Add a second layer of protection by enabling 2FA directly on your API key. When enabled, every API call made with the key must include a valid 2FA code, meaning a stolen key alone is not enough for an attacker to make changes to your account.

Learn more: How does two-factor authentication (2FA) for API keys work?

Summary

Action

Why it matters

Only enable on keys you fully control

Prevents third-party exposure

Never pair with Withdraw Funds on the same key (unless required)

Limits damage from a compromised key

Enable IP whitelisting

Blocks use from unauthorized networks

Set a key expiry

Limits the useful lifespan of a stolen key

Use one key per application

Contains the blast radius of a breach

Review addresses and activity regularly

Catches unauthorized changes early

Need more help?