Submit Transactions
How to submit transaction
Astralane provides a multitude of options for your needs, here are some of RPC methods we offer for Transaction sending.
sendTransaction
🚀 For the fastest transaction execution, we recommend using our sendTransaction method.
This RPC call is fully compatible with all Solana libraries, making it a simple drop-in replacement for your existing workflows. It routes through our partner SWQoS clients, including Jito and Paladin (higher min tip), and provides direct routing to leading block builders like Harmonic and BAM. Additionally, it supports integration with custom schedulers such as Rakurai, ensuring optimized transaction processing, reduced latency, and maximum reliability across the network.
Just insert the URL where you would place a RPC URL and send your txns how you send normally. The only change is to add an instruction to tip.
URI Params
api-key
String
Mandatory, to set api key for authentication
mev-protect
Boolean
Optional, To set mev protect, default is false
swqos-only
Boolean
Optional, if set true , txn will be only sent via swqos, default is false
Example :
https://fra.gateway.astralane.io/iris?api-key=APIKEY&mev-protect=trueJSON-RPC params
Encoded Transaction
String
A base64 encoded transaction.
Transaction Configuration
JSON Object
Its recommended to put
- encoding as base64
- skipPreflight as true
MeV Protect
JSON Object
Optional, setting it true will enable mev protect, Default is false.
Example :
Example Request JSON :
Example Success Response JSON :
Example Error Response JSON :
Please do note that the sendTransaction endpoint supports max_retries feature which is useful for traders which don't want our staked nodes to retry their txns. Reach out to us for more info on ideal use cases.
sendBundle
If your operation depends on atomic txn execution then use our sendBundle endpoint to send atomically executing transactions.
Send up to 4 transactions in a single atomic bundle. These transactions are executed sequentially , ensuring precision and reliability. If any transaction fails, the entire bundle is reverted—guaranteeing consistency and eliminating partial failures.
Boolean
Optional, If a bundle only has 1 txn with this parameter as false, then it will also sent via sentTransaction pipeline. Default is false
Code example for sendIdeal endpoint usage in Go given below:
For further explanation please refer Rust docs on step by step details on whats happening.
Request:
Response:
List of signatures for your transaction
Note: MAX_TRANSACTIONS_IN_BUNDLE = 4
For enhanced MEV Protection on bundles use any valid Solana public key starting with jitodontfront and dontbund1e. Txns containing these instruction will be rejected by Jito/Harmonic block engines unless its at index zero.
Read more about it here: Jito, Harmonic
sendIdeal
Perfect for snipers! Due to the segregation in validators as JITO validators and normal ones, traders are often conflicted between spending more on jito tips vs more in priority fees. Durable nonces offer a way to mitigate this issue.
Our sendIdeal RPC method accepts two transactions:
One with a high priority fee + min tip
Another with a high tip + lower priority fee
We route them through our advanced SWQoS and bundling pipelines. Using durable nonces, once one transaction lands, the other is automatically canceled—ensuring optimal efficiency and cost savings. if you don't want to manage the durable nonce accounts on your own we also provide a managed service for this, We create a nonce account for each api-key you use and you can query them using our getNonce rpc call. Follow the below integration steps for best utilization of this feature:
Step 1 : Generate Nonce instruction
if you already have an existing nonce account, you can just pass in your nonce account, you can simply pass in your nonce account public key instead of the API key. The response will still include your parsed nonce.
To use this nonce, just include an advance nonce instruction as the first instruction in your transactions.
Step 2 : Generate your txn and Partial Sign it before submission
When using Astralane's managed nonce accounts, ensure that you use the partial_sign method to sign your transactions. If you are not utilizing managed nonce accounts, proceed with the standard sign method.
Code example for sendIdeal endpoint usage in TypeScript given below:
For further explanation please refer Rust docs on step by step details on whats happening.
Request:
Response:
The latency performance for your transactions will depend on current network dynamics. Kindly reach out to us on telegram for recommendations on ideal setup for your operation
sendBatch
Submits a batch of serialized transactions for processing. Returns the transaction signatures upon successful submission.
Note :
Only available on request
Request
Method: sendBatch
Parameters
string[]
Yes
Array of base64-encoded serialized transactions. Maximum batch size is 25 transactions. Each transaction must include a valid tip.
object
No
Optional configuration object.
Configuration Object
mevProtect
boolean
false
When true, enables MEV protection for all transactions in the batch.
Response
Returns string[] — an array of base58-encoded transaction signatures, in the same order as the input transactions.
Errors
-32600
request size {n} exceeded max batch size {max}
Batch exceeds the maximum allowed size.
-32600
contains duplicate signature
Two or more transactions in the batch share the same signature.
-32600
Transaction sanitization errors
A transaction is malformed or does not meet the minimum tip requirement.
-32603
failed to send batch, internal error
Internal dispatch failure.
Example
Request
Response
Code Example
Notes
All transactions in the batch must meet the minimum tip requirement.
Duplicate signatures within a batch will cause the entire request to fail.
Transactions are processed individually after submission; a successful response means the transactions were accepted, not confirmed on-chain.
Need Help?
Join our Discord for technical guides, integration support, and live updates.
Last updated