Transaction Submission

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

Endpoint

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

Note: Traffic is not encrypted because the shared endpoint currently uses plain HTTP. See TLS Status 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, 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
Build15
Grow35
Accelerate50

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 are doing high-frequency submission, such as arbitrage or liquidation bots, consider a dedicated node because shared-tier TPS caps can become a bottleneck.
  • Failed transactions still count toward your TPS quota.

TLS Status

The transaction endpoint currently operates over plain HTTP with no TLS. Transaction data is signed on-chain, so payload integrity is still enforced 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.