Pricing Model
Feather's pricing model
Trade Equation
Feather's balance sheet market making model means we can offer a very simple, predictable, and favorable pricing model for users.
Conceptually, your trade seamlessly sells your input asset and then buys your output asset. Fees are deducted from your input amount before exchanging to pay for the transactions involved. The system solves this equation (representing the buy equalling the sell) to calculate payments:
Where is the token amount, corresponds to the buy and sell that Feather is willing to give for a particular asset, and are the respective input and output assets requested for a particular trade. , known as the impact rate, describes the rate at which a change in balance will affect the price of an asset.
No opaque orderbook spreads, MEV, or unpredictable orderbook liquidity are involved, only one simple equation. The main complexity is the price impact, which also affects the bid and ask prices for future trades. Both come from our balance price adjustment.
Price Adjustment
We adjust our prices as a linear function of our current balance so that so that when we are out of some asset or overfilled, arbitrageurs and price-sensitive users will be incentivised to rebalance us (users who push us further out of balance pay for that subsidy). For an asset , let be the mid-price of the asset, and and be the respective current balance and target balance for the market-maker. For that asset, the price can be calculated as:
represents the rebalance halfspread: it is related to the spread that is typically and easily on offer elsewhere to arbitrage against. Defining as the constant factors and integrating this price over the whole size of the trade gives us the above exchange half-equations, with a simple and intuitive result: you pay the average price that the assets had through your trade.
Market prices and our balance sheet adjustments may fluctuate as market activity elsewhere and other trades on Feather both affect price. As such, the quotes you get from the /price endpoint or on trade creation are only an estimate. The final price parameters for your trade are only fixed at the time your trade is executed. The current prices, fees, and impact rates for each asset that go into the prices can be seen by grabbing the /assets endpoint, resulting in a report something like this for each asset:
{
"AssetName": "BTC",
"UsdMarketMid": 68845,
"Bid": 68679.4764131515,
"Ask": 69369.7224072535,
"PriceImpactRate": 280808.673850367,
...
},