npm package: @solana-mev-sdk/jito-tip-tx
Description: Create Jito tip transactions for Solana bundles — tip accounts and random selection
Author: solana-mev
Latest version: 0.3.3

# @solana-mev-sdk/jito-tip-tx

Create **Jito tip transactions** for Solana bundles. Provides official Jito mainnet tip account addresses and a helper to build an unsigned SOL transfer to a tip account. You sign the transaction after creation: `tipTx.sign([tipPayer])`.

## Install

```bash
npm install @solana-mev-sdk/jito-tip-tx @solana/web3.js bs58
```

`@solana/web3.js` and `bs58` are peer dependencies; your project must have them installed.

## Usage

### Create tip transaction (unsigned)

```ts
import { Connection, Keypair } from "@solana/web3.js";
import { createTipTransaction } from "@solana-mev-sdk/jito-tip-tx";

const connection = new Connection("https://api.mainnet-beta.solana.com");
const tipPayer = Keypair.fromSecretKey(/* ... */);
const tipAmountSol = 0.00001;

const tipTx = await createTipTransaction(connection, tipPayer, tipAmountSol);
tipTx.sign([tipPayer]);

// Use tipTx in your bundle or send via sendRawTransaction
```

With a specific tip account and commitment:

```ts
const tipTx = await createTipTransaction(
  connection,
  tipPayer,
  tipAmountSol,
  "finalized",
  { tipAccount: "96gYZGLnJYVFmbjzopPSU6QiEV5fGqZNyN9nmNhvrZU5" }
);
tipTx.sign([tipPayer]);
```

### Tip accounts and random selection

```ts
import {
  JITO_TIP_ACCOUNTS,
  JITO_TIP_ACCOUNT_DEFAULT,
  getRandomTipAccount,
} from "@solana-mev-sdk/jito-tip-tx";

// All mainnet tip accounts
console.log(JITO_TIP_ACCOUNTS);

// Single default account (first in list)
console.log(JITO_TIP_ACCOUNT_DEFAULT);

// Random account (same as createTipTransaction default when options omitted)
const tipAccount = getRandomTipAccount();
```

## API

### `createTipTransaction(connection, tipPayer, tipAmountSol, commitment?, options?)`

Returns a **Promise&lt;VersionedTransaction&gt;** (unsigned). You must call `tipTx.sign([tipPayer])` before including in a bundle or sending.

| Parameter        | Type     | Description |
|------------------|----------|-------------|
| `connection`     | `Connection` | Solana RPC connection (for blockhash). |
| `tipPayer`       | `Keypair`   | Keypair that pays the tip and will sign the tx. |
| `tipAmountSol`   | `number`    | Tip amount in SOL (e.g. `0.00001`). |
| `commitment`     | `"finalized" \| "confirmed" \| "processed"` | Optional; default `"finalized"`. Used for `getLatestBlockhash`. |
| `options`        | `CreateTipTransactionOptions` | Optional. `tipAccount` – destination; if omitted, a random account is used. |

### `CreateTipTransactionOptions`

- **`tipAccount?: string`** – Tip destination (base58). If not set, a random Jito tip account is used.

### Constants and helpers

- **`JITO_TIP_ACCOUNTS`** – Readonly array of Jito mainnet tip account addresses.
- **`JITO_TIP_ACCOUNT_DEFAULT`** – First tip account in the list.
- **`getRandomTipAccount()`** – Returns one tip account at random.

## License

MIT

## Links

- [Repository](https://github.com/solana-mev-sdk/jito-tip-tx)
- [Issues](https://github.com/solana-mev-sdk/jito-tip-tx/issues)
- [Jito docs](https://docs.jito.wtf/)