Implement getting withdraw fees on kucoin
See original GitHub issue- CCXT version: 1.18.430
- Exchange: kucoin
- Method: loadFees
There is an endpoint to get the withdrawal fee of currencies on kucoin which can be accesses with ccxt via privateGetWithdrawalsQuotas(params={'currency':'SOMECOIN'})
or via fetchFundingFee('SOMECOIN')
.
So far it seems this is not implemented in the loadFees structure, because even after executing loadFees, the dictionary at kucoinObj.fees[‘funding’][‘withdraw’] is empty (compared e.g. to binance where all the fees can be seen in there).
Would be cool if the withdrawal fee information is automatically provided for kucoin =)
Issue Analytics
- State:
- Created 4 years ago
- Comments:6 (6 by maintainers)
Top Results From Across the Web
Kucoin Deposit, Trading & Withdrawal fees - CryptoFeeSaver
Deposit, Trading & Withdrawal fees of Kucoin exchange. Compare the top cryptocurrency exchanges fees and start saving money now!
Read more >How to Make a Withdrawal on KuCoin
Web: Log in to your KuCoin account, then click - "Assets" - "Main Account(Deposit&Withdraw)" - "Withdraw" to enter the withdrawal page. You may...
Read more >THIS is how to easily withdraw from KuCoin [2022] - Stilt
KuCoin implements different withdrawal fees for different tokens. There's also a minimum withdrawal amount that varies per token.
Read more >Kucoin - Withdrawal Fees on Cryptocurrency Exchanges
Coin Withdrawal Fee Best in Market Market Average Market Me...
BTC. Bitcoin $8.31. 0.0005 BTC FREE. at Shakepay $7.22 $8.31
ETH. Ethereum $5.96. 0.005 ETH...
Read more >Kucoin Trading, Deposit & Withdrawal Fees (2022 Update)
Withdrawal transactions to crypto addresses outside of Kucoin typically incur a “transaction fee” or “network fee”. This fee is not paid to Kucoin...
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
In general, I consider propagating the fees to the
.fees
property – a design flaw.We probably should not support that codepath and should rather drop it. I believe, the
.fee
should be a property of a market or a property of a currency, but not a property of an entire exchange.If the lib encourages the user to work with fees accurately (not in a bunch, but per-market and per-currency specifically), then the design of the lib gets much more straightforward.
So, if we drop the propagation logic, then the logical conflict in the
load*
chain gets self-resolved, because the user won’t have to load all fees, he will just load the fees for the market of interest (or a number of them) – and that is how it should be.Fees should only be hardcoded on the exchange instance if there’s no other way of fetching them using the exchange API. In that case the direction of propagation should be from
exchange.fees → exchange.markets
andexchange.fees → exchange.currencies
, but not the other way around.I think there should be just one source of truth for fees – that is the info inside markets and currencies. If we keep that info duplicated in two separate locations (in the
.fees
property of the exchange and in markets/currencies of the same exchange), then fees become ambiguous for the user – hard to know which of them are actual, which other are hardcoded, so, if we duplicate them, it becomes harder to manage them consistently and harder to understand them.It all started when someone added a few hardcoded withdrawal fees to one exchange… From there people continued populating those fees all around… I think we should indicate proper ways of working with fees via markets and currencies in the Manual, because the lack of documentation is the root cause of the confusion.
Thus, if we don’t propagate to
exchange.fees
and only propagate fromexchange.fees
, then the implementation boils down to a simple call tofetchTradingFee (symbol)
- works equally well for markets with hardcoded fees and for markets with fees fetched from a remote endpoint. Same story with funding fees –fetchFundingFee (currency)
. And we’ll keep the optional methodsfetchTradingFees / loadTradingFees / fetchFundingFees / loadFundingFees
for hardcoded exchanges and the exchanges that allow fetching them all at once, or don’t differentiate the fees per market or per currency…Let me know your thoughts.
#4948