Skip to content

Releases: flashbots/contender

contender v0.10.1

07 May 22:48
ad66e74

Choose a tag to compare

Summary

v0.10.1 is a focused patch release for the contender CLI, including RPC/server stability fixes, improved long-running spam funding behavior, custom transaction endpoint support, and dependency updates.

Highlights

  • Added --txs-url support to send transactions to a custom endpoint.
  • Replaced timed --forever auto-funding with per-batch balance-checked funding, reducing over-funding during long spam runs.
  • Fixed RPC/server CPU usage bugs, including cleanup around session shutdown and cancellation.
  • Updated Alloy dependencies.
  • Updated contender_cli to use the newer contender_core.

External Contributors

🙏 Thanks to these folks for their contributions to this release:

All Changes

Features / Behavior Changes

  • Route eth_sendRawTransaction to a dedicated endpoint via --txs-url (#534)
  • Replace spammer refill logic with per-batch balance-checked funding (#523)
  • Switch to per-crate versions (#536)
  • Update “using contender as a library” docs (#537)

Release / Versioning / CI

  • Add release script auto-bump support (#538)
  • Remove trailing slashes from workspace members and path dependencies (#539)
  • Fix dependabot workspace parsing (#540)
  • Pin dependencies (#535)
  • Update release scripts (#562)
  • Add license ops updates (#563)
  • Bump crate versions (#565)
  • Fix tag script index bug and tolerate existing tags (#571)
  • Fix release trigger typo (#572)
  • CI bugfixes (#573)
  • Fix release version parsing (#574)
  • Make release script tolerate retries (#575)
  • Fix container release (#576)
  • Remove stray println (#577)
  • Fix release job version parsing (#578)

Dependency Updates

  • Alloy 2.0 update (#561)
  • alloy-rpc-types-debug 1.0.41 → 2.0.4 (#541)
  • alloy-serde 1.0.41 → 2.0.4 (#545)
  • alloy-signer 1.0.41 → 2.0.4 (#551)
  • alloy-eips 1.0.41 → 1.1.0 (#549)
  • alloy-sol-type-parser 1.4.1 → 1.5.7 (#553)
  • jsonrpsee 0.24.10 → 0.26.0 (#547)
  • tokio 1.48.0 → 1.50.0 (#552)
  • tokio-stream 0.1.17 → 0.1.18 (#543)
  • rand 0.8.5 → 0.9.2 (#546)
  • chrono 0.4.42 → 0.4.44 (#544)
  • handlebars 6.3.2 → 6.4.0 (#550)
  • axum 0.8.8 → 0.8.9 (#554)
  • syn 2.0.108 → 2.0.117 (#555)
  • thiserror 2.0.17 → 2.0.18 (#548)
  • rustls-webpki 0.103.10 → 0.103.13 (#526)
  • openssl 0.10.75 → 0.10.78 (#525)
  • Remove ark-ec from dependencies (#542)
  • mozilla-actions/sccache-action 0.0.9 → 0.0.10 (#528)

Docs / Repo Maintenance

  • Remove license badges from README (#564)

Internal Breaking Changes

  • contender_core::TestScenario::new added a new param to its signature (cancel_token)
    • contender_core is now at v0.11.0

Binaries

The binaries are signed with the PGP key: F62E A741 E6B4 E0BA 58D3 8619 698A C82F 9A2F E605

Contender CLI

System Architecture Binary PGP Signature
x86_64 contender-v0.10.1-x86_64-unknown-linux-gnu.tar.gz PGP Signature
aarch64 contender-v0.10.1-aarch64-unknown-linux-gnu.tar.gz PGP Signature
x86_64 contender-v0.10.1-x86_64-apple-darwin.tar.gz PGP Signature
aarch64 contender-v0.10.1-aarch64-apple-darwin.tar.gz PGP Signature

contender v0.10.0

21 Apr 01:16
v0.10.0
af0b46c

Choose a tag to compare

Summary

New

  • API daemon (#494)
    Run Contender as a service and control it via JSON-RPC.

  • Combined callbacks (#506)
    Chain hooks that implement OnTxSent + OnBatchSent.

  • Tx result tracking (#519)
    Reports now include counts for successful vs failed transactions.


Changes

  • Typed init state (#507)
    Contender now enforces initialized vs uninitialized usage at compile time.

  • min_balance accepts ETH units (#518)
    No need to manually convert to wei, just add a unit: e.g. "1 eth"


Improvements

  • Better spam/campaign logs (#508)
  • Setup logs use tracing spans (#520)
  • Fix spam progress logs in server UI (#510)
  • Cache NilCallback errors (#511)

Tighter API surface, clearer logs, and basic tx outcome visibility.

All Changes

  • chore: update changelogs w/ release tag (#522)
  • version v0.10.0 (#521)
  • feat(rpc): accept eth denominations for SessionOptions.min_balance (#518)
  • feat: track failed/successful txs (#519)
  • (setup cost estimation logs): replace banners with tracing spans (#520)
  • cache errors from NilCallback if detected (#511)
  • server webpage: fix log output from spam_progress reports (#510)
  • improve campaign/spam logs (#508)
  • differentiate initialized Contender from uninitialized; offload checks to compiler (#507)
  • feat: combined callback (#506)
  • Feat/api daemon (#494)

Binaries

The binaries are signed with the PGP key: F62E A741 E6B4 E0BA 58D3 8619 698A C82F 9A2F E605

Contender CLI

System Architecture Binary PGP Signature
x86_64 contender-v0.10.0-x86_64-unknown-linux-gnu.tar.gz PGP Signature
aarch64 contender-v0.10.0-aarch64-unknown-linux-gnu.tar.gz PGP Signature
x86_64 contender-v0.10.0-x86_64-apple-darwin.tar.gz PGP Signature
aarch64 contender-v0.10.0-aarch64-apple-darwin.tar.gz PGP Signature

contender v0.9.1

01 Apr 19:43
v0.9.1
e36a0ae

Choose a tag to compare

Summary

This patch includes improvements to long-running spammers (#496), live metrics reporting (#493), deterministic setup tx ordering (#491), eth_sendRawTransactionSync support (#459), continuous funding for --forever spam runs (#502), metrics support for sub-second blocks (#498), and migrates the .contender data dir, supporting $XDG_STATE_HOME (#499).

❤️ Many thanks to these contributors:

@0xl3on
@vbuilder69420
@gligneul
@bitwiseguy
@0xWeakSheep

All Changes

  • Release/v0.9.1 (#504)
  • bugfix/init scenario error handling (#503)
  • feat(cli): organize help flags into logical sections (#501)
  • feat: keep spammers funded (#502)
  • Add option to config time to inclusion bucket size (#498)
  • feat: move default data dir (#499)
  • spam: harden against transient rpc failures (#496)
  • chore(deps): bump docker/setup-buildx-action from 3 to 4 (#478)
  • chore(deps): bump docker/metadata-action from 5 to 6 (#479)
  • chore(deps): bump rustls-webpki from 0.103.8 to 0.103.10 (#474)
  • feat: structured transaction rate reporting during spam (#493)
  • feat: deterministic setup with --seed flag (#491)
  • feat: add sync raw send transaction support (#459)

Binaries

The binaries are signed with the PGP key: F62E A741 E6B4 E0BA 58D3 8619 698A C82F 9A2F E605

Contender CLI

System Architecture Binary PGP Signature
x86_64 contender-v0.9.1-x86_64-unknown-linux-gnu.tar.gz PGP Signature
aarch64 contender-v0.9.1-aarch64-unknown-linux-gnu.tar.gz PGP Signature
x86_64 contender-v0.9.1-x86_64-apple-darwin.tar.gz PGP Signature
aarch64 contender-v0.9.1-aarch64-apple-darwin.tar.gz PGP Signature

contender v0.9.0

18 Mar 00:35
fce8f5f

Choose a tag to compare

Summary

v0.9.0 introduces a new rpc spammer, flashblocks support, JSON reports for automated analysis, scenario labels for running multiple instances of contender in parallel, and several core performance improvements and bug fixes.

new features

  • add option to export reports as JSON (#453)
  • add scenario labels to enable concurrent spam runs on the same scenario (#456)
  • add flashblocks support, track tx time-to-inclusion within a flashblock (#465)
  • spam any rpc method (#468)

improvements

  • add contender version to bottom of reports (#452)
  • limit concurrent funding tasks and handle "already known" gracefully (#451)
  • add chainlink scenario (#446)
  • spammer: remove delay in tps mode to achieve 1sec loop timing (#454)
  • cleanup reports (#455)
  • fix: generate report when passing --gen-report (#457)
  • contender report: add gas quantiles (#464)
  • set SETUP_CONCURRENCY_LIMIT with env var (#461)

breaking changes are detailed in each crate's individual CHANGELOG.md file.

All Changes

  • chore: set version 0.9.0 (#463)
  • chore(deps): bump lz4_flex from 0.11.5 to 0.11.6 (#473)
  • chore(deps): bump quinn-proto from 0.11.13 to 0.11.14 (#472)
  • chore(deps): bump docker/build-push-action from 6 to 7 (#471)
  • chore(deps): bump docker/setup-qemu-action from 3 to 4 (#470)
  • chore(deps): bump docker/login-action from 3 to 4 (#469)
  • chore(deps): bump actions/download-artifact from 7 to 8 (#467)
  • chore(deps): bump actions/upload-artifact from 6 to 7 (#466)
  • chore(deps): bump keccak from 0.1.5 to 0.1.6 (#458)
  • feat: spam rpc (#468)
  • feat: set SETUP_CONCURRENCY_LIMIT with env var (#461)
  • flashblocks: track tx time-to-inclusion within a flashblock (#465)
  • Merge pull request #464 from yashvardhan-kukreja/gas-quantile-reports
  • cargo fmt
  • feat: contender report: add gas quantiles
  • feat: add scenario labels (#456)
  • fix: generate report when passing --gen-report (#457)
  • chore(deps): bump actions/download-artifact from 4 to 7 (#449)
  • chore(deps): bump actions/upload-artifact from 4 to 6 (#450)
  • feat/cleanup report (#455)
  • feat/json reports (#453)
  • spammer: remove delay in tps mode to achieve 1sec loop timing (#454)
  • add chainlink scenario (#446)
  • fix: limit concurrent funding tasks and handle "already known" gracefully (#451)
  • add contender version to bottom of reports (#452)

Binaries

The binaries are signed with the PGP key: F62E A741 E6B4 E0BA 58D3 8619 698A C82F 9A2F E605

Contender CLI

System Architecture Binary PGP Signature
x86_64 contender-v0.9.0-x86_64-unknown-linux-gnu.tar.gz PGP Signature
aarch64 contender-v0.9.0-aarch64-unknown-linux-gnu.tar.gz PGP Signature
x86_64 contender-v0.9.0-x86_64-apple-darwin.tar.gz PGP Signature
aarch64 contender-v0.9.0-aarch64-apple-darwin.tar.gz PGP Signature

contender v0.8.1

09 Feb 22:45
a4eafc7

Choose a tag to compare

Summary

This release contains bugfixes:

  • fixes spam time drift & invalid erc20 defaults (#443)
  • sets bounds for setup concurrency (#447)

It also upgrades some dependencies. See below for a full list.

All Changes

  • release/v0.8.1 (#448)
  • fix: limit concurrent setup tasks to prevent FD exhaustion (#447)
  • chore(deps): bump actions/upload-artifact from 5 to 6 (#391)
  • chore(deps): bump actions/download-artifact from 6 to 7 (#392)
  • chore(deps): bump actions/checkout from 4 to 6 (#441)
  • chore(deps): bump bytes from 1.10.1 to 1.11.1 (#442)
  • chore(deps): bump git2 from 0.20.2 to 0.20.4 (#444)
  • chore(deps): bump time from 0.3.44 to 0.3.47 (#445)
  • fix spam time drift & erc20 defaults (#443)

Binaries

The binaries are signed with the PGP key: F62E A741 E6B4 E0BA 58D3 8619 698A C82F 9A2F E605

Contender CLI

System Architecture Binary PGP Signature
x86_64 contender-v0.8.1-x86_64-unknown-linux-gnu.tar.gz PGP Signature
aarch64 contender-v0.8.1-aarch64-unknown-linux-gnu.tar.gz PGP Signature
x86_64 contender-v0.8.1-x86_64-apple-darwin.tar.gz PGP Signature
aarch64 contender-v0.8.1-aarch64-apple-darwin.tar.gz PGP Signature

contender v0.8.0

03 Feb 02:36
673dfc0

Choose a tag to compare

Summary

  • track nonces internally for create & setup transactions (#438) (bugfix for fast chains)
  • bugfix: tolerate failure of get_block_receipts (#438)
  • improved core code (#439)

Breaking changes

  • removed --redeploy, no longer skips contract deployments if previously deployed (#438)
  • breaking changes in contender_core (see core changelog for details)

All Changes

  • release/v0.8.0 (#440)
  • feat/simplify agent setup (#439)
  • bugfix/setup nonces (#438)
  • fix: remove unneeded branch rule (#435)
  • Feat/builder playground ci (#432)
  • bugfix: ghcr container latest tag (#434)

Binaries

The binaries are signed with the PGP key: F62E A741 E6B4 E0BA 58D3 8619 698A C82F 9A2F E605

Contender CLI

System Architecture Binary PGP Signature
x86_64 contender-v0.8.0-x86_64-unknown-linux-gnu.tar.gz PGP Signature
aarch64 contender-v0.8.0-aarch64-unknown-linux-gnu.tar.gz PGP Signature
x86_64 contender-v0.8.0-x86_64-apple-darwin.tar.gz PGP Signature
aarch64 contender-v0.8.0-aarch64-apple-darwin.tar.gz PGP Signature

contender v0.7.4

27 Jan 21:12
v0.7.4
704450a

Choose a tag to compare

Summary

Improves campaign spammer, adds more integration tests.

All Changes

  • Release/v0.7.4 (#433)
  • feat/anvil integration tests (#430)
  • feat/simplify campaign builtin semantics (#428)
  • perf(campaign): add fast path for single-mix stages (#427)

Binaries

The binaries are signed with the PGP key: F62E A741 E6B4 E0BA 58D3 8619 698A C82F 9A2F E605

Contender CLI

System Architecture Binary PGP Signature
x86_64 contender-v0.7.4-x86_64-unknown-linux-gnu.tar.gz PGP Signature
aarch64 contender-v0.7.4-aarch64-unknown-linux-gnu.tar.gz PGP Signature
x86_64 contender-v0.7.4-x86_64-apple-darwin.tar.gz PGP Signature
aarch64 contender-v0.7.4-aarch64-apple-darwin.tar.gz PGP Signature

contender v0.7.3

20 Jan 21:17
v0.7.3
82b5f7d

Choose a tag to compare

Summary

Improved error logging in DB, added apple + aarch64 binaries to releases, --infinite campaigns, improved logs, fixed inconsistent campaign seeds, improved tx cache & receipt handling.

All Changes

  • release/v0.7.3 (#426)
  • perf(spammer): lock-free TxActor and non-blocking tx sending (#423)
  • fix: propagate campaign execution errors + fix-campaign-seeds (#425)
  • improve --min-balance warning log (#421)
  • add --infinite flag to campaigns (#420)
  • cross-platform release workflow (#415)
  • spammer: record onchain revert as error in db (#418)

Binaries

The binaries are signed with the PGP key: F62E A741 E6B4 E0BA 58D3 8619 698A C82F 9A2F E605

Contender CLI

System Architecture Binary PGP Signature
x86_64 contender-v0.7.3-x86_64-unknown-linux-gnu.tar.gz PGP Signature
aarch64 contender-v0.7.3-aarch64-unknown-linux-gnu.tar.gz PGP Signature
x86_64 contender-v0.7.3-x86_64-apple-darwin.tar.gz PGP Signature
aarch64 contender-v0.7.3-aarch64-apple-darwin.tar.gz PGP Signature

contender v0.7.2

14 Jan 20:19
0dacd8a

Choose a tag to compare

Summary

Contains a critical bugfix related to builtin scenarios estimating spam cost before deploying contracts.

All Changes

  • release/v0.7.2 (#417)
  • run spam cost estimation after builtin contract deployment (#416)

Binaries

The binaries are signed with the PGP key: F62E A741 E6B4 E0BA 58D3 8619 698A C82F 9A2F E605

Contender CLI

System Architecture Binary PGP Signature
x86_64 contender-v0.7.2-x86_64-unknown-linux-gnu.tar.gz PGP Signature

contender v0.7.1

13 Jan 21:53
3d0cd4d

Choose a tag to compare

Summary

Added admin contract-address subcommand and fixed a bug that could crash the program when running campaigns.

All changes

  • bugfix: funding collisions in campaigns (#413)
  • feat: add contender admin contract-address subcommand (#412)

NOTE: the --timeout flag (from contender spam) is being deprecated. It will be removed in the next minor release.

Binaries

The binaries are signed with the PGP key: F62E A741 E6B4 E0BA 58D3 8619 698A C82F 9A2F E605

Contender CLI

System Architecture Binary PGP Signature
x86_64 contender-v0.7.1-x86_64-unknown-linux-gnu.tar.gz PGP Signature