🪝Webhooks
Closed Beta — Webhooks are currently in closed beta testing. To request access, reach out to @kiryl_sol on Telegram.
Overview
Webhooks let you receive real-time wallet activity notifications as structured JSON delivered via HTTP POST to your own endpoint. Instead of reading notifications in Telegram or Discord, your server gets a programmatic payload for every transaction — ideal for building bots, dashboards, alerting systems, or automated trading strategies.
All chains supported by RayBot work with webhooks: Solana, EVM (Ethereum, BSC, Base, Arbitrum, etc.), TRON, and Hypercore.
Getting Started
1. Open the webhook menu
Send /webhook in the RayBot Telegram bot.
2. Add a webhook
Tap Add Webhook and follow the prompts:
URL — Your endpoint must be a public
https://URL. Private/internal addresses (localhost,192.168.*, etc.) are rejected.Label (optional) — A friendly name for the webhook (max 50 characters).
Authorization header (optional) — A value sent as the
Authorizationheader on every request (e.g.Bearer mytoken123). Max 200 characters.
RayBot sends a test POST to your URL before saving. Your endpoint must return a 2xx status code within 1 second.
3. Add wallet addresses
Once the webhook is created, tap Manage Addresses to add the wallet addresses you want to monitor. Wallets added to a webhook work the same as wallets on your main account — all filters and notification settings apply.
4. Configure filters and features
A webhook supports the full set of RayBot tools — all the same filters and features available in a regular bot apply here too:
— All transaction filters (by type, amount, token, age, etc.) — Multi Wallet — alerts when multiple wallets buy the same token — Accumulation — signals when a single wallet builds up a position
This way you receive pre-filtered notifications, ready to fit your exact use case.
📌 To access your Webhook settings:
From Telegram: /start → 👾 Groups → select your Webhook from the list
From the Web interface: navigate to the Destinations section and select your Webhook from the list.
Managing Webhooks
From the /webhook menu you can:
Pause / Resume
Temporarily stop or restart delivery without deleting the webhook
Manage Addresses
Add or remove tracked wallets
Change Auth
Update or remove the Authorization header (send none to remove)
Delete
Permanently remove the webhook and all its tracked wallets
Limits
Free
0
Hobby 50/100
1
Pro 200
3
Whale 500+
5
Each webhook has its own independent set of tracked wallets. Wallet limits follow your subscription plan.
Delivery
Request format
Every notification is an HTTP POST with a JSON body. The request includes these headers:
Content-Type
application/json
User-Agent
RayBot-Webhook/1.0
X-RayBot-Event
The event type (e.g. buy, sell, transfer_in)
X-RayBot-Delivery-Id
Unique ID for this delivery (the transaction signature)
Authorization
Your configured auth header value (if set)
Timeouts and retries
Your server must respond within 1 second.
If delivery fails with a
5xxstatus or a network error (timeout, connection refused), the request is retried automatically.4xxerrors are not retried — these indicate a problem on your end (bad auth, endpoint not found, etc.).
Auto-disable on repeated failures
After 10 consecutive failed deliveries, the webhook is automatically paused and all its wallets are set to inactive. You will see the failure count in the webhook management screen. Resume the webhook from the /webhook menu once the issue is fixed — the failure counter resets on the next successful delivery.
Payload Reference
Standard Events
Event types: buy, sell, swap, transfer_in, transfer_out, nft_transfer, token_mint, add_liquidity, remove_liquidity, migrate, other.
Field notes
id
Transaction signature. Also used as the delivery ID.
failed
true if the on-chain transaction failed.
source
DEX or protocol that processed the trade (e.g. raydium, jupiter, orca, uniswap).
token_changes
One entry per token flow per wallet. direction is in or out. amount_raw is the raw integer value before decimals.
tokens
Metadata map keyed by mint address. Includes price, supply, socials, and image.
position
Present when RayBot has position tracking data for the token. is_new_position means this is the first buy. is_closed means the position was fully sold.
fees
Solana-specific priority fees and Jito tips. null on other chains.
event
Raw event details from the parser (swap mints, transfer sender/receiver, etc.).
Multi-Buy and Accumulation Events
Webhooks also deliver multi_buy events (multiple tracked wallets buying the same token within a short window) and accumulation events (a single wallet repeatedly buying the same token past your threshold). These use the same top-level structure with additional multi_buy or accumulation objects containing purchase details.
Test Event
Sent once when you first add a webhook to verify your endpoint.
Security Recommendations
Use the Authorization header. Set a secret token when creating your webhook and validate it on every incoming request.
Verify the User-Agent. All RayBot webhook requests use
RayBot-Webhook/1.0.Use HTTPS only. RayBot rejects non-HTTPS URLs.
Respond quickly. Return a
2xxwithin 1 second. Do heavy processing asynchronously after acknowledging the request.
Last updated