مستندات

راهنمای استفاده از نهنگ‌ رادار

همه چیز برای شروع و استفاده حرفه‌ای از پلتفرم

شروع کار

راهنمای سریع برای شروع استفاده از نهنگ‌ رادار

ردیابی نهنگ‌ها

نحوه استفاده از ابزارهای ردیابی نهنگ‌ها

ابزارهای تحلیل

راهنمای کامل ابزارهای تحلیلی

سیستم هشدار

تنظیم و مدیریت هشدارهای هوشمند

پلن‌ها و اشتراک

اطلاعات مربوط به پلن‌ها و خرید اشتراک

API و توسعه

مستندات API برای توسعه‌دهندگان

شروع سریع

۱

ثبت‌نام کنید

با ایمیل خود یک حساب کاربری رایگان بسازید. حساب رایگان شامل دسترسی به ۵ نهنگ و ابزارهای پایه است.

۲

داشبورد را بررسی کنید

در داشبورد می‌توانید آمار کلی بازار، فعالیت‌های اخیر نهنگ‌ها و وضعیت پوزیشن‌ها را مشاهده کنید.

۳

نهنگ‌ها را دنبال کنید

به بخش تریدرها بروید و نهنگ‌های مختلف را بررسی کنید. می‌توانید پوزیشن‌ها، Win Rate و تاریخچه آن‌ها را ببینید.

۴

هشدار تنظیم کنید

برای دریافت اعلان‌های فوری از فعالیت نهنگ‌ها، هشدارهای دلخواه خود را تنظیم کنید و تلگرام را متصل نمایید.

Webhooks

کاربران پلن ویژه و سازمانی می‌توانند هر باز یا بسته شدن پوزیشن نهنگ‌ها را لحظه‌ای به سرور یا ربات خود دریافت کنند. رویدادهای قابل اشتراک: whale.position.opened و whale.position.closed؛ دکمه‌ی تست رویداد webhook.test را می‌فرستد.

ساختار درخواست

هر رویداد با یک درخواست POST و بدنه‌ی JSON ارسال می‌شود (Content-Type: application/json، User-Agent: NahangRadar-Webhooks/1.0) همراه با این هدرها:

X-NahangRadar-Event
نام رویداد، مثل whale.position.opened
X-NahangRadar-Delivery
شناسه‌ی یکتای همین ارسال
X-NahangRadar-Timestamp
زمان ارسال به ثانیه (Unix)
X-NahangRadar-Signature
sha256=<HMAC-SHA256 هگز از "timestamp.body">

نمونه‌ی بدنه

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"
  }
}

بررسی امضا (Node.js)

امضا 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)

نکته‌ها

  • فقط آدرس‌های https عمومی پذیرفته می‌شوند؛ آدرس‌های شبکه‌ی داخلی رد می‌شوند.
  • پاسخ ۲xx در کمتر از ۱۰ ثانیه یعنی تحویل موفق. ریدایرکت دنبال نمی‌شود و ارسال ناموفق تکرار نمی‌شود.
  • پس از ۲۰ ارسال ناموفق پیاپی، Webhook به‌طور خودکار غیرفعال می‌شود.

سوالی دارید؟

تیم پشتیبانی ما آماده کمک به شماست