The current implementation of limit orders for both Spot and Margin trading has some limitations.
Wallet support for pre-signed transactions is required for the limit orders feature. Some Web3 wallets do not support this.
Current known working wallets are:
- Ledger (direct connection or via web3 wallet)
- Nifty (deprecated, but supported)
- Some WalletConnect-compatible wallets (uncertain about which specific wallets have pre-signed transactions enabled— the protocol supports it but individual wallet implementation may vary)
Current known non-working wallets are:
- Trezor (direct connection or via web3 wallet)
- Some WalletConnect compatible wallets (uncertain about which specific wallets have pre-signed transactions enabled—the protocol supports it but individual wallet implementation may vary)
Minimum order size of $100 is required for Spot Limit Orders and $200 for Margin Limit Orders.
Maximum order size of 1 BTC is enforced for Spot & Margin Limit Orders.
- Partial fills of Limit Orders are not supported at present. The position will fill completely or not at all.
- During periods of high volatility, especially where many transactions are processed in a single block, it is possible that a Limit Order will not be executed if it would result in the user receiving fewer tokens or a worse entry price than shown when the order was placed. Future iterations of the system will allow for partial fills if it is possible for a portion of the trade to be executed at the Limit Price. This capability is already supported at the contract level, but the full system needs to be built out.
- The system will execute a Limit Order if it is possible to fill the order at a better price than the limit price the user entered. In this case users will receive more tokens than expected with a Spot Limit Order or a better entry price with a Margin Limit Order (a higher entry price for a Short position or lower entry price for a Long position). See the Limit Orders page for more details on how fees are applied and calculated on orders.
This behavior protects users from trades executed at a loss, however it may mean that the current asset price may need to exceed the defined limit price by a few percent, in order to provide the user with the desired number of tokens after fees are deducted.
Currently there is an issue affecting the MoC price oracles on our testnet environment, which will cause limit orders using BPRO, DoC, or MoC to fail/not be executed. This should not occur on mainnet.
Ledger wallet (connected directly to the dapp or via Metmask or another Web3 wallet) cannot be used on Testnet environment.