Master Wallet Broadcast Transaction
curl --request POST \
--url https://api.blockradar.co/v1/wallets/{id}/signing/broadcast \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"transaction": "AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...",
"reference": "jupiter-swap-broadcast-001",
"metadata": {
"source": "jupiter"
}
}
'import requests
url = "https://api.blockradar.co/v1/wallets/{id}/signing/broadcast"
payload = {
"transaction": "AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...",
"reference": "jupiter-swap-broadcast-001",
"metadata": { "source": "jupiter" }
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
transaction: 'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...',
reference: 'jupiter-swap-broadcast-001',
metadata: {source: 'jupiter'}
})
};
fetch('https://api.blockradar.co/v1/wallets/{id}/signing/broadcast', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.blockradar.co/v1/wallets/{id}/signing/broadcast",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'transaction' => 'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...',
'reference' => 'jupiter-swap-broadcast-001',
'metadata' => [
'source' => 'jupiter'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.blockradar.co/v1/wallets/{id}/signing/broadcast"
payload := strings.NewReader("{\n \"transaction\": \"AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...\",\n \"reference\": \"jupiter-swap-broadcast-001\",\n \"metadata\": {\n \"source\": \"jupiter\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.blockradar.co/v1/wallets/{id}/signing/broadcast")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"transaction\": \"AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...\",\n \"reference\": \"jupiter-swap-broadcast-001\",\n \"metadata\": {\n \"source\": \"jupiter\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.blockradar.co/v1/wallets/{id}/signing/broadcast")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"transaction\": \"AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...\",\n \"reference\": \"jupiter-swap-broadcast-001\",\n \"metadata\": {\n \"source\": \"jupiter\"\n }\n}"
response = http.request(request)
puts response.read_body{
"statusCode": 200,
"message": "Transaction signed and broadcast initiated",
"data": {
"id": "f3efdbaa-a1f8-4365-b3b4-768413c9a92b",
"reference": "docs-test-broadcast",
"senderAddress": "HKqZUT3wuyJrsPYmrYPcGduDdjXZTggbLrNsF9WHMvbw",
"recipientAddress": "HKqZUT3wuyJrsPYmrYPcGduDdjXZTggbLrNsF9WHMvbw",
"hash": "5bKNw9RX8aXkrK1VEHg5aPa1xtckpShPyenSRET4mUBXh5uCkWLFV5MhGRi4cMACDJvFn6VfkoKb75Pk4KYw6xtw",
"confirmed": false,
"status": "PENDING",
"type": "SIGNED",
"createdChannel": "api",
"reason": "Transaction signed and broadcast",
"network": "testnet",
"chainId": 103,
"metadata": null,
"signedTransaction": "AeWpW65y80rSu+TU0CSrcvFNovyDiybKRjSskCpfffAFLM0GIYzx...",
"amount": null,
"amountUSD": "0.00",
"fee": null,
"feeUSD": null,
"currency": "USD",
"createdAt": "2026-03-19T13:35:09.921Z",
"updatedAt": "2026-03-19T13:35:09.921Z",
"wallet": {
"id": "c72a6f21-6ab5-48ad-9f99-fd90a2d6d311",
"name": "Solana Testnet Wallet",
"address": "HKqZUT3wuyJrsPYmrYPcGduDdjXZTggbLrNsF9WHMvbw",
"isActive": true,
"status": "ACTIVE",
"network": "testnet"
},
"asset": null,
"blockchain": {
"id": "196badf5-380f-4480-ab4a-d0e4304e91f0",
"name": "solana",
"symbol": "sol",
"slug": "solana",
"isEvmCompatible": false,
"tokenStandard": null
},
"beneficiary": null
}
}{
"statusCode": 400,
"message": "Invalid transaction format: expected a base64-encoded Solana VersionedTransaction"
}Signing
Master Wallet Broadcast Transaction
Sign and broadcast a raw unsigned transaction in one step. The transaction is signed immediately, then submitted on chain via a reliable queue with automatic retries. Returns PENDING status. You receive a signed.success or signed.failed webhook when the result is confirmed.
POST
/
v1
/
wallets
/
{id}
/
signing
/
broadcast
Master Wallet Broadcast Transaction
curl --request POST \
--url https://api.blockradar.co/v1/wallets/{id}/signing/broadcast \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"transaction": "AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...",
"reference": "jupiter-swap-broadcast-001",
"metadata": {
"source": "jupiter"
}
}
'import requests
url = "https://api.blockradar.co/v1/wallets/{id}/signing/broadcast"
payload = {
"transaction": "AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...",
"reference": "jupiter-swap-broadcast-001",
"metadata": { "source": "jupiter" }
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
transaction: 'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...',
reference: 'jupiter-swap-broadcast-001',
metadata: {source: 'jupiter'}
})
};
fetch('https://api.blockradar.co/v1/wallets/{id}/signing/broadcast', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.blockradar.co/v1/wallets/{id}/signing/broadcast",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'transaction' => 'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...',
'reference' => 'jupiter-swap-broadcast-001',
'metadata' => [
'source' => 'jupiter'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.blockradar.co/v1/wallets/{id}/signing/broadcast"
payload := strings.NewReader("{\n \"transaction\": \"AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...\",\n \"reference\": \"jupiter-swap-broadcast-001\",\n \"metadata\": {\n \"source\": \"jupiter\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.blockradar.co/v1/wallets/{id}/signing/broadcast")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"transaction\": \"AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...\",\n \"reference\": \"jupiter-swap-broadcast-001\",\n \"metadata\": {\n \"source\": \"jupiter\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.blockradar.co/v1/wallets/{id}/signing/broadcast")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"transaction\": \"AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...\",\n \"reference\": \"jupiter-swap-broadcast-001\",\n \"metadata\": {\n \"source\": \"jupiter\"\n }\n}"
response = http.request(request)
puts response.read_body{
"statusCode": 200,
"message": "Transaction signed and broadcast initiated",
"data": {
"id": "f3efdbaa-a1f8-4365-b3b4-768413c9a92b",
"reference": "docs-test-broadcast",
"senderAddress": "HKqZUT3wuyJrsPYmrYPcGduDdjXZTggbLrNsF9WHMvbw",
"recipientAddress": "HKqZUT3wuyJrsPYmrYPcGduDdjXZTggbLrNsF9WHMvbw",
"hash": "5bKNw9RX8aXkrK1VEHg5aPa1xtckpShPyenSRET4mUBXh5uCkWLFV5MhGRi4cMACDJvFn6VfkoKb75Pk4KYw6xtw",
"confirmed": false,
"status": "PENDING",
"type": "SIGNED",
"createdChannel": "api",
"reason": "Transaction signed and broadcast",
"network": "testnet",
"chainId": 103,
"metadata": null,
"signedTransaction": "AeWpW65y80rSu+TU0CSrcvFNovyDiybKRjSskCpfffAFLM0GIYzx...",
"amount": null,
"amountUSD": "0.00",
"fee": null,
"feeUSD": null,
"currency": "USD",
"createdAt": "2026-03-19T13:35:09.921Z",
"updatedAt": "2026-03-19T13:35:09.921Z",
"wallet": {
"id": "c72a6f21-6ab5-48ad-9f99-fd90a2d6d311",
"name": "Solana Testnet Wallet",
"address": "HKqZUT3wuyJrsPYmrYPcGduDdjXZTggbLrNsF9WHMvbw",
"isActive": true,
"status": "ACTIVE",
"network": "testnet"
},
"asset": null,
"blockchain": {
"id": "196badf5-380f-4480-ab4a-d0e4304e91f0",
"name": "solana",
"symbol": "sol",
"slug": "solana",
"isEvmCompatible": false,
"tokenStandard": null
},
"beneficiary": null
}
}{
"statusCode": 400,
"message": "Invalid transaction format: expected a base64-encoded Solana VersionedTransaction"
}Authorizations
Path Parameters
Example:
"YOUR_WALLET_ID"
Body
application/json
The serialized unsigned transaction. Base64 for Solana, JSON string for EVM and Tron, base64 transaction envelope XDR for Stellar. Stellar Soroban transactions must be simulated and assembled before submission.
Example:
"AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA..."
Your internal tracking ID.
Example:
"jupiter-swap-broadcast-001"
Custom key-value pairs stored with the transaction record.
Example:
{ "source": "jupiter" }
⌘I

