Placing Orders
Learn how to trade on PercolatePerps
PercolatePerps supports various order types for flexible trading strategies.
// Example: Place a limit order
const capability = await client.createCapability(wallet, {
expiry: Date.now() + 120_000, // 2 minutes
});
const order = await client.placeOrder({
slab: SOL_PERP_SLAB,
side: 'buy',
orderType: 'limit',
price: 187.52,
size: 10,
capability,
postOnly: true, // Optional: ensure maker order
});
console.log('Order placed:', order.orderId);Order Types
Market Orders
Execute immediately at the best available price. Ideal for entering or exiting positions quickly.
Limit Orders
Set a specific price for your order. Only executes when the market reaches your target price.
Stop Orders
Trigger a market order when a specific price is reached. Perfect for stop-loss and take-profit strategies.
Two-Phase Execution
All orders go through a two-phase reserve-commit process to prevent MEV attacks:
// Phase 1: Reserve resources
const reservation = await slab.reserve_order({
user_escrow: user.escrow,
order_params: { price, size, side },
});
// Phase 2: Commit transaction (atomic)
const result = await slab.commit_order({
reservation_id: reservation.id,
signature: user.sign(reservation),
});1
Reserve Phase
Resources are reserved and locked for the transaction
2
Commit Phase
Transaction is executed atomically with reserved resources