Titan Tech Teatime #1
Latest technical updates and new builder features coming straight from Saturn's orbit
Blocks built to date: 21,586
In an effort to keep the community up to date with what we’ve been up to at Titan and shed light on what improvements, new features, products and services we’re working on, we’ll be publishing (ir)regular “Tech Teatime” updates.
Welcome to the first edition!
Sponsored Bundles
The main new feature we want to introduce is the support for Sponsored Bundles, which was originally pioneered by a fellow builder, Builder0x69.
Normally, when bundles are sent to a builder from an EOA that doesn’t have sufficient ETH to cover gas costs for its execution, these will fail with a LackOfFundForGasLimit
error.
From now on, whenever Titan receives a bundle that might fail due to the aforementioned error, we will automatically send the ETH required to cover the gas fees and value transfer for the transaction to succeed. The caveat here is that the bundle must of course increase the builder balance by an amount greater than the execution cost, as we will need to recoup this sponsoring cost with the bundle’s execution.
This way, searchers don’t need to constantly worry about topping up their ETH balance and can enjoy a more seamless user experience.
Here’s what the flow looks like in practice:
Titan receives a bundle from Searcher and simulates it’s execution
Does the Searcher EOA have enough ETH to cover execution costs?
If YES, go to Step 5, if NO, continue to Step 3
Does executing the bundle increase the overall builder balance?
If YES, continue to Step 4, if NO, reject bundle
Add (prepend) our ETH transfer to the bundle to sponsor gas costs and value transfer
Add the bundle to our bundle pool as a candidate for block inclusion
Max Block Number
We have now also implemented the maxBlockNumber
field for eth_sendPrivateTransaction
. Users can now add a hex-encoded block number into the maxBlockNumber
field. This determines the length of time for which the private transaction should be kept in our private transaction pool. Once the block number reaches one more than the value set in maxBlockNumber
(maxBlockNumber + 1
), the private transaction will be removed from the pool.
MEV Share
Since Flashbots released MEV Share we also implemented full support for the mev_sendBundle
API around two months ago. We were the first builder to do so and agree to their Fair Market Principles (see our pull request).
We are hoping to be added to the Decentralised Orderflow Working Group (DOWG) soon™.
Broadcaster Middleware
The original implementation of the bundle broadcaster (Flashbots send bundle rpc) would only push bundles to a single relay. This was a pre-merge legacy implementation where miners running the old mev-geth only received bundles from the Flashbots relay (as no other relay existed). Post-merge, with Proposer-Builder Separation (PBS), the old Flashbots relay was replaced by block builders, who receive bundles from Searchers.
Given the large number of builders present today, we have proposed changes to the Broadcaster Middleware in order to make it easier for searchers to submit bundles to multiple builders. The changes were implemented in Golang (merged), Rust (reviewed, pending merge), Python and TypeScript (pending review).
That’s all for now, thanks for reading! Time to go heads-down building again, so stay tuned for our next edition as we have some highly-requested exciting new features to share.
We’re looking to reach as many searchers and traders as possible - so if you can share this article we’d greatly appreciate it - it really helps us a lot.
Finally, if you are a searcher please consider adding us to your list of builders, or if you have any questions come and chat to us on our discord.
#Hello, World!