Send Transaction
Submit any signed Solana transaction via Jito bundle submission + RPC simultaneously. No quote required, no fee injection — just fast, reliable submission.
Requires API key.
Similar to Jito's sendTransaction and Helius's sendTransaction, but submits to all 5 Jito block engines + Triton RPC simultaneously for maximum landing probability.
POST /v1/send
Request:
json
{
"transaction": "AQAAAA...base64-encoded-signed-transaction...=="
}Response (success):
json
{
"signature": "5Kx9abc...3nF",
"status": "submitted",
"jito": true,
"rpc": true
}Response (unsigned):
json
{
"error": "Transaction is not signed"
}Fields:
| Field | Description |
|---|---|
signature | Transaction signature (base58) |
status | Always "submitted" — does not wait for confirmation |
jito | Whether Jito submission succeeded (at least one of 5 endpoints) |
rpc | Whether RPC submission succeeded |
vs /v1/swap
/v1/swap | /v1/send | |
|---|---|---|
| Requires quoteId | Yes | No |
| Fee verification | Yes | No |
| Accepts any TX | No (must match quote) | Yes |
| Jito submission | Jito only | Jito + RPC |
| Use case | Venum-built swap TXs | Any transaction |
Use Cases
- Bot builders: Build your own transactions, use Venum for reliable Jito submission
- CEX-DEX arb: Build swap via
/v1/swap/build, sign locally, submit via/v1/send - Custom TXs: Multi-instruction transactions, CPI calls, anything that needs frontrun protection
Example
typescript
// Build a swap
const { transaction } = await fetch('https://api.venum.dev/v1/swap/build', {
method: 'POST',
headers: { 'X-API-Key': key, 'Content-Type': 'application/json' },
body: JSON.stringify({ inputMint, outputMint, amount, slippageBps: 50, userPublicKey }),
}).then(r => r.json());
// Sign locally
const tx = VersionedTransaction.deserialize(Buffer.from(transaction, 'base64'));
tx.sign([wallet]);
// Submit via Venum (Jito + RPC)
const result = await fetch('https://api.venum.dev/v1/send', {
method: 'POST',
headers: { 'X-API-Key': key, 'Content-Type': 'application/json' },
body: JSON.stringify({ transaction: Buffer.from(tx.serialize()).toString('base64') }),
}).then(r => r.json());
console.log(result.signature); // Track on-chainRate Limits
| Tier | Limit |
|---|---|
| External API key | 10 req/min |
| Internal API key | Unlimited |
