Fees in the System

Liquidity Provider Fees

We view using Across as being similar to lending protocols such as AAVE or Compound. When a user bridges a particular token from one chain to another, the fast bridge isn't "moving tokens from one chain to another" but, rather, it is a relayer or the protocol itself providing tokens on the destination chain in return for tokens on the origin chain. We choose to use a similar pricing model for our liquidity provider fees because of this parallel.

Utilization based pricing

We base our pricing model on the one described in AAVE's documentation. Let,

  • XXdenote the size of a particular transaction someone is seeking to bridge

  • 0Ut10 \leq U_t \leq 1denote the utilization of the liquidity providers' capital prior to the transaction, i.e. the amount of the liquidity providers' capital that is in use prior to the current transaction

  • 0U^t10 \leq \hat{U}_t \leq 1denote the utilization of the liquidity providers' capital after to the transaction, i.e. the amount of the liquidity providers' capital that would be in use if the user chose to execute their transaction

  • Uˉ\bar{U}denote the "kink utilization" where the slope on the interest rate changes

  • R0,R1,R2R_0, R_1, R_2denote the parameters governing the interest rate model slopes

    • R0R_0is the interest rate that would be charged at 0% utilization

    • R0+R1R_0 + R_1is the interest rate that would be charged at Uˉ%\bar{U}\% utilization

    • R0+R1+R2R_0 + R_1 + R_2is the interest rate that would be charged at 100% utilization

The (annualized) interest rate model is then defined by

R(Ut)=R0+min(Uˉ,Ut)UˉR1+max(0,UtUˉ)1UˉR2R(U_t) = R_0 + \frac{\min(\bar{U}, U_t)}{\bar{U}} R_1 + \frac{\max(0, U_t - \bar{U})}{1 - \bar{U}} R_2

We calculate the (annualized) interest rate for a particular loan by aggregating the marginal increases of utilization by integrating over this function

Rta=1U^tUtUtU^tR(u)duR^a_t = \frac{1}{\hat{U}_t - U_t} \int_{U_t}^{\hat{U}_t} R(u) du

The actual fee that is charged will be based on making a loan at this rate for a 1 week time-span. The rate that is charged can be computed from:

Rtw=(1+Rta)1521R^w_t = (1 + R^a_t)^{\frac{1}{52}} - 1

and the fee would be

Fee=RtwX\text{Fee} = R^w_t X

We chose to charge prices this way to ensure that users are paying a "fair" price for the amount of utilization that their bridge transaction incurs.

Relayer Fees

Relayer fees play a similar role in the Across ecosystem as gas fees play in the Ethereum ecosystem. Relayer fees are a fee that the user sets to incentivize relayers to relay your bridge transaction.

Relaying a transaction has three costs for relayers:

  1. Gas fees: The relayer pays gas to perform the relay and to claim their repayment.

  2. Capital opportunity costs: The fact that the relayer is using their capital to perform a relay means that they are not using it for other yield opportunities.

  3. Capital at risk: A relayer takes on certain risks by relaying funds. If they make a mistake when relaying that could jeopardize their repayment of the capital they invested.

Both Liquidity Provider fees and Relayer fees are implied from the spread between inputAmount and outputAmount in a depositV3 transaction.

Last updated