Skip to main content

Self Match Prevention

What is SMP?

With the Self Match Prevention function users can choose the execution method when placing an order. When the counterparty is the same UID or belongs to the same specified SMP group, the execution can be effected accordingly:

  1. Cancel maker: Cancel the maker order when executed; taker order remains.
  2. Cancel taker: Cancel the taker order when executed; maker order remains.
  3. Cancel both: Cancel both taker and maker orders when executed.

How to set SMP?

Check request params of Place Order. Specify parameter smpType when place the order

What is SMP Trade Group?

  • SMP is available for any user by UID level.
  • SMP Trade Group Management is only available for institutions at present.

SMP Trade Group: refers to a group of UIDs. When any of the UIDs in this group places an order and the SMP execution policy is selected, it will be triggered when the maker order under any of the UIDs in this group is matched.

More details:

  1. Each UID can only join one SMP Trade Group.

  2. SMP Trade Group is a UID-level management group, so when a main-account joins an SMP Trade Group, all the sub-accounts under this main-account will automatically join the Trade Group as well.

  • If the main-account has already joined an SMP Trade Group, and a sub-account is created after it, this new sub-account will automatically join the same SMP Trade Group by default.
  • A sub-account does not have to be tied to the same SMP Trading Group as the main-account. It is only the default behaviour. It can be reset into different groups manually if needed.
  1. The relationship between SMP Trade Group and UIDs can be changed: when a UID joins a new SMP Trade Group or is removed from an SMP Trade Group. This operation will not affect the pre-existing orders, it will only affect the newly placed orders after the relationship has changed.

Notes: Based on this, we strongly suggest that when there will be an SMP Trade Group change, you should cancel all pre-existing orders to avoid an unexpected execution.

  1. The SMP Trade Group has a higher priority on SMP execution, so an individual UID is only taken into account when there is no SMP Trade Group on either side.

  2. Once the order is standing in the orderbook, its SMP flag doesn't matter any more. The system always follows the tag on the latter order.

1st of Jan: UID1 joins SMP Trade Group A, and places Order1;
2nd of Jan: UID1 is removed from SMP Trade Group A, but Order1 is still active and "New"

  • case1: If UID1 joined SMP Trade Group B, and placed Order2, if Order2 meets Order1, it will be executed since they belong to two different groups.
  • case2: If UID1 did not join any other groups after being removed from SMP Trade Group A, and placed Order2, if Order2 meets Order1, the SMP will be triggered because UID1 did not have a group when it placed Order2, so SMP was triggered at the UID level (the same UID1).

How to manage my UIDs & SMP Trade Group?

You can contact your institutional business manager or email Bybit via:

Supported OpenAPI Versions and Product Lines

Product linesOpenAPI version supportedComments
SpotV3 (normal account)
V5 (unified & normal account)
ContractContract V3 (normal account): USDT perpetual / Inverse perpetual & futures
V5 (unified account): USDT perpetual / Inverse perpetual & futures / USDC perpetual & futures
V5 (normal account): USDT perpetual / Inverse perpetual & futures
OptionV5 (unified account)V1 has a default SMP at UID level