Send Transaction

A low-latency endpoint to submit signed Solana transactions through 0Block with tip verification and optional preflight/commitment controls.

Overview

  • Goal: Land your signed transaction quickly and reliably with Stake-Weighted QoS.

  • Tip enforcement: Tx must include a SystemProgram::Transfer or TransferWithSeed of ≥ 0.001 SOL (1,000,000 lamports) to an allowed 0Block tip account.

  • Regions: nyc, chi, las, ams, lon, fra, sin, syd.

Prerequisites

2

Tip

Include a ≥ 0.001 SOL transfer to one of the official tip accounts.

3

Signed Tx

Provide a fully signed transaction (base64 or base58).

Endpoint & Headers

Endpoint format

POST https://{region}.0block.io/?api_key=<YOUR_API_KEY>

Example

https://nyc.0block.io/?api_key=<YOUR_API_KEY>

Headers

Content-Type: application/json

Request Schema (JSON-RPC 2.0)

0Block accepts standard JSON-RPC with method: "sendTransaction":

{
  "jsonrpc": "2.0",
  "id": "optional-correlation-id",
  "method": "sendTransaction",
  "params": [
    "<SIGNED_TRANSACTION>",               // required: base64 or base58 string
    {
      "encoding": "base64",               // optional: "base64" | "base58"
      "skipPreflight": false,             // optional: boolean
      "preflightCommitment": "processed", // optional: "processed" | "confirmed" | "finalized"
      "maxRetries": 3,                    // optional: integer
      "minContextSlot": 265470000         // optional: integer
    }
  ]
}

Parameters

Path
Type
Required
Description

jsonrpc

string

No

Use "2.0" (standard marker).

id

string | number

No

Echoed back in responses for correlation.

method

string

Yes

Must be "sendTransaction".

params[0]

string

Yes

Signed Solana transaction as base64 or base58. Base64 padding optional.

params[1].encoding

enum

No

"base64" or "base58". If omitted, auto-detected (tries base64, then base58).

params[1].skipPreflight

boolean

No

true to bypass simulation for lower latency.

params[1].preflightCommitment

enum

No

"processed" | "confirmed" | "finalized" for preflight checks.

params[1].maxRetries

integer

No

Max automatic retry attempts upstream.

params[1].minContextSlot

integer

No

Minimum slot context required by the client.

Tip requirement (enforced): If the transaction does not include a qualifying System transfer ≥ 1,000,000 lamports to an allowed tip account, it will be rejected.

Examples

Minimal (auto-detect encoding)

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "sendTransaction",
  "params": ["BASE64_OR_BASE58_SIGNED_TX"]
}

With options

{
  "jsonrpc": "2.0",
  "id": "tx-42",
  "method": "sendTransaction",
  "params": [
    "BASE64_SIGNED_TX",
    {
      "encoding": "base64",
      "skipPreflight": false,
      "preflightCommitment": "confirmed",
      "maxRetries": 5,
      "minContextSlot": 265470000
    }
  ]
}

cURL

curl -X POST 'https://nyc.0block.io/?api_key=<YOUR_API_KEY>' -H "Content-Type: application/json"   -d '{
        "jsonrpc": "2.0",
        "id": "tx-42",
        "method": "sendTransaction",
        "params": [
          "BASE64_SIGNED_TX",
          { "encoding": "base64", "preflightCommitment": "confirmed", "maxRetries": 5 }
        ]
      }'

JavaScript (Node)

import fetch from "node-fetch";

async function sendTx(apiKey, txBase64) {
  const body = {
    jsonrpc: "2.0",
    id: "tx-42",
    method: "sendTransaction",
    params: [txBase64, { encoding: "base64", preflightCommitment: "confirmed" }]
  };

  const res = await fetch("https://nyc.0block.io/?api_key=<YOUR_API_KEY>", {
    method: "POST",
    headers: {
      Authorization: `Bearer ${apiKey}`,
      "Content-Type": "application/json"
    },
    body: JSON.stringify(body)
  });

  return res.json();
}

Responses

0Block relays the upstream Solana JSON-RPC response on success, typically:

{
  "jsonrpc": "2.0",
  "result": "5t4eBfVv8A3tN6d2zjZphqStjc6b4YbTL7Yt8Y6XWf9",
  "id": "tx-42"
}

Where result is the transaction signature.

On failure, you’ll receive a JSON-RPC error object (either from 0Block pre-checks or from upstream).

0Block Error Codes (Pre-validation)

code
message
When it happens

-32700

Parse error

Malformed JSON.

-32600

Invalid Request: missing method

method missing/empty.

-32601

Method not found

Not "sendTransaction".

-32602

Invalid params: ...

params not array, missing params[0], or decode failure.

-32000

Invalid transaction: ...

Bad framing (sigs/message OOB).

-32000

Invalid transaction message: ...

Message parse failure (legacy or v0).

-32603

Server misconfiguration: no tip pubkeys loaded

Server not configured with tip allowlist.

-32001

Tip verification failed[: reason]

No qualifying tip or below min lamports.

-32002

v0 address table resolution required

Tip destination only resolvable via lookup (not in static keys).

-32098

Upstream error

Solana RPC unavailable / 5xx.

Tip Accounts (Allowlist)

7ryAvKtymdDdnSqE6g8ctS7sMcmxDCZbzXoRDWSLzero
6646q6HMnzAE7BUhsWma86SebPm2VC9bW9tsDJsDzero
2ZH2unJ7NaCu3kiXaiJPDwjSjDNudFgqhMetSDJGzero
9yXPwviBkVAEWGEbCVkYhzyN7fsrybfDSYv7SeTXzero
4LFeE3G7eJDHoStjPrga6MyJdbrMG924MAyLTp3Rzero
GHjaNw8Sd8ArWZt2UqoH2rGYtzt2MspUmxcAshFkzero
MbCZkyVkpADL3kqWPf94bWXNgzwNeyjUqUXBZn5zero
AYXWDKX1wWwS6Rcydx2Z6QjS1SZhW69z2pxoEpuRzero
8kR3r5aaenaauC1qFcBVwAtMAP9GAANthrsLToe3zero
24wwbjb4vXDpfGHhH61JsPkRQzSnCFWUeiuQpXkZzero

Best Practices

  • Choose the nearest region to minimize latency.

  • Use skipPreflight: true only for high-confidence transactions.

  • Adjust preflightCommitment for consistency vs speed.

  • Add retries (maxRetries) for transient upstream errors.

  • Ensure tip destination appears in static accounts for v0 messages.

  • Reuse connections (HTTP/2 keep-alive) for high throughput.

Regions

Region
Endpoint

🇺🇸 North America (East)

https://nyc.0block.io

🇺🇸 North America (Central)

https://chi.0block.io

🇺🇸 North America (West)

https://las.0block.io

🇳🇱 Netherlands

https://ams.0block.io

🇬🇧 United Kingdom

https://lon.0block.io

🇩🇪 Germany

https://fra.0block.io

🇸🇬 Singapore

https://sin.0block.io

🇦🇺 Australia

https://syd.0block.io

Last updated