OPX is a decentralized exchange allowing trading without the need for a username or password. The platform uses an aggregate price feed which reduces the risk of liquidations from temporary wicks.
After you have a wallet, you can connect your wallet by pressing the "Connect Wallet" button on the OPX Trade page.
You will need to have ETH in your wallet to start trading.
Since OPX is a decentralized exchange, querying of data and submitting of transactions go through an RPC URL.
There may be times when the RPC URL is not as responsive as it should be, during these times you may notice data being slow to load or not loading on your page. It is also possible to hit the rate limit with the public Optimism RPC URL.
To continue using the exchange during these times you can use a backup URL, switch the RPC URL in the network settings of your wallet and the page should load faster after.
OPX supports both Swaps and Leverage trading. For swaps, click on the "Swap" tab, this will open the interface to swap tokens with zero price impact. For leverage trading, please see the below sections for more information.
To open a position, click on the “Trade” button in the header.
You will be taken to the trading panel. Click on Zone 1 to choose the currency you want to trade.
Choose the currency in the dropdown menu.
Then, in Zone 2 click on "Long" or "Short" depending on which side you would like to open a position on.
- Choosing to "Long" a position earns a profit if the token's price goes up and makes a loss if the token's price goes down.
- On the other hand, choosing to "Short" a position earns a profit if the token's price goes down and makes a loss if the token's price goes up.
When clicking on Zone 3 a panel will appear where you can select the currency with which you will pay to open a position.
After selecting the currency you want to proceed with, enter the amount you would like to trade in the “Pay” section and use the slider to determine the applied Leverage.
As you move the Leverage slider, you can see the values of Liquidation Price and Fees changing accordingly. The Trading Fee to open a position is 0.1% of the position size. There is a similar closing fee of 0.1%.
Additionally, a "Borrow Fee" is deducted at the start of every hour. This is the fee paid to the counterparty of your trade. The fee per hour will vary based on utilization, it is calculated as (assets borrowed) / (total assets in pool) * 0.01%.
The box below the position box summarizes the trade with: the Entry Price, the Exit Price (which is the price you would get if you were to close the trade immediately after opening it), the Borrow Fee and the available liquidity in the pool.
Before confirming the transaction, a pop-up will appear summarizing all the relevant data and giving you the option to set slippage to a higher value.
While there are no price impacts for trades, there can be slippage due to price movements between when your trade transaction is submitted and when it is confirmed on the blockchain. Slippage is the difference between the expected price of the trade and the execution price, this can be customized by clicking on the "..." icon next to your address at the top right of the page.
Once opened, your trades are added under the chart, in the Positions list. You can visualize your entry and liquidation prices on the chart by ticking the “Chart positions” box in Zone 1 below:
You can manage your position by clicking on the three little dots in Zone 2. A pop-up will appear that will allow you to either deposit or withdraw collateral. You will notice the effect of this action on your leverage and liquidation price.
Leverage for a position is displayed as (position size) / (position collateral). If you'd like to display the leverage as (position size + PnL) / (position collateral), you can customize this by clicking on your address in the header and on the Settings button in the dropdown menu.
When you open a position or deposit collateral, a snapshot of the USD price of your collateral is taken, so e.g. if your collateral is 0.1 ETH and the price of ETH is 3523.30 at the time, then your collateral is 352.33 USD and will not change even if the price of ETH changes.
The amount of profit and loss you make will be proportional to your position size. In this example, 352.33 USD has been used to buy 1752.89 USD of ETH. If the price of ETH increases by 10%, the position would have a profit of 175.29 USD, if the price of ETH decreases by 10%, the position would have a loss of 175.29 USD.
When depositing collateral into a long position, there is a 0.3% swap fee for the conversion of the asset to its USD value, e.g. ETH amount to USD value. This is to prevent deposits from being used as a zero fee swap. This does not apply to shorts. Withdrawing of collateral from longs and shorts do not have this fee as well.
To close a position completely, click on the "Close" button in zone 2.
By selecting the “Max” button in the pop-up window. You will get a summary of PnL and fees before confirming the transaction. To close the position partially, enter any amount below the maximum possible.
You can choose the currency in which you want your balance to be paid out when you close the position (Last section -> Receive).
You can set stop-loss and take-profit orders by clicking on the "Close" button and selecting the "Trigger" tab.
Here you can also select the currency in which you want your balance to be paid out when you close the position (Last section -> Receive).
Please note that the amount of the desired asset to receive is depending on the exchange rate at the time of execution.
Your newly created trigger order now appears in your position's row, as well as under the "Orders" tab where you can cancel or edit it, by changing the trigger price if needed. It will also be displayed on the chart if you tick the box “Chart positions”.
If you close a position manually, the associated trigger orders will remain open, you would need to cancel them manually if you do not want the order to be active when opening future positions.
Please note that orders are not guaranteed to execute, this can occur in a few situations including but not exclusive to:
- The mark price which is an aggregate of exchange prices did not reach the specified price
- The specified price was reached but not long enough for it to be executed
- No keeper picked up the order for execution
- Additionally, trigger orders are market orders and are not guaranteed to execute at the trigger price.
In the example, since only 352.33 USD worth of tokens is used as collateral to open the position, there will be a price at which the loss amount is very close to the collateral amount. This is the Liquidation Price and is calculated as the price at which the (collateral - losses - borrow fee) is less than 1% of your position's size. If the token's price crosses this point then the position will be automatically closed.
Due to the borrow fee your liquidation price will change over time, especially if you use a leverage that is more than 10x and have the position open for more than a few days, so it is important to monitor your liquidation price.
If there is any collateral remaining after deducting losses and fees, then the corresponding amount would be returned to your account.
There is no price impact for trades on OPX, so you can execute large trades exactly at the mark price. Since the protocol serves as the counterparty, there is a small spread for entering and exiting trades.
The mark prices are displayed next to the market name, long positions will be opened at the higher price and closed at the lower price while short positions will be opened at the lower price and closed at the higher price. The chart will indicate the average of the two mark prices.
There are two transactions involved in opening / closing / editing a position:
- User sends the first transaction to request open / close / deposit collateral / withdraw collateral.
- Keepers observe the blockchain for these requests then execute them.
The cost of the second transaction is displayed in the confirmation box as the "Execution Fee". This network cost is paid to the blockchain network.