solana-transaction-sender
v1.0.8
Published
Send solana transaction fast and secure to current slot. No high fee needed
Downloads
54
Readme
solana-transaction-sender
Send solana transaction fast and secure to current slot. No high fee needed
Join to follow updates: https://discord.gg/u955DwU8
A lightweight utility library for sending Solana transactions with automatic retries, proxy support, and flexible commitment confirmation handling.
Installation
npm install solana-transaction-sender
# or
pnpm install solana-transaction-senderFeatures
- Initialize a Solana RPC connection with or without a proxy.
- Send transactions (
VersionedTransaction,Transaction,Uint8Array, or base64 string). - Automatic retry handling for RPC/network errors and rate-limiting.
- Track transaction status until your desired confirmation level (
processed,confirmed,finalized). - Block height expiry checks to avoid wasting resources on invalid transactions.
Quick Start
import sendSolanaTransaction, {
initSolanaConnection,
fetchTransactionStatus,
} from "solana-transaction-sender";
import { VersionedTransaction } from "@solana/web3.js";
// Create a connection
const connection = initSolanaConnection("https://api.mainnet-beta.solana.com");
// Send a transaction
(async () => {
const tx = new VersionedTransaction(...); // your transaction
const signature = await sendSolanaTransaction(tx, {
connection,
commitment: "confirmed",
maxAttempts: 15,
mode: "slow",
});
console.log("✅ Sent transaction:", signature);
// Check its status
const status = await fetchTransactionStatus(signature, connection);
console.log("🔍 Final status:", status);
})();API Reference
initSolanaConnection(endpoint?, proxyProvider?, config?)
Creates a new Solana RPC connection.
endpoint— RPC URL (default:https://api.mainnet-beta.solana.com).proxyProvider— function returning a proxy URL (e.g.() => "http://127.0.0.1:8080").config— additionalConnectionConfigoptions.
sendSolanaTransaction(transaction, options, attempt?)
Sends a transaction and waits for confirmation.
transaction— one ofVersionedTransaction | Transaction | Uint8Array | string (base64).options— configuration object (see below).attempt— internal retry counter (not required for usage).
Options (SolanaTransactionOptions)
commitment— confirmation level ("processed" | "confirmed" | "finalized"). Default:"processed".connection— custom RPC connection (Connection).pollInterval— interval in ms for status polling. Default:2000.maxAttempts— maximum retry attempts. Default:10.blockExpiryMargin— block height margin for transaction expiry. Default:300.sendOptions— extra options forsendRawTransaction.checkBlockExpiry— whether to stop if block height exceeds expiry. Default:true.mode—"fast"or"slow"; affects retry pacing.
fetchTransactionStatus(signature, connection)
Fetches the current status of a transaction by signature.
Returns: "processed" | "confirmed" | "finalized" | void.
Proxy Example
const connection = initSolanaConnection(
"https://api.mainnet-beta.solana.com",
() => "http://127.0.0.1:8888"
);