---
title: "Jito Block Engine sendBundle (with landing confirmation)"
method: POST
path: "/jito"
tags: ["RPC"]
---

# Jito Block Engine sendBundle (with landing confirmation)

`POST /jito`

JSON-RPC 2.0 endpoint that submits a bundle to the Jito Block Engine and waits for it to land.
Internally calls `sendJitoBundle`, which simulates the bundle, sends it to
`https://<region>.mainnet.block-engine.jito.wtf/api/v1/bundles`, polls signature status until the
first transaction is confirmed (up to ~30s), and retries on failure.

Spec reference: https://docs.jito.wtf/lowlatencytxnsend/#sendbundle

Notes:
- On success the response is HTTP 200 with a `result` object. On failure the response is HTTP 400 with a JSON-RPC `error` envelope.
- Bundle size is capped at 5 transactions (Jito limit).
- Transactions must already include a tip instruction; this endpoint does NOT inject tips.
- Transactions must be fully signed (all required signatures present) before submission. Unsigned bundles return HTTP 400 with JSON-RPC INVALID_PARAMS and `data.unsignedIndices` listing the offending positions.
- This endpoint blocks until the bundle lands or polling/retries are exhausted.

## Query parameters

- `region` 'mainnet' | 'amsterdam' | 'frankfurt' | 'ny' | 'tokyo'

## Request body

- object
  - `jsonrpc` '2.0', required
  - `id` union — Request id, echoed back in the response
    - number
    - string
  - `method` 'sendBundle', required
  - `params` unknown[], required — [transactions[] (1-5 base58/base64 encoded txs), options? ({ encoding: 'base58' | 'base64' })]
    - unknown

## Response `200`

Success — JSON-RPC envelope with `result` set to the bundle landing details.

- object
  - `jsonrpc` string
  - `id` union
    - number
    - string
  - `result` object — Bundle landing details
    - `bundleId` string — Jito bundle id (UUID)
    - `signature` string — Base58 signature of the first transaction in the bundle

## Other responses

- `400` — Validation, simulation, or upstream failure — JSON-RPC envelope with the `error` field populated. Unsigned-bundle errors include `error.data.unsignedIndices`.

## Changes

- **2026-05-25** `f90fd69d221b` — 1 breaking, 1 warning, 1 info
  - removed `subschema #1, subschema #2` from the `params/items/` request property `oneOf` list
  - removed the optional property `error` from the response with the `200` status
  - added the non-success response with the status `400`
- **2026-05-25** `1708e5fd4a28` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/lpagent/apis/lp-agent-open-api/changes/jito/post.md)

---

[API](https://skmtc.dev/lpagent/apis/lp-agent-open-api.md) · [All operations](https://skmtc.dev/lpagent/apis/lp-agent-open-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/lpagent/lp-agent-open-api/revisions/f90fd69d221b/schema)
