
Binance is the largest global spot exchange by volume, a scale that directly impacts arbitrage opportunities. It offers greater depth than most other major venues combined, leading to less slippage for large orders, and provides over 350 spot pairs for simultaneous arbitrage. Binance processes billions in trades daily, meaning the spread between Binance and its competitors is narrow, making execution speed the limiting factor for arbitrageurs.

To successfully use Binance for arbitrage, understanding its operations and benefits is crucial. For instance, the difference between a 0.1% maker fee and a 0.075% fee (with BNB discounts) accumulates over hundreds of weekly trades. Regarding USDT withdrawals, choosing ERC-20 over TRC-20 incurs an additional $14 per withdrawal, creating unnecessary friction. Mismanaging API weight can also lead to bot throttling mid-trade.
| Fee type | Base price | Price after BNB 25% discounted |
|---|---|---|
| Spot Maker | 0.1000% | 0.0750% |
| Spot Taker | 0.1000% | 0.0750% |
| Futures Maker (USDⓈ-M) | 0.0200% | 0.0150% |
| Futures Taker (USDⓈ-M) | 0.0500% | 0.0375% |
| BTC withdraw | 0.0005 BTC | — |
| ETH withdraw | 0.005 ETH | — |
| USDT withdraw (TRC-20) | 1 USDT | — |
| USDT withdraw (ERC-20) | 15 USDT | — |
VIP tiers for spot are as high as 0.09% (at VIP 1) to as low as 0.01% (at VIP 9) based on the amount of volume traded over the last 30 days. Taker fees follow a similar down curve but lag behind by about one month.
Binance has a maker-taker system that is used for all spot markets. A maker adds liquidity to an order book and a taker removes liquidity from an order book. Upon reaching VIP 0 or above, both maker and taker will have the same 0.1% fees if BNB is held in your account (and if the fee payment discount of 25% is applied). The VIP tiers can be combined with discounts from the BNB system.
| VIP level | Monthly Volume (BTC) | Spot Maker | Spot Taker |
|---|---|---|---|
| 0 | < 1 BTC | 0.1000% | 0.1000% |
| 1 | ≥ 1 BTC | 0.0900% | 0.1000% |
| 3 | ≥ 50 BTC | 0.0700% | 0.1000% |
| 5 | ≥ 500 BTC | 0.0500% | 0.0800% |
| 9 | ≥ 150,000 BTC | 0.0100% | 0.0400% |
Source: Binance.com
Arbitrage bots that place limit orders at or near the spread count as "makers". If you consistently post resting orders instead of crossing a spread, then you will pay "maker" rates which are lower for all VIP levels.
For cross-exchange arbitrage, withdrawals are usually the biggest controlled cost per trade. The USDT example is most clear in the above fee schedule; the cost to withdraw on the ERC-20 network is 15 USDT whereas the cost is only 1.00 USDT on the TRC-20 network. With both transactions being settled within minutes under normal circumstances, if you are transferring funds from Binance to any exchange that supports TRC-20, you should use the TRC-20 option.
The withdrawal fee for BTC is 0.0005 BTC (approximately $31 at $62,000/BTC) and is relevant only if you are planning on moving the underlying asset using this strategy. Strategies that use USDT as the medium of transfer do not incur a transfer leg fee; however, they create currency risk associated with BTC price movement during transit.
Trading in USDⓈ-M futures contracts on Binance incurs fees of 0.02% for maker orders and 0.05% for taker orders. Therefore, when executing cash-and-carry trades, the taker is charged the 0.05% fee for order execution at the futures price. Consequently, the total expense for a buy and sell transaction will be approximately 0.15%, plus additional fees for withdrawals and funding rates.
You need to establish an API key for your Binance account by navigating to the following: Account → API Management and creating an API key with "View Only" and "Enable Spot & Margin Trading" rights enabled. This key should have IP whitelisting password protection. You should also restrict access only to the specific static IP address of your trading bot. You should also create a second API key for withdrawals and store it in a different location than the trading API key.
You will receive the API secret when you create the trading API key. Ensure that you store it safely.
There are several key API endpoints that your bot will use to conduct arbitrage trading. The following are the four main API endpoints used when executing arbitrage trades:
When monitoring the order books, it is recommended to use WebSocket streams that provide low latency in an order book and are therefore better than using REST for creating an order book. Using a single WebSocket connection, it is possible to create multiple subscriptions to symbol data while using less overhead per connection.
Regarding rate limits and best practices for the Binance API, Binance utilizes a weight-based rate limiting system rather than a requests-per-second system. Each endpoint in the API has a weight associated with it, for example; GET /api/v3/depth (limit=100) has a weight of 5, and POST /api/v3/order has a weight of 1. The default rate limit for all of the API endpoints for one IP address is 1200 weight per minute; exceeding this limit will trigger an HTTP 429 error and will result in an immediate temporary ban. If this temporary ban is violated before the completed time; a second violation may result in a 24-hour IP address ban that will affect all open strategies that are currently in progress.
In practice, if one were to use REST to poll for a total of 10 symbols at a frequency of 1 second and use the limit of 100 for each symbol, this will create 50 weight per second or 3000 weight per minute total; which is substantially more than the limit imposed by the API. Best practice is to monitor the order books via WebSocket for low latency order execution, followed by executing orders through REST. If multiple bots are using the same IP address, it may be advantageous to route your traffic through separate IP addresses to properly handle the weight limit imposed by the API. To monitor the consumption of weight usage in real-time, refer to the X-MBX-USED-WEIGHT-1M response header.
The maker/taker fee differences encourage the user to always use limit orders. Placing a market order guarantees the fill of the order, but it has associated taker fees, and the order will fill based on whatever can be matched against the order book beyond the best bid/ask.
If you are doing cross-exchange arbitrage (buying and selling a currency pair on two different exchanges simultaneously), using a limit order on the less liquid leg, and a market order on the more liquid leg is the common practice. This works well for exchanges like Binance since they generally have sufficient depth of bids/asks that will allow for accurate prediction of the price that will be paid for the fill.
If you are doing triangular arbitrage within Binance, the main focus and priority will be on the speed of execution rather than optimizing fees. Therefore, the most common way to execute these trades will be via market orders on each leg of the triangle. The advantage of using market orders instead of limit orders in this scenario is that you are guaranteed to get filled so long as there is a market price available.
When there is an active market on Binance, the BTC/USDT order book typically shows $1M worth of bids and asks in the order book within 0.10% of the mid-point price (which is usually the average of the best-bids and best-asks). Therefore, when trading under $50,000, the market impact to your order will be negligible. However, once you begin trading greater than $200,000 per leg, obtaining partial fills at prices worse than expected could have a material impact, especially when trading lower-volume Alt Coin pairs.
Make sure to always take a snapshot of the order book prior to executing a large position to ensure that the current order book data accurately reflects the current depth of bids/asks. Do not just rely on cached order book data from prior polling cycles to size your orders.
In order to withdraw any funds from your account, Binance requires two-factor authentication and will not allow you to withdraw funds for 24 hours after you make a security setting change (change in password or 2FA device). These delays will be disruptive to any type of operational strategies that rely on quickly moving capital between exchanges. The best solution to this problem is to pre-position capital for both legs of the trade to avoid relying on continually moving capital, as you may run into days where you cannot complete the trades as expected. Maintain an open balance on each exchange that will allow for multiple cycles of the strategy to be completed from both exchanges before rebalancing is performed. The rebalancing transfers should also be scheduled to occur during the slower off-peak times when there will be fewer opportunities for such trades.
Unverified accounts only have access to a withdrawal limit of 0.06 BTC per day for withdrawals. The standard KYC level allows for a withdrawal limit up to the equivalent of 100 BTC worth of withdrawals, with institutional accounts allowed to withdraw a greater amount, but subject to review from the institution’s institutional team at Binance. An arbitrage strategy with a mid-strategy withdrawal limit would create a capital restriction that would not be easy to overcome quickly in a timely fashion. Completing full KYC is essential for any arbitrage strategy requiring significant trade volume; KYC should be completed before deploying capital for that strategy.
Binance publishes its scheduled maintenance plans through both the Binance system status page and on its official Telegram; these are typically scheduled 30 – 60 minutes in advance of when they are to occur. Unscheduled outages do happen at a low frequency but do occur frequently enough as to be a focus of concern for any arbitrage trading bot. Any arbitrage trading bot should have a circuit breaker that will automatically shut down arbitrage trading upon receiving multiple errors from the Binance REST API, in addition to the circuit breaker stopping trading and cancelling any open orders when the WebSocket connections between service providers have dropped and that trade connection could not reconnect. There will also be an uncovered directional conditional exposure on a future contract on Binance that has a matching condition leg at a non-Binance exchange, which will be covered only if the condition leg of that trade does not have any loss or gain at the time of the service interruption.
In the case of larger monthly price fluctuations, we can see that price changes tend to happen after the start of each month and again after the middle of each month. For daily price changes, there is much less consistency and no clear pattern across the months.
In a stable (zero-fluctuation) market we would expect to have many consistent daily price changes over very short periods but limited daily price changes over longer periods, e.g. daily price changes (over time) that were greater than 0% will tend to have less than 0% chance of happening in an unstable (no long-term price fluctuation) market than they will in a stable (no long-term price fluctuation) market.
Picture this:
- You enter a position on day one of this month with a daily price change for zero at the end of day one (day four). On day four, if you close your position, there is no guarantee that the price has changed from day one to day four. However, because we can see that there is a pattern of daily price change in the two weeks leading up to day four, we will have some probability of making a return based on what the price is today at the end of day twenty-one of the last month (day twenty-nine), and
- You enter the same position on day twenty-eight of this month with a daily price change for zero again at the end of day thirty-one (day thirty-three). On day thirty-four you will have no guarantee that the price will change from day twenty-eight to day thirty-four, but again, due to the price change pattern for two weeks before day thirty-four we will have some probability of making a return based on what the price is at the end of day forty-four.
You can see that over time, through repeated attempts, many different daily price changes from the same price—the same price over different periods—with different probabilities of price changes from each of the periods due to time, as well as from changes in the market. If the premium becomes higher than the convergence point before the strategy fails or if the funding rate goes negative, therefore charging the short position for the loss.
There are no withdrawal fees with this strategy since both legs are on Binance's unified account structure.
Binance has over 350 spot pairs available for triangular arbitrage and allows for simultaneous use of multiple triangular arbitrage cycles. For example, an example of a standard triangular arbitrage cycle is BTC-USDT to ETH-BTC to ETH-USDT. In order to determine profitability of this cycle you would calculate as: (1/BTC_USDT price) * (1/ETH_BTC price) * ETH_USDT price > 1 + total fees. If you are using a 0.1% taker across 3 legs then you will need price discrepancies larger than 0.3% to make a profit after paying for trading fees. These types of opportunities generally do not last long due to the volume of arb bots operating on Binance's order books. Automating this type of transaction requires that your latency to Binance's matching engine be less the 10 milliseconds.
Binance is often the high liquidity anchor when utilizing cross exchange arbitrage strategies, meaning that it is the place you will ENTER or EXIT A POSITION because they will accept your orders with a very predictable slippage (i.e., you will fill at or very near the price you expected). The leg of an arbitrage transaction that trades opposite your position will occur on a smaller trading platform where there will be a wider price-discrepancy between the two exchanges. Your profit is the difference between the spread and total fees and transferred cost for all legs of the transaction. In order to transfer funds in connection with this structure, TRC20 USDT transfers should be used as they have a flat fee structure of 1 USDT. When considering the substantial cost difference (15x) between the two different transfer network types, the decision of which transfer type to use will be the primary consideration when implementing your cross-exchange strategy.
Are you interested in using arbitrage for both Binance and ArbitrageScanner to make trades?
An important way to keep your arbitrage advantage is to obtain as much data on the spreads between exchanges — especially for Binance. It is crucial to get both historical and current spread data when deciding if an arbitrage trade is worth taking. Historical spread data will help you determine which pairs on Binance to use as part of systematic arbitrage strategies, while current spread data will tell you what to expect to make or lose by executing an arbitrage trade.
When looking for potential arbitrage opportunities using Binance, you will need to evaluate your fee structure for each arbitrage trade prior to executing the trades so that your net fee adjusted spread calculation is accurate. When calculating the net fee adjusted spread of an arbitrage trade on Binance, you will also need to take into account the average fees charged by the withdrawal network you are using because failure to do this will result in the arbitrage opportunity showing you the gross spread for the trade but not what will be a realizable gain.
Five important things to remember when arbitraging on Binance with ArbitrageScanner's data feed:
Monitoring the funding rates before entering into a cash-and-carry position is a wise move because a large majority of the time, the reason that a cash-and-carry strategy does not perform as expected is when the funding rates move against your short side of a position.
Yes - with a few qualifications. Binance has sufficient liquidity to accommodate most of the virtual currency pairs, and it can be used as an effective centre for cross-exchange and triangular arbitrage. The fee structure is relatively low, especially if you hold any BNB or have sufficient volume to qualify for one of the VIP tiers. However, users will run into issues with fund disbursements for confirmation purposes, API rate limits, and required maintenance windows, and will need to create mitigative measures around these limitations; with proper planning, these are manageable.
There are three classifications of fees that you should know about: spot trading fees (0.1% maker/taker at the basic level, can be lowered to 0.075% with BNB); futures trading fees (0.02% maker and 0.05% taker for USDⓈ-M); and withdrawal fees. When implementing cross-exchange strategies, the selection of withdrawal methods (TRC-20 USDT at a cost of 1 USDT versus ERC-20 USDT at a cost of 15 USDT) may have a greater impact on the actual fee for each of your trades than the differences in tier volume levels; it is critical to calculate all three classifications of fee types when establishing a projected profitability threshold.
Yes. You can utilise the REST and WebSocket APIs that Binance has developed for completely automated trading, and programmatic placement of orders is specifically allowed. There is, however, a limitation of using the Binance API based upon the weight of each API call, with each IP address being limited to 1200 API calls per minute. An effectively designed arbitrage bot would be able to consume all of the market data via WebSocket and only use REST to place orders and provide account information; therefore, an arbitrage bot should have no problem remaining well below the 1200 calls per minute limit, while operating at a normal frequency to execute arbitrage trades. Binances's API documentation can be found here: https://binance-docs.github.io/apidocs/spot/en/.
Assuming a KYC-compliant trader, the withdrawal limit is currently equivalent to 100 BTC every 24 hourly periods, which should satisfy the vast majority of traders, with the exception being institutional traders. The primary issue with regard to the impact on arbitrary trading is that of the waiting period for funds to be confirmed and the 24-hour freeze/suspension period that is associated with security changes (e.g., password changes). Traders who have "pre-positioned" their capital at multiple exchanges would not be subject to the withdrawal limits, as they could withdraw their capital from one exchange to the other at any time and not move their capital reactively, therefore not subjecting themselves to withdrawal limits.
Using the Binance infrastructure, there are three commercial structures that have been very successful in arbitraging on Binance: 1) cash-and-carry arbitrage in which the premium is collected between the price of perpetual contracts listed on Binance and the underlying spot market using the funding payment (and the fact that you do not need to remove from Binance in order to take place in either side of the arbitrage) ; 2) triangular arbitrage in which the price discrepancies between three different spot markets is fully utilized to complete an arbitrage trade listed on Binance and executed with less than 10 milliseconds total latency and obtain a profit; and 3) cross-exchange arbitrage by utilizing Binance as a liquid anchor for trading with the smaller exchanges and transferring your capital to and from your trading partner quickly and at a low cost by using TRC-20 stable-coins to execute the trades.
Get a subscription and access the best tool on the market for arbitrage on Spot, Futures, CEX, and DEX exchanges.
