همه چیز برای شروع و استفاده حرفهای از پلتفرم
راهنمای سریع برای شروع استفاده از نهنگ رادار
نحوه استفاده از ابزارهای ردیابی نهنگها
راهنمای کامل ابزارهای تحلیلی
تنظیم و مدیریت هشدارهای هوشمند
اطلاعات مربوط به پلنها و خرید اشتراک
مستندات API برای توسعهدهندگان
با ایمیل خود یک حساب کاربری رایگان بسازید. حساب رایگان شامل دسترسی به ۵ نهنگ و ابزارهای پایه است.
در داشبورد میتوانید آمار کلی بازار، فعالیتهای اخیر نهنگها و وضعیت پوزیشنها را مشاهده کنید.
به بخش تریدرها بروید و نهنگهای مختلف را بررسی کنید. میتوانید پوزیشنها، Win Rate و تاریخچه آنها را ببینید.
برای دریافت اعلانهای فوری از فعالیت نهنگها، هشدارهای دلخواه خود را تنظیم کنید و تلگرام را متصل نمایید.
کاربران پلن ویژه و سازمانی میتوانند هر باز یا بسته شدن پوزیشن نهنگها را لحظهای به سرور یا ربات خود دریافت کنند. رویدادهای قابل اشتراک: whale.position.opened و whale.position.closed؛ دکمهی تست رویداد webhook.test را میفرستد.
هر رویداد با یک درخواست POST و بدنهی JSON ارسال میشود (Content-Type: application/json، User-Agent: NahangRadar-Webhooks/1.0) همراه با این هدرها:
id برای هر رویداد یکتاست؛ از آن برای نادیده گرفتن ارسالهای تکراری استفاده کنید. در رویداد باز شدن پوزیشن، exitPrice، pnl و pnlPercent برابر null هستند.
{
"id": "evt_6f1c2b9e-1d4a-4c55-9a51-2f0f4f8d7a10",
"event": "whale.position.closed",
"createdAt": "2026-10-03T08:15:04.120Z",
"data": {
"activityId": "cmg9x1k2p0001",
"address": "0x5b5d51203a0f9079f8aeb098a6523a13f298c060",
"whaleName": "Whale #1",
"asset": "BTC",
"side": "LONG",
"size": 12.5,
"positionValue": 812500,
"leverage": 10,
"entryPrice": 65000,
"exitPrice": 66200,
"pnl": 15000,
"pnlPercent": 18.46,
"importance": 4,
"detectedAt": "2026-10-03T08:15:03.870Z"
}
}امضا HMAC-SHA256 رشتهی <timestamp>.<body> با کلید امضای Webhook است. بدنه را دقیقاً همانطور که رسیده (پیش از parse) امضا کنید و برای مقایسه از مقایسهی زمانثابت استفاده کنید.
import crypto from 'node:crypto'
import express from 'express'
const app = express()
const SECRET = process.env.NAHANG_WEBHOOK_SECRET // whsec_...
// The signature covers the raw body, so read it unparsed
app.post('/hooks/nahang', express.raw({ type: 'application/json' }), (req, res) => {
const timestamp = req.get('X-NahangRadar-Timestamp') ?? ''
const signature = req.get('X-NahangRadar-Signature') ?? ''
const expected =
'sha256=' +
crypto.createHmac('sha256', SECRET).update(`${timestamp}.${req.body}`).digest('hex')
const valid =
signature.length === expected.length &&
crypto.timingSafeEqual(Buffer.from(signature), Buffer.from(expected))
// Refuse replays: the timestamp is signed, so an old request can't be refreshed
const fresh = Math.abs(Date.now() / 1000 - Number(timestamp)) < 5 * 60
if (!valid || !fresh) return res.sendStatus(401)
const { id, event, data } = JSON.parse(req.body)
console.log(id, event, data)
res.sendStatus(200) // answer 2xx within 10 seconds
})
app.listen(3000)