Real-Time Signals
Push-based wallet and token events as they are indexed. Subscribe once; receive events when transfers match your filters.
Endpoint
URL
wss://api.monadatlas.com/ws/signals
API key required. Use X-API-Key header or query param: wss://api.monadatlas.com/ws/signals?api_key=YOUR_KEY
Subscribe
After connecting, send a JSON message with method: "atlas_subscribe" and optional filters:
{
"method": "atlas_subscribe",
"params": {
"wallets": ["0xabc...", "0xdef..."],
"events": ["wallet_funded", "wallet_token_buy", "wallet_token_sell", "wallet_native_out"],
"tokens": ["0xtoken..."]
}
}
- wallets — Watch these addresses. Empty = all wallets (subject to limits).
- events — Event types to receive. Omit = all events.
- tokens — Filter by token contract. Empty = all tokens.
Event Types
| Event | Description |
|---|---|
wallet_funded | Native MON received (recipient) |
wallet_native_out | Native MON sent (sender) |
wallet_token_buy | ERC20/721/1155 received (recipient) |
wallet_token_sell | ERC20/721/1155 sent (sender) |
Push Payload
{
"event": "wallet_funded",
"wallet": "0xabc...",
"from": "0xfunding...",
"to": "0xabc...",
"tokenAddress": null,
"amount": null,
"valueWei": "1000000000000000000",
"value_mon": "1",
"txHash": "0x...",
"blockNumber": 60923800,
"timestamp": "2026-03-12T18:00:00.000Z",
"transferType": "native",
"received_at": "2026-03-12T18:00:01.234Z",
"received_at_ms": 1710262801234
}
Fields: value_mon — humanized MON (native only). received_at / received_at_ms — push time (for latency). direction — "in" or "out". id — transfer id (dedup). chainId — Monad mainnet (143). blockHash, logIndex, eventIndex, tokenId — for correlation.
Example (Node.js)
const WebSocket = require('ws');
const ws = new WebSocket('wss://api.monadatlas.com/ws/signals?api_key=YOUR_KEY');
ws.on('open', () => {
ws.send(JSON.stringify({
method: 'atlas_subscribe',
params: {
wallets: ['0xYourWatchedWallet...'],
events: ['wallet_funded', 'wallet_token_buy']
}
}));
});
ws.on('message', (data) => {
const msg = JSON.parse(data);
if (msg.event) {
console.log('Transfer:', msg.event, msg.wallet, msg.txHash);
} else {
console.log('Subscribed:', msg);
}
});
Notes
- Indexed data: Events are pushed when transfers are indexed, not at block production. Slight delay vs raw chain.
- Reconnect: Resubscribe after reconnect; no server-side state is persisted.
- vs /ws:
/wsis standard eth_subscribe (blocks, logs)./ws/signalsis Atlas-specific wallet/token events.