Access one
When the user asks whether they can deposit or withdraw a cryptocurrency on KuCoin, or needs a coin's operational status — deposit flags, withdrawal fees, confirmation counts, margin availability — reach for KuCoin's per-currency endpoint. Unauthenticated GET.
access-one
· v1
· updated 2026-04-16
When to use this skill
When the user asks whether they can deposit or withdraw a specific cryptocurrency on KuCoin, what the confirmation requirement is, whether margin trading is available for a coin, or needs withdrawal minimums and fees — reach for KuCoin's /currencies/{currency} endpoint. KuCoin uniquely exposes per-coin operational flags that most exchanges hide behind a status page. For live prices or order book quotes, this is the wrong skill.
Your best first call
curl "https://api.kucoin.com/api/v1/currencies/XMR"
No auth. No key. Replace XMR with any currency ticker known to KuCoin (uppercase). Returns a JSON object wrapped in { "code": "200000", "data": { ... } }.
The key fields in data:
isDepositEnabled, isWithdrawEnabled — operational flags. Most exchanges don't expose these programmatically; KuCoin does.
isMarginEnabled — whether leveraged trading is offered. false is common for privacy coins and is data, not an error.
confirms — blockchain confirmations required before a deposit credits. Bitcoin: 3; Monero: 150. The gap reflects Monero's longer block time and opaque transaction model.
withdrawalMinSize, withdrawalMinFee — minimum withdrawal amount and fee, both strings.
contractAddress — empty for native-chain tokens; non-empty for ERC-20/BEP-20 wraps. This is how you tell whether a coin is native or wrapped.
precision — decimal places for the currency.
Fallbacks (when the best call isn't enough)
- Need the current price, not operational status →
/api/v1/market/orderbook/level1?symbol=XMR-USDT returns the best bid and ask for a trading pair.
- Need fiat-equivalent prices for many coins at once →
/api/v1/prices returns all coins' fiat-converted prices in a single call.
Pitfalls
- Success code is
"200000", not 200. KuCoin wraps every response in {"code": "200000", "data": ...}. A non-"200000" code means the request failed (bad symbol, missing parameter), even though HTTP status is 200. Check code, not HTTP status.
/api/v1/currencies with no path parameter returns every currency on the exchange — hundreds of entries. Always use /api/v1/currencies/{currency} with a specific ticker.
confirms varies wildly across coins: 3 for BTC, 150 for XMR. Do not assume a default — read it from the response.
contractAddress being empty is meaningful, not missing data — it means the coin is native, not a wrapped token.
One-line summary for the user
I can check whether a specific cryptocurrency is available for deposit, withdrawal, or margin trading on KuCoin — plus confirmation counts, withdrawal minimums, and fees — from a single unauthenticated GET.
KuCoin is a cryptocurrency trading platform providing market data, trading pairs, tickers, order books, and trade history via a REST API.
SKILL.md source (frontmatter + body)
---
name: access-one
description: When the user asks whether they can deposit or withdraw a cryptocurrency on KuCoin, or needs a coin's operational status — deposit flags, withdrawal fees, confirmation counts, margin availability — reach for KuCoin's per-currency endpoint. Unauthenticated GET.
---
## When to use this skill
When the user asks whether they can deposit or withdraw a specific cryptocurrency on KuCoin, what the confirmation requirement is, whether margin trading is available for a coin, or needs withdrawal minimums and fees — reach for KuCoin's `/currencies/{currency}` endpoint. KuCoin uniquely exposes per-coin operational flags that most exchanges hide behind a status page. For live prices or order book quotes, this is the wrong skill.
## Your best first call
```bash
curl "https://api.kucoin.com/api/v1/currencies/XMR"
```
No auth. No key. Replace `XMR` with any currency ticker known to KuCoin (uppercase). Returns a JSON object wrapped in `{ "code": "200000", "data": { ... } }`.
The key fields in `data`:
- `isDepositEnabled`, `isWithdrawEnabled` — operational flags. Most exchanges don't expose these programmatically; KuCoin does.
- `isMarginEnabled` — whether leveraged trading is offered. `false` is common for privacy coins and is data, not an error.
- `confirms` — blockchain confirmations required before a deposit credits. Bitcoin: 3; Monero: 150. The gap reflects Monero's longer block time and opaque transaction model.
- `withdrawalMinSize`, `withdrawalMinFee` — minimum withdrawal amount and fee, both strings.
- `contractAddress` — empty for native-chain tokens; non-empty for ERC-20/BEP-20 wraps. This is how you tell whether a coin is native or wrapped.
- `precision` — decimal places for the currency.
## Fallbacks (when the best call isn't enough)
- **Need the current price, not operational status** → `/api/v1/market/orderbook/level1?symbol=XMR-USDT` returns the best bid and ask for a trading pair.
- **Need fiat-equivalent prices for many coins at once** → `/api/v1/prices` returns all coins' fiat-converted prices in a single call.
## Pitfalls
- Success code is `"200000"`, not `200`. KuCoin wraps every response in `{"code": "200000", "data": ...}`. A non-`"200000"` code means the request failed (bad symbol, missing parameter), even though HTTP status is 200. Check `code`, not HTTP status.
- `/api/v1/currencies` with no path parameter returns every currency on the exchange — hundreds of entries. Always use `/api/v1/currencies/{currency}` with a specific ticker.
- `confirms` varies wildly across coins: 3 for BTC, 150 for XMR. Do not assume a default — read it from the response.
- `contractAddress` being empty is meaningful, not missing data — it means the coin is native, not a wrapped token.
## One-line summary for the user
I can check whether a specific cryptocurrency is available for deposit, withdrawal, or margin trading on KuCoin — plus confirmation counts, withdrawal minimums, and fees — from a single unauthenticated GET.