TBD

  • What are some good heuristics to identify "arb flow"

    • inspect can pickup arb bots that execute atomic complete swap cycles, compile their addresses for any given pool and filter that out as arb flow?
    • but what about stat arb? are single swaps that take advantage of deviation from external "true price" to be accounted for as well?
    • how does this change for assets that don't exist on CEXs or just have a single pool on-chain (all flow is non-arb flow?)
  • What does arb/non-arb volume breakdown for any given pool tell us?

    • do the tradfi toxic flow assumptions hold true?
    • are LP returns strictly proportional to the amount of non-arb flow they get or is it more complicated?
      • regardless, is it still the biggest factor?
    • how does this differ for x*y=k pools vs concentrated liquidity pools?
      • Do v3 pools get a lot more non-arb volume?
      • How does JIT liquidity change things? does this make JIT driven DEXs simply better than ones that actively mitigate it?
      • Are unsophisticated LPs (say on x*y=k pool for an asset where there's another concentrated with JIT liq) simply signing up to lose money bc they get exclusively arb flow?
  • On price execution of RFQs

    • do RFQs/Cowswap style batch DEXs truly offer better execution than say v2/v3 pools at all times?
      • intuitively feels like no and there's a lot of adverse selection (intuition: solvers only fill an order where there's $ on the table for them, that only happens if they're filling under true price)
      • is "gasless" trades a bad deal if you're paying it in execution quality?
    • does technically being a limit order make this not a problem? (since user technically agreed to the price)

Possible starting points:

  • Look at ETHUSDC 5bps UniV3 pool (since its volume rich, we've decent arb data) for a week, conduct the analysis, then extend it to all pairs, all pools across all protocols.
  • Scrape cowswap trades from their API (from Jan 21st for the amount of volume it had), see execution price and compare it to a simulated trade on uni v2/v3 (making sure the timestamp is the same as when it was filled on cowswap)