# Firma y streams > Los pocos flujos de la API de Ora que firma tu propia wallet, y cómo leer los streams de datos en tiempo real. ### Transacciones que firmas tú La mayoría de las acciones on-chain se ejecutan por completo del lado de Ora, con las wallets que Ora gestiona para tu token: lanzamientos, compras, ventas, nukes, quemas, bloqueos, estrategias y reclamaciones de recompensas. Para ellas, tu script nunca toca una clave privada. Unos pocos flujos mueven dinero *desde tu propia wallet*, así que devuelven transacciones para que esa wallet las firme: | Flujo | Construir | Después | |---|---|---| | Financiar un lanzamiento | `POST /engine/fund` | Firma, envía y luego `POST /engine/fund/confirm` | | Cancelar un lanzamiento | `POST /engine/cancel` | `POST /engine/cancel/submit` con las transacciones firmadas | | Recoger lo recaudado | `POST /engine/collect` | `POST /engine/collect/submit` con las transacciones firmadas | | Comprar aged wallets | `POST /portfolio/marketplace/quote` | `POST /portfolio/marketplace/buy` con los depósitos firmados | Para ejecutarlos sin interfaz, tu script necesita la clave de esa wallet. Con la wallet integrada que se creó cuando te registraste, fírmalos en la app. ### Streams en tiempo real Los datos en tiempo real llegan como Server-Sent Events. El `EventSource` de los navegadores no puede enviar cabeceras, así que lee los streams con `fetch`, desde tu servidor, tu script o tu extensión: ```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); } } ``` Cada stream abierto cuenta como una solicitud en tu [límite de frecuencia](https://docs.useora.xyz/developers/requests-and-errors/#rate-limits). | Stream | Contiene | |---|---| | `/engine/tokens/{mint}/stream` | Un token en una sola conexión: un `snapshot` y luego los eventos de estado, `trades_snapshot` y luego cada `trade`, las wallets conocidas que tienen el token y las estadísticas de holders. | | `/user/tracked-wallets/trades/stream` | Operaciones en tiempo real de las wallets que sigues. | | `/sol-usd/events` | Precio SOL/USD. | | `/blockhash/events` | Último blockhash y altura de bloque, aproximadamente cada 220 ms. | | `/jito/tip-lamports/events` | Percentiles del tip floor de Jito. | | `/jito/tip-accounts/events` | Lista de cuentas de tip de Jito. |