Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

92 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tycho-builder-integration

Two ways for a block builder to earn from Propellerheads order flow, and the contracts and Rust crates that implement both.

Both modes give your builder a transaction to include in the block it is already building. Neither asks it to change how it builds blocks. What differs is where the flow comes from and what you do with it.

JIT route improvement

The current product. Fynd users send their swaps to FyndJITRouter instead of calling TychoRouterV3 directly. Your builder watches for those orders, solves a better route against pending block state, compresses it (a median of one 256-bit word), stores it in a slot keyed to that exact order in that exact block, and places the store transaction immediately before the user's swap.

When the user's swap executes, FyndJITRouter recomputes the order key, finds the stored route, checks its fingerprint, and runs the improved route. On a mismatch, or any failure at all, it forwards the user's original route untouched. minAmountOut is enforced identically on both paths.

The improvement lands above the quote the user was shown, so the router's FeeCalculator captures it as positive slippage. That capture is what funds builder sponsorship.

Opting in costs the user nothing in calldata: the ABI is identical, so only the destination address changes, and on Base the L1 data fee is unchanged. The whole cost is L2 execution gas, about $0.0003 to $0.0005 per swap at August 2026 prices.

contracts/README.md is the detailed document: the mechanism, the compression format, break-even economics with live prices, the trust model, and how to run the tests. Start there.

Intent backrunning

The older mode. The engine acts as a 1inch Fusion resolver: it prices live Fusion Dutch-auction orders against pending AMM state, finds fill routes with the Fynd solver, and hands your builder a settlement transaction when one is profitable after gas. Profit arrives as a block.coinbase transfer inside that transaction.

Integrating means adding the crate as a dependency, spawning its run() alongside your builder loop, and streaming it BuildEvents as each iteration progresses. BackrunCandidates come back on a watch channel, built but unsigned, for your whitelisted EOA to sign.

crates/intent-backrunner/README.md covers the auction pricing, the Limit Order Protocol settlement path, the profitability gate, the full configuration reference, and the smoke test.

Repository map

path what it is
contracts/ Foundry project: FyndJITRouter, RouteDictionary, RouteDecompressor, and the BackrunResolver the intent mode settles through
crates/route-compressor Rust mirror of the on-chain compression format, plus the builder's calldata encoders
crates/intent-backrunner The Fusion intent engine
crates/builder-types The types that cross the builder boundary: BuildEvent in, BackrunCandidate out
crates/uniswap-v2-core, v3, v4 Log-driven pending-state indexers for those three protocols

The JIT solver itself, crates/fynd-jit-solver, is under review in PR #19 and is not yet on the main line.

Deployments

FyndJITRouter is not deployed yet. On Base it will front the live TychoRouterV3 at 0x9bA632d83e9eF57571256Cf4cc951b8aF1158e9C, with Permit2 at 0x000000000022D473030F116dDEE9F6B43aC78BA3.

Tests

cd contracts && forge test     # 107 tests, ~2 min from a clean build
cargo test --workspace         # 102 tests

Both READMEs document the fork suites, the cross-language fixtures, and the environment variables they need.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages