Concept: Maker vs Taker Fee Structure
One of the greatest competitive advantages of Revolut X is its fee schedule:
| Execution Type | Fee Rate | Description |
|---|---|---|
| Maker | 0.00 % | Order adds liquidity to the order book (Limit order resting in the book). |
| Taker | 0.09 % | Order takes liquidity from the order book (Market order or immediate limit match). |
For systematic or automated trading strategies, the difference between 0.00% and 0.09% represents substantial compound fee savings over time.
The post_only Protection
When submitting standard limit orders, volatile market movements may cause the order to match immediately with an existing order. In that scenario, the exchange would classify it as a Taker and charge 0.09%.
The post_only = true flag:
- Guarantees the order enters the order book strictly as a Maker.
- If the order would match immediately upon placement, the exchange automatically cancels/rejects it without charging any fees.
Dynamic Maker Price Calculation
The SDK's MakerOrderStrategy evaluates live order book depth and calculates an optimal limit price with a configurable safety offset:
- For BUY orders: $$\text{price} = \text{best_bid} - \text{offset}$$
- For SELL orders: $$\text{price} = \text{best_ask} + \text{offset}$$
The calculated price is then quantized to the market's required minimum price increment (tick_size).
Code Example
use RevolutX\Client;
use RevolutX\Types\OrderSide;
$client = new Client(apiKey: '...', privateKeyPath: 'keys/private.pem');
// Automatically fetches the live book, applies 0.10 EUR offset, and submits post_only=true
$order = $client->placeMakerOrder(
symbol: 'BTC-EUR',
side: OrderSide::BUY,
quoteSize: '50.00',
offset: '0.10'
);