BitMEX FAQ
Account
Why am I not receiving emails from BitMEX?
If you’re not receiving emails from BitMEX, try the following troubleshooting steps:
- Check the Spam filters in your mailbox. There is a chance our email may have ended up in your Spam or Promotions folders.
- Ensure BitMEX support email is added to your email whitelist and try to request the emails again.
If you are still not receiving emails from us, please contact us using the email address linked to your account. We will further investigate why emails are not being delivered.
Can I have more than one BitMEX account?
You can only register one BitMEX account, however, you can create up to 5 subaccounts tied to that one.
How can I change my email address?
To change the email address that’s associated with your BitMEX account, please reach out to support.
How can I close/delete my account?
To close your account, there are two options available depending on whether or not you have the BitMEX app downloaded.
If you have the app, you can request to close your account by following these steps:
- Tap on the More tab located at the bottom of the navigation menu
- Select Account and scroll down to the bottom of the page
- Tap on Delete account permanently
If you don’t have the app downloaded, you can reach out to support asking them to close your account.
Why was my account marked as spam?
If an account has too many open orders with a gross value of less than 0.0001 XBT, the account will be labeled as a spam account and all proceeding orders that are smaller than 0.0001 XBT in size will automatically become hidden orders.
Spam accounts are re-evaluated every 24 hours and may return to normal provided that trading behaviour has changed.
For more details on the spam mechanism please see our REST API docs on Minimum Order Size.
What is a Two-factor token (2FA)?
Two-factor authentication (2FA) is an extra layer of security used to make sure that people trying to gain access to an online account are who they say they are. If you have 2FA enabled on your BitMEX account, you would only be able to log in if you’ve also entered the 2FA code generated by your 2FA device.
This prevents hackers with stolen passwords from logging into your account without additional verification from your phone or security device.
Is 2FA mandatory?
To enhance account security, 2FA has become mandatory for on-chain withdrawals as of 26 October 2021 at 04:00 UTC.
How do I enable 2FA?
1. Go to the Security Centre.
2. Click the Add TOTP or Add Yubikey button.
3. Scan the QR code using your mobile device with your preferred authentication app
4. Enter the security token the app has generated into the Two-Factor Token field on BitMEX
5. Click the Confirm TOTP button
What happens once I enable 2FA?
Once you’ve successfully confirmed it, 2FA will be added to your account. You will need to enter the 2FA code your device generates every time you wish to log in or withdraw from BitMEX.
What if I lost my 2FA?
Setting up 2FA again using Authenticator Code/QR code
If you keep a record of the Authenticator code or QR code that you see on the Security Centre when you click Add TOTP or Add Yubikey, you can use that to set it up again on your device. These codes are only visible when you set up your 2FA and will not be there after your 2FA is enabled already.
All you’ll need to do to set it up again is to scan the QR code or enter the Authenticator code into Google Authenticator or the Authy app. It will then generate the one-time passwords you can enter into the Two Factor token field on the login page.
Here are the exact steps you would need to take:
- Install and open an authenticator app on your device
- Add account (+ icon for Google Authenticator.Setting Add Account for Authy)
- Select Enter Setup Key or Enter Code Manually
Disabling 2FA through Reset Code
Once you have added 2FA to your account, you can get a Reset Code at the Security Centre. If you write it down and store it somewhere safe you’ll be able to use it to reset your 2FA.
Contacting Support to disable 2FA
As a last resort, if you don’t have your Authenticator or Reset code, you can contact Support, asking them to disable your 2FA. Through this method, you’ll need to complete an ID verification which can take up to 24 hours to get approved.
Why is my 2FA invalid?
The most common reason 2FA is invalid is because the date or time is not set up correctly on your device.
To fix this, for Google Authenticator on Android, please follow the steps below:
- Open the Google Authenticator app
- Go to Settings
- Click on Time correction for codes
- Click Sync Now
If you’re using iOS, please follow the steps below:
- Open your device’s Settings
- Go to General Date Time
- Turn on Set Automatically and allow your device to use its current location to determine the correct time zone
My time is correct but I’m still getting invalid 2FA
If your time is set up correctly and it’s in sync with the device you’re trying to log in from, you could be getting invalid 2FA because you’re not entering the 2FA for the platform you’re trying to log into. For example, if you also have a Testnet account with 2FA and you’re accidentally trying to use that code to log in to the BitMEX mainnet, it will be an invalid 2FA code.
If that’s not the case, please have a look at What if I lose my 2FA? article to see what you can do to get it disabled.
Why should I enable 2FA on my account?
Securing your account with two-factor authentication (2FA) is one of the most important steps when opening any cryptocurrency trading account or wallet. 2FA makes it extremely difficult for bad actors to access your account, even if your email address and passwords are compromised.
If I already have a BitMEX account, do I need to create a new account to use Testnet?
Testnet is an isolated platform from BitMEX so you will still need to Register on Testnet even if you have an account on BitMEX.What is BitMEX Testnet?
BitMEX Testnet is a simulated environment specifically for testing and practicing trading strategies without using real funds. It allows traders to experience the functionalities of the platform, execute trades, and access market data in a risk-free setting.
It’s highly recommended for novice traders who want to gain experience and confidence in their trading skills before transitioning to live trading with real funds. It’s also helpful for experienced traders to refine their strategies and validate their trading algorithms without risking their capital.
Why is the price different on BitMEX and Testnet?
The price movements on Testnet are always different from BitMEX because it has its own Orderbook and trading volume.
While the real market movements may not necessarily be reflected on it, it can still be used for its purpose - to familiarise yourself with the same trading system BitMEX uses.
Verification
Are there minimum thresholds below which users don’t have to verify?
No-user verification is required for all users who want to trade, deposit, or withdraw, regardless of volume or amount.Our user verification process is fast and intuitive and for most users should take no more than a few minutes.
How long does it take to process user verification?
We aim to respond within 24 hours. Most users should receive a response within a few minutes.
Deposit
Can I deposit directly from my bank?
At the moment, we don’t accept deposits from banks. However, you can use our Buy Crypto feature where you can purchase assets through our partners which get directly deposited into your BitMEX wallet.
Why is my deposit taking a long time to get credited?
Deposits are credited after the transaction receives 1 network confirmation on the blockchain for XBT or 12 confirmations for ETH and ERC20 tokens.
If there is network congestion or/and if you’ve sent it with low fees, it can take longer than usual to get confirmed.
You can check whether your deposit has enough confirmation by searching up your Deposit Address or Transaction ID on a Block Explorer.
Withdrawal
Where is my withdrawal?
If you’ve submitted a withdrawal request and you’re wondering why you haven’t received the funds yet, you can refer to its Status on the Transaction History page to see where it’s at:What are the withdrawal stages and what do the statuses mean?
Status | Definition |
---|---|
Pending |
Your withdrawal is waiting for you to confirm the request with your email. Make sure to check your inbox and confirm it within 30 minutes of your request to prevent it from getting canceled. If you haven’t received a confirmation email, refer to Why am I not receiving emails from BitMEX? |
Confirmed |
Your withdrawal was confirmed on your end (through your email if it was required) and is waiting to be processed by our system. All withdrawals, except XBT, are processed in real time. XBT withdrawals that are smaller than 5 BTC are processed hourly. Larger XBT withdrawals or those that require additional security screening are processed only once per day at 13:00 UTC. |
Processing | Your withdrawal is being processed by our system and will be sent out shortly. |
Completed |
We’ve broadcast your withdrawal to the network. This doesn’t mean the transaction has been completed/confirmed on the blockchain - you’ll need to check that separately using your Transaction ID/address on a Block Explorer. |
Canceled |
Your withdrawal request was unsuccessful. |
My withdrawal has been completed but I still haven’t received it:
Before you can get to the bottom of why your withdrawal is taking a while, you’ll first need to check the status of it is on the Transaction History page:
If the Status doesn’t say Completed, You can use this guide to figure out where your withdrawal is and when it will be completed.
If your withdrawal has been completed on our end already, and you haven’t received it yet, it could be because the transaction is currently unconfirmed on the blockchain. You can check whether that’s the case by entering the TX shown on Transaction History on a Block Explorer.
How long will the transaction take to get confirmed?
The time it will take for miners to confirm your transaction on the blockchain will depend on the fee paid and the current network conditions. You can use this third-party tool to see an estimated wait time per fee paid
What if the network is congested?
Unfortunately, in certain network conditions, like congestion, transactions can take hours or days to get confirmed. It’s also especially the case if they were sent with a low fee compared to the current requirement.
Rest assured that your transaction should get confirmed eventually, it’s just a matter of time.
Is there anything I can do?
Once your transaction has been broadcasted, there isn’t anything you need to do as it’s a waiting game at this point.
If you would like to speed up your transaction, there are Bitcoin transaction accelerators (through 3rd party sites) that can help with that.
You can also use this third-party tool to see an estimated wait time per fee paid.
My withdrawal has been in Processing for a while now:
There may be a manual review of your withdrawal attempt to ensure its legitimacy, which may delay the processing of your withdrawal. If it’s been in that status for hours now, please reach out to Support so they can check on it.
Why are my withdrawals disabled? (Withdrawal Ban)
If you have a temporary withdrawal ban on your account, it could be due to the following security reasons:
- You’ve reset your password within the last 24 hours
- You’ve enabled 2FA on your account within the last 24 hours
- You’ve disabled 2FA on your account within the last 72 hours
- You’ve changed your email address within the last 72 hours
The withdrawal ban for these cases will be automatically lifted once the times mentioned above have passed.
Why was my withdrawal canceled?
If your withdrawal was canceled, it was likely because you didn’t confirm it through your email within 30 minutes of making the request.
After submitting a withdrawal, please check your inbox for the confirmation email and click on the View Withdrawal button to confirm it.
Are there any withdrawal limitations?
Your entire Available Balance can be withdrawn at any time. This means that Unrealised Profits cannot be withdrawn, they must be realized first.
Furthermore, if you have a cross position, withdrawing from your Available Balance will reduce the amount of margin available to the position and in turn affect the liquidation price.
See the Margin Term Reference for more information about the definition of Available Balance.
How do I cancel my withdrawal?
How to cancel your withdrawal and whether it’s possible depends on the withdrawal’s status, which can be seen on the Transaction History page:
Withdrawal Status |
Action to Cancel |
---|---|
Pending |
Click View Withdrawal in the verification email |
Confirmed |
Click cancel this withdrawal in the confirmation email |
Processing |
Contact Support for possible cancellation |
Completed |
Cannot be canceled; already broadcasted to the network |
Is there a withdrawal fee?
BitMEX does not charge a fee to withdraw. However, there is a minimum Network Fee that is paid to the miners who process your transaction. The Network Fee is set dynamically based on network conditions. This fee does not go to BitMEX.
When are withdrawals processed?
All withdrawals, except XBT, are processed in real-time.
For XBT, they are processed once a day at 13:00 UTC, unless they meet the following requirements for it to be processed on an hourly basis instead:
- Size is smaller than 5 BTC
- Withdrawal doesn’t require additional security screening
- Funds in our Hot Wallet are not depleted
Trading
Is ROE my Realised PNL?
Return on Equity (ROE) is not the same as Realised PNL (Profit and Loss). ROE measures the percentage return on your trading capital, factoring in the impact of leverage, while PNL represents the actual financial gain or loss from your trades. They are related but distinct metrics, each providing valuable insights into your trading performance from different perspectives.
What is ROE?
ROE is a percentage measure that indicates the return on your equity. It shows how much profit you have made relative to your initial investment. The formula for calculating ROE is:
ROE% = PNL % * Leverage
What is Realised PNL?
PNL represents the actual profit or loss you have realized from your trades. It is calculated based on the difference between your Average Entry Price and Exit Price for each trade, considering the number of contracts traded, the multiplier, and fees. PNL is a direct measure of the financial gain or loss from your trading activities. The formula for calculating it is:
Unrealised PNL = Number of Contracts * Multiplier * (1/Average Entry Price - 1/Exit Price)
Realised PNL = Unrealised PNL - taker fee + maker rebate -/+ funding payment
Can ROE% be higher than the PNL value?
It is possible to see a higher ROE% than your PNL because ROE% takes into account the leverage you have used, while PNL calculation does not. For example, if you have a 2% PNL and you used 10x leverage, your ROE% would be 20% (2% * 10). In this scenario, the ROE% is higher than the PNL due to the impact of leverage.
Similarly, if two positions have identical values but different leverage levels, the position with higher leverage will show a larger ROE, while the actual PNL amount will remain the same for both.
Why didn’t my Stop Order trigger before I was liquidated?
Why your Stop Order wasn’t triggered before you were liquidated depends on a lot of factors (such as the order type, execution instructions, and market movement). Here are some common reasons positions get liquidated before the Stop Order is triggered:
Text | Order Type Execution Instructions | Reason |
---|---|---|
Rejected: Position in liquidation |
Order Type: Stop Limit or Market execs: Last |
Liquidations are based on Mark Price. Since the Mark Price can differ from the Last Price, it’s possible for Mark Price to reach your Liquidation Price before the Last Price can reach your Trigger/Stop Price. To make sure your Stop order triggers before you’re liquidated, you can set the Trigger Price to Mark or place your Stop Order further from your Liquidation Price. |
Canceled: Position in liquidation Canceled: Cancel from BitMEX if it was canceled by you. |
Order Type: Stop Limit |
When you place a Limit Order with the Stop Price and Limit Price close together, you run the risk in periods of high volatility that your order will be triggered, sit in the Oderbook, and won’t get filled. This is because the price moves past your Limit Price immediately after it is triggered and before the order can be filled. To prevent your order from sitting in the order book, it is safer to use a larger spread between your Stop Price and your Limit Price as it will ensure there is enough liquidity between the two prices to fill your order |
Rejected: Position in liquidation Rejected: Executing at the order price would lead to immediate liquidation |
Order Type: Stop Market no "execInst: Last" or "execs: Index" (implying a trigger price of "Mark") |
Once a stop order is triggered, an order is submitted to the exchange; however, in a fast-moving market, users may experience slippage. Due to that, the Mark Price could reach the liquidation price before the order can be executed. Also, if your Stop Market order is close to your Liquidation price, it’s especially possible that, by the time the Stop triggers and the Market Order is placed, the order book moves to a range where it can’t fill before your liquidation. |
Why has my Liquidation Price changed?
Your Liquidation Price could have changed if:
- You changed your leverage,
- You are on cross-margin,
- You manually removed/added Margin from/to the position,
- or margin was lost through funding payments
Why was I liquidated if the price on the chart didn’t reach my Liquidation Price?
The candlesticks shown on the Trading Chart represent the Last Price of the contract and the purple line on the chart represents the Index Price. The Mark Price, by which positions are liquidated, is not shown on the chart and that’s why you don’t see that your Liquidation Price has been reached.
To confirm that the Mark Price has reached your Liquidation Price.
Why was my order canceled/rejected?
Where can I see the reason my order got canceled?
To see why your order was canceled/rejected, you can refer to the Text column on the Order History page. Click on the? icon to display the entire text:
If you want to double-check whether your order really met the requirements for that text (such as "had execInst of ParticipateDoNotInitiate"), you can hover over the Type value in the Order History tab on the Trade page. It will tell you all the instructions/details you’ve set up for that order.
Explanations of Canceled/Rejected Texts
Text | Type and Instructions | Reason |
---|---|---|
Canceled: Cancel from www.bitmex.com | N/A | If you see this text, it means the order was canceled by you through the site |
Canceled: Cancel from API | N/A | The order was canceled by you through the API |
Canceled: Position in liquidation | N/A |
The order was canceled because your position entered liquidation. All open orders, including untriggered stops, will be canceled when a position enters liquidation. Once your position has been liquidated you are free to place new orders. |
Canceled: The order had an exercise of ParticipateDoNotInitiate | ExecInst: ParticipateDoNotInitiate |
ParticipateDoNotInitiate refers to the "Post Only" checkmark. "Post Only" orders get canceled if they are to be filled immediately. If you don’t mind getting filled immediately and paying the taker fee, you can just uncheck this box. Otherwise, you’ll need to change your Limit Price to make sure your order is not going to get filled as soon as it hits the order book. |
Canceled: Order had execInst of Close or ReduceOnly but current position is X |
ExecInst: Close or ExecInst: ReduceOnly |
ExecInst: Close refers to the "Close on Trigger" check. If "Close on Trigger" or "Reduce Only" is enabled for an order, it will get canceled if it were to increase your position size. If you’re looking to increase your position size, make sure you uncheck this. Otherwise, make sure the size of your order equals your open position size and is in a different direction. |
Canceled: Order had execInst of Close or ReduceOnly but open sell/buy orders exceed the current position of X |
ExecInst: Close or ExecInst: ReduceOnly |
In the case that you have open orders already totaling more than your open position, we will cancel your order instead of letting it trigger, as there is a chance that this order could open a new position; closing orders prevent this from happening |
Cancelled: The account has insufficient Available Balance or Rejected: Account has insufficient Available Balance |
no "ExecInst: Close" or no "ExecInst: ReduceOnly" |
Your available balance is less than the required margin to place the order. If it’s a close order, you can avoid the margin requirement with "Reduce Only" or "Close on Trigger". Otherwise, you’ll need to either deposit more funds or adjust your order to require less margin. |
Rejected: Executing at the order price would lead to immediate liquidation | N/A | The engine calculated the average fill price for your order and found that it would draw the entry price over the liquidation price. |
Rejected: Value of position and orders exceeds position Risk Limit | N/A | When the stop was triggered, the net value of your position plus all open orders exceeded your risk limit. Please read the Risk Limit document for more information on this. |
Rejected: Order price is below liquidation price of current [Long/Short] position | N/A | The Limit Price of your order is below the Liquidation Price of your current position. This is not automatically canceled at submission because we cannot predict what the Liquidation Price will be when the order triggers. |
Rejected: Order Submission Error | N/A |
When load spikes, we cannot service every incoming request while maintaining acceptable response times, therefore we implemented a cap on the maximum number of requests that can enter the engine queue, after which, new requests are rejected until the queue has shrunk. If your order gets rejected for this reason, you’ll see this text or "System Overload" message.
|
Rejected: Aggressive limit/pegged orders have exceeded far touch size and price thresholds | N/A | We protect the integrity of the market against large aggressive orders that are likely due to an input error and which may severely affect prices. This is referred to as the Fat Finger Protection Rule. If you see this text, the order violated this rule. For more details on it, please refer to Trading Rules: Fat Finger Protection |
Canceled: Order had timeInForce of ImmediateOrCancel |
Type: Limit TIF: ImmediateOrCancel |
When timeInForce is ImmediateOrCancel, any unfilled portion is canceled after the order is placed. |
Canceled: Order had timeInForce of ImmediateOrCancel |
Type: Market TIF: ImmediateOrCancel |
When a Market order is triggered, the Engine calculates an effective limit price for the order based on information such as your account balance, to complete necessary risk checks. If due to liquidity, the order cannot be executed before reaching the effective limit price, the order will be cancelled with the message you received |
Canceled: Order had timeInForce of FillOrKill |
Type: Limit TIF: FillOrKill |
When timeInForce is FillOrKill, the entire order gets canceled if it can’t immediately fill fully once it gets executed. |
Why didn’t my Stop order trigger before I was liquidated?
Text | Type Instructions | Reason |
---|---|---|
Rejected: Position in liquidation |
Order Type: Stop Limit or Market execs: Last |
Liquidations are based on Mark Price. Since the Mark Price can differ from the Last Price, the Mark Price can reach your Liquidation Price before the Last Price can reach your Trigger/Stop Price. To make sure your Stop order triggers before you’re liquidated, you can set the Trigger Price to Mark or place your Stop Order further from your Liquidation Price. |
Canceled: Position in liquidation Canceled: Cancel from BitMEX if it was canceled by you. |
Order Type: Stop Limit |
When you place a Limit Order with the Stop Price and Limit Price close together, you run the risk in periods of high volatility that your order will be triggered, sit in the Oderbook, and won’t get filled. This is because the price moves past your Limit Price immediately after it is triggered and before the order can be filled. To prevent your order from sitting in the order book, it is safer to use a larger spread between your Stop Price and your Limit Price as it will ensure there is enough liquidity between the two prices to fill your order |
Rejected: Position in liquidation Rejected: Executing at the order price would lead to immediate liquidation |
Order Type: Stop Market no "execInst: Last" or "execs: Index" (implying a trigger price of "Mark") |
Once a stop order is triggered, an order is submitted to the exchange; however, in a fast-moving market, users may experience slippage. Due to that, the Mark Price could reach the liquidation price before the order can be executed. Also, if your Stop Market order is close to your Liquidation price, it’s especially possible that, by the time the Stop triggers and the Market Order is placed, the order book moves to a range where it can’t fill before your liquidation. |
Why was my order filled at a different price?
The reason why an order could get filled at a different price depends on the order type. Have a look at the chart below to see the reasons for each:
Order Type | Reason |
---|---|
Market Order |
Market orders do not guarantee a specific fill price and may be subject to slippage. If you wish to have more control over the price you get filled at, we recommend using Limit orders, as that way, you can set a Limit Price. |
Stop Market Order |
A Stop Market Order states that one is willing to buy or sell at the market price when the Trigger Price reaches the Stop Price. Stop Market Orders can get filled at a different price than the Stop Price if the orderbook moves significantly between the time that the order triggers and gets filled. You can avoid slippage by using Stop Limit Orders instead. With Limit orders, it will get executed only at the Limit Price or better. There is a risk, however, that if the price moves sharply away from the Limit Price, there may not be an order to match it and it will end up resting in the order book instead. |
Limit Order |
Limit Orders are meant to execute at the Limit Price or better. This means you can get executed at a Limit Price or lower for Buy orders and at a Limit Price or higher for Sell orders. |
Can I hold multiple positions on the same contract?
It’s not possible to hold more than one position on the same contract using the same account.
However, you can create a Subaccount if you need to hold another position on the contract you’re trading.
Does BitMEX get any cut of the funding fee?
BitMEX does not get any cut, the fee is completely peer-to-peer. The fee is paid either from long positions to shorts, or short positions to longs (depending on whether the fee rate is positive or negative.)
How are orders prioritized?
Orders are filled in price-time priority
Why is my canceled order missing from my Order History?
Canceled, unfilled orders are pruned hourly by the engine for performance optimization purposes which is why they don’t show up in your Order History.
Specifically, terminated orders will be pruned if they satisfy the following conditions:
- not an activated/triggered stop order
- cumQty = 0
- not submitted via BitMEX web UI
You should still be able to find the canceled/rejected order through GET /order with filter {"ordStatus": ["Canceled", "Rejected"]}.
How are the fees calculated for spot trading?
When trading on BitMEX, there are two types of fees: Taker Fees and Maker Fees. Here is what these fees mean:
Taker Fees
- Taker fees are charged when you place an order that is executed immediately at the market price.
- These fees apply when you are "taking" liquidity from the order book.
- The fee amount is calculated based on the appropriate fee tier.
- BitMEX assumes the highest fee based on the fee tier and locks the total order amount plus fees.
Maker Fees
- Maker fees are charged when you place an order that is not executed immediately but instead adds liquidity to the order book.
- These fees apply when you are "making" liquidity by placing a limit order.
- The fee amount is calculated based on the appropriate fee tier.
- BitMEX assumes the highest fee based on the fee tier and locks the total order amount plus fees.
Example Scenario
Suppose you want to place a buy order of 1 XBT (Bitcoin) at a limit price of 40,000.00 USDT (Tether).
- Before executing the trade, the system checks if you have sufficient balance to cover the trade.
- Based on the fee rate of 0.1%, you will need to have at least 40,040.00 USD in your wallet to submit this trade.
- If the actual fee amount, when the order is filled, turns out to be lower than the initially assumed fees, the difference will be refunded to you.