{"id":17809730,"url":"https://github.com/flashbots/contender","last_synced_at":"2026-04-02T22:00:51.760Z","repository":{"id":256468529,"uuid":"851842555","full_name":"flashbots/contender","owner":"flashbots","description":"spam EVM execution nodes over JSON-RPC \u0026 run benchmarks","archived":false,"fork":false,"pushed_at":"2026-04-01T18:58:45.000Z","size":3658,"stargazers_count":131,"open_issues_count":21,"forks_count":48,"subscribers_count":12,"default_branch":"main","last_synced_at":"2026-04-02T05:53:20.729Z","etag":null,"topics":["auth","benchmark","builder","el-node","eth","ethereum","evm","json-rpc","spammer","testing","transaction"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/flashbots.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"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":"2024-09-03T19:39:33.000Z","updated_at":"2026-04-01T18:41:35.000Z","dependencies_parsed_at":"2024-10-27T15:55:00.245Z","dependency_job_id":"cb74edbf-d9ee-472d-8d36-def406eff4d6","html_url":"https://github.com/flashbots/contender","commit_stats":null,"previous_names":["zeroxbrock/contender","flashbots/contender"],"tags_count":238,"template":false,"template_full_name":null,"purl":"pkg:github/flashbots/contender","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flashbots%2Fcontender","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flashbots%2Fcontender/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flashbots%2Fcontender/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flashbots%2Fcontender/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/flashbots","download_url":"https://codeload.github.com/flashbots/contender/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flashbots%2Fcontender/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31317831,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-02T21:35:00.834Z","status":"ssl_error","status_checked_at":"2026-04-02T21:34:59.806Z","response_time":89,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":["auth","benchmark","builder","el-node","eth","ethereum","evm","json-rpc","spammer","testing","transaction"],"created_at":"2024-10-27T15:21:29.875Z","updated_at":"2026-04-02T22:00:51.732Z","avatar_url":"https://github.com/flashbots.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Contender\n\n![Test Status](https://github.com/flashbots/contender/actions/workflows/test.yml/badge.svg)\n![Lint Status](https://github.com/flashbots/contender/actions/workflows/lint.yml/badge.svg)\n[![License](https://img.shields.io/github/license/flashbots/contender)](./LICENSE)\n\nHigh-performance Ethereum transaction spammer and benchmarking tool.\n\n## 🚀 Quick Start\n\nInstall:\n```bash\ncargo install --git https://github.com/flashbots/contender --locked\n```\n\nRun a simple spam scenario:\n```bash\ncontender spam --tps 50 -r $RPC_URL fill-block\n```\n\nRun a bundled scenario from the repo:\n```bash\ncontender setup scenario:stress.toml -r $RPC_URL -p $PRIVATE_KEY\ncontender spam  scenario:stress.toml -r $RPC_URL --tps 10 -d 3\n```\n\nSee [examples](docs/examples.md) for more usage patterns.\n\n### Docker Instructions\n\nFetch the latest image:\n\n```bash\ndocker pull flashbots/contender\n```\n\nDouble-check your RPC URL:\n\n```bash\nexport RPC=\"http://host.docker.internal:8545\"\n# uncomment if host.docker.internal doesn't work:\n# export RPC=\"http://172.17.0.1:8545\"\n```\n\nRun contender in a container with persistent state:\n\n```bash\ndocker run -it -v /tmp/.contender:/root/.local/state/contender \\\ncontender spam --tps 20 -r $RPC transfers\n```\n\n\u003e `-v` maps `/tmp/.contender` on the host machine to `/root/.local/state/contender` in the container, which contains the DB; used for generating reports and saving contract deployments.\n\n## ⚙️ Prerequisites\n\n- **Rust toolchain** (latest stable)\n- **SQLite development headers** (`libsqlite3-dev` on Linux)\n- A JSON-RPC endpoint for the target Ethereum node\n\n## 📚 Docs\n\nContender is a high-performance Ethereum transaction spammer and benchmarking tool, built for repeatable load tests against EL clients and live networks.\nIt supports both **per-second** (TPS) and **per-block** (TPB) timing, seeded fuzzing for reproducibility, and SQLite-backed state for contracts, runs, and reports.\n\n### 1. Introduction\n- [Overview](docs/overview.md)\n\n### 2. Getting Started\n- [Installation](docs/installation.md)\n- [CLI Reference](docs/cli.md)\n- [Example Commands](docs/examples.md)\n\n### 3. Writing Scenarios\n- [Scenario File Structure](docs/scenarios.md)\n- [Placeholders](docs/placeholders.md)\n- [Creating a New Scenario](docs/creating_scenarios.md)\n- [Constructor Args](docs/constructor_args.md)\n\n### 4. Advanced Usage\n- [Engine API Spamming](docs/engine-api.md)\n- [Reports, Database, and Admin Tools](docs/reports-db-admin.md)\n- [Using Contender as a Library](docs/library-usage.md)\n- [Composite Campaigns](docs/campaigns.md)\n\n### 5. Internals\n- [Architecture](docs/architecture.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflashbots%2Fcontender","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fflashbots%2Fcontender","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflashbots%2Fcontender/lists"}