Syndr operates an offchain high-performance limit orderbook. This orderbook receives trades in the form of signed messages. Trades sign these using their unique keys linked to their device and/or account. These signed orders are generated automatically if trading via our custom interface. Order signing can also be done simply on a trader's machine if trading exclusively via APIs. These signed orders are then sent to the orderbook for processing. A validation service is responsible for rejecting all improperly signed/formatted messages. After validation, the message is forwarded to our risk engine, which calculates if the trader has sufficient margin to open this position.
Syndr's matching engine uses the FIFO algorithm for matching all incoming orders. FIFO is based upon a Price-time priority mechanism where the price and time are the only criteria used for filling incoming orders. Orders are executed based on price-time priority as received by the matching engine after passing through the risk engine. The matching engine also restricts users from trading with themselves, and any orders which try and execute with counter orders from the same account are rejected.