2

I was hoping someone could help me understand how the collection offers on MagicEden are populated. As an example if we look at the Collection Offers tab for Degenerate Trash Pandas,

At the time of writing, the first two bids are 5.9369, 5.81. To get these we can see a request being make to the following URL (I have changed the limit to 2 for this example).

https://api-mainnet.magiceden.io/v2/mmm/pools?collectionSymbol=degenerate_trash_pandas&limit=2&offset=0&filterOnSide=1&hideExpired=true&direction=1&field=5

The results returned can be seen below:

{
  "results": [
    {
      "spotPrice": 6120599998,
      "curveType": "exp",
      "curveDelta": 100,
      "reinvestFulfillBuy": true,
      "reinvestFulfillSell": true,
      "expiry": 0,
      "lpFeeBp": 300,
      "buysideCreatorRoyaltyBp": 0,
      "poolOwner": "HvDf4Cxd2evdYueLhK5LoaiEvDXFXgb1uRrkoYPdvHfH",
      "sellsideAssetAmount": 15,
      "buysidePaymentAmount": 69576705442,
      "buyOrdersAmount": 12,
      "collectionSymbol": "degenerate_trash_pandas",
      "poolType": "two_sided",
      "updatedAt": "2023-01-21T19:35:38.625Z",
      "uuid": "GSVtgv7MioMYonwYPVfsaP9tPfTTCPn2hSmykPh5Udu1",
      "poolKey": "Gj4qebD2dFJUuQGXbtTiST9LjXPVRfkrAPBni2oXtjSL",
      "cosigner": "7RpRDUZBdu5hfmqWvobPazbNeVCagRk5E3Rb8Bm8qRmD"
    },
    {
      "spotPrice": 5810000000,
      "curveType": "exp",
      "curveDelta": 0,
      "reinvestFulfillBuy": false,
      "reinvestFulfillSell": false,
      "expiry": 0,
      "lpFeeBp": 0,
      "buysideCreatorRoyaltyBp": 0,
      "poolOwner": "B94qeRASuZcS7mSg2qb2KpxZ12KVHHXggjHVAdLsWoR7",
      "sellsideAssetAmount": 0,
      "buysidePaymentAmount": 5821620000,
      "buyOrdersAmount": 1,
      "collectionSymbol": "degenerate_trash_pandas",
      "poolType": "buy_sided",
      "updatedAt": "2023-01-21T19:33:07.930Z",
      "uuid": "FE8iXDi19dinqmBbyXw7vxB8muWWXvjXLAkuCe9RMury",
      "poolKey": "4QY3ZbJc9Cuu5FTqwijffaEJ2HpGZuGDspxddkPraS1m",
      "cosigner": "NTYeYJ1wr4bpM5xo6zx5En44SvJFAd35zTxxNoERYqd"
    }
  ]
}

For the second bid 5.81 it's fairly obvious to see this value being returned in results[1], but for the first bid it's not immediately obvious how the 5.9369 value is derived. There seems to be a lot more going on with this one and I can't quite figure our how the different values work together to get 5.9369.

I appreciate this isn't a typical StackOverflow styled question but I'm at a loss as to where I even start looking in order to understand how these pools work. If anyone could please help me understand this further or could point me to some documentation or resources where I can read up on it, it would be very much appreciated - Thanks for reading to till the end :)

1 Answer 1

1

Someone reached out to me about this question so I figured I'd post the answer here if anyone else comes across this in the future and is interested.

To understand what's going on here we need to understand the lpFeeBp value.

lpFeeBp stands for Liquidity Provider Fee Basis Points. It represents the fee that liquidity providers (LPs) charge on each transaction in the pool. Basis points (BPs) are a common unit of measurement for interest rates and financial percentages, where 1 basis point is equal to 0.01%.

In the context of Magic Eden, the lpFeeBp value indicates the fees collected from trades involving the pool, which are then distributed to the liquidity providers as an incentive for supplying liquidity to the pool.

For example, if the lpFeeBp value is 300, it means that the LPs charge a fee of 3% (300 basis points) on each transaction in the pool. This fee is used to reward the LPs for their contribution to the pool's liquidity.

Next we need to understand the spotPrice. For the second result this has a value of 6120599998 which is the NFT's price in lamports (There are 1,000,000,000 lamports in 1 SOL).

So, the spot price in SOL is 6,120,599,998 / 1,000,000,000 = 6.1206 SOL.

Based on this information, to derive the final price 5.9369 from the spot price 6.1206, you need to subtract the liquidity provider fee in SOL from the spot price.

Here's how you calculate the final price:

  1. Convert lpFeeBp to a percentage: 300 basis points = 3%
  2. Calculate the liquidity provider fee in SOL: 6.1206 * 0.03 = 0.1836
  3. Subtract the liquidity provider fee from the spot price: 6.1206 - 0.1836 = 5.9369

So, the final price of 5.9369 is derived by considering the spot price and deducting the liquidity provider fee.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.