Skip to Content

Advanced Orders FAQ

How are the Limit Orders filled?

Limit Orders are taker orders that are filled either against the AMM or peer-to-peer against a resting maker order, whichever the protocol determines gives the best execution.  The orders are stored and settled on-chain. The queue is constructed by a network of off-chain keepers that are incentivised to fill orders based on age.

Is there a charge for placing an order? Is that charged in SOL or USDT?

Network fees aside, there is no additional SOL charge for placing an order. The taker fee is charged in USDT and is only applied if the trade is filled. If a trade is only partially filled, the fee charged will be for the notional amount filled.

Is there a charge for cancelling an order? Is that charged in SOL or USDT?

No - if you cancel an open order, you will not be charged by the protocol. Fees are only charged on filled orders.

Is my order guaranteed to execute?

These orders are executed ‘best effort’ by the network with special economic incentives designed to mimic the typical execution order seen in a Centralised Limit Order Book (CLOB).

What are conditional limit orders?

Conditional limit orders are stored on-chain in your account’s order slots from the moment you place them. They stay dormant until a keeper calls the trigger instruction once the trigger reference price crosses the price you set, at which point the order becomes fillable, either against the AMM or against a resting maker order.

What is the difference between a Stop Market and a Stop Limit?

See Trigger Market vs. Trigger Limit for how the two activate and fill.

What is the difference between Take Profit Market and Take Profit Limit?

Take Profit Market orders close the position immediately at the best available price once the trigger price is hit. Take Profit Limit orders instead place a limit order at your chosen limit price once triggered, so they fill only if the market reaches that price, and the limit price doesn’t have to match the trigger price.

What is the difference between a Stop Loss and a Take Profit?

Both order types are set on the market when their triggers are met. Where the two orders differ is in their direction. Stop Losses are used for downside protection to close losing positions and Take Profits are used to close positions that are in profit.

Why my stop loss didn’t trigger?

For trigger orders (stop-loss, take-profit), the trigger condition is checked against Velocity’s trigger reference price, not the raw oracle price. The reference price is a clamped median of the oracle price, a recent funding/basis adjustment, and the market’s last fill price, so it can sit slightly away from the raw oracle print. Once triggered, the order still fills at a maker’s limit price or against the AMM, not against the reference price itself, so a plain limit order does not need the reference price to cross anything to fill. For precise historical price data based on the oracle, we recommend switching from ‘Candles: Fills’ to ‘Candles: Oracle’ in the top right corner of the chart.

Even if the reference price triggers your stop, executions are not guaranteed due to the decentralized orderbook. Fillers can place orders in a permissionless manner, operating on a first-come, first-served basis.

If the price briefly matches your order, it may not be executed. We are continually enhancing our filler network. For technically inclined individuals seeking guaranteed fills, you can operate your own filler for personal orders; however, even then, execution cannot be assured. This trade-off is necessary to achieve a decentralized and scalable system.

Occasionally, stale oracle information may result in unfilled orders during certain periods.

My take profit order was triggered, but not filled. Why?

Triggering and filling are two separate steps. Triggering only makes the order eligible to fill, once the trigger reference price crosses your trigger price, a keeper must still submit it, either against the AMM or against a resting maker order, the same as any other order (see “Is my order guaranteed to execute?”). If your order is a Take Profit Limit, it fills only if the market can execute at your limit price or better; if the market moves past your limit price before a keeper fills it, the order stays open and unfilled until the price returns or you cancel it. A Take Profit Market order fills at the best available price once triggered, but is still subject to the same permissionless, best-effort fill process, so a brief delay or network congestion can leave it triggered but momentarily unfilled.

My stop-loss triggered and I lost money, even though the market price never reached my stop level. Why?

Like take-profit orders, stop-loss orders trigger based on Velocity’s trigger reference price, not the raw oracle price or the market’s trading price. If the reference price briefly touched your stop level and then bounced back, your order could have triggered and filled even though the visible market price never reached that level.

What is the difference between a trigger price and a limit price?

  • Trigger price: This price point determines when your order (take profit or stop-loss) gets activated. It uses Velocity’s trigger reference price (derived from the oracle, not the raw oracle price itself) for activation.

  • Limit price: This price specifies the exact price at which your order gets filled. It can be used with stop-loss and take-profit orders to guarantee execution at a specific price, but comes with potential slippage (filling at a slightly different price) and fees.

What does trigger price mean?

Trigger price refers to the price the particular asset needs to hit before the limit order can be executed (against the AMM or against a resting maker order) by a Keeper.

Why is the orderbook constructed off-chain?

Velocity doesn’t construct a central limit orderbook on-chain and instead opts for a flat structure to achieve cost-effective scalability. The network of Keepers monitor on-chain orders and construct their own orderbooks off-chain. This achieves (1) decentralisation (as each Keeper stores its own copy of the orderbook); and (2) computational efficiency (as the high throughput and intensive computations are calculated off-chain).

Theoretically, this should also translate to better performance during periods of high network congestion.

What is reduce-only?

See Order flags for the reduce-only definition.

What are Keeper bots? How can I participate?

A Keeper will track and fill orders and earn a reward. Guide to running different types of Keeper Bots.

Last updated on