Skip to content
EN

Developers

Signing & Streams

The few Ora API flows your own wallet signs, and how to read live data streams.

Most on-chain actions run entirely on Ora's side, with the wallets Ora manages for your token: launches, buys, sells, nukes, burns, locks, strategies and reward claims. Your script never touches a private key for those.

A few flows move money from your own wallet, so they return transactions for that wallet to sign:

Flow Build Then
Fund a launch POST /engine/fund Sign, send, then POST /engine/fund/confirm
Cancel a launch POST /engine/cancel POST /engine/cancel/submit with the signed transactions
Collect proceeds POST /engine/collect POST /engine/collect/submit with the signed transactions
Buy aged wallets POST /portfolio/marketplace/quote POST /portfolio/marketplace/buy with the signed deposits

To run these headless, your script needs that wallet's key. With the embedded wallet created when you signed up, sign them in the app instead.

Live data comes as Server-Sent Events. Browsers' EventSource can't send headers, so read streams with fetch, from your server, script or extension:

stream.mjs
const res = await fetch(`https://api.useora.xyz/engine/tokens/${mint}/stream`, {
headers: { Authorization: `Bearer ${process.env.ORA_API_KEY}`, Accept: 'text/event-stream' },
});
const reader = res.body.pipeThrough(new TextDecoderStream()).getReader();
let buf = '';
for (;;) {
const { value, done } = await reader.read();
if (done) break; // reconnect with backoff
buf += value;
for (let i; (i = buf.indexOf('\n\n')) >= 0; buf = buf.slice(i + 2)) {
const frame = buf.slice(0, i); // "event: …" and "data: {…}" lines
console.log(frame);
}
}

Each open stream counts as one request in your rate limit.

Stream Carries
/engine/tokens/{mint}/stream One token on one connection: a snapshot then state events, trades_snapshot then each trade, the known wallets holding the token, and holder stats.
/user/tracked-wallets/trades/stream Live trades of the wallets you track.
/sol-usd/events SOL/USD price.
/blockhash/events Latest blockhash and block height, about every 220 ms.
/jito/tip-lamports/events Jito tip floor percentiles.
/jito/tip-accounts/events Jito tip account list.