Send Binary Transaction
URI Params
Param
Type
Description
Methods
Method
REST Method
Description
Example Request
Expected Response
Status Code
Description
Last updated
Last updated
curl --location 'https://lim.gateway.astralane.io/irisb?api-key=APIKEY&method=sendTransaction' \
--data-binary @transaction.bin#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = reqwest::Client::builder()
.build()?;
let mut headers = reqwest::header::HeaderMap::new();
headers.insert("Content-Type", "application/octet-stream".parse()?); //Optional
let irisb_transaction_bytes = bincode::serialize(&irisb_transaction)
.context("Failed to serialize IrisB transaction to binary")?;
let request = client.request(reqwest::Method::POST, "https://lim.gateway.astralane.io/irisb?api-key=APIKEY&method=sendTransaction")
.headers(headers)
.body(irisb_transaction_bytes);
let response = request.send().await?;
let body = response.text().await?;
println!("{}", body);
Ok(())
}
import { Transaction, VersionedTransaction } from "@solana/web3.js";
/**
* Sends a serialized Solana transaction as raw binary (application/octet-stream)
* to the Astralane IrisB gateway.
*/
async function sendBinaryTransaction(
transaction: Transaction | VersionedTransaction,
apiKey: string
): Promise<void> {
const txBytes: Uint8Array = transaction.serialize();
const url = `https://<location>.gateway.astralane.io/irisb?api-key=${apiKey}&method=SendTransaction`;
const response = await fetch(url, {
method: "POST",
headers: {
"Content-Type": "application/octet-stream",
},
body: txBytes,
});
if (!response.ok) {
throw new Error(
`sendBinaryTransaction failed: ${response.status} ${response.statusText}`
);
}
}
// Usage
// ... build and sign your transaction ...
await sendBinaryTransaction(signedTransaction, "YOUR_API_KEY");