نرخ تتر برای صرافی ارز دیجیتال؛ نرخ مرجع، اسپرد و ترمز اضطراری
نرخ تتر برای صرافی ارز دیجیتال از کجا بیاید؟ نرخ مرجع USDT/IRT، محاسبهٔ اسپرد خرید و فروش، محدودهٔ مجاز انحراف، ترمز اضطراری و کد نمونه برای اتصال به API.

- صرافی رمزارز به یک «نرخ مرجع» مستقل از دفتر سفارش خودش نیاز دارد تا قیمتگذاری، تسویه و هشدار دستکاری قیمت را بر آن بنا کند.
- نرخ تتر EZRate از معاملات چند صرافی و بازار آزاد میانهگیری میشود و تعداد منابع هر لحظه را هم برمیگرداند.
- قیمت خرید و فروش صرافی = نرخ مرجع ± اسپرد؛ اگر نرخ داخلی بیش از حد مجاز از مرجع فاصله گرفت، معاملات خودکار متوقف شود.
هر صرافی ارز دیجیتال ایرانی، چه بازار سفارشمحور داشته باشد چه خرید و فروش آنی، روزانه با یک سؤال سروکار دارد: تتر را الان به چه قیمتی بخریم و بفروشیم؟ پاسخ این سؤال اگر فقط از دفتر سفارش خود صرافی بیاید، با یک سفارش بزرگ یا دستکاری عمدی منحرف میشود. در این مقاله توضیح میدهیم نرخ تتر برای صرافی ارز دیجیتال را چطور از یک منبع مرجع بگیرید و قیمتگذاری امن بسازید.
GET /rates?symbols=usdt بگیرید (هر دقیقه محاسبه میشود و فیلد sources تعداد منابع را میگوید). قیمت فروش آنی = مرجع × (۱ + اسپرد) و قیمت خرید = مرجع × (۱ − اسپرد). اگر قیمت آخرین معاملهٔ داخلی بیش از ۲ تا ۳ درصد از مرجع فاصله گرفت، خرید و فروش آنی را متوقف کنید.این مقاله بخشی از راهنمای کامل API قیمت ارز و طلا است. برای آشنایی با خود تتر و دلیل محبوبیتش در ایران، تتر چیست را ببینید.
چرا صرافی به نرخ مرجع بیرونی نیاز دارد؟
دفتر سفارش هر صرافی فقط تصویر بخشی از بازار است. اگر عمق آن کم باشد، یک سفارش بزرگ میتواند قیمت را چند درصد جابهجا کند. اگر این قیمت مبنای خرید و فروش آنی، تسویهٔ وام یا لیکوئید شدن موقعیتها باشد، یک حرکت کوچک میتواند زنجیرهای از زیان بسازد. نرخ مرجع بیرونی سه نقش دارد:
- قیمتگذاری خرید و فروش آنی: کاربری که تتر را فوری میخرد، با قیمتی معامله کند که به بازار کل ایران نزدیک است، نه فقط به دفتر سفارش خلوت ساعت ۴ صبح.
- تشخیص ناهنجاری: وقتی قیمت داخلی ناگهان از مرجع فاصله میگیرد، احتمالاً یا دستکاری در کار است یا خطای سیستمی.
- گزارشدهی و ارزشگذاری داراییها: ارزش تومانی موجودی تتر کاربران و صرافی با عددی سنجیده شود که قابل دفاع است.
نرخ تتر EZRate چطور ساخته میشود؟
نرخ تتر به تومان از قیمت معاملات چند صرافی رمزارز داخلی و پیامهای خرید و فروش بازار جمع میشود. هر دقیقه نرخهایی که بیش از حد مجاز از میانه فاصله دارند کنار گذاشته میشوند و میانهٔ بقیه منتشر میشود. کنار هر نرخ تعداد منابع (sources) و زمان (updated_at) هم برمیگردد. منطق کلی در کشف قیمت در بازار آزاد و میانه و حذف دادههای پرت توضیح داده شده است.
فیلد usd در پاسخ تتر، قیمت دلاری آن است (معمولاً نزدیک ۱). مقایسهٔ قیمت تومانی تتر با قیمت دلار آزاد هم اطلاعات ارزشمندی میدهد؛ این فاصله در آربیتراژ تتر و دلار بررسی شده است.
فرمول قیمتگذاری خرید و فروش آنی
قیمت فروش به کاربر = نرخ مرجع × (۱ + اسپرد فروش) · قیمت خرید از کاربر = نرخ مرجع × (۱ − اسپرد خرید)
| پارامتر | مقدار پیشنهادی شروع | توضیح |
|---|---|---|
| اسپرد عادی | ۰٫۳٪ تا ۰٫۸٪ | بسته به کارمزد شبکه، نقدشوندگی و رقابت |
| اسپرد ساعتهای خلوت | ۲ برابر اسپرد عادی | وقتی sources کم است یا low_sources فعال است |
| حد انحراف مجاز داخلی از مرجع | ۲٪ تا ۳٪ | بیشتر از این، معاملهٔ آنی متوقف |
| حداکثر عمر نرخ مرجع | ۵ دقیقه | اگر updated_at قدیمیتر بود، معاملهٔ آنی نکنید |
عددهای جدول نقطهٔ شروعاند، نه توصیه. هر صرافی باید آنها را با حجم معاملات، هزینهٔ تأمین تتر و تحمل ریسک خودش تنظیم کند.

پیادهسازی: سرویس نرخ مرجع
// reference-rate.mjs — نرخ مرجع USDT/IRT با ترمز اضطراری
const API = "https://api.ezrate.me/v1"
let ref = null // { buy, sell, sources, low, at }
export async function refresh() {
const r = await fetch(`${API}/rates?symbols=usdt`, {
headers: { "X-API-Key": process.env.EZRATE_KEY }, signal: AbortSignal.timeout(8000) })
if (!r.ok) return
const x = (await r.json()).data[0]
ref = { buy: x.buy, sell: x.sell, sources: x.sources, low: x.low_sources, at: Date.parse(x.updated_at) }
}
export function quote(lastInternalPrice) {
if (!ref || Date.now() - ref.at > 5 * 60_000) return { halted: "reference rate too old" }
const mid = (ref.buy + ref.sell) / 2
if (lastInternalPrice && Math.abs(lastInternalPrice - mid) / mid > 0.03) {
return { halted: "internal price deviates more than 3% from the reference" }
}
const spread = ref.low || ref.sources < 5 ? 0.012 : 0.006
return { buy: Math.floor(mid * (1 - spread)), sell: Math.ceil(mid * (1 + spread)), mid }
}
setInterval(refresh, 60_000)
await refresh()این سرویس عمداً ساده است: نرخ مرجع را هر دقیقه تازه میکند و تابع quote یا قیمت خرید و فروش میدهد یا دلیل توقف را. توقف خودکار مهمترین بخش آن است؛ صرافیهایی که در روزهای هیجانی آسیب دیدند، اغلب قیمتگذاری را بیوقفه به دفتر سفارش داخلی سپرده بودند.
سه سناریوی خطرناک و پاسخ درست
سناریو ۱: جهش ناگهانی قیمت داخلی
یک کاربر با سفارش بزرگ قیمت تتر را در دفتر سفارش شما ۵ درصد بالا میبرد. اگر خرید آنی شما به دفتر سفارش وصل باشد، کاربران دیگر با قیمت غیرواقعی خرید یا فروش میکنند. ترمز اضطراری با مقایسه با مرجع جلوی آن را میگیرد.
سناریو ۲: شبهای تعطیل
جمعهشب منابع کماند و نرخ مرجع با low_sources علامت میخورد. در این ساعتها اسپرد را بیشتر کنید یا سقف حجم معاملهٔ آنی را پایین بیاورید. رفتار بازار در روزهای تعطیل در نقش تتر در کشف قیمت دلار در روزهای تعطیل آمده است.
سناریو ۳: قطعی منبع مرجع
اگر نرخ مرجع بیش از چند دقیقه بهروز نشد، معاملهٔ آنی را متوقف کنید و فقط معاملات دفتر سفارش (که ریسکش با خود کاربران است) را باز بگذارید. هرگز با آخرین نرخ قدیمی معاملهٔ آنی نکنید. الگوهای مدیریت خطا در مدیریت خطا و Rate Limit آمده است.
نمایش نرخ مرجع به کاربر
شفافیت اعتماد میسازد. کنار قیمت خرید و فروش آنی، نرخ مرجع بازار و منبع آن را نشان دهید. کاربری که میبیند قیمت شما ۰٫۵ درصد بالاتر از مرجع است و این فاصله توضیح دارد، کمتر احساس میکند سرش کلاه رفته است. اگر نمیخواهید عدد مرجع را در صفحهٔ خود بسازید، ویجت قیمت تتر بدون کلید و با یک خط کد همین کار را میکند.
چکلیست راهاندازی برای تیم فنی صرافی
- نرخ مرجع فقط سمت سرور دریافت شود و کلید API در کلاینت نباشد (امنیت API Key).
- هر نرخ مرجعی که در یک معامله استفاده شد، همراه زمان و تعداد منبع در لاگ معامله ذخیره شود؛ هنگام اختلاف با کاربر یا حسابرسی به آن نیاز دارید.
- آستانههای توقف و اسپرد از پنل مدیریت قابل تغییر باشند، نه ثابت در کد.
- یک هشدار تلگرامی یا پیامکی برای تیم وقتی معاملهٔ آنی خودکار متوقف شد.
- تست بار: اگر هزار کاربر همزمان قیمت بخواهند، هیچ درخواست اضافهای به API نرود.

نرخهای لحظهای مرتبط با این مطلب: قیمت تتر، قیمت طلای ۱۸ عیار.

نظرات (۰)
نظرها پس از تأیید نمایش داده میشوند؛ برای ارسال، ورود به حساب لازم است.


