• Stars
    star
    123
  • Rank 281,686 (Top 6 %)
  • Language
  • Created about 1 year ago
  • Updated 11 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Protocol for orderflow auctions

mev-share

This repository stores the technical specifications for the MEV-share protocol, which is described in this design doc. It is intended to host discussion, development, and release notes for the protocol. Find the current specifications in /specs and see issues for active discussions around design tradeoffs and features.

Coordinating on one interface for orderflow auctions will reduce switching costs, increase competition, and create a more fair and efficient market.

Motivations

Today, orderflow originators like wallets and dapps do not actively participate in MEV. Their users generate MEV when transacting, but this value is captured by builders, searchers, and validators – not users, wallets, or dapps.

MEV-Share enables MEV redistribution whereby MEV generated by transactions can be redistributed to the initiating user, orderflow provider, and any other destination.

Importantly, MEV-Share is an open-source protocol, not a product or company. MEV-share uses commitments and privacy to facilitate permissionless collaboration between orderflow originators and searchers, similarly to what MEV-Boost did for builders and validators. It is credibly neutral, permissionless for searchers, and does not enshrine a single block builder. Aggregating order flow to MEV-Share will greatly reduce proprietary order flow as a centralizing force on Ethereum while enabling orderflow originators to participate in the MEV supply chain.

Note: The MEV-Share Matchmaker was renamed to the MEV-Share Node. This change is reflected in the specifications after June 2023.

Minimum standardizable interfaces

There are many parties that may interact as part of the MEV-share protocol:

  1. Orderflow providers / sources (users, wallets, dapps)
  2. Searchers
  3. MEV-Share Nodes
  4. Blockspace providers / proxies (builders, sequencers, validators, bundlers)

A minimum set of interfaces includes:

  1. How orderflow providers send orderflow and preferences (eg. privacy, redistribution) to MEV-Share Nodes
  2. How MEV-Share Nodes share information about orderflow with searchers
  3. How searchers send bids, orderflow, and preferences (eg. validity conditions) to MEV-Share Nodes
  4. How MEV-Share Nodes send orderflow and preferences to blockspace providers
  5. How value is redistributed to orderflow providers, blockspace providers, and MEV-Share Nodes

Current architecture and APIs

The MEV-share design is actively being developed. You can find the latest architecture diagram in ./architecture.md and individual API specifications can be found in the /specs folder. See /bundles for bundle APIs and /events for event streaming APIs (each version has its own file).

Concretely, MEV-share extends the bundle API to support privacy settings, validity conditions, and complex bundle bodies. This API is used for interfaces (1), (3), and (4) above. (2) is handled by a new streaming endpoint and (5) is at the discretion of the block builder, but must fulfill the validity conditions.

Open Questions and Contributions

There are several questions around design tradeoffs and feature support. You can find existing conversations in the issues of this repo, or add your own issue to suggest a change or request a feature.

More Repositories

1

pm

Everything there is to know about Flashbots
2,482
star
2

simple-arbitrage

Example arbitrage bot using Flashbots
TypeScript
1,884
star
3

mev-boost

MEV-Boost allows Ethereum validators to source high-MEV blocks from a competitive builder marketplace
Go
1,097
star
4

mev-research

Project management for MEV Research
847
star
5

mev-inspect-py

🔎 an MEV inspector for Ethereum 🔎
Python
799
star
6

mev-job-board

Need a bot?
682
star
7

mev-inspect-rs

Discover historic Miner Extractable Value (MEV) opportunities
Rust
537
star
8

ethers-provider-flashbots-bundle

Flashbots provider for ethers.js
TypeScript
529
star
9

builder

Flashbots MEV-Boost Block Builder
Go
409
star
10

mev-boost-relay

MEV-Boost Relay for Ethereum proposer/builder separation (PBS)
Go
399
star
11

web3-flashbots

Web3.py plugin for using Flashbots' bundle APIs
Python
386
star
12

searcher-sponsored-tx

TypeScript
360
star
13

simple-blind-arbitrage

Solidity
333
star
14

searcher-minter

Solidity
229
star
15

mempool-dumpster

Dump all the mempool transactions 🗑️ ♻️ (in Parquet + CSV)
Go
206
star
16

suave-geth

Go
178
star
17

flashbots-docs

TypeScript
176
star
18

rpc-endpoint

Flashbots RPC endpoint, to be used with wallets (eg. MetaMask)
Go
165
star
19

mev-share-client-ts

Client library for Flashbots MEV-share Matchmaker.
TypeScript
111
star
20

mev-flood

simulates MEV activity from an array of unique searchers; used for testing infra
TypeScript
109
star
21

hindsight

Retroactively estimate Uniswap-ish MEV on Flashbots MEV-Share by simulating backrun-arbitrages.
Rust
107
star
22

mev-relay-js

JavaScript
102
star
23

mev-geth-demo

JavaScript
94
star
24

boost-geth-builder

Example builder
Go
93
star
25

mev-share-node

Go
88
star
26

eth2-research

Assessing the nature and impact of MEV in eth2.
Jupyter Notebook
68
star
27

relayscan

Ethereum MEV-Boost Relay Monitoring
Go
67
star
28

mpc-backrun

Proof-of-concept code for backrunning private transactions using MPC.
Python
63
star
29

geth-sgx-gramine

Geth-in-SGX provides an example of running go-ethereum in SGX
C
61
star
30

mev-explore-public

Public repo of MEV-Explore for the community to jam on the dashboard
59
star
31

raytracing

Eth2-MEV project with liquid staking (Flashbots-Lido-Nethermind)
Go
53
star
32

simple-limit-order-bot

TypeScript
49
star
33

suapp-examples

SUAVE Application Examples
Go
47
star
34

reorg-monitor

Ethereum Reorg Monitoring
Go
44
star
35

block-validation-geth

To be deprecated in favor of https://github.com/flashbots/builder
Go
44
star
36

go-boost-utils

Eth2 builder API types and signing for Golang
Go
41
star
37

suave-std

Collection of helpful smart contracts to build Suapps
Solidity
37
star
38

prysm

Our custom Prysm fork for boost relay and builder CL. Sends payload attributes for block building on every slot to trigger building.
Go
34
star
39

go-template

Template for Go projects
Go
33
star
40

sync-proxy

Proxy from consensus client to block builders
Go
32
star
41

suave-specs

☀️ SUAVE Alpha Protocol Specifications
31
star
42

prio-load-balancer

Priority JSON-RPC load balancer (with retries, good logging, and other goodies like SGX/SEV attestation support)
Go
27
star
43

dowg

Decentralized Orderflow Working Group
26
star
44

relay-specs

MEV-Boost Relay API Specs
HTML
26
star
45

suave-andromeda-revm

Andromeda revm execution service
Rust
25
star
46

suave-viem

Typescript client library to interact with SUAVE.
TypeScript
19
star
47

mev-proxy

JavaScript
18
star
48

mev-blocks

JavaScript
17
star
49

flashbots-repository-template

Template to bootstrap and configure new projects maintained by the Flashbots collective
17
star
50

flashbots-dashboard

TypeScript
17
star
51

flashbots-writings-website

MDX
15
star
52

andromeda-sirrah-contracts

forge development env for SUAVE key management
Solidity
12
star
53

go-utils

Various reusable Go utilities and modules
Go
11
star
54

EIP-712-swap-PoC

Solidity
10
star
55

curve-based-bundle-pricing

Jupyter Notebook
6
star
56

flashbots-airflow-workflows

Python
6
star
57

dealer-smart-contract

Integral DEX smart contract
TypeScript
6
star
58

flashbots-data-transparency

Collection, analysis and presentation of Flashbots data.
JavaScript
6
star
59

mev-inspect-logs

Log-based MEV inspections
JavaScript
5
star
60

aleth

C++
5
star
61

suave-docs

TypeScript
5
star
62

research-mev-eip1559

Jupyter Notebook
4
star
63

web3-data-tools

Data tools for Web3
Jupyter Notebook
3
star
64

node-healthchecker

Composite health (sync status) checker for blockchain nodes
Go
3
star
65

gramine-andromeda-revm

Python
3
star
66

builder-olympics-website

HTML
2
star
67

suave-toolchain

JavaScript
2
star
68

prometheus-sns-lambda-slack

Receive prometheus alerts via AWS SNS and publish then to slack channel
Go
2
star
69

nginx-static-response

nginx image that returns a fixed status code
Dockerfile
1
star
70

nethermind

Our flagship .NET Core Ethereum client for Linux, Windows, MacOs - full and actively developed.
C#
1
star
71

revm

Revm suited for suave needs
Rust
1
star
72

kube-sidecar-injector

Sidecar injector for k8s
Go
1
star
73

eth-faucet

Faucet for ethereum based chains
Go
1
star