Transaction Submission

Transactions are sent through the same HTTP JSON-RPC endpoint using sendTransaction and simulateTransaction methods.

Endpoint

http://cute-rabbit.by.supanode.xyz:8899/

Note: Traffic is not encrypted (plain HTTP). See the TLS Status note below.

Submitting a Transaction

cURL

curl http://cute-rabbit.by.supanode.xyz:8899/ \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "sendTransaction",
    "params": [
      "<base64-encoded-transaction>",
      { "encoding": "base64" }
    ]
  }'

JavaScript

const { Connection, Keypair, Transaction, SystemProgram, sendAndConfirmTransaction } = require('@solana/web3.js');

const connection = new Connection("http://cute-rabbit.by.supanode.xyz:8899/", 'confirmed');

// Build and sign your transaction, then:
const signature = await sendAndConfirmTransaction(connection, transaction, [payer]);
console.log("Tx confirmed:", signature);

Rate Limits (TPS)

Transaction submission has its own rate limit, separate from read requests:

TierTPS Limit
Free10
Build50
Grow100
Accelerate100

Exceeding the TPS limit returns 429 Too Many Requests. Use exponential backoff before retrying.

Tips

  • Always call simulateTransaction first in development to catch errors before spending SOL.
  • If you're doing high-frequency submission (arbitrage, liquidation bots), consider a Dedicated node — shared-tier TPS caps can be a bottleneck.
  • Failed transactions (on-chain failures) still count toward your TPS quota.

TLS Status

The transaction endpoint currently operates over plain HTTP (no TLS). Transaction data is signed on-chain, so payload integrity is guaranteed by Solana's cryptography. However, endpoint URLs and IP metadata are transmitted in cleartext. If this is a concern for your setup, contact us via Discord to discuss dedicated nodes with custom TLS.