{"id":16704350,"url":"https://github.com/lmittmann/flashbots","last_synced_at":"2026-01-23T06:20:30.959Z","repository":{"id":37798432,"uuid":"457509475","full_name":"lmittmann/flashbots","owner":"lmittmann","description":"Package flashbots implements RPC API bindings for the Flashbots relay and mev-geth for use with the w3 package.","archived":false,"fork":false,"pushed_at":"2025-05-06T17:46:26.000Z","size":173,"stargazers_count":35,"open_issues_count":1,"forks_count":10,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-05-06T18:46:00.699Z","etag":null,"topics":["ethereum","flashbots","golang","mev","rpc","w3","web3"],"latest_commit_sha":null,"homepage":"https://pkg.go.dev/github.com/lmittmann/flashbots","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lmittmann.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-02-09T20:00:02.000Z","updated_at":"2025-05-06T17:45:25.000Z","dependencies_parsed_at":"2024-01-24T15:30:43.500Z","dependency_job_id":"977a2ec5-4d0c-431b-a3ad-7d981bdf27a8","html_url":"https://github.com/lmittmann/flashbots","commit_stats":null,"previous_names":[],"tags_count":27,"template":false,"template_full_name":null,"purl":"pkg:github/lmittmann/flashbots","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lmittmann%2Fflashbots","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lmittmann%2Fflashbots/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lmittmann%2Fflashbots/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lmittmann%2Fflashbots/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lmittmann","download_url":"https://codeload.github.com/lmittmann/flashbots/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lmittmann%2Fflashbots/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28682259,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-23T05:48:07.525Z","status":"ssl_error","status_checked_at":"2026-01-23T05:48:07.129Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ethereum","flashbots","golang","mev","rpc","w3","web3"],"created_at":"2024-10-12T19:12:29.343Z","updated_at":"2026-01-23T06:20:30.929Z","avatar_url":"https://github.com/lmittmann.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# flashbots ⚡🤖\n\n[![Go Reference](https://pkg.go.dev/badge/github.com/lmittmann/flashbots.svg)](https://pkg.go.dev/github.com/lmittmann/flashbots)\n[![Go Report Card](https://goreportcard.com/badge/github.com/lmittmann/flashbots)](https://goreportcard.com/report/github.com/lmittmann/flashbots)\n[![Coverage Status](https://coveralls.io/repos/github/lmittmann/flashbots/badge.svg?branch=main)](https://coveralls.io/github/lmittmann/flashbots?branch=main)\n[![Latest Release](https://img.shields.io/github/v/release/lmittmann/flashbots)](https://github.com/lmittmann/flashbots/releases)\n\nPackage flashbots implements RPC API bindings for the Flashbots relay and\n[mev-geth](https://github.com/flashbots/mev-geth) for use with the [`w3` package](https://github.com/lmittmann/w3).\n\n\n## Install\n\n```\ngo get github.com/lmittmann/flashbots\n```\n\n\n## Getting Started\n\n\u003e [!NOTE]\n\u003e Check out the [examples](examples/)!\n\nConnect to the Flashbots relay. The [`w3.Client`](https://pkg.go.dev/github.com/lmittmann/w3#Client)\nreturned by [`Dial`](https://pkg.go.dev/github.com/lmittmann/flashbots#Dial)\nuses the [`AuthTransport`](https://pkg.go.dev/github.com/lmittmann/flashbots#AuthTransport)\nto add the `X-Flashbots-Signature` header to every request.\n\n```go\n// Private key for request signing.\nvar prv *ecdsa.PrivateKey\n\n// Connect to Flashbots Relay\nclient := flashbots.MustDial(\"https://relay.flashbots.net\", prv)\ndefer client.Close()\n\n// Or… Connect to any RPC endpoint that does not require signed requests\nclient := w3.MustDial(\"http://localhost:8545\")\ndefer client.Close()\n```\n\nSend a bundle to the Flashbots relay.\n\n```go\nbundle := []*types.Transaction{ /* signed transactions… */ }\n\nvar bundleHash common.Hash\nerr := client.Call(\n\tflashbots.SendBundle(\u0026flashbots.SendBundleRequest{\n\t\tTransactions: bundle,\n\t\tBlockNumber:  big.NewInt(999_999_999),\n\t}).Returns(\u0026bundleHash),\n)\n```\n\n\u003e [!WARNING]\n\u003e The Flashbots relay does not support batch requests. Thus, sending more than\none call in `Client.Call` will result in a server error.\n\n\n## RPC Methods\n\nList of supported RPC methods.\n\n| Method                         | Go Code\n| :----------------------------- | :-------\n| `eth_sendBundle`               | `flashbots.SendBundle(r *flashbots.SendBundleRequest).Returns(bundleHash *common.Hash)`\n| `eth_callBundle`               | `flashbots.CallBundle(r *flashbots.CallBundleRequest).Returns(resp **flashbots.CallBundleResponse)`\n| `eth_sendPrivateTransaction`   | `flashbots.SendPrivateTx(r *flashbots.SendPrivateTxRequest).Returns(txHash *common.Hash)`\n| `eth_cancelPrivateTransaction` | `flashbots.CancelPrivateTx(txHash common.Hash).Returns(success *bool)`\n| ~~`flashbots_getUserStats`~~   | ~~`flashbots.UserStats(blockNumber *big.Int).Returns(resp **flashbots.UserStatsResponse)`~~\n| ~~`flashbots_getBundleStats`~~ | ~~`flashbots.BundleStats(bundleHash common.Hash, blockNumber *big.Int).Returns(resp **flashbots.BundleStatsResponse)`~~\n| `flashbots_getUserStatsV2`     | `flashbots.UserStatsV2(blockNumber *big.Int).Returns(resp **flashbots.UserStatsV2Response)`\n| `flashbots_getBundleStatsV2`   | `flashbots.BundleStatsV2(bundleHash common.Hash, blockNumber *big.Int).Returns(resp **flashbots.BundleStatsV2Response)`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flmittmann%2Fflashbots","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flmittmann%2Fflashbots","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flmittmann%2Fflashbots/lists"}