Skip to main content

sendBundle

Submit a bundle of signed transactions via JSON-RPC. Bundles are forwarded to the Jito Block Engine for atomic execution.

Bundle constraints

  • Max 5 transactions if your bundle already includes a Jito tip transaction
  • Max 4 transactions if no Jito tip is included — the relay appends its own tip transaction as the 5th
  • At least 1 transaction required
If your bundle does not include a Jito tip, the relay automatically sponsors one and appends it.

Servers

RegionEndpoint
Frankfurthttps://fra.send.raze.sh
Amsterdamhttps://ams.send.raze.sh
Chicagohttps://chi.send.raze.sh
Singaporehttps://sg.send.raze.sh

Request

POST /
Content-Type: application/json

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "sendBundle",
  "params": [
    [
      "<encoded_tx_1>",
      "<encoded_tx_2>"
    ],
    {
      "encoding": "base58"
    }
  ]
}
FieldTypeRequiredDescription
params[0]string[]YesArray of signed transactions (1–5)
params[1].encodingstringNo"base58" (default, Jito-compatible) or "base64"

Response

Success — returns the Jito bundle ID:
{
  "jsonrpc": "2.0",
  "result": "4xTWpZFcQh8mK3nRJjz3wXBoRgixCa6xjnB7YaB1pPB263...",
  "id": 1
}
Error — returns an error object:
{
  "jsonrpc": "2.0",
  "error": {
    "code": -32602,
    "message": "bundle exceeds max size (5 transactions)"
  },
  "id": 1
}
Error codeMeaning
-32700Parse error — invalid JSON
-32602Invalid params — missing transactions, exceeds max bundle size, or malformed
-32003Transaction rejected — tip below minimum

Code examples

curl -X POST https://fra.send.raze.sh \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "sendBundle",
    "params": [
      ["<base58_tx_1>", "<base58_tx_2>"],
      {"encoding": "base58"}
    ]
  }'