openapi: 3.1.0 info: title: Jito Block Engine JSON-RPC API version: '1.0' description: >- JSON-RPC API for the Jito Block Engine. The Block Engine accepts bundles and transactions from searchers, bots, and dApps and forwards them to Jito-Solana leader validators for atomic block inclusion. Bundles are ordered, atomic groups of up to five Solana transactions that must execute together — if any one fails the entire bundle reverts. A SOL tip to a designated tip account is required for bundles to be considered by leaders. contact: name: Jito Labs url: https://www.jito.network license: name: Apache-2.0 url: https://www.apache.org/licenses/LICENSE-2.0 x-mev: true x-network: solana servers: - url: https://mainnet.block-engine.jito.wtf description: Mainnet global - url: https://amsterdam.mainnet.block-engine.jito.wtf description: Mainnet Amsterdam - url: https://dublin.mainnet.block-engine.jito.wtf description: Mainnet Dublin - url: https://frankfurt.mainnet.block-engine.jito.wtf description: Mainnet Frankfurt - url: https://london.mainnet.block-engine.jito.wtf description: Mainnet London - url: https://ny.mainnet.block-engine.jito.wtf description: Mainnet New York - url: https://slc.mainnet.block-engine.jito.wtf description: Mainnet Salt Lake City - url: https://singapore.mainnet.block-engine.jito.wtf description: Mainnet Singapore - url: https://tokyo.mainnet.block-engine.jito.wtf description: Mainnet Tokyo - url: https://testnet.block-engine.jito.wtf description: Testnet global - url: https://dallas.testnet.block-engine.jito.wtf description: Testnet Dallas - url: https://ny.testnet.block-engine.jito.wtf description: Testnet New York tags: - name: Bundles description: Submit and inspect atomic Solana transaction bundles. - name: Transactions description: Direct sendTransaction proxy to validator leaders. paths: /api/v1/bundles: post: summary: Submit Bundle Or Query Bundle State operationId: bundlesRpc tags: - Bundles description: >- JSON-RPC 2.0 endpoint that accepts the `sendBundle`, `getBundleStatuses`, `getInflightBundleStatuses`, `getTipAccounts`, and `getRandomTipAccount` methods. The `method` field in the request body selects which operation is invoked. requestBody: required: true content: application/json: schema: oneOf: - $ref: '#/components/schemas/SendBundleRequest' - $ref: '#/components/schemas/GetBundleStatusesRequest' - $ref: '#/components/schemas/GetInflightBundleStatusesRequest' - $ref: '#/components/schemas/GetTipAccountsRequest' - $ref: '#/components/schemas/GetRandomTipAccountRequest' responses: '200': description: JSON-RPC response object. content: application/json: schema: oneOf: - $ref: '#/components/schemas/SendBundleResponse' - $ref: '#/components/schemas/GetBundleStatusesResponse' - $ref: '#/components/schemas/GetInflightBundleStatusesResponse' - $ref: '#/components/schemas/GetTipAccountsResponse' - $ref: '#/components/schemas/GetRandomTipAccountResponse' '429': description: Rate limited. /api/v1/transactions: post: summary: Send Transaction Through Block Engine operationId: transactionsRpc tags: - Transactions description: >- JSON-RPC 2.0 endpoint exposing the `sendTransaction` method. Acts as a direct proxy to Solana's `sendTransaction`, but routes the transaction through the Block Engine to the next leader for inclusion. Optional `bundleOnly=true` query parameter forces the transaction to be wrapped in a single-tx bundle so it is processed under bundle semantics. parameters: - in: query name: bundleOnly schema: type: boolean description: When true, the transaction is treated as a single-transaction bundle. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SendTransactionRequest' responses: '200': description: Signature of the submitted transaction. content: application/json: schema: $ref: '#/components/schemas/SendTransactionResponse' '429': description: Rate limited. components: schemas: JsonRpcEnvelope: type: object required: - jsonrpc - id - method properties: jsonrpc: type: string enum: - '2.0' id: oneOf: - type: integer - type: string method: type: string SendBundleRequest: allOf: - $ref: '#/components/schemas/JsonRpcEnvelope' - type: object properties: method: const: sendBundle params: type: array minItems: 1 maxItems: 2 items: oneOf: - type: array description: Array of base-58 (default) or base-64 encoded signed transactions. Max 5. maxItems: 5 items: type: string - type: object properties: encoding: type: string enum: - base58 - base64 SendBundleResponse: type: object properties: jsonrpc: type: string id: type: integer result: type: string description: Bundle ID — SHA-256 of the concatenated transaction signatures. GetBundleStatusesRequest: allOf: - $ref: '#/components/schemas/JsonRpcEnvelope' - type: object properties: method: const: getBundleStatuses params: type: array items: type: array maxItems: 5 items: type: string GetBundleStatusesResponse: type: object properties: jsonrpc: type: string id: type: integer result: type: object properties: context: type: object properties: slot: type: integer value: type: array items: $ref: '#/components/schemas/BundleStatus' GetInflightBundleStatusesRequest: allOf: - $ref: '#/components/schemas/JsonRpcEnvelope' - type: object properties: method: const: getInflightBundleStatuses params: type: array items: type: array maxItems: 5 items: type: string GetInflightBundleStatusesResponse: type: object properties: jsonrpc: type: string id: type: integer result: type: object properties: context: type: object properties: slot: type: integer value: type: array items: $ref: '#/components/schemas/InflightBundleStatus' GetTipAccountsRequest: allOf: - $ref: '#/components/schemas/JsonRpcEnvelope' - type: object properties: method: const: getTipAccounts params: type: array maxItems: 0 GetTipAccountsResponse: type: object properties: jsonrpc: type: string id: type: integer result: type: array description: Tip account public keys. items: type: string GetRandomTipAccountRequest: allOf: - $ref: '#/components/schemas/JsonRpcEnvelope' - type: object properties: method: const: getRandomTipAccount GetRandomTipAccountResponse: type: object properties: jsonrpc: type: string id: type: integer result: type: string description: Single randomly selected tip account public key. SendTransactionRequest: allOf: - $ref: '#/components/schemas/JsonRpcEnvelope' - type: object properties: method: const: sendTransaction params: type: array minItems: 1 maxItems: 2 items: oneOf: - type: string description: Base-58 or base-64 encoded signed transaction. - type: object properties: encoding: type: string enum: - base58 - base64 skipPreflight: type: boolean preflightCommitment: type: string maxRetries: type: integer minContextSlot: type: integer SendTransactionResponse: type: object properties: jsonrpc: type: string id: type: integer result: type: string description: Transaction signature. BundleStatus: type: object properties: bundle_id: type: string transactions: type: array items: type: string slot: type: integer confirmationStatus: type: string enum: - processed - confirmed - finalized err: nullable: true type: object InflightBundleStatus: type: object properties: bundle_id: type: string status: type: string enum: - Invalid - Pending - Failed - Landed landed_slot: nullable: true type: integer