# Signing & Streams > The few Ora API flows your own wallet signs, and how to read live data streams. ### Transactions you sign 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. ### Real-time streams Live data comes as Server-Sent Events. Browsers' `EventSource` can't send headers, so read streams with `fetch`, from your server, script or extension: ```js title="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](https://docs.useora.xyz/developers/requests-and-errors/#rate-limits). | 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. |