Exploring Horizon Exchange on Testnet

Horizon Protocol
7 min readFeb 11, 2022

We are proud to present Horizon Exchange for live testing with the community, the last step we are taking together to prepare for mainnet launch!

Summary:

  1. Prepare HZN, zUSD, and BNB testnet tokens in your wallet with this guide
  2. Start exploring on Horizon Exchange testnet
  3. Share your experience with the community!

Read on for a quick run through some of the features you can try using after completing step 1 in the summary.

Horizon Exchange Testnet Tour

Go to Horizon Exchange Testnet, connect your wallet, and let’s get started!

Markets

The ‘Markets’ tab is an overview of the synthetic asset (zAsset) market available on Horizon Exchange. You can see market highlights: top gainer (24h), top loser (24h), highest volume (24h), and the largest zAsset. And, check out different zAssets in various categories.

Select the market you want to trade in!

Picture 1. Select the market you want to trade in

Trade

The ‘Trade’ tab is where you can buy and sell zAssets! Try selecting the zAsset you wish to trade, we’ll use zDOGE for this guide. You can use the TradingView chart to help you make a decision.

Picture 2. Select a zAsset you wish to trade

You can enter an amount to buy or in zUSD, zDOGE or use the slider to select a percentage amount.

Picture 3. Enter an amount to buy

You can similarly sell a zAsset by selecting ‘SELL zXXX’

Picture 4. Sell a zAsset

Let’s buy some zDOGE.

Your buy or sell trade will go into:

Pending’ status whilst the transaction is sent to the blockchain

Picture 5. Pending status

Oracle Check’ status when your transaction has succeeded and is in the 3 minute oracle-frontrunning prevention period.

Picture 6. Oracle Check status

Completed’ status after the oracle check is complete

Picture 7. Complete status

Congratulations! You’ve traded your first synthetic asset and it has been added to your portfolio allocation!

Let’s buy some more zAssets.

Picture 8. Let’s buy some more zAssets!

Portfolio

The ‘Portfolio’ tab lets you track how your portfolio performs.

Picture 9. Portoflio
  • Track your portfolio value over time
  • See your trade history
  • View your overall portfolio allocation and break it down by zAsset
  • Manage fee settlements

You now have a portfolio giving you exposure to borderless global derivatives from around the world!

We want to hear your experience with Horizon Exchange on testnet!

Share your experience with others in the community:

  • What’s your favourite feature of Horizon Exchange?
  • What feature do you want to see on Horizon Exchange?
  • Tell us your general impression!

Stay tuned for Horizon Exchange mainnet launch!

Extra information & Resources

Oracles, Fees & Fee Settlement

There is a lot to cover when it comes to oracles and fees on Horizon Exchange. We’re going to provide a quick run-down of what they mean, organize a M.E.T.H. event to discuss further, and arrange for in depth articles/documentation to clarify.

Oracles:

Horizon Protocol Synthetic Assets (zAssets) need regular on-chain price feeds. Refreshing the price costs gas, making constant price checks financially unfeasible at this time. To solve this, oracles refresh prices based on two variables:

  • Heartbeat — a predetermined time period (e.g. every 4 hours)
  • Variance — a predetermined price threshold (e.g. 0.2% change in price)

Should either of these variables return true, the oracle will refresh the price.

Fees:

Every zAsset has its own oracle price feed and therefore a corresponding heartbeat and price variance threshold. If a zAsset has a price variance threshold of 1%, the exchange fee on Horizon Exchange will also be 1% in order to disincentivize users from using the variance threshold to front-run the oracle’s price.

Fee settlement:

There’s an issue with this system of refreshing a price feed: the lag time between a price being observed from the market and the time it is updated on-chain.

To provide a solution to this, Horizon Protocol enables a 3 minute oracle check where users cannot exchange, transfer, or burn the zAssets they have just traded into. The time period gives oracles enough time to check for a difference between the initial price and the new price. This verifies whether or not a trade would have been impacted by an oracle lag time and helps prevent front-running.

If a trade was affected, the trader owes zAssets (reclamation) or is owed zAssets (rebate).

The next time a trader exchanges, transfers, or burns that zAsset the system will automatically reclaim the zAssets the trader owes (reclamation) or it will payout the zAssets owed to the user (rebate). Fee settlement is funded by the fee pool, if a trader owes a reclamation, it is paid into the fee pool. If a trader is owed a rebate, it is paid from the fee pool.

You can manually settle a fee settlement or it will be automatically done the next time you exchange, transfer, or burn that particular zAsset.

Resources:

Testnet Token Addresses:

Faucets:

More Synthetic Asset (zAsset) Testnet Token Addresses:

You can add the available synthetic assets on Horizon Exchange testnet to your wallet if you wish to view them in there. They will still show up on Horizon Exchange if you don’t add them.

  • zADA 0x960CaeB681EE37fB259B6caBB1b6BD075421C4ca
  • zBNB 0x62641D0Cb18fC2751A0a478BfaE635BFF5ACA508
  • zBTC 0x1b9357580Bd8b939A1c1685953F18f9C22eA15fC
  • zCAKE 0xa40644645Fe97963C7eDE6B8FB2049b5177D590f
  • zDOGE 0xeE025E221c0f72A3356fF8580E6A3d53F63BB1AD
  • zDOT 0x7ea660B5FbEc26c3A74f598384bC6397Fe1A3005
  • zETH 0x67E49A3F4F19A3A6a7E46f4264Aa176068eDbECF
  • zLINK 0xEA4add20BDA400d20B301028C5da82DF10B32983
  • zMATIC 0x90CF193bD9c236d9b0D425C35b407a24E21C058E
  • zXRP 0xef1bc2A008aA9e45808a049c53560c7fBC447d57

FAQ

For any issues preparing a wallet that is connected to BSC testnet and claiming BNB, HZN, and zUSD testnet tokens — please refer to the checklist and guide in the first question for the fastest solutions to your problems. Ask in the community if you still need assistance afterward!

How do I interact with Horizon Exchange on Testnet? (READ FIRST)

Follow this guide until you have:

  • Installed Metamask on your browser
  • Created an account
  • Added Binance Smart Chain Testnet to Metamask
  • Claimed BNB testnet tokens from the faucet.
  • Received HZN and zUSD testnet tokens from the faucet.
  • Go explore Horizon Exchange on testnet!

Where can I submit a bug/suggestion report?

For any bugs or feedback you would like to report please use the following template so that we can address the issue as fast as possible:

  1. Step by step description on how to reproduce the bug/issue
  2. Relevant pictures

Why are there only crypto zAssets?

The variety of testnet price feeds are lower than on mainnet. We’re listing the best ones we have access to.

How often are the prices updated?

Each zAsset has two variables that will trigger a price refresh. A variable based on a period of time (e.g. every 1 hour) called a heartbeat. Another variable based on price variance (e.g. 0.2%) called variance. If either of these conditions are met, the oracle will update the price feed.

These price updates cost money for the oracle and oracles base their heartbeats and variance values based on general usage. This means that more sensitive variables justify a cost increase. This also highlights a tradeoff in decentralized exchanges (DEXs) and centralized exchanges (CEXs). The loss of speed is made up by decentralization, transparency, and ownership of your own assets. This makes a CEX more desirable for high frequency traders but a DEX far more beneficial to a mid to long term trader/investor.

Is there a difference in price update frequency between mainnet and testnet?

Price update frequency will be different from mainnet to testnet.

Why is there such a big fee difference between zAssets? For example: zDOGE shows 0.2%, zXRP shows 5%.

Every zAsset has its own oracle price feed and therefore a corresponding heartbeat and price variance threshold. If a zAsset has a price variance threshold of 1%, the exchange fee on Horizon Exchange will also be 1% in order to disincentivize users from using the variance threshold to front-run the oracle’s price.

To run an effective testnet environment we want to test more extreme cases and the impact on traders and the protocol, including high fee zAssets. Would traders think that it’s worth trading zXRP if the fees are that high? This is an opportunity for all of us to come together to explore what makes features valuable in the long-term for Horizon Protocol.

Gas fees on BSC testnet always seem to be around $3, regardless of the transaction value. Is this because of BSC testnet? Is it different than mainnet?

Currently, it seems that BSC mainnet gas fees are lower than BSC testnet gas fees.

Average BSC testnet gas fee
Average BSC mainet gas fee

Gas fees are still subject to congestion and other external factors.

--

--