# \#contender

**URL:** https://collective.flashbots.net/tag/contender/159.md

[Latest](https://collective.flashbots.net/latest.md) · [Categories](https://collective.flashbots.net/categories.md) · [Tags](https://collective.flashbots.net/tags.md)

---

## [Simplified contender API](https://collective.flashbots.net/t/simplified-contender-api/5223)

<div class="topic-metadata">

**Author:** [@brock](https://collective.flashbots.net/u/brock)\
**Replies:** 0\
**Last updated:** [August 29, 2025, 7:17pm UTC](https://collective.flashbots.net/t/simplified-contender-api/5223 "2025-08-29T19:17:30Z")

</div>

The Contender library API just got a makeover :nail\_polish: It used to take about 75 lines of code to spin up a contender spammer in your project (not including use statements). Now it takes about 13 (or 10 lines if you…

---

## [Building Custom Spammers in Rust with Contender](https://collective.flashbots.net/t/building-custom-spammers-in-rust-with-contender/5105)

<div class="topic-metadata">

**Author:** [@brock](https://collective.flashbots.net/u/brock)\
**Replies:** 0\
**Last updated:** [July 21, 2025, 9:40pm UTC](https://collective.flashbots.net/t/building-custom-spammers-in-rust-with-contender/5105 "2025-07-21T21:40:10Z")

</div>

Contender is typically used as a CLI tool, but it was designed as a library with extensibility being top of mind. When we wanted to test OP-Interop transactions, which pass messages from one chain to another, we realized…
