API reference, Bridges & wallets
Wallet list stream
Every event of the three layers touching any of up to 100 addresses, in one subscription, each event tagged with its address.
WebSocket channel wallets on wss://api.femtos.xyz/v1/ws
Parameters
| Param | In | Example or values | Meaning |
|---|---|---|---|
addresses | filter | <address>,<creator> | The addresses to follow: 1 to 100, 0x or named wallets' handles, a JSON array or one string of them comma-separated (any case, duplicates dropped); at most 500 over a connection's `wallets` subscriptions |
channel | filter | (optional) | Kinds to keep, for every address: a JSON array, or one string of them comma-separated (`channels` is the same field): hc.trades, hc.orders, hc.ledger, hc.liquidations, hc.positions, bridge.transfers, elysium.trades, elysium.bridge, hyperevm.trades, hyperevm.transfers, elysium.transfers, hc.account, sandwiched |
include_spam | filter | (empty), true | true: also the HyperEVM / Elysium swaps and transfers of spam tokens (flagged `spam`), left out by default |
Subscribe
Elysium, HyperCore, HyperEVM
{"op":"subscribe","channel":"wallets","filter":{"addresses":"<address>,<creator>"}}Key: Authorization: Bearer $FEMTOS_KEY. Get a free key, or with no browser through agent onboarding.
Response fields
| Field | Type | Meaning |
|---|---|---|
snapshot: true | WalletsEvent[] | one snapshot frame per address, its `wallet` snapshot (last 50 events, oldest first), each event with its `address`; each counts as one GET /v1/wallet/{address} call: a list of 100 addresses is 100 calls |
data | WalletsEvent | one event of an address of the list, as the `wallet` channel sends it, with its `address`. Every frame (snapshot, events, `gap`, an error of one address) names its address in `filter`: that address's own `wallet` filter (`{address, channel, include_spam}`), never the list. One frame per event; `"batch":"block"`: one frame per address and block: {address, channel, data} |
data.address | string | The address of the list the event belongs to: 0x address, or a named wallet's handle |
filter | object | on every frame: the address it is about, as that address's `wallet` filter (`{address, channel, include_spam}`), never the list |
limits | string | 100 addresses per subscription, 500 per connection (over its `wallets` subscriptions); a subscription counts once toward the connection's subscriptions. |
status | "gap" | a frame of its own: events of those blocks will not come on this subscription (`from_block`, `to_block`, `from_time`, `to_time`, `channels`, `reason`). Not billed |
billing | medium | the snapshot a subscribe asks for counts as GET /v1/wallet/{address} (medium); every other frame by its bytes (1 credit per 48 KiB) |
Related: Bridges & wallets
- Cross-layer wallet GET /v1/wallet/{address} Elysium, HyperCore, HyperEVM
One address (or a named wallet's handle) on HyperCore, HyperEVM and Elysium, plus its latest events. - Wallet stream WS wallet Elysium, HyperCore, HyperEVM
Every event of the three layers touching one address. - HyperCore account GET /v1/hypercore/wallet/{address} HyperCore
One address's HyperCore account: perp value and margin, positions, spot balances. - Wallet open orders GET /v1/hypercore/wallet/{address}/orders HyperCore
One wallet's open orders: resting limit orders and trigger orders, on the main dex and every HIP-3 dex. - Wallet order history GET /v1/hypercore/wallet/{address}/orders/history HyperCore
One wallet's orders that left the book, newest first: how (filled, canceled, rejected) and why, the size filled and its average price. - Wallet fills GET /v1/hypercore/wallet/{address}/fills HyperCore
One wallet's HyperCore fills, newest first, with closed PnL, fees and the position before each. - Wallet fills per bar GET /v1/hypercore/wallet/{address}/fills/bars HyperCore
One wallet's fills on one market summed per bar: buys and sells with their average price, and the position after each bar. - Wallet funding GET /v1/hypercore/wallet/{address}/funding HyperCore
One wallet's funding payments, newest first: paid or received per perp and hour, with the position and the rate. - Swaps by wallet GET /v1/trades Elysium, HyperEVM
Every swap a wallet sent (or a pool’s, a token’s), newest first, filterable by token, side, size and time. - Transfers by wallet GET /v1/transfers Elysium, HyperEVM
ERC-20 transfers sent and received by a wallet, newest first, filterable by token, direction, size and time. - Wallet PnL GET /v1/wallet/{address}/pnl Elysium, HyperEVM
Any wallet on HyperEVM: per token balance, cost basis, realized and unrealized PnL, with 1d / 7d / 30d / all totals and win rate. - Portfolio value history GET /v1/wallet/{address}/value Elysium, HyperEVM
Any address on HyperEVM: its total USD value per 5 min (1d), hour (7d) or day (30d, all). - Wallet PnL curve GET /v1/hypercore/wallet/{address}/pnl HyperCore
One HyperCore wallet's PnL per hour or day: realized, fees, funding, net and cumulative, and its account value. - Wallet PnL stream WS pnl Elysium, HyperEVM
A wallet's positions and PnL on HyperEVM (GET /v1/wallet/{address}/pnl), pushed on subscribe, then the positions each block changes. - Was I sandwiched? GET /v1/wallet/{address}/mev Elysium
Every sandwich of a wallet’s swaps on Elysium: the bot, its two transactions, what the wallet lost. Free, no key. - Ledger stream WS hc.ledger HyperCore
Deposits, withdrawals, transfers and other non-trade balance moves. - Bridge movements GET /v1/bridges Elysium, HyperCore, HyperEVM
Matched HyperCore ↔ HyperEVM transfers with 24 h stats. - Bridge stream WS elysium.bridge | bridge.transfers Elysium, HyperCore, HyperEVM
Each HyperCore ↔ HyperEVM transfer, initiated then completed. - Bridge movements stream WS bridges.recent Elysium, HyperCore, HyperEVM
The GET /v1/bridges answer (movements newest first, 24 h stats), pushed on subscribe, then when a movement of the route changes state. - Bridge coverage GET /v1/bridges/coverage HyperCore, HyperEVM
Every HyperCore ↔ HyperEVM leg since our data starts, paired with its other leg: matched share per direction and token, why the others are not, latency.
More
- This page as Markdown
- The whole API reference
- What Elysium serves
- What HyperCore serves
- What HyperEVM serves
- The whole API in one Markdown file
- OpenAPI 3.1 document
Agent guide (agents.md)llms.txtOpenAPIMCP serverGet an API keyChangelog