> For the complete documentation index, see [llms.txt](https://docs.novarpc.xyz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.novarpc.xyz/searchers/base.md).

# Base

Searchers can connect to a WebSocket feed of private pending transactions on Base, allowing them to submit backrun bundles into a short, competitive auction window.

An API key is required. Keys authenticate the WebSocket connection and may be rate-limited or revoked if rules are violated.

***

#### Auction Mechanics

Each eligible transaction opens a short auction window (up to \~100ms). The unsigned transaction is sent via WebSocket to searchers, and searchers may send one or more bids to win the right to backrun the transaction.&#x20;

At auction end, the highest-paying searcher is sent the raw signed transaction and may broadcast it, along with their backrun, directly to the sequencer. After some time, Nova also broadcasts the transaction and backrun to the sequencer, guaranteeing inclusion.&#x20;

Latency is critical, and colocation in AWS us-east-1 is strongly recommended.

<figure><picture><source srcset="/files/yhi0aHoz2W4btLYEgLuy" media="(prefers-color-scheme: dark)"><img src="/files/E7XqqNounDVdzQ5hQa3y" alt=""></picture><figcaption></figcaption></figure>

***

#### Refund Rules

Searchers must return at least 75% of realized profit to the refund address:

```rust
0xfbFAF450E7e739f11584D9Db1dAfd1E7a77099fb
```

An example of this can be seen [here](https://basescan.org/tx/0x7b71a6fff22c9b436cf41b469dbd99aecfefa60978030d3c30cfc2cf8cd93670).

This refund must be an explicit ETH transfer included in the backrun transaction itself. Profit is evaluated per bundle based on on-chain execution.

Any form of sandwiching against protected transactions results in an immediate ban.

***

#### Monitoring and Enforcement

The system continuously monitors:

* Sandwich behavior
* Profit share compliance (≥ 75%)
* Revert rates, especially during competitive auctions
* Latency and submission patterns

Violations may result in reduced flow, artificial websocket delays, or a permanent ban, depending on severity and persistence.

***

#### WebSocket Connection

Connect using your API key:

```html
wss://base.novarpc.xyz/ws/v1/<API_KEY>
```

The protocol uses JSON-RPC 2.0 over WebSocket. If the connection drops, clients must reconnect and resubscribe. No state is preserved across reconnects.

***

#### Transaction Subscription

After connecting, you must explicitly subscribe to receive transactions:

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "eth_subscribe",
  "params": ["nova_partialPendingTransactions"]
}
```

The stream emits pending transactions eligible for backruns. Messages are delivered in the order they arrive at the server. No ordering or completeness guarantees are provided beyond that.

Responses contain individual transactions with signature fields stripped:

```json
{
  "jsonrpc": "2.0",
  "method": "eth_subscription",
  "params": {
    "subscription": "0xa04fcb2de702f3bcd205ce666b7d5232",
    "result": {
      "chainId": "0x2105",
      "from": "0xcba40bd88d70ec7b31a898e1a5d1cffde91069f2",
      "to": "0xa44f26477bd3460103310395f4e3b713d4c9e5d6",
      "hash": "0x04f2103bed46aef0edf4ece05c5a43a72df127315b097e6bc1615ac8d8cd59f9",
      "value": "0x18fae27693b40000",
      "gas": "0x5a3c",
      "maxPriorityFeePerGas": "0x216744fd",
      "maxFeePerGas": "0x4b04cc44a",
      "nonce": "0x1ca",
      "type": "0x2",
      "data": "0x",
      "accessList": []
    }
  }
}
```

If your bid wins the auction, you will receive the signed raw transaction bytes

```json
{
  "jsonrpc": "2.0",
  "method": "eth_subscription",
  "params": {
    "subscription": "0xa04fcb2de702f3bcd205ce666b7d5232",
    "result": {
      ...
      "rawTx": "0x..."
    }
  }
}
```

***

#### Submitting Bids

Bids are submitted over the same WebSocket connection using eth\_sendBundle:

```json
  {                                                                                                                                        
    "jsonrpc": "2.0",
    "id": 2,
    "method": "eth_sendBundle",
    "params": [
      {
        "txs": [
          "0xTargetTransactionHash",
          "0xRawBackrunTransaction"
        ],
        "bid": 5000000000,
        "replacementUuid": "550e8400-e29b-41d4-a716-446655440000"
      }
    ]
  }
```

* `txs` - an array where the first element is the target transaction hash (as received in the auction notification), and the second element\
  is your signed backrun transaction in raw hex form. Only one backrun transaction is supported per bundle.
* `bid` - your bid amount in wei. This is used to rank backruns during the auction.
* `replacementUuid` - optional. If provided, any previous bid with the same UUID will be replaced, allowing you to update your bid during\
  the auction window.

{% hint style="warning" %}
Note: Auctions may extend beyond the current flashblock. If the auction window spans a flashblock boundary, the winning backrun will be included in the next flashblock.
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.novarpc.xyz/searchers/base.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
