Swap

Introduction

Swaps are a way to interact with the BIM protocol. For end users, the exchange is simple: a user selects an ERC-20 token they own and a token they want to exchange it for. Executing a swap sells the currently held tokens for the proportional amount of the desired tokens, less the swap fees, which are allocated to liquidity providers and the BIM DAO. The exchange with the BIM protocol is a permissionless process.

Swaps using the BIM protocol are different from traditional order book transactions in that they are not executed on discrete orders on a first-in, first-out basis. Rather, swaps execute against a passive pool of liquidity.

Price Impact

In a traditional order-book market, a sizeable market-buy order may deplete the available liquidity of a prior limit-sell and continue to execute against a subsequent limit-sell order at a higher price. The result is the final execution price of the order is somewhere in between the two limit-sell prices against which the order was filled.

Price impact affects the execution price of a swap similarly but is a result of a different dynamic. When using an automated market maker, the relative value of one asset in terms of the other continuously shifts during the execution of a swap, leaving the final execution price somewhere between where the relative price started - and ended.

This dynamic affects every swap using the BIM protocol, as it is an inextricable part of AMM design de Uniswap.

As the amount of liquidity available at different price points can vary, the price impact for a given swap size will change relative to the amount of liquidity available at any given point in price space. The greater the liquidity available at a given price, the lower the price impact for a given swap size. The less the liquidity available, the higher the price impact.

Approximate price impact is anticipated in real-time via the BIM interface, and warnings appear if unusually high price impact will occur during a swap. Anyone executing a swap will have the ability to assess the circumstances of price impact when needed.

Slippage

The other relevant detail to consider when approaching swaps with the BIM protocol is slippage. Slippage is the term we use to describe alterations to a given price that could occur while a submitted transaction is pending.

When transactions are submitted to Ethereum, their order of execution is established by the amount of "gas" offered as a fee for executing each transaction. The higher the fee offered, the faster the transaction is executed. The transactions with a lower gas fee will remain pending for an indeterminate amount of time. During this time, the price environment in which the transaction will eventually be executed will change, as other swaps will be taking place.

Safety Checks

Price impact and slippage can both change while a transaction is pending, which is why we have built numerous safety checks into the Uniswap protocol to protect end-users from drastic changes in the execution environment of their swap. Some of the most commonly encountered safety checks:

Expired : A transaction error that occurs if a swap is pending longer than a predetermined deadline. The deadline is a point in time after which the swap will be canceled to protect against unusually long pending periods and the changes in price that typically accompany the passage of time.

INSUFFICIENT_OUTPUT_AMOUNT : When a user submits a swap, the Uniswap interface will send an estimate of how much of the purchased token the user should expect to receive. If the anticipated output amount of a swap does not match the estimate within a certain margin of error (the slippage tolerance), the swap will be canceled. This attempts to protect the user from any drastic and unfavorable price changes while their transaction is pending.

Swap Fees

Swap fees are available here

Last updated