Documentation
Trancepad docs

Protocol, integration, and security for launches on Robinhood Chain.

Realtime Socket.IO

Subscribe to tokens, wallets, and raises. No webhooks.

Realtime updates use Socket.IO at path /socket.io on the API origin. There are no webhooks today.

Subscribe

tssocketSubscribe.ts
import { io } from "socket.io-client";

const socket = io(API_URL, {
  path: "/socket.io",
  transports: ["websocket", "polling"],
});

socket.on("connect", () => {
  socket.emit("subscribe:token", tokenAddress);
  // Wallet rooms require a JWT bound to the same wallet
  socket.emit("subscribe:wallet", { wallet: address.toLowerCase(), token: jwt });
  socket.emit("subscribe:raise", raiseAddress);
});

socket.on("newBuy", (tx) => console.log("buy", tx));
socket.on("newSell", (tx) => console.log("sell", tx));
socket.on("priceUpdate", (token) => console.log("price", token));
socket.on("newToken", (token) => console.log("token", token));
socket.on("leaderboardUpdate", (rows) => console.log("lb", rows));
socket.on("portfolioUpdate", (payload) => console.log("portfolio", payload));
socket.on("raiseUpdate", (raise) => console.log("raise", raise));
socket.on("staked", (payload) => console.log("staked", payload));
socket.on("error", (err) => console.error(err)); // RATE_LIMITED, ROOM_LIMIT, UNAUTHORIZED, …

Server events

newBuy / newSell
TransactionDto for curve or indexed trades.
priceUpdate / newToken
TokenDto updates and launches.
leaderboardUpdate / portfolioUpdate
Discovery and wallet room updates.
raiseUpdate / commitment / raiseFilled / marketResolved
Raises and governance (when indexer enabled).
stakingPoolCreated / staked / unstakeRequested / withdrawn / rewardFunded / rewardPaid
Fee staking lifecycle.

Limits

Connections per IP, events per second, and rooms per socket are capped via server env (SOCKET_MAX_*). Prefer unsubscribing when leaving a page.