Horizon Futures: Dual Oracles and Fees

Horizon Protocol
4 min readNov 21, 2023

In this article, we will go over how oracles will facilitate the data feeds for Horizon Futures and the fees required for using Futures.

Dual Oracles

Oracles are an integral part of decentralized exchanges, including all perpetual futures exchanges, since a price feed is required to track the price of the underlying asset for which the futures contracts can be traded with.

Horizon Futures, a perpetual futures DEX, uses a Dual Oracle system, which combines Chainlink oracles with Pyth oracles to improve performance, security, and reduce trading fees. The reason that the two oracles are needed is that they serve two distinct functions, one that uses a push model, and the other that uses a pull model.

On the one hand, the Chainlink oracle is a perpetual oracle that uses the push model. It gets automatically updated based on a few requirements, whether it be time or upon a certain percentage of price movement achieved. The consistency of data from a push model oracle allows for the visualization of time graphs and the automatic updates of the price facilitates liquidation and circuit breaker mechanics, but falls short on the market clearing price due to latency at the time of trade execution.

On the other hand, the Pyth oracle uses a pull model, where a price gets updated on-chain upon execution of the trade on the blockchain, which then provides the trade with the most recent price, significantly reducing the amount of latency in the price. This means that traders transact at a more exact market clearing price and removes the possibility of oracle latency arbitrage and allows for lower fees due to the prices being more accurate. Pull models are great at the time of transactions, but because the only time a new data point is recorded onto the blockchain is during a transaction, it does not produce a reliable and consistent price feed unless it is updated manually on-chain at regular intervals, which can be a costly endeavor.

Therefore, Horizon Futures takes the two oracle models and combines them in a dual oracle system. With both push and pull models working together, it allows for the best of both worlds.

Most people are already familiar with Chainlink oracles. If there’s any interest in learning more about Pyth oracles, please check out the following:

- Introduction video

- Pyth Documentation


The more important part of this post is the fees. In the interest of full transparency, we will be breaking down the fees involved in each transaction and how they are derived. The first fee is a variable percentage fee. The second fee is a flat rate fee.

The first fee is what you will see in almost all perpetual future DEXes, typically presented in 2 numbers. For Horizon Futures, the fees are expressed as 2/6 bps, which means a maker fee of 2 bps and a taker fee of 6 bps.

Determining whether you get the maker or taker fee depends on the current skew difference between the long and short positions in the market. For example, if for BNB futures, there is currently $10k in long positions and $5k in short positions; the market skew is $5k in favor of the long side. In this situation, where there are more longs than shorts, the larger taker fee is charged for opening a new long position since it increases the market skew. Conversely, a maker fee is charged for opening a short position in this situation because it decreases the market skew. The reverse applies when there are more shorts than longs. This fee structure is intended to balance long and short demand, promoting neutral markets with zero skew in both longs and shorts.

Bps stands for basis points, a unit of measurement in finance that represents 0.01%, or 0.0001 in decimal form. This means that for a $1000 USD position with 2 bps makers fee, the fee will be $1000 x 0.0002, or 0.2 USD. For a $1,000,000 USD position with a 6 bps takers fee, $1,000,000 x 0.0006 will be $600 USD.

Below is a list of prices of different perpetual futures DEXes (and semi CEXes):

- 2/6 bps (maker/taker) on Horizon Protocol

- 5/7 bps (open/close) on [GMX]

- 2/5 bps (maker/taker) Tier 1 on [DYDX]

- 6/6 bps (open/close) on [MUX Protocol]

- 8/8 bps (open/close) for alts on [Gains]

- 5/5 bps (open/close) on [LEVEL FINANCE]

- 10/10 bps (all trades) on [PERPETUAL FUTURE]

The reason that Horizon Futures is able to have such low fees is due to the dual oracles system. Since it is a variable percentage fee, it is very important to keep this fee as low as possible.

The second fee is a Keeper Fee, or automation fee, which is required to update the Pyth price on-chain and execute the trader’s order with that latest price.

The Keeper can be considered an automated orders and liquidation system. It gets activated upon any calls for new orders and liquidations to update all relevant contracts. There are two keepers per market, one for executing orders and one for managing liquidations.

The Keeper Fee is much more forgiving in comparison to the percentage fee, as it is a flat fee that is dependent on the overhead to run the keeper. For every trade executed, the trader will need to pay the Keeper Fee in addition to the exchange fees shared above.

In conclusion, Horizon Futures offers a perpetual futures DEX on the BNB Chain with very compelling fees as an additional option for all perps traders out there.

Horizon Protocol is a DeFi platform that facilitates the on-chain trading of synthetic assets that represent the real economy. Horizon Protocol seeks to provide exposure to real-world assets risk/return profiles via smart contracts on the blockchain.



Horizon Protocol

A DeFi platform facilitating the creation of on-chain synthetic assets representing the real economy. https://horizonprotocol.com/