ABCT supports integration with multiple cryptocurrency exchanges to track your exchange balances alongside your self-custody wallets. This guide explains how to configure each supported exchange.
- Coinbase (via CDP API)
- Binance (Binance.com global)
- Binance.US
- OKX
- Bitget
- Gate.io
- KuCoin
- Use Read-Only API Keys: Always create API keys with read-only permissions (view balances only). Never give withdrawal or trading permissions.
- IP Whitelisting: When available, restrict API keys to your server's IP address.
- Environment Variables: Store API keys in the
.envfile, which is excluded from version control. - Never Commit Keys: The
.envfile should never be committed to Git.
Coinbase uses the CDP (Coinbase Developer Platform) API with JWT authentication.
Steps:
- Go to https://coinbase.com/settings/api
- Create a new API key with read-only permissions
- Download the JSON file (will be named like
cdp_api_key.json) - Place the file in the ABCT project root directory
- Restart the backend
File Format:
{
"name": "organizations/{org_id}/apiKeys/{key_id}",
"privateKey": "-----BEGIN EC PRIVATE KEY-----\n..."
}Permissions Required: Read-only access to accounts and transactions
Binance global exchange API.
Steps:
- Log into Binance.com
- Go to Account → API Management
- Create a new API key
- Important: Enable only "Read" permissions, disable "Spot & Margin Trading" and "Withdrawals"
- Add to
.envfile:
BINANCE_API_KEY=your_api_key_here
BINANCE_API_SECRET=your_api_secret_herePermissions Required: Read-only (Enable Reading checkbox only)
Documentation: https://developers.binance.com/docs/binance-spot-api-docs
Binance US exchange (separate from Binance.com).
Steps:
- Log into Binance.US
- Go to Account → API Management
- Create a new API key
- Enable only "Read" permissions
- Add to
.envfile:
BINANCE_US_API_KEY=your_api_key_here
BINANCE_US_API_SECRET=your_api_secret_herePermissions Required: Read-only
Documentation: https://docs.binance.us/#introduction
OKX exchange API (requires API key + secret + passphrase).
Steps:
- Log into OKX
- Go to Profile → API
- Create a new API key
- Set permissions to Read only
- Set a passphrase (you'll need to remember this)
- Add to
.envfile:
OKX_API_KEY=your_api_key_here
OKX_API_SECRET=your_api_secret_here
OKX_API_PASSPHRASE=your_passphrase_herePermissions Required: Read-only
Documentation: https://www.okx.com/docs-v5/en/
Bitget exchange API (requires API key + secret + passphrase).
Steps:
- Log into Bitget
- Go to Account → API
- Create a new API key
- Set permissions to Read only
- Set a passphrase
- Add to
.envfile:
BITGET_API_KEY=your_api_key_here
BITGET_API_SECRET=your_api_secret_here
BITGET_API_PASSPHRASE=your_passphrase_herePermissions Required: Read-only
Documentation: https://www.bitget.com/api-doc/
Gate.io exchange API.
Steps:
- Log into Gate.io
- Go to Account → API → Create API Key
- Set permissions to Read only
- Add to
.envfile:
GATE_API_KEY=your_api_key_here
GATE_API_SECRET=your_api_secret_herePermissions Required: Read-only (Spot account reading)
Documentation: https://www.gate.io/docs/developers/apiv4/en/
KuCoin exchange API (requires API key + secret + passphrase).
Steps:
- Log into KuCoin
- Go to Profile → API Management
- Create a new API
- Set permissions to General (read-only)
- Set a passphrase
- Add to
.envfile:
KUCOIN_API_KEY=your_api_key_here
KUCOIN_API_SECRET=your_api_secret_here
KUCOIN_API_PASSPHRASE=your_passphrase_herePermissions Required: General (read-only)
Documentation: https://www.kucoin.com/docs-new/intro
After adding API keys, you can verify they're configured correctly:
-
Restart the backend:
cd backend python main.py -
Check the
/exchanges/statusendpoint:curl http://localhost:8000/exchanges/status
-
View in the dashboard:
- Log into ABCT
- Navigate to "Exchange Wallets" section
- Configured exchanges will appear automatically
- Verify API keys are in the
.envfile - Ensure there are no extra spaces or quotes around keys
- Restart the backend after adding keys
- Double-check API key and secret are correct
- For OKX/Bitget/KuCoin: verify the passphrase is correct
- Check if IP whitelisting is enabled on the exchange and add your server IP
- ABCT filters assets with USD value < $1.00
- Verify you have balances on the exchange
- Check if the exchange API is accessible from your location
- ABCT caches exchange data for 5 minutes
- Multiple rapid refreshes may trigger rate limits
- Wait a few minutes before trying again
Each exchange has different rate limits:
- Coinbase: 10 requests/second
- Binance: 1200 requests/minute (with weight system)
- OKX: 20 requests/2 seconds per endpoint
- Bitget: 10 requests/second
- Gate.io: 900 requests/minute
- KuCoin: 100 requests/10 seconds
ABCT implements caching to minimize API calls and stay within rate limits.
- All exchange API calls are made server-side from your ABCT instance
- API keys never leave your server
- No data is sent to third parties
- Exchange balances are cached locally for 5 minutes
For issues or questions:
- Check the troubleshooting section above
- Review exchange API documentation links
- Open an issue on GitHub: https://github.com/yourusername/ABCT/issues