{"id":44169214,"url":"https://github.com/flashbots/op-rbuilder","last_synced_at":"2026-06-03T22:00:28.236Z","repository":{"id":292812989,"uuid":"982003312","full_name":"flashbots/op-rbuilder","owner":"flashbots","description":null,"archived":false,"fork":false,"pushed_at":"2026-06-01T15:13:36.000Z","size":3513,"stargazers_count":51,"open_issues_count":19,"forks_count":64,"subscribers_count":9,"default_branch":"main","last_synced_at":"2026-06-01T17:12:26.048Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/flashbots.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-05-12T08:26:19.000Z","updated_at":"2026-05-22T15:19:11.000Z","dependencies_parsed_at":"2025-06-10T09:20:03.422Z","dependency_job_id":"b617c5f5-c782-4ee2-9495-9d0f2b8fb2a8","html_url":"https://github.com/flashbots/op-rbuilder","commit_stats":null,"previous_names":["flashbots/op-rbuilder"],"tags_count":162,"template":false,"template_full_name":null,"purl":"pkg:github/flashbots/op-rbuilder","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flashbots%2Fop-rbuilder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flashbots%2Fop-rbuilder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flashbots%2Fop-rbuilder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flashbots%2Fop-rbuilder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/flashbots","download_url":"https://codeload.github.com/flashbots/op-rbuilder/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flashbots%2Fop-rbuilder/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33881107,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-03T02:00:06.370Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2026-02-09T10:03:58.001Z","updated_at":"2026-06-03T22:00:28.203Z","avatar_url":"https://github.com/flashbots.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# op-rbuilder\n\n[![CI status](https://github.com/flashbots/op-rbuilder/actions/workflows/op_rbuilder_checks.yaml/badge.svg)](https://github.com/flashbots/op-rbuilder/actions)\n\n`op-rbuilder` is a Rust-based block builder designed to build blocks for the Optimism stack.\n\n## Running op-rbuilder\n\nTo run op-rbuilder with the op-stack, you need:\n\n-   CL node to sync the op-rbuilder with the canonical chain\n-   Sequencer with the [rollup-boost](https://github.com/flashbots/rollup-boost) setup\n\nTo run the op-rbuilder, run:\n\n```bash\ncargo run -p op-rbuilder --bin op-rbuilder -- node \\\n    --chain /path/to/chain-config.json \\\n    --http \\\n    --authrpc.port 9551 \\\n    --authrpc.jwtsecret /path/to/jwt.hex\n```\n\nTo build the op-rbuilder, run:\n\n```bash\ncargo build -p op-rbuilder --bin op-rbuilder\n```\n\n### Flashblocks\n\nTo run op-rbuilder with flashblocks:\n\n```bash\ncargo run -p op-rbuilder --bin op-rbuilder -- node \\\n    --chain /path/to/chain-config.json \\\n    --http \\\n    --authrpc.port 9551 \\\n    --authrpc.jwtsecret /path/to/jwt.hex \\\n    --flashblocks.port 1111 \\ # port to bind ws that provides flashblocks \n    --flashblocks.addr 127.0.0.1 # address to bind the ws that provides flashblocks\n```\n\n#### Flashblocks Number Contract\n\nTo enable builder tranctions to the [flashblocks number contract](https://github.com/Uniswap/flashblocks_number_contract) for contracts to integrate with flashblocks onchain, specify the address in the CLI args:\n\n```bash\ncargo run -p op-rbuilder --bin op-rbuilder -- node \\\n    --chain /path/to/chain-config.json \\\n    --http \\\n    --authrpc.port 9551 \\\n    --authrpc.jwtsecret /path/to/jwt.hex \\\n    --flashblocks.number-contract-address 0xFlashblocksNumberAddress\n```\n\nThis will increment the flashblock number before the start of every flashblock and replace the builder tx at the end of the block.\n\n### Flashtestations \n\nTo run op-rbuilder with flashtestations:\n\n```bash\ncargo run -p op-rbuilder --bin op-rbuilder -- node \\\n    --chain /path/to/chain-config.json \\\n    --http \\\n    --authrpc.port 9551 \\\n    --authrpc.jwtsecret /path/to/jwt.hex \\\n    --flashtestations.enabled \\\n    --flashtestations.rpc-url your-rpc-url \\ # rpc to submit the attestation transaction to\n    --flashtestations.funding-amount 0.01 \\ # amount in ETH to fund the TEE generated key\n    --flashtestations.funding-key secret-key \\ # funding key for the TEE key\n    --flashtestations.registry-address 0xFlashtestationsRegistryAddress \\\n    --flashtestations.builder-policy-address 0xBuilderPolicyAddress\n```\n\nNote that `--rollup.builder-secret-key` must be set and funded in order for the flashtestations key to be funded and submit the attestation on-chain.\n\n## Observability\n\nTo verify whether a builder block has landed on-chain, you can add the `--rollup.builder-secret-key` flag or `BUILDER_SECRET_KEY` environment variable.\nThis will add an additional transaction to the end of the block from the builder key. The transaction will have `Block Number: {}` in the input data as a transfer to the zero address. Ensure that the key has sufficient balance to pay for the transaction at the end of the block.\n\nTo enable metrics, set the `--metrics` flag like in [reth](https://reth.rs/run/monitoring) which will expose reth metrics in addition to op-rbuilder metrics. op-rbuilder exposes on-chain metrics via [reth execution extensions](https://reth.rs/exex/overview) such as the number of blocks landed and builder balance. Note that the accuracy of the on-chain metrics will be dependent on the sync status of the builder node. There are also additional block building metrics such as:\n\n-   Block building latency\n-   State root calculation latency\n-   Transaction fetch latency\n-   Transaction simulation latency\n-   Number of transactions included in the built block\n\nTo see the full list of op-rbuilder metrics, see [`src/metrics.rs`](./crates/op-rbuilder/src/metrics.rs).\n\nDefault `debug` level trace logs can be found at:\n\n- `~/.cache/op-rbuilder/logs` on Linux\n- `~/Library/Caches/op-rbuilder/logs` on macOS\n- `%localAppData%/op-rbuilder/logs` on Windows\n\n## Testing\n\nYou can run op-rbuilder's test suite using the command\n\n```bash\nmake test\n```\n\nThis runs both unit tests and integration tests.\n\n## Local Devnet\n\nLocal development environment setup and configuration files can be found in [`local-testing/README.md`](./local-testing/README.md).\n\n## Running GitHub actions locally\n\nTo verify that CI will allow your PR to be merged before sending it please make sure that our GitHub `checks.yaml` action passes locall by calling:\n\n```\nact -W .github/workflows/checks.yaml\n```\n\nMore instructions on installing and configuring `act` can be found on [their website](https://nektosact.com).\n\n### Known issues\n\n-   Running actions locally require a Github Token. You can generate one by following instructions on [Github Docs](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens). After generating a token you will need to pass it to `act` either through the command line using `-s GITHUB_TOKEN=\u003cyour token\u003e` or by adding it to the `~/.config/act/actrc` file.\n-   You might get an error about missing or incompatible `warp-ubuntu-latest-x64-32x` platform. This can be mitigated by adding `-P warp-ubuntu-latest-x64-32x=ghcr.io/catthehacker/ubuntu:act-latest` on the command line when calling `act` or appending this flag to `~/.config/act/actrc`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflashbots%2Fop-rbuilder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fflashbots%2Fop-rbuilder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflashbots%2Fop-rbuilder/lists"}