MEV-Boost Relays

mev-boost python wrapper (inspired by Toni Wahrstätter’s mevboost.pics)

Constants

Exported source
FIRST_POS_SLOT = 4700013
Exported source
fb = "https://boost-relay.flashbots.net"
# et = "https://bloxroute.ethical.blxrbdn.com"
mp = "https://bloxroute.max-profit.blxrbdn.com"
mr = "https://bloxroute.regulated.blxrbdn.com"
mf = "https://mainnet-relay.securerpc.com"
ed = "https://relay.edennetwork.io"
bn = "https://builder-relay-mainnet.blocknative.com"
# rl = "https://relayooor.wtf"
ul = "https://relay.ultrasound.money"
ag = "https://agnostic-relay.net"
ae = "https://mainnet.aestus.live"
ae = "https://aestus.live"
wm = "https://relay.wenmerge.com/"
Exported source
all_relays = [fb, mp, mr, mf, ed, bn, ul, ag, ae, wm]

source

Relay

 Relay (path, *rpcs)

A class for interacting with a relay’s API


source

Relay.proposer_payload_delivered

 Relay.proposer_payload_delivered (limit=None, cursor=None,
                                   block_number=None, order_by=None)

Get proposer payloads delivered by the relay


source

Relay.get_payloads_between_timestamps

 Relay.get_payloads_between_timestamps (min_timestamp, max_timestamp,
                                        min_block_number=None,
                                        max_block_number=None)

source

Relay.get_payloads_between_block_numbers

 Relay.get_payloads_between_block_numbers (min_block_number,
                                           max_block_number)

Example

import os
from datetime import datetime, timedelta, timezone
import pandas as pd
RPC = os.environ['RPC']
relay = Relay(ae, RPC)

Fetch payloads by timestamp

min_datetime = datetime(2023, 8, 1, tzinfo=timezone.utc)
max_datetime = min_datetime + timedelta(days=1)
min_timestamp = min_datetime.timestamp()
max_timestamp = max_datetime.timestamp()
payloads = relay.get_payloads_between_timestamps(min_timestamp, max_timestamp)
len(payloads)
328

Fetch payloads by block number

w3 = MultiRPCWeb3.from_rpcs(RPC)
min_block_number = interpolation_search(w3, min_timestamp, low=FIRST_POS_BLOCK, how='right')
max_block_number = interpolation_search(w3, max_timestamp, low=min_block_number, how='left')
payloads = relay.get_payloads_between_block_numbers(min_block_number, max_block_number)