> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nexroute.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Quickstart

> Send your first transaction notification to a Cashback endpoint

This guide walks an onboarded partner through their first notification.

## Prerequisites

* A dedicated Cashback endpoint URL (provided by nexroute during onboarding)
* Source IPs allowlisted on that endpoint (coordinated during onboarding; see [Authentication](/cashback/async/authentication))

## Method

The endpoint speaks JSON-RPC 2.0 over HTTPS and WebSocket. One method is exposed:

* **`eth_notifyRawTransaction`**: notify nexroute of a single user-signed transaction that you are dispatching yourself. nexroute uses it to construct and race a backrun; it never dispatches your transaction.

Any other method returns `-32601 method not found`.

## Notify, then dispatch

The point of Async mode is that notification never delays dispatch. Send the notification and your own dispatch concurrently; don't await the acknowledgment first.

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST <YOUR_CASHBACK_ENDPOINT> \
    -H "Content-Type: application/json" \
    -d '{
      "jsonrpc": "2.0",
      "id": 1,
      "method": "eth_notifyRawTransaction",
      "params": [{ "tx": "<RAW_SIGNED_TX>" }]
    }'
  ```

  ```javascript Node.js theme={null}
  // fire the notification without awaiting it...
  const notification = fetch('<YOUR_CASHBACK_ENDPOINT>', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
      jsonrpc: '2.0',
      id: 1,
      method: 'eth_notifyRawTransaction',
      params: [{ tx: '<RAW_SIGNED_TX>' }],
    }),
  });

  // ...and dispatch through your own path immediately
  await dispatchThroughYourPath(rawSignedTx);

  // inspect the acknowledgment later, e.g. for logging
  const data = await (await notification).json();
  console.log(data.result); // 0x... tx hash
  ```
</CodeGroup>

Params is a single-element array containing an object with `tx`, the hex-encoded raw signed transaction (`0x`-prefixed). The object shape mirrors [eth\_sendPrivateRawTransaction](/cashback/api-reference/eth_sendPrivateRawTransaction) and reserves room for optional fields without further wire breaks.

### Response

The endpoint returns a JSON-RPC envelope echoing the request `id`. The `result` field contains the transaction hash (0x-prefixed, 32 bytes).

```json theme={null}
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": "0x6b6f1c8f5d2c4a9d3e1f8b7c6a5d4e3f2c1b0a9d8e7f6a5b4c3d2e1f0a9b8c7d"
}
```

A non-error response confirms the notification was accepted for backrun analysis. It says nothing about delivery: dispatch, inclusion, and mempool privacy of the transaction remain yours.

## Errors

Errors follow standard JSON-RPC conventions:

| Code     | Cause                                                                                 |
| -------- | ------------------------------------------------------------------------------------- |
| `-32601` | Method other than `eth_notifyRawTransaction`                                          |
| `-32000` | Malformed transaction (RLP decode failure, invalid signature)                         |
| `-32603` | Internal error (rare; the notification is dropped and your transaction is unaffected) |

Treat errors as diagnostics, not failures to handle inline: your dispatch must never depend on the notification succeeding.

## Next steps

* [Authentication](/cashback/async/authentication): IP allowlist setup and operational notes
* [Security](/cashback/async/security): what nexroute guarantees about notified transactions
* [eth\_notifyRawTransaction](/cashback/api-reference/eth_notifyRawTransaction): full method specification
