Pika Protocol
Comment on page

Handling Abnormal Scenarios

Pika is designed to protect users by preventing a central point of failure. It has a design in place to handle these three extremely rare scenarios: 1. orders are not being executed; 2. fast oracle is not providing accurate prices; 3. website is down.

Orders are not being executed

If you notice your market orders are not executed a minute after submission and you do not see any error notification, it might be because the keepers are down. Your submitted orders will appear in the Orders tab with the type as Market. If you are opening new market orders, you can click the Cancel button to cancel the order 3 minutes after submission. If you are closing existing positions, you can choose either the execute the order with the latest price or cancel the order 3 minutes after submission. This allows the user to close positions or cancel orders even if rare cases when keepers stop working.

Website is down

Pika is a permissionless onchain protocol. In case the website is down for some unexpected reasons, you can still manage positions and liquidity via Etherscan. Please refer to the Trading via Etherscan on how to close positions or do other actions on Etherscan.
In around 10 seconds after submitting the close order, you can check your position on Etherscan. If your order is executed successfully, your active position will show up as 0s.
If the order is not executed, the position info will be shown as unchanged. This may happen because your _acceptablePrice value is too tight. If you think that is the reason, you can try to update _acceptablePrice to a lower value for close long and higher value for close short, and then calling createClosePosition function again.
If that still does not close your position, it may be because the keepers stopped working. You can wait 3 minutes and then manually execute the order by calling executeClosePosition on https://optimistic.etherscan.io/address/0xB67c152E69217b5aCB85A2e19dF13423351b0E27#code.
There are two steps to get the _key parameter:
  • Get index parameter by calling closePositionIndex function with your wallet address.
  • Use the index value from step 1 to call getRequestKey function with your wallet address.