Builder Fee Management Smart Contract
The contract's source code is available on GitHub and is deployed at 0x08cd77feb3fb28cc1606a91e0ea2f5e3eaba1a9a
.
The MEV Blocker Fee Management Smart Contract provides a framework for managing financial interactions between builders and the MEV Blocker service. This documentation guides builders through the process of engaging with MEV Blocker, from making initial deposits, to managing subscription fees, and eventually withdrawing their deposits if they choose to disconnect.
Contract Overview
The smart contract is designed to handle:
- Deposits (bonds) from builders wishing to receive transaction order flow from MEV Blocker
- Weekly billing of subscription fees
- Advertising the price of the subscription
- Payment of dues by builders
- Withdrawal of deposits by builders who wish to disconnect
Key Functionalities
Joining MEV Blocker
Builders interested in joining must call the join
function with a deposit of 10 ETH (or the specified initial bond amount). This deposit acts as a bond to cover potential late fees and penalties.
Function to Use:
function join() payable external
Billing and Subscription Fees
MEV Blocker will use the bill
function on a weekly basis to update the bills of subscribed builders for the previous period and update the subscription fee for the next period. The new price will be applied as of the next block. The current price can be queried at any time.
Functions for MEV Blocker billers:
function bill(address[] calldata ids, uint256[] calldata due, uint256 newPrice) external onlyBiller
Builders are responsible for monitoring their dues and ensuring timely payment through the pay
function.
Bills remaining unpaid for >24h will result in the corresponding builder being disconnected.
Function for Builders:
function pay(address id) payable external
Managing Dues and Withdrawals
Builders wishing to disconnect from MEV Blocker must first signal their intention by calling the nope
function. After a waiting period of 7 days, they may withdraw their bond by invoking the exit
function, provided all dues have been settled.
Functions for Exiting:
function nope() external
function exit() external
Handling Forced Payments and Penalties
The contract owner has the authority to withdraw from bonds or impose fines on builders for violations of the rules set forth by MEV Blocker.
The fine
function includes a to
address which facilitates direct reimbursement to affected parties.
Functions for Contract Owner:
function draft(address id, uint256 amt) external onlyOwner
function fine(address id, uint256 amt, address to) external onlyOwner
Usage Guide for Builders
- Making the Initial Deposit: To participate, send a transaction with 10 ETH to the
join
function of the contract. - Monitoring Subscription Fees: Keep an eye on the advertised subscription fee and ensure sufficient funds are available to cover weekly dues.
- Paying Dues: Use the
pay
function to settle your weekly dues. Ensure the correct amount is sent to avoid any disruptions in service. - Withdrawing Deposits: If you decide to disconnect, call
nope
to signal your intention. After 7 days, you can withdraw your deposit through theexit
function, assuming all dues are cleared.
This documentation is intended to facilitate a smooth and informed engagement with the MEV Blocker service by builders. For further assistance or inquiries, builders are encouraged to contact the MEV Blocker team.