<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <id>https://docs.orcarail.com/fa/blog/</id>
    <title>OrcaRail API Blog</title>
    <updated>2026-10-13T00:00:00.000Z</updated>
    <generator>https://github.com/jpmonette/feed</generator>
    <link rel="alternate" href="https://docs.orcarail.com/fa/blog/"/>
    <subtitle>OrcaRail API Blog</subtitle>
    <icon>https://docs.orcarail.com/fa/img/favicon-48x48.png</icon>
    <entry>
        <title type="html"><![CDATA[لیست درگاه‌های پرداخت ارز دیجیتال (۲۰۲۶): مقایسه ۱۰ درگاه پرداخت کریپتو]]></title>
        <id>https://docs.orcarail.com/fa/blog/crypto-payment-gateways-list/</id>
        <link href="https://docs.orcarail.com/fa/blog/crypto-payment-gateways-list/"/>
        <updated>2026-10-13T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[مقایسه ۱۰ درگاه پرداخت ارز دیجیتال (رمز ارز، کریپتو) در ۲۰۲۶؛ کارمزد، پرداخت دوره‌ای، امانی یا غیرامانی بودن و پشتیبانی از تتر و USDC در Coinbase Commerce، BitPay، NOWPayments، CoinGate، CoinPayments، Cryptomus، Stripe، MoonPay Commerce، BTCPay Server و OrcaRail.]]></summary>
        <content type="html"><![CDATA[<p>این فهرست مهم‌ترین <strong>درگاه‌های پرداخت ارز دیجیتال</strong> (درگاه پرداخت رمز ارز یا کریپتو) در سال ۲۰۲۶ است که از نظر چیزهایی که هنگام اتصال درگاه اهمیت دارند مقایسه شده‌اند: <strong>کارمزد، پرداخت دوره‌ای (اشتراک)، امانی بودن و پشتیبانی از استیبل کوین‌هایی مثل تتر</strong>.</p>
<p><strong>افشای منافع:</strong> این وبلاگ متعلق به OrcaRail است و OrcaRail یکی از درگاه‌های این فهرست است. همه ارقام مربوط به رقبا از صفحه تعرفه یا مستندات خود آن‌ها گرفته شده، در تاریخ <strong>۱۳ اکتبر ۲۰۲۶</strong> بررسی شده و لینک منبع کنارش آمده است. تعرفه‌ها تغییر می‌کنند؛ پیش از تصمیم‌گیری با خود ارائه‌دهنده چک کنید.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="quick-comparison">مقایسه سریع<a href="https://docs.orcarail.com/fa/blog/crypto-payment-gateways-list/#quick-comparison" class="hash-link" aria-label="لینک مستقیم به مقایسه سریع" title="لینک مستقیم به مقایسه سریع" translate="no">​</a></h2>
<table><thead><tr><th>درگاه</th><th>کارمزد اعلام‌شده (پلن استاندارد)</th><th>پرداخت دوره‌ای</th><th>مدل</th></tr></thead><tbody><tr><td><a href="https://docs.orcarail.com/fa/blog/crypto-payment-gateways-list/#orcarail" class="">OrcaRail</a></td><td>۰٫۵٪ برای هر تراکنش تکمیل‌شده، ۱٬۰۰۰ تراکنش اول رایگان؛ بدون کارمزد در نصب روی سرور خودتان</td><td>بله: لینک پرداخت برای هر دوره، یا برداشت خودکار روی زنجیره (EVM، سولانا)</td><td>API میزبانی‌شده یا نصب روی سرور خودتان؛ به‌طور پیش‌فرض غیرامانی</td></tr><tr><td><a href="https://docs.orcarail.com/fa/blog/crypto-payment-gateways-list/#coinbase-commerce" class="">Coinbase Commerce</a></td><td>۱٪</td><td>مستند نشده</td><td>میزبانی‌شده</td></tr><tr><td><a href="https://docs.orcarail.com/fa/blog/crypto-payment-gateways-list/#bitpay" class="">BitPay</a></td><td>۲٪ + ۰٫۲۵ دلار (در حجم بالاتر کمتر)</td><td>مبتنی بر فاکتور</td><td>میزبانی‌شده، تسویه به ارز فیات یا کریپتو</td></tr><tr><td><a href="https://docs.orcarail.com/fa/blog/crypto-payment-gateways-list/#nowpayments" class="">NOWPayments</a></td><td>از ۰٫۵٪ (۱٪ با تبدیل ارز)</td><td>بله: فاکتور دوره‌ای</td><td>میزبانی‌شده</td></tr><tr><td><a href="https://docs.orcarail.com/fa/blog/crypto-payment-gateways-list/#coingate" class="">CoinGate</a></td><td>۱٪</td><td>فاکتور زمان‌بندی‌شده</td><td>میزبانی‌شده</td></tr><tr><td><a href="https://docs.orcarail.com/fa/blog/crypto-payment-gateways-list/#coinpayments" class="">CoinPayments</a></td><td>۳٪ + کارمزد شبکه</td><td>مستند نشده</td><td>میزبانی‌شده</td></tr><tr><td><a href="https://docs.orcarail.com/fa/blog/crypto-payment-gateways-list/#cryptomus" class="">Cryptomus</a></td><td>۲٪ برای حساب‌های جدید، قابل مذاکره تا ۰٫۴٪</td><td>بله</td><td>میزبانی‌شده</td></tr><tr><td><a href="https://docs.orcarail.com/fa/blog/crypto-payment-gateways-list/#stripe-stablecoin-payments" class="">پرداخت استیبل کوین Stripe</a></td><td>۱٫۵٪</td><td>بله، از طریق Stripe Billing</td><td>میزبانی‌شده، تسویه به ارز فیات</td></tr><tr><td><a href="https://docs.orcarail.com/fa/blog/crypto-payment-gateways-list/#moonpay-commerce-formerly-helio" class="">MoonPay Commerce (Helio)</a></td><td>۱٪ تا ۲٪</td><td>بله</td><td>میزبانی‌شده</td></tr><tr><td><a href="https://docs.orcarail.com/fa/blog/crypto-payment-gateways-list/#btcpay-server" class="">BTCPay Server</a></td><td>ندارد (هزینه سرور با شماست)</td><td>به‌صورت داخلی ندارد</td><td>نصب روی سرور خودتان، متن‌باز</td></tr></tbody></table>
<p>کارمزد شبکه (گس) در همه درگاه‌ها جداگانه است و اینکه چه کسی آن را می‌پردازد به ارائه‌دهنده و تنظیمات شما بستگی دارد.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="how-to-choose">چطور درگاه پرداخت ارز دیجیتال انتخاب کنیم؟<a href="https://docs.orcarail.com/fa/blog/crypto-payment-gateways-list/#how-to-choose" class="hash-link" aria-label="لینک مستقیم به چطور درگاه پرداخت ارز دیجیتال انتخاب کنیم؟" title="لینک مستقیم به چطور درگاه پرداخت ارز دیجیتال انتخاب کنیم؟" translate="no">​</a></h2>
<ul>
<li class=""><strong>اشتراک می‌فروشید؟</strong> بین درگاه‌هایی که <strong>در هر دوره فاکتور می‌فرستند</strong> و مشتری باید هر بار دستی پرداخت کند، و درگاه‌هایی که با یک تأیید یک‌باره مشتری <strong>به‌صورت خودکار برداشت می‌کنند</strong> یکی را انتخاب کنید. برداشت خودکار ریزش مشتری را کمتر نگه می‌دارد. روی زنجیره، این کار با allowance توکن ERC-20 در شبکه‌های EVM یا delegation توکن SPL در سولانا انجام می‌شود. <a class="" href="https://docs.orcarail.com/fa/blog/why-allowance-pull-subscriptions/">چرا برداشت مبتنی بر allowance را انتخاب کردیم</a>.</li>
<li class=""><strong>کارمزد در حجم فروش شما.</strong> درصد ثابت راحت محاسبه می‌شود. کارمزدهای ثابت به‌ازای هر فاکتور، مثل ۰٫۲۵ دلار BitPay، روی پرداخت‌های کوچک سنگین است.</li>
<li class=""><strong>امانی بودن و تسویه.</strong> بعضی درگاه‌ها پول شما را نگه می‌دارند و به ارز فیات تسویه می‌کنند. بعضی دیگر استیبل کوین را مستقیم به کیف پولی که در اختیار خودتان است می‌فرستند.</li>
<li class=""><strong>استیبل کوین‌ها و شبکه‌ها.</strong> مطمئن شوید توکن‌هایی که مشتریان شما دارند (تتر USDT، USDC) روی شبکه‌هایی که استفاده می‌کنند پذیرفته می‌شود.</li>
<li class=""><strong>تست.</strong> سندباکس روی تست‌نت به شما اجازه می‌دهد کل روند، از جمله وب‌هوک‌ها و تمدیدها، را بدون پول واقعی امتحان کنید.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="orcarail">OrcaRail<a href="https://docs.orcarail.com/fa/blog/crypto-payment-gateways-list/#orcarail" class="hash-link" aria-label="لینک مستقیم به OrcaRail" title="لینک مستقیم به OrcaRail" translate="no">​</a></h2>
<p><a href="https://orcarail.com/" target="_blank" rel="noopener noreferrer" class="">OrcaRail</a> یک API برنامه‌نویس‌محور برای <strong>صفحه پرداخت و اشتراک با استیبل کوین</strong> روی شبکه‌های EVM و سولانا است.</p>
<ul>
<li class=""><strong>کارمزد:</strong> ۰٫۵٪ برای هر تراکنش تکمیل‌شده در نسخه میزبانی‌شده، و ۱٬۰۰۰ تراکنش اول رایگان است. نسخه نصب‌شده روی سرور خودتان هیچ کارمزدی برای OrcaRail ندارد. <a href="https://orcarail.com/pricing/" target="_blank" rel="noopener noreferrer" class="">تعرفه‌ها</a> را ببینید.</li>
<li class=""><strong>پرداخت دوره‌ای:</strong> دو روش دریافت. یک <strong>لینک پرداخت</strong> برای هر دوره، یا <strong>برداشت خودکار</strong> روی زنجیره که هر تمدید را از allowance توکن ERC-20 (در EVM) یا delegation توکن SPL (در سولانا) برداشت می‌کند. <a class="" href="https://docs.orcarail.com/fa/docs/subscriptions/overview/">اشتراک‌ها</a> را ببینید.</li>
<li class=""><strong>امانی بودن:</strong> به‌طور پیش‌فرض غیرامانی. پرداخت‌ها به آدرس‌های برداشتی که در اختیار خودتان است تسویه می‌شوند.</li>
<li class=""><strong>ابزار برنامه‌نویسی:</strong> REST API، وب‌هوک امضاشده، SDK نود جی‌اس و پی‌اچ‌پی، پکیج Laravel Cashier، افزونه ووکامرس و یک <a class="" href="https://docs.orcarail.com/fa/docs/integration/mcp/">سرور MCP</a> برای دستیارهای برنامه‌نویسی هوش مصنوعی.</li>
<li class=""><strong>تست:</strong> <a class="" href="https://docs.orcarail.com/fa/docs/sandbox/overview/">سازمان سندباکس</a> رایگان روی تست‌نت با کلیدهای <code>ak_test_</code>.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="coinbase-commerce">Coinbase Commerce<a href="https://docs.orcarail.com/fa/blog/crypto-payment-gateways-list/#coinbase-commerce" class="hash-link" aria-label="لینک مستقیم به Coinbase Commerce" title="لینک مستقیم به Coinbase Commerce" translate="no">​</a></h2>
<p><a href="https://www.coinbase.com/commerce" target="_blank" rel="noopener noreferrer" class="">Coinbase Commerce</a> صفحه پرداخت فروشندگان در Coinbase است.</p>
<ul>
<li class=""><strong>کارمزد:</strong> ۱٪ برای هر تراکنش، طبق صفحه Commerce.</li>
<li class=""><strong>پرداخت دوره‌ای:</strong> Coinbase Commerce قابلیت اشتراک داخلی را مستند نکرده است.</li>
<li class=""><strong>نکته:</strong> Coinbase اعلام کرده که <a href="https://www.coinbase.com/blog/introducing-a-powerful-suite-of-business-payment-tools-on-coinbase-business" target="_blank" rel="noopener noreferrer" class="">Commerce را در Coinbase Business ادغام می‌کند</a>. بررسی کنید ثبت‌نام در کشور شما باز است یا نه.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="bitpay">BitPay<a href="https://docs.orcarail.com/fa/blog/crypto-payment-gateways-list/#bitpay" class="hash-link" aria-label="لینک مستقیم به BitPay" title="لینک مستقیم به BitPay" translate="no">​</a></h2>
<p><a href="https://bitpay.com/" target="_blank" rel="noopener noreferrer" class="">BitPay</a> یکی از قدیمی‌ترین پردازشگرهای پرداخت کریپتو است و به حساب بانکی یا به ارز دیجیتال تسویه می‌کند.</p>
<ul>
<li class=""><strong>کارمزد:</strong> پلکانی بر اساس حجم ماهانه. ۲٪ + ۰٫۲۵ دلار برای هر فاکتور پرداخت‌شده زیر ۵۰۰ هزار دلار در ماه، ۱٫۵٪ + ۰٫۲۵ دلار تا ۱ میلیون دلار، و ۱٪ + ۰٫۲۵ دلار بالاتر از آن. <a href="https://support.bitpay.com/hc/en-us/articles/203324073-What-fees-will-I-pay-to-use-BitPay-for-payment-processing" target="_blank" rel="noopener noreferrer" class="">پشتیبانی BitPay</a> را ببینید.</li>
<li class=""><strong>پرداخت دوره‌ای:</strong> مبتنی بر فاکتور. مشتری هر صورت‌حساب را خودش پرداخت می‌کند.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="nowpayments">NOWPayments<a href="https://docs.orcarail.com/fa/blog/crypto-payment-gateways-list/#nowpayments" class="hash-link" aria-label="لینک مستقیم به NOWPayments" title="لینک مستقیم به NOWPayments" translate="no">​</a></h2>
<p><a href="https://nowpayments.io/" target="_blank" rel="noopener noreferrer" class="">NOWPayments</a> از فهرست بلندی از رمز ارزها پشتیبانی می‌کند.</p>
<ul>
<li class=""><strong>کارمزد:</strong> از ۰٫۵٪ برای پرداخت‌های بدون تبدیل ارز شروع می‌شود. پرداخت‌های همراه با تبدیل ۱٪ است. <a href="https://nowpayments.io/pricing" target="_blank" rel="noopener noreferrer" class="">تعرفه‌ها</a> را ببینید.</li>
<li class=""><strong>پرداخت دوره‌ای:</strong> یک Recurring Payments API که در هر دوره صورت‌حساب، فاکتور یا درخواست پرداخت می‌فرستد.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="coingate">CoinGate<a href="https://docs.orcarail.com/fa/blog/crypto-payment-gateways-list/#coingate" class="hash-link" aria-label="لینک مستقیم به CoinGate" title="لینک مستقیم به CoinGate" translate="no">​</a></h2>
<p><a href="https://coingate.com/" target="_blank" rel="noopener noreferrer" class="">CoinGate</a> یک پردازشگر میزبانی‌شده مستقر در اتحادیه اروپاست.</p>
<ul>
<li class=""><strong>کارمزد:</strong> ۱٪ برای هر تراکنش در پلن Standard، بدون هزینه ماهانه. نرخ Enterprise سفارشی است. <a href="https://coingate.com/pricing" target="_blank" rel="noopener noreferrer" class="">تعرفه‌ها</a> را ببینید.</li>
<li class=""><strong>پرداخت دوره‌ای:</strong> محصول Billing «فاکتورهای یک‌باره یا زمان‌بندی‌شده» می‌فرستد.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="coinpayments">CoinPayments<a href="https://docs.orcarail.com/fa/blog/crypto-payment-gateways-list/#coinpayments" class="hash-link" aria-label="لینک مستقیم به CoinPayments" title="لینک مستقیم به CoinPayments" translate="no">​</a></h2>
<p><a href="https://www.coinpayments.net/" target="_blank" rel="noopener noreferrer" class="">CoinPayments</a> از رمز ارزها و توکن‌های زیادی پشتیبانی می‌کند.</p>
<ul>
<li class=""><strong>کارمزد:</strong> ۳٪ برای هر پرداخت به‌علاوه کارمزد شبکه، طبق <a href="https://www.coinpayments.net/help-fees" target="_blank" rel="noopener noreferrer" class="">صفحه کارمزدها</a>. این صفحه یک پلن رایگان هم دارد، اما فقط برای واریز به کیف پول شخصی است، نه پرداخت‌های فروشنده.</li>
<li class=""><strong>پرداخت دوره‌ای:</strong> در صفحه کارمزدها مستند نشده است.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="cryptomus">Cryptomus<a href="https://docs.orcarail.com/fa/blog/crypto-payment-gateways-list/#cryptomus" class="hash-link" aria-label="لینک مستقیم به Cryptomus" title="لینک مستقیم به Cryptomus" translate="no">​</a></h2>
<p><a href="https://cryptomus.com/" target="_blank" rel="noopener noreferrer" class="">Cryptomus</a> پرداخت، تسویه و تبدیل را در یک حساب ارائه می‌دهد.</p>
<ul>
<li class=""><strong>کارمزد:</strong> حساب‌های جدید ۲٪ برای هر تراکنش می‌پردازند. بسته به نوع کسب‌وکار، گردش مالی و نوع اتصال، نرخ می‌تواند تا ۰٫۴٪ کاهش یابد. <a href="https://cryptomus.com/fees/payment" target="_blank" rel="noopener noreferrer" class="">کارمزد پرداخت</a> را ببینید.</li>
<li class=""><strong>پرداخت دوره‌ای:</strong> به‌صورت سرویس پرداخت دوره‌ای ارائه می‌شود.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="stripe-stablecoin-payments">پرداخت استیبل کوین Stripe<a href="https://docs.orcarail.com/fa/blog/crypto-payment-gateways-list/#stripe-stablecoin-payments" class="hash-link" aria-label="لینک مستقیم به پرداخت استیبل کوین Stripe" title="لینک مستقیم به پرداخت استیبل کوین Stripe" translate="no">​</a></h2>
<p><a href="https://docs.stripe.com/payments/stablecoin-payments" target="_blank" rel="noopener noreferrer" class="">Stripe</a> استیبل کوین می‌پذیرد و آن را در موجودی Stripe شما به <strong>ارز فیات محلی</strong> تسویه می‌کند.</p>
<ul>
<li class=""><strong>کارمزد:</strong> ۱٫۵٪ مبلغ تراکنش به دلار. <a href="https://docs.stripe.com/crypto/stablecoin-payments" target="_blank" rel="noopener noreferrer" class="">مستندات Stripe</a> را ببینید.</li>
<li class=""><strong>توکن‌ها:</strong> USDC روی Tempo، اتریوم، سولانا، پالیگان و Base. USDP و USDG روی برخی شبکه‌ها و فقط در آمریکا پذیرفته می‌شوند.</li>
<li class=""><strong>پرداخت دوره‌ای:</strong> بله، از طریق <a href="https://docs.stripe.com/billing/subscriptions/stablecoins" target="_blank" rel="noopener noreferrer" class="">اشتراک‌های Stripe Billing</a>.</li>
<li class=""><strong>محدودیت‌ها:</strong> کسب‌وکار باید در کشوری پشتیبانی‌شده باشد. آمریکا به‌طور عمومی در دسترس است و اتحادیه اروپا، هنگ‌کنگ، مکزیک و سوئیس در پیش‌نمایش خصوصی هستند. مشتری در هر تراکنش تا ۱۰٬۰۰۰ دلار می‌تواند پرداخت کند و پرداخت‌های استیبل کوین امکان اعتراض (dispute) ندارند.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="moonpay-commerce-formerly-helio">MoonPay Commerce (نام قبلی Helio)<a href="https://docs.orcarail.com/fa/blog/crypto-payment-gateways-list/#moonpay-commerce-formerly-helio" class="hash-link" aria-label="لینک مستقیم به MoonPay Commerce (نام قبلی Helio)" title="لینک مستقیم به MoonPay Commerce (نام قبلی Helio)" translate="no">​</a></h2>
<p><a href="https://www.moonpay.com/newsroom/moonpay-commerce" target="_blank" rel="noopener noreferrer" class="">MoonPay Commerce</a> همان محصول Helio است که از اکوسیستم سولانا شکل گرفت.</p>
<ul>
<li class=""><strong>کارمزد:</strong> ۱٪ یا ۲٪ برای هر تراکنش، بسته به پلن و دسته ریسک. تبدیل (swap) ۰٫۲۵٪ و تسویه خودکار به فیات (off-ramp) ۰٫۵٪ هزینه اضافه دارد. <a href="https://docs.hel.io/docs/pricing-fees" target="_blank" rel="noopener noreferrer" class="">تعرفه‌ها</a> را ببینید.</li>
<li class=""><strong>پرداخت دوره‌ای:</strong> اشتراک پشتیبانی می‌شود.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="btcpay-server">BTCPay Server<a href="https://docs.orcarail.com/fa/blog/crypto-payment-gateways-list/#btcpay-server" class="hash-link" aria-label="لینک مستقیم به BTCPay Server" title="لینک مستقیم به BTCPay Server" translate="no">​</a></h2>
<p><a href="https://btcpayserver.org/" target="_blank" rel="noopener noreferrer" class="">BTCPay Server</a> نرم‌افزاری رایگان، متن‌باز و قابل نصب روی سرور خودتان است که روی بیت کوین و لایتنینگ تمرکز دارد.</p>
<ul>
<li class=""><strong>کارمزد:</strong> کارمزد پردازش ندارد. هزینه سرور با شماست و خودتان آن را اجرا می‌کنید.</li>
<li class=""><strong>پرداخت دوره‌ای:</strong> جزو قابلیت‌های اصلی نیست.</li>
<li class=""><strong>امانی بودن:</strong> کاملاً غیرامانی. پرداخت‌ها مستقیم به کیف پول خودتان می‌رود.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="summary">جمع‌بندی<a href="https://docs.orcarail.com/fa/blog/crypto-payment-gateways-list/#summary" class="hash-link" aria-label="لینک مستقیم به جمع‌بندی" title="لینک مستقیم به جمع‌بندی" translate="no">​</a></h2>
<ul>
<li class=""><strong>کمترین کارمزد اعلام‌شده در یک درگاه میزبانی‌شده:</strong> OrcaRail (۰٫۵٪، ۱٬۰۰۰ تراکنش اول رایگان) و NOWPayments (از ۰٫۵٪ بدون تبدیل ارز). Cryptomus فقط پس از مذاکره به ۰٫۴٪ می‌رسد.</li>
<li class=""><strong>رایگان و نصب روی سرور خودتان:</strong> BTCPay Server برای بیت کوین، یا OrcaRail روی سرور خودتان برای استیبل کوین روی EVM و سولانا.</li>
<li class=""><strong>اشتراک خودکار روی زنجیره بدون فاکتور در هر دوره:</strong> برداشت خودکار OrcaRail. Stripe Billing هم از اشتراک با استیبل کوین پشتیبانی می‌کند، با کارمزد ۱٫۵٪ و تسویه به فیات.</li>
<li class=""><strong>تسویه به حساب بانکی به ارز فیات:</strong> Stripe یا BitPay.</li>
</ul>
<p>برای امتحان OrcaRail یک <a class="" href="https://docs.orcarail.com/fa/docs/sandbox/overview/">سندباکس</a> رایگان باز کنید و راهنمای <a class="" href="https://docs.orcarail.com/fa/docs/getting-started/">شروع کار</a> را دنبال کنید.</p>]]></content>
        <author>
            <name>OrcaRail</name>
            <uri>https://orcarail.com</uri>
        </author>
        <category label="Payments" term="Payments"/>
        <category label="Crypto" term="Crypto"/>
        <category label="Stablecoins" term="Stablecoins"/>
        <category label="Subscriptions" term="Subscriptions"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[فاست‌های تست‌نت برای sandbox اورکاریل: EVM، سولانا و بیت‌کوین]]></title>
        <id>https://docs.orcarail.com/fa/blog/testnet-faucets/</id>
        <link href="https://docs.orcarail.com/fa/blog/testnet-faucets/"/>
        <updated>2026-09-26T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[کجا برای هر شبکه آزمایشی که sandbox اورکاریل پشتیبانی می‌کند توکن آزمایشی رایگان بگیریم؛ USDC و گس روی Ethereum Sepolia، Arbitrum Sepolia و Base Sepolia، Solana Devnet و Bitcoin testnet4.]]></summary>
        <content type="html"><![CDATA[<p>یک <a class="" href="https://docs.orcarail.com/fa/docs/sandbox/overview/">سازمان sandbox</a> در OrcaRail فقط روی شبکه‌های آزمایشی کار می‌کند، پس به‌جای وجوه واقعی با توکن‌های آزمایشی رایگان پرداخت می‌کنید. این صفحه برای هر شبکه آزمایشی که sandbox پشتیبانی می‌کند یک فاست معرفی می‌کند.</p>
<!-- -->
<p>اگر فقط می‌خواهید جریان را ببینید، اصلاً به توکن نیاز ندارید: در صفحه پرداخت sandbox روی <strong>شبیه‌سازی پرداخت</strong> کلیک کنید یا <code>POST /payment_intents/:id/simulate</code> را فراخوانی کنید. <a class="" href="https://docs.orcarail.com/fa/docs/sandbox/simulate-payments/">شبیه‌سازی پرداخت</a> را ببینید.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-you-need">به چه چیزی نیاز دارید<a href="https://docs.orcarail.com/fa/blog/testnet-faucets/#what-you-need" class="hash-link" aria-label="لینک مستقیم به به چه چیزی نیاز دارید" title="لینک مستقیم به به چه چیزی نیاز دارید" translate="no">​</a></h2>
<ul>
<li class=""><strong>توکنی که با آن پرداخت می‌کنید:</strong> USDC روی زنجیره‌های EVM و سولانا، یا BTC روی بیت‌کوین.</li>
<li class=""><strong>گس برای تراکنش:</strong> ETH روی زنجیره‌های EVM یا SOL روی سولانا. بیت‌کوین کارمزدش را با BTC می‌پردازد.</li>
</ul>
<p>از همان کیف پول پرداخت‌کننده‌ای استفاده کنید که در صفحه پرداخت OrcaRail وصل می‌کنید.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="usdc-for-every-chain-circle-faucet">USDC برای همه زنجیره‌ها: فاست Circle<a href="https://docs.orcarail.com/fa/blog/testnet-faucets/#usdc-for-every-chain-circle-faucet" class="hash-link" aria-label="لینک مستقیم به USDC برای همه زنجیره‌ها: فاست Circle" title="لینک مستقیم به USDC برای همه زنجیره‌ها: فاست Circle" translate="no">​</a></h2>
<p><a href="https://faucet.circle.com/" target="_blank" rel="noopener noreferrer" class="">فاست USDC سیرکل</a> روی هر یک از شبکه‌های آزمایشی EVM زیر و روی Solana Devnet، USDC آزمایشی رایگان می‌فرستد. شبکه را انتخاب کنید، آدرس کیف پولتان را وارد کنید و توکن‌ها را درخواست کنید.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="evm-testnets">شبکه‌های آزمایشی EVM<a href="https://docs.orcarail.com/fa/blog/testnet-faucets/#evm-testnets" class="hash-link" aria-label="لینک مستقیم به شبکه‌های آزمایشی EVM" title="لینک مستقیم به شبکه‌های آزمایشی EVM" translate="no">​</a></h2>
<table><thead><tr><th>شبکه</th><th>USDC آزمایشی</th><th>گس (ETH)</th></tr></thead><tbody><tr><td>Ethereum Sepolia</td><td><a href="https://faucet.circle.com/" target="_blank" rel="noopener noreferrer" class="">فاست Circle</a></td><td><a href="https://cloud.google.com/application/web3/faucet/ethereum/sepolia" target="_blank" rel="noopener noreferrer" class="">فاست Google Cloud</a>، <a href="https://www.alchemy.com/faucets/ethereum-sepolia" target="_blank" rel="noopener noreferrer" class="">فاست Alchemy</a></td></tr><tr><td>Arbitrum Sepolia</td><td><a href="https://faucet.circle.com/" target="_blank" rel="noopener noreferrer" class="">فاست Circle</a></td><td><a href="https://www.alchemy.com/faucets/arbitrum-sepolia" target="_blank" rel="noopener noreferrer" class="">فاست Alchemy</a>، <a href="https://faucet.quicknode.com/arbitrum/sepolia" target="_blank" rel="noopener noreferrer" class="">فاست QuickNode</a></td></tr><tr><td>Base Sepolia</td><td><a href="https://faucet.circle.com/" target="_blank" rel="noopener noreferrer" class="">فاست Circle</a></td><td><a href="https://portal.cdp.coinbase.com/products/faucet" target="_blank" rel="noopener noreferrer" class="">فاست Coinbase Developer Platform</a>، <a href="https://www.alchemy.com/faucets/base-sepolia" target="_blank" rel="noopener noreferrer" class="">فاست Alchemy</a>، <a href="https://faucet.quicknode.com/base/sepolia" target="_blank" rel="noopener noreferrer" class="">فاست QuickNode</a></td></tr></tbody></table>
<p>مستندات زنجیره‌ها هم فاست‌هایی معرفی می‌کنند: <a href="https://docs.arbitrum.io/for-devs/dev-tools-and-resources/chain-info" target="_blank" rel="noopener noreferrer" class="">Arbitrum</a> و <a href="https://docs.base.org/base-chain/tools/network-faucets" target="_blank" rel="noopener noreferrer" class="">Base</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="solana-devnet">Solana Devnet<a href="https://docs.orcarail.com/fa/blog/testnet-faucets/#solana-devnet" class="hash-link" aria-label="لینک مستقیم به Solana Devnet" title="لینک مستقیم به Solana Devnet" translate="no">​</a></h2>
<table><thead><tr><th>توکن</th><th>فاست</th></tr></thead><tbody><tr><td>USDC آزمایشی</td><td><a href="https://faucet.circle.com/" target="_blank" rel="noopener noreferrer" class="">فاست Circle</a> (Solana Devnet را انتخاب کنید)</td></tr><tr><td>SOL برای کارمزد</td><td><a href="https://faucet.solana.com/" target="_blank" rel="noopener noreferrer" class="">فاست سولانا</a></td></tr></tbody></table>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="bitcoin-testnet4">Bitcoin testnet4<a href="https://docs.orcarail.com/fa/blog/testnet-faucets/#bitcoin-testnet4" class="hash-link" aria-label="لینک مستقیم به Bitcoin testnet4" title="لینک مستقیم به Bitcoin testnet4" translate="no">​</a></h2>
<p>OrcaRail از <strong>testnet4</strong> بیت‌کوین استفاده می‌کند (اکسپلورر: <a href="https://mempool.space/testnet4" target="_blank" rel="noopener noreferrer" class="">mempool.space testnet4</a>). از کیف پولی استفاده کنید که آدرس‌های testnet4 را پشتیبانی کند.</p>
<table><thead><tr><th>توکن</th><th>فاست</th></tr></thead><tbody><tr><td>BTC آزمایشی</td><td><a href="https://mempool.space/testnet4/faucet" target="_blank" rel="noopener noreferrer" class="">فاست mempool.space testnet4</a>، <a href="https://faucet.testnet4.dev/" target="_blank" rel="noopener noreferrer" class="">فاست testnet4.dev</a>، <a href="https://coinfaucet.eu/en/btc-testnet4/" target="_blank" rel="noopener noreferrer" class="">CoinFaucet testnet4</a></td></tr></tbody></table>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="tips">نکته‌ها<a href="https://docs.orcarail.com/fa/blog/testnet-faucets/#tips" class="hash-link" aria-label="لینک مستقیم به نکته‌ها" title="لینک مستقیم به نکته‌ها" translate="no">​</a></h2>
<ul>
<li class="">فاست‌ها تعداد درخواست را محدود می‌کنند؛ معمولاً یک درخواست برای هر آدرس در روز. زودتر درخواست بدهید.</li>
<li class="">بعضی فاست‌های گس از شما می‌خواهند وارد حساب شوید یا موجودی کمی روی شبکه اصلی داشته باشید.</li>
<li class="">sandbox شما دقیقاً نشان می‌دهد کدام شبکه‌های آزمایشی فعال‌اند. برای قواعد، <a class="" href="https://docs.orcarail.com/fa/docs/sandbox/testnets-and-faucets/">تست‌نت‌ها و فاست‌ها</a> را ببینید: سازمان‌های live نمی‌توانند از شبکه‌های آزمایشی استفاده کنند و sandboxها نمی‌توانند از شبکه‌های اصلی استفاده کنند.</li>
</ul>]]></content>
        <author>
            <name>OrcaRail</name>
            <uri>https://orcarail.com</uri>
        </author>
        <category label="Sandbox" term="Sandbox"/>
        <category label="Multi-Chain" term="Multi-Chain"/>
        <category label="Stablecoins" term="Stablecoins"/>
        <category label="Crypto" term="Crypto"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[پکیج‌های توسعه‌دهنده OrcaRail متن‌باز شدند]]></title>
        <id>https://docs.orcarail.com/fa/blog/orcarail-packages-open-source/</id>
        <link href="https://docs.orcarail.com/fa/blog/orcarail-packages-open-source/"/>
        <updated>2026-07-31T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[SDKها، سرور MCP، افزونه ووکامرس و اپ دموی OrcaRail با مجوز MIT متن‌باز هستند. از آن‌ها استفاده کنید، issue ثبت کنید و در GitHub پول ریکوئست بفرستید.]]></summary>
        <content type="html"><![CDATA[<p><strong>۳۱ ژوئیه ۲۰۲۶</strong> — <strong>پکیج‌های توسعه‌دهنده</strong> OrcaRail اکنون با مجوز <strong>MIT</strong> <strong>متن‌باز</strong> هستند. می‌توانید آزادانه از آن‌ها استفاده کنید، وقتی چیزی خراب است یا کم است issue ثبت کنید و هر وقت توانستید بهبودهایی ارائه دهید.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="whats-open-source">چه چیزهایی متن‌باز است<a href="https://docs.orcarail.com/fa/blog/orcarail-packages-open-source/#whats-open-source" class="hash-link" aria-label="لینک مستقیم به چه چیزهایی متن‌باز است" title="لینک مستقیم به چه چیزهایی متن‌باز است" translate="no">​</a></h2>
<p>این پکیج‌ها در GitHub عمومی‌اند و مجوز MIT دارند:</p>
<table><thead><tr><th>پکیج</th><th>رجیستری / نقش</th><th>مخزن</th></tr></thead><tbody><tr><td><strong>SDK نود</strong></td><td><code>@orcarail/node</code></td><td><a href="https://github.com/orcarail/orcarail-node" target="_blank" rel="noopener noreferrer" class="">orcarail/orcarail-node</a></td></tr><tr><td><strong>SDK پی‌اچ‌پی</strong></td><td><code>orcarail/orcarail-php</code></td><td><a href="https://github.com/OrcaRail/sdks-php" target="_blank" rel="noopener noreferrer" class="">OrcaRail/sdks-php</a></td></tr><tr><td><strong>Laravel Cashier</strong></td><td><code>orcarail/cashier-orcarail</code></td><td><a href="https://github.com/OrcaRail/sdks-laravel-cashier" target="_blank" rel="noopener noreferrer" class="">OrcaRail/sdks-laravel-cashier</a></td></tr><tr><td><strong>سرور MCP</strong></td><td><code>@orcarail/mcp</code></td><td><a href="https://github.com/OrcaRail/mcp" target="_blank" rel="noopener noreferrer" class="">OrcaRail/mcp</a></td></tr><tr><td><strong>افزونه ووکامرس</strong></td><td><code>orcarail/plugins-woocommerce</code></td><td><a href="https://github.com/OrcaRail/plugins-woocommerce" target="_blank" rel="noopener noreferrer" class="">OrcaRail/plugins-woocommerce</a></td></tr><tr><td><strong>اپ دمو</strong></td><td>نمونه کامل یکپارچه‌سازی</td><td><a href="https://github.com/OrcaRail/demo" target="_blank" rel="noopener noreferrer" class="">OrcaRail/demo</a></td></tr></tbody></table>
<p>مثل همیشه از npm یا Composer نصب کنید؛ منبع اصلی هر پکیج همان مخزنی است که بالا آمده است.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="use-report-contribute">استفاده، گزارش، مشارکت<a href="https://docs.orcarail.com/fa/blog/orcarail-packages-open-source/#use-report-contribute" class="hash-link" aria-label="لینک مستقیم به استفاده، گزارش، مشارکت" title="لینک مستقیم به استفاده، گزارش، مشارکت" translate="no">​</a></h2>
<p>از پکیج‌ها در اپ‌هایتان <strong>استفاده کنید</strong>. برای APIها و نمونه‌ها، ایجنت‌ها و افراد را به مخزن‌ها و <a href="https://docs.orcarail.com/" target="_blank" rel="noopener noreferrer" class="">docs.orcarail.com</a> ارجاع دهید.</p>
<p>باگ‌ها و درخواست قابلیت‌ها را در GitHub Issues پکیج مورد نظرتان <strong>گزارش کنید</strong>:</p>
<ul>
<li class=""><a href="https://github.com/orcarail/orcarail-node/issues" target="_blank" rel="noopener noreferrer" class="">issueهای SDK نود</a></li>
<li class=""><a href="https://github.com/OrcaRail/sdks-php/issues" target="_blank" rel="noopener noreferrer" class="">issueهای SDK پی‌اچ‌پی</a></li>
<li class=""><a href="https://github.com/OrcaRail/sdks-laravel-cashier/issues" target="_blank" rel="noopener noreferrer" class="">issueهای Laravel Cashier</a></li>
<li class=""><a href="https://github.com/OrcaRail/mcp/issues" target="_blank" rel="noopener noreferrer" class="">issueهای MCP</a></li>
<li class=""><a href="https://github.com/OrcaRail/plugins-woocommerce/issues" target="_blank" rel="noopener noreferrer" class="">issueهای افزونه ووکامرس</a></li>
<li class=""><a href="https://github.com/OrcaRail/demo/issues" target="_blank" rel="noopener noreferrer" class="">issueهای اپ دمو</a></li>
</ul>
<p>هر وقت توانستید <strong>مشارکت کنید</strong>: fork کنید، پول ریکوئست باز کنید و تغییرات را متمرکز نگه دارید. اصلاح مستندات، آزمون‌ها و بهبودهای کوچک SDK به‌ویژه استقبال می‌شوند. اگر مطمئن نیستید چیزی کجا باید برود، اول یک issue باز کنید.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="why-this-matters">چرا مهم است<a href="https://docs.orcarail.com/fa/blog/orcarail-packages-open-source/#why-this-matters" class="hash-link" aria-label="لینک مستقیم به چرا مهم است" title="لینک مستقیم به چرا مهم است" translate="no">​</a></h2>
<p>SDKها و افزونه‌های متن‌باز یعنی می‌توانید ببینید OrcaRail چطور با زیرساخت شما ارتباط برقرار می‌کند، کمبودها را بدون انتظار برای یک فروشنده بسته رفع کنید و بهبودها را با همه کسانی که همین زیرساخت را یکپارچه می‌کنند به اشتراک بگذارید.</p>
<p>نسخه میزبانی‌شده OrcaRail همچنان سطح محصول برای پرداخت‌ها، داشبوردها و زیرساخت عملیاتی است. این اعلامیه درباره <strong>پکیج‌های توسعه‌دهنده</strong>ای است که با آن‌ها یکپارچه می‌شوید؛ ادعا نمی‌کند کل پلتفرم متن‌باز است.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="summary">جمع‌بندی<a href="https://docs.orcarail.com/fa/blog/orcarail-packages-open-source/#summary" class="hash-link" aria-label="لینک مستقیم به جمع‌بندی" title="لینک مستقیم به جمع‌بندی" translate="no">​</a></h2>
<table><thead><tr><th>حوزه</th><th>وضعیت</th></tr></thead><tbody><tr><td><strong>مجوز</strong></td><td>MIT</td></tr><tr><td><strong>پکیج‌ها</strong></td><td>SDK نود، SDK پی‌اچ‌پی، Laravel Cashier، سرور MCP، افزونه ووکامرس، دمو</td></tr><tr><td><strong>جامعه</strong></td><td>از پکیج‌ها استفاده کنید، issue ثبت کنید، پول ریکوئست بفرستید</td></tr></tbody></table>
<p>ممنون که روی OrcaRail می‌سازید. اگر چیز مفیدی ساختید، PR باز کنید؛ یا اگر کمک لازم دارید، issue.</p>
<hr>
<p><strong><a href="https://app.orcarail.com/" target="_blank" rel="noopener noreferrer" class="">اپ OrcaRail</a></strong> · <strong><a href="https://docs.orcarail.com/" target="_blank" rel="noopener noreferrer" class="">مستندات</a></strong> · <strong><a href="https://github.com/OrcaRail" target="_blank" rel="noopener noreferrer" class="">GitHub</a></strong></p>]]></content>
        <author>
            <name>OrcaRail</name>
            <uri>https://orcarail.com</uri>
        </author>
        <category label="Announcement" term="Announcement"/>
        <category label="Open Source" term="Open Source"/>
        <category label="Crypto" term="Crypto"/>
        <category label="Payments" term="Payments"/>
        <category label="Web3" term="Web3"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[نقشه راه غیرامانی OrcaRail]]></title>
        <id>https://docs.orcarail.com/fa/blog/non-custodial-roadmap/</id>
        <link href="https://docs.orcarail.com/fa/blog/non-custodial-roadmap/"/>
        <updated>2026-04-20T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[نقشه راهی هشت‌مرحله‌ای برای بردن OrcaRail از مدل جاروب با کیف پول HD به قراردادهای لینک پرداخت روی زنجیره، اشتراک مبتنی بر allowance روی EVM و سولانا، کاهش امانت‌داری روی بیت‌کوین و keeperهای غیرمتمرکز اختیاری.]]></summary>
        <content type="html"><![CDATA[<p><strong>۲۰ آوریل ۲۰۲۶</strong> — امروز نقشه راه کامل انتقال OrcaRail از <strong>مدل امانی جاروب (sweep)</strong> فعلی (برای هر لینک پرداخت یک آدرس واریز می‌سازیم، سپس وجوه را جاروب و تقسیم می‌کنیم) به <strong>مدل غیرامانی مبتنی بر قرارداد هوشمند</strong> را منتشر می‌کنیم (وجوه به قراردادی مخصوص هر لینک می‌رسد که به‌صورت اتمیک تقسیم و تسویه می‌کند، و اشتراک‌ها از allowance تحت کنترل پرداخت‌کننده برداشت می‌کنند).</p>
<p>این مطلب فهرست اصلی است. هر مرحله مطلب تفصیلی و صفحه مستندات زنده خودش را دارد تا بتوانید دقیقاً به بخشی که برایتان مهم است لینک بدهید.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="why-we-are-doing-this">چرا این کار را می‌کنیم<a href="https://docs.orcarail.com/fa/blog/non-custodial-roadmap/#why-we-are-doing-this" class="hash-link" aria-label="لینک مستقیم به چرا این کار را می‌کنیم" title="لینک مستقیم به چرا این کار را می‌کنیم" translate="no">​</a></h2>
<p>جریان فعلی کار می‌کند، اما یک مشکل ساختاری ساده دارد: بین واریز و تسویه، <strong>وجوه نزد OrcaRail است</strong>. این موضوع حتی با وجود اینکه ما هرگز موجودی عملیاتی فروشندگان را نگه نمی‌داریم صادق است؛ لحظه بین «پرداخت‌کننده فرستاد» و «فروشنده دریافت کرد» امانی است. حذف این لحظه از نظر امنیت، انطباق و قابلیت اطمینان یک برد است.</p>
<p>به‌طور مشخص، مسیر قدیمی این شکل است:</p>
<div class="wrapper_vprU"><button type="button" class="expandBtn_RmxB" aria-label="Show diagram fullscreen" title="Fullscreen"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><path d="M15 3h6v6M9 21H3v-6M21 3l-7 7M3 21l7-7" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div>
<p>هدف این است:</p>
<div class="wrapper_vprU"><button type="button" class="expandBtn_RmxB" aria-label="Show diagram fullscreen" title="Fullscreen"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><path d="M15 3h6v6M9 21H3v-6M21 3l-7 7M3 21l7-7" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div>
<p>وجوه هرگز از کیف پولی که ما کنترل می‌کنیم عبور نمی‌کنند. تقسیم‌ها روی زنجیره انجام می‌شوند. اشتراک‌ها از allowanceی برداشت می‌کنند که پرداخت‌کننده هر لحظه می‌تواند لغوش کند.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-is-changing-in-one-page">چه چیزی تغییر می‌کند، در یک صفحه<a href="https://docs.orcarail.com/fa/blog/non-custodial-roadmap/#what-is-changing-in-one-page" class="hash-link" aria-label="لینک مستقیم به چه چیزی تغییر می‌کند، در یک صفحه" title="لینک مستقیم به چه چیزی تغییر می‌کند، در یک صفحه" translate="no">​</a></h2>
<table><thead><tr><th>حوزه</th><th>قبل</th><th>بعد</th></tr></thead><tbody><tr><td>آدرس‌های لینک پرداخت</td><td>EOA مشتق از HD یا smart account آلکمی برای هر لینک</td><td>CREATE2 قطعی روی EVM؛ PDA روی سولانا؛ هیچ کلیدی نزد OrcaRail ذخیره نمی‌شود</td></tr><tr><td>تسویه</td><td>تراکنش جاروب پس از مشاهده</td><td>تقسیم اتمیک داخل قرارداد گیرنده در همان تراکنش پرداخت</td></tr><tr><td>اشتراک‌ها</td><td>برداشت امانی از کیف پولی که فروشنده شارژ کرده</td><td>پرداخت‌کننده <code>approve</code> در ERC-20 یا delegate در SPL امضا می‌کند؛ keeper تابع <code>charge(id)</code> را صدا می‌زند</td></tr><tr><td>Keeper</td><td>یک زمان‌بند واحد در NestJS</td><td>NestJS اصلی + Chainlink Automation یا Gelato به‌عنوان پشتیبان (+ EigenLayer اختیاری)</td></tr><tr><td>بین‌زنجیره‌ای</td><td>پل Relay که keeper اجرا می‌کند</td><td>همان مسیر Relay، اما به‌صورت فراخوانی روی زنجیره از یک گیرنده غیرامانی</td></tr><tr><td>بیت‌کوین</td><td>کیف پول داغ با xpub نگهداری‌شده روی سرور</td><td>مولتی‌سیگ taproot دو از دو برای هر لینک (فروشنده + پلتفرم) با بازپرداخت‌های از پیش امضاشده</td></tr></tbody></table>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-roadmap">نقشه راه<a href="https://docs.orcarail.com/fa/blog/non-custodial-roadmap/#the-roadmap" class="hash-link" aria-label="لینک مستقیم به نقشه راه" title="لینک مستقیم به نقشه راه" translate="no">​</a></h2>
<p>هر مرحله مستقل و قابل انتشار است. مراحل اول امانت‌داری را برای بیشترین حجم (پرداخت‌ها و اشتراک‌های EVM) حذف می‌کنند و مراحل بعدی سراغ زنجیره‌های سخت‌تر و غیرمتمرکزسازی اختیاری می‌روند.</p>
<ul>
<li class=""><strong><a class="" href="https://docs.orcarail.com/fa/blog/phase-0-design-and-audit-strategy/">مرحله ۰: طراحی یک پشته پرداخت غیرامانی</a></strong> — نهایی‌سازی مشخصات کارمزد و تقسیم، انتخاب زنجیره‌ها، شرکت حسابرسی، مولتی‌سیگ استقراردهنده و ماتریس تصمیم مدل اشتراک.</li>
<li class=""><strong><a class="" href="https://docs.orcarail.com/fa/blog/phase-1-evm-payment-link-contracts/">مرحله ۱: لینک‌های پرداخت مبتنی بر قرارداد روی EVM</a></strong> — <code>PaymentLinkFactory</code> + <code>PaymentLinkReceiver</code> + <code>FeeSplitter</code>، آدرس‌های قطعی و ایندکسر رویدادها.</li>
<li class=""><strong><a class="" href="https://docs.orcarail.com/fa/blog/phase-2-allowance-pull-subscriptions/">مرحله ۲: اشتراک مبتنی بر allowance</a></strong> — <code>SubscriptionHub</code>، جریان جدید پرداخت‌کننده و keeper به‌جای پردازشگر امانی برداشت خودکار.</li>
<li class=""><strong><a class="" href="https://docs.orcarail.com/fa/blog/phase-3-multi-evm-and-keeper-redundancy/">مرحله ۳: گسترش به چند زنجیره EVM و افزونگی keeper</a></strong> — Ethereum، Arbitrum، Optimism، Polygon + پشتیبان Chainlink/Gelato.</li>
<li class=""><strong><a class="" href="https://docs.orcarail.com/fa/blog/phase-4-solana-pda-programs/">مرحله ۴: سولانای غیرامانی با PDAهای Anchor</a></strong> — برنامه‌های Anchor به نام <code>payment_link</code> و <code>subscription</code>، برداشت خودکار با delegate در SPL.</li>
<li class=""><strong><a class="" href="https://docs.orcarail.com/fa/blog/phase-5-bitcoin-reduced-custody/">مرحله ۵: بیت‌کوین، taproot دو از دو و دامنه‌ای صادقانه</a></strong> — کاهش امانت‌داری، بازپرداخت‌های از پیش امضاشده و Lightning BOLT12 به‌عنوان کار آینده.</li>
<li class=""><strong><a class="" href="https://docs.orcarail.com/fa/blog/phase-6-eigenlayer-keeper-avs/">مرحله ۶: زمان‌بند غیرمتمرکز و EigenLayer</a></strong> — یک AVS کی کمک می‌کند و کی نه.</li>
<li class=""><strong><a class="" href="https://docs.orcarail.com/fa/blog/phase-7-retiring-custody/">مرحله ۷: بازنشسته کردن زیرساخت امانی</a></strong> — حذف <code>hd_wallet_seed</code>، حذف مسیرهای جاروب و به‌روزرسانی شرایط استفاده.</li>
</ul>
<p>یک مطلب همراه، <strong><a class="" href="https://docs.orcarail.com/fa/blog/why-allowance-pull-subscriptions/">چرا برداشت مبتنی بر allowance از اسکرو و session key بهتر است</a></strong>، توضیح می‌دهد مدل اشتراک را چطور انتخاب کردیم.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-this-means-in-practice">در عمل یعنی چه<a href="https://docs.orcarail.com/fa/blog/non-custodial-roadmap/#what-this-means-in-practice" class="hash-link" aria-label="لینک مستقیم به در عمل یعنی چه" title="لینک مستقیم به در عمل یعنی چه" translate="no">​</a></h2>
<p><strong>برای فروشندگان</strong>: پس از مرحله ۱ چیزی در API تغییر نمی‌کند؛ آدرس لینک‌های پرداخت و وب‌هوک‌ها همان رفتار را دارند. قواعد برداشت از «تسویه پس از جاروب» به «ارسال هنگام پرداخت» تغییر می‌کند. بدون تغییر کد، مسیری سریع‌تر، ارزان‌تر و قابل حسابرسی‌تر دارید. مرحله ۲ یک اندپوینت عمومی جدید اضافه می‌کند تا پرداخت‌کنندگان <code>approve</code> روی زنجیره خود را ثبت کنند؛ مطابق جریانی که در <a class="" href="https://docs.orcarail.com/fa/docs/subscriptions/auto-charge/">برداشت خودکار</a> مستند شده است.</p>
<p><strong>برای پرداخت‌کنندگان</strong>: پرداخت‌های یک‌باره دقیقاً همان حس را دارند. اشتراک‌ها هنگام راه‌اندازی یک امضای اضافه (همان <code>approve</code> روی زنجیره) و مسیر «لغو» شفاف‌تری دارند: روی زنجیره لغو کنید و OrcaRail دیگر تلاشی نمی‌کند. وجوه شما تا وقتی قرارداد برداشتشان نکند از کیف پولتان خارج نمی‌شوند و هرگز در کیف پولی که ما کنترل می‌کنیم نمی‌مانند.</p>
<p><strong>برای یکپارچه‌کنندگان</strong>: ساختار API پایدار می‌ماند. فیلدهای جدید (آدرس قراردادها، زنجیره استقرار، فراداده allowance) فقط اضافه می‌شوند و پشت یک feature flag برای هر زنجیره قرار دارند. یکپارچه‌سازی‌های فعلی در دوره تمدید جاری خود به کار ادامه می‌دهند و با انتخاب خودشان مهاجرت می‌کنند.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-stays-custodial-for-now">چه چیزی (فعلاً) امانی می‌ماند<a href="https://docs.orcarail.com/fa/blog/non-custodial-roadmap/#what-stays-custodial-for-now" class="hash-link" aria-label="لینک مستقیم به چه چیزی (فعلاً) امانی می‌ماند" title="لینک مستقیم به چه چیزی (فعلاً) امانی می‌ماند" translate="no">​</a></h2>
<p>بیت‌کوین. در <a class="" href="https://docs.orcarail.com/fa/blog/phase-5-bitcoin-reduced-custody/">مرحله ۵</a> با انتقال هر لینک به مولتی‌سیگ taproot دو از دو با یک امضاکننده از طرف فروشنده، به‌علاوه PSBTهای بازپرداخت از پیش امضاشده، امانت‌داری را به‌طور چشمگیری کاهش می‌دهیم. اما لایه ۱ بیت‌کوین امروز قدرت بیان قراردادی کافی برای حذف کامل امانت‌داری ندارد. اشتراک‌های BTC تا آماده شدن پرداخت‌های دوره‌ای Lightning BOLT12 خارج از دامنه می‌مانند.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="timeline-and-status">زمان‌بندی و وضعیت<a href="https://docs.orcarail.com/fa/blog/non-custodial-roadmap/#timeline-and-status" class="hash-link" aria-label="لینک مستقیم به زمان‌بندی و وضعیت" title="لینک مستقیم به زمان‌بندی و وضعیت" translate="no">​</a></h2>
<p>برنامه کامل در <a class="" href="https://docs.orcarail.com/fa/docs/non-custodial/roadmap/">/docs/non-custodial/roadmap</a> پیگیری می‌شود و هر مرحله صفحه وضعیت خودش را دارد:</p>
<ul>
<li class="">برنامه‌ریزی‌شده: <strong>۰ تا ۷</strong></li>
<li class="">در حال انجام: هنوز هیچ</li>
<li class="">منتشرشده: هنوز هیچ</li>
</ul>
<p>هر بار که مرحله‌ای منتشر شود، یک مطلب به‌روزرسانی تاریخ‌دار منتشر می‌کنیم.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="read-the-architecture-docs">مستندات معماری را بخوانید<a href="https://docs.orcarail.com/fa/blog/non-custodial-roadmap/#read-the-architecture-docs" class="hash-link" aria-label="لینک مستقیم به مستندات معماری را بخوانید" title="لینک مستقیم به مستندات معماری را بخوانید" translate="no">​</a></h2>
<p>برای نسخه مرجع همه این موارد (نمودارهای معماری، سطح قراردادها، راهنمای مهاجرت، مدل امنیتی) از <a class="" href="https://docs.orcarail.com/fa/docs/non-custodial/overview/">/docs/non-custodial/overview</a> شروع کنید.</p>
<hr>
<p><strong><a href="https://app.orcarail.com/" target="_blank" rel="noopener noreferrer" class="">اپ OrcaRail</a></strong> · <strong><a href="https://docs.orcarail.com/" target="_blank" rel="noopener noreferrer" class="">مستندات</a></strong> · <strong><a class="" href="https://docs.orcarail.com/fa/docs/non-custodial/overview/">مستندات غیرامانی</a></strong></p>]]></content>
        <author>
            <name>OrcaRail</name>
            <uri>https://orcarail.com</uri>
        </author>
        <category label="Announcement" term="Announcement"/>
        <category label="Payments" term="Payments"/>
        <category label="Multi-Chain" term="Multi-Chain"/>
        <category label="Web3" term="Web3"/>
        <category label="Stablecoins" term="Stablecoins"/>
        <category label="Crypto" term="Crypto"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[پروتکل OrcaRail: وایت‌پیپر زیرساخت پرداخت غیرامانی، بی‌وقفه و از وب۲ به وب۳]]></title>
        <id>https://docs.orcarail.com/fa/blog/orcarail-protocol-whitepaper/</id>
        <link href="https://docs.orcarail.com/fa/blog/orcarail-protocol-whitepaper/"/>
        <updated>2026-04-20T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[وایت‌پیپر پروتکل OrcaRail. چهار اصل ثابت (غیرامانی، بی‌وقفه، بی‌طرف به‌طور معتبر، سازگار با وب۲)، نقشه راه دومسیره، حاکمیتی که به‌مرور غیرمتمرکز می‌شود، و یک گزینه رزروشده (نه یک تعهد) برای توکن حاکمیتی آینده پس از غیرمتمرکزسازی.]]></summary>
        <content type="html"><![CDATA[<p><strong>۲۰ آوریل ۲۰۲۶</strong> — این وایت‌پیپر پروتکل OrcaRail است. بیانیه مرجع درباره چیزی است که OrcaRail در حال تبدیل شدن به آن است: یک زیرساخت پرداخت باز، بی‌طرف به‌طور معتبر، غیرامانی و بی‌وقفه که فروشنده وب۲ می‌تواند با APIهای HTTP و وب‌هوک‌های آشنا یکپارچه‌اش کند و پرداخت‌کننده وب۳ می‌تواند با هر کیف پولی از آن استفاده کند؛ و حتی اگر شرکت OrcaRail ناپدید شود، همچنان به تسویه ادامه می‌دهد.</p>
<p>این سند <a class="" href="https://docs.orcarail.com/fa/blog/non-custodial-roadmap/">نقشه راه غیرامانی</a> و <a class="" href="https://docs.orcarail.com/fa/blog/protocol-debate-non-custodial-futures/">مناظره پروتکل</a> را گسترش می‌دهد و جایگزین آن‌ها <strong>نمی‌شود</strong>. نقشه راه غیرامانی (مسیر N، مراحل ۰ تا ۷) امانت‌داری را حذف می‌کند. این وایت‌پیپر یک مسیر موازی P اضافه می‌کند که بقیه چیزها را غیرمتمرکز می‌کند: ایندکسرها، فرانت‌اندها، استانداردها، keeperها و حاکمیت.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="abstract">چکیده<a href="https://docs.orcarail.com/fa/blog/orcarail-protocol-whitepaper/#abstract" class="hash-link" aria-label="لینک مستقیم به چکیده" title="لینک مستقیم به چکیده" translate="no">​</a></h2>
<p>پروتکل OrcaRail مجموعه‌ای از اجزای پایه روی زنجیره است (کارخانه‌ها و گیرنده‌های لینک پرداخت، هاب‌های اشتراک مبتنی بر allowance، تقسیم‌کننده‌های کارمزد، برنامه‌های Anchor روی سولانا و توصیف‌گرهای مولتی‌سیگ taproot روی بیت‌کوین) به‌همراه مشخصات عمومی برای ایندکسرها، keeperها، فرانت‌اندها و SDKهایی که روی این اجزا کار می‌کنند. پروتکل چهار اصل ثابت را برآورده می‌کند: <strong>غیرامانی</strong> (هیچ طرفی وجوه در حال انتقال را نگه نمی‌دارد)، <strong>بی‌وقفه</strong> (تسویه مشروع بدون OrcaRail ادامه می‌یابد)، <strong>بی‌طرف به‌طور معتبر</strong> (هیچ طرف واحدی نمی‌تواند تراکنش پرداخت‌شده و درست‌ساخت را سانسور کند) و <strong>سازگار با وب۲</strong> (فروشندگان کلید API، وب‌هوک و داشبورد خود را حفظ می‌کنند). استقرار در دو مسیر موازی انجام می‌شود: <strong>مسیر N</strong> امانت‌داری را در هفت مرحله حذف می‌کند؛ <strong>مسیر P</strong> ایندکس‌گذاری، فرانت‌اندها، استانداردها و مسیریابی تسویه را در پنج مرحله غیرمتمرکز می‌کند. هنگام راه‌اندازی هیچ توکنی وجود ندارد و در این وایت‌پیپر هم برنامه‌ای برای آن نیست؛ توکن حاکمیتی آینده صراحتاً به‌عنوان یک گزینه برای پس از غیرمتمرکزسازی <strong>رزرو</strong> شده و اگر روزی معرفی شود، با وایت‌پیپر مخصوص خودش منتشر خواهد شد.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-introduction--why-a-protocol-not-just-a-product">۱. مقدمه: چرا پروتکل، نه فقط محصول<a href="https://docs.orcarail.com/fa/blog/orcarail-protocol-whitepaper/#1-introduction--why-a-protocol-not-just-a-product" class="hash-link" aria-label="لینک مستقیم به ۱. مقدمه: چرا پروتکل، نه فقط محصول" title="لینک مستقیم به ۱. مقدمه: چرا پروتکل، نه فقط محصول" translate="no">​</a></h2>
<p>OrcaRail امروز یک محصول پرداخت میزبانی‌شده است و گزینه‌های نصب روی سرور خودتان در راه است. این یک محصول است، نه پروتکل. محصولات را می‌توان بهتر کرد؛ به پروتکل‌ها می‌توان <strong>در غیاب سازنده‌شان اعتماد کرد</strong>.</p>
<p><a class="" href="https://docs.orcarail.com/fa/blog/non-custodial-roadmap/">نقشه راه غیرامانی</a> امانت‌داری را از مسیر خارج می‌کند. این لازم است اما کافی نیست. حتی بدون امانت‌داری، یک زیرساخت پرداخت ممکن است از کار بیفتد اگر شرکت گرداننده‌اش قبض‌های AWS را نپردازد، تحریم شود یا فقط مسیرش را عوض کند. پروتکل باید وقتی این اتفاق‌ها می‌افتد همچنان کار کند.</p>
<p><a class="" href="https://docs.orcarail.com/fa/blog/protocol-debate-non-custodial-futures/">مناظره پروتکل</a> پنج معماری را بررسی کرد. جمع‌بندی این بود: مسیر «عمل‌گرا» را منتشر کن، فشار «حداکثرگرا» را روی آن حفظ کن، intentها را برای تجربه پرداخت‌کننده بپذیر، در طول راه استاندارد بنویس و زنجیره اختصاصی را آینده‌ای اختیاری نگه دار. این وایت‌پیپر همان جمع‌بندی است که به شکل تعهد نوشته شده است.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-design-goals">۲. اهداف طراحی<a href="https://docs.orcarail.com/fa/blog/orcarail-protocol-whitepaper/#2-design-goals" class="hash-link" aria-label="لینک مستقیم به ۲. اهداف طراحی" title="لینک مستقیم به ۲. اهداف طراحی" translate="no">​</a></h2>
<p>هر هدف با تعریفی دقیق و قابل آزمون بیان شده است. پرسش «آیا طراحی این را برآورده می‌کند؟» باید پاسخ بله یا خیر داشته باشد.</p>
<ol>
<li class=""><strong>غیرامانی</strong> — در هیچ لحظه‌ای از پرداخت یا برداشت اشتراک، کیف پول یا حسابی که در کنترل OrcaRail، پردازشگر فروشنده یا هر واسطه‌ای باشد وجوه پرداخت‌کننده را نگه نمی‌دارد. <strong>آزمون</strong>: آیا یک نهاد ناظر می‌تواند فقط با ابلاغ به OrcaRail وجوه در حال انتقال را مسدود کند؟ خیر.</li>
<li class=""><strong>بی‌وقفه</strong> — اگر سرورهای OrcaRail برای مدت نامعلوم خاموش شوند، برداشت مشروع و سررسیدشده اشتراک همچنان روی زنجیره تسویه می‌شود و پرداخت‌کننده همچنان می‌تواند پرداخت یک‌باره را تکمیل کند. <strong>آزمون</strong>: پس از ۳۰ روز قطعی OrcaRail، آیا اشتراکی که درست تنظیم شده برداشتی را از دست داده است؟ خیر.</li>
<li class=""><strong>بی‌طرف به‌طور معتبر</strong> — قواعد روی زنجیره عمومی‌اند، برای هر لینک تغییرناپذیرند و برای همه یکسان اعمال می‌شوند. OrcaRail نمی‌تواند در لایه تسویه به‌طور گزینشی از ارائه خدمت خودداری کند (فقط در فرانت‌اند خودش). <strong>آزمون</strong>: آیا فروشنده‌ای ناخواسته همچنان می‌تواند از طریق فرانت‌اند شخص ثالث پول دریافت کند؟ بله.</li>
<li class=""><strong>سازگار با وب۲</strong> — فروشندگان همان راحتی فعلی را حفظ می‌کنند (اندپوینت‌های REST، وب‌هوک، کلید API، داشبورد، ایمیل). تبدیل شدن به پروتکل از فروشنده نمی‌خواهد برای پذیرش پرداخت ابزارهای اتریوم اجرا کند. <strong>آزمون</strong>: آیا فروشنده‌ای که با کریپتو آشنا نیست می‌تواند در کمتر از یک ساعت یکپارچه‌سازی کند؟ بله.</li>
<li class=""><strong>همتا‌به‌همتای واقعی</strong> — در بخش بعد دقیقاً تعریف شده است.</li>
</ol>
<p>طراحی‌ای که هر یک از این اهداف را از دست بدهد ناقص است.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-what-real-p2p-means-here">۳. «همتا‌به‌همتای واقعی» اینجا یعنی چه<a href="https://docs.orcarail.com/fa/blog/orcarail-protocol-whitepaper/#3-what-real-p2p-means-here" class="hash-link" aria-label="لینک مستقیم به ۳. «همتا‌به‌همتای واقعی» اینجا یعنی چه" title="لینک مستقیم به ۳. «همتا‌به‌همتای واقعی» اینجا یعنی چه" translate="no">​</a></h2>
<p>اصطلاح همتا‌به‌همتا (P2P) معانی زیادی دارد. در این پروتکل سه لایه مشخص دارد.</p>
<ul>
<li class=""><strong>P2P در تسویه</strong> — پرداخت‌کننده امضا می‌کند؛ وجوه از پرداخت‌کننده به قرارداد روی زنجیره (EVM) یا PDA متعلق به برنامه (سولانا) یا مولتی‌سیگ دو از دو (بیت‌کوین) و از آنجا به‌صورت اتمیک به فروشنده و دریافت‌کنندگان کارمزد می‌رود. هیچ کیف پول OrcaRailی در مسیر نیست. مسیر N این را تضمین می‌کند.</li>
<li class=""><strong>P2P در کشف</strong> — لینک پرداخت یا اشتراک به‌طور کامل از داده‌های روی زنجیره و (به‌طور اختیاری) فراداده سنجاق‌شده روی IPFS قابل بازیابی است. هر کیف پول، هر فرانت‌اند و هر پردازشگر شخص ثالثی می‌تواند آن را نمایش دهد و تکمیل کند. داشبورد میزبانی‌شده OrcaRail <strong>یکی</strong> از پیاده‌سازی‌های لایه نمایش است، نه ثبت‌کننده مرکزی.</li>
<li class=""><strong>P2P در زنده‌بودن</strong> — <code>SubscriptionHub.charge(id)</code> و دستور <code>charge</code> در Anchor عمومی‌اند. هر EOA یا solverی می‌تواند آن‌ها را فراخوانی کند. زمان‌بند OrcaRail یکی از چند مشارکت‌کننده است (Chainlink، Gelato، اجراشده توسط فروشنده، اجراشده توسط solver).</li>
</ul>
<p>آنچه «همتا‌به‌همتای واقعی» اینجا <strong>نیست</strong>: ما Lightning نیستیم؛ لایه کانال مستقیم کیف پول به کیف پول نیستیم؛ اپ پرداخت را با DHT جایگزین نمی‌کنیم. OrcaRail یک <strong>پروتکل روی زنجیره با تجربه کاربری خارج از زنجیره</strong> است. ویژگی P2P از این می‌آید که هیچ واسطه‌ای نمی‌تواند در تسویه، کشف یا زنده‌بودن خودش را وارد کند؛ نه از دوری از زیرساخت روی زنجیره.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="4-system-architecture">۴. معماری سیستم<a href="https://docs.orcarail.com/fa/blog/orcarail-protocol-whitepaper/#4-system-architecture" class="hash-link" aria-label="لینک مستقیم به ۴. معماری سیستم" title="لینک مستقیم به ۴. معماری سیستم" translate="no">​</a></h2>
<p>در بالاترین سطح، پروتکل پنج لایه دارد.</p>
<div class="wrapper_vprU"><button type="button" class="expandBtn_RmxB" aria-label="Show diagram fullscreen" title="Fullscreen"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><path d="M15 3h6v6M9 21H3v-6M21 3l-7 7M3 21l7-7" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div>
<p><strong>لایه تسویه</strong> روی EVM و سولانا برای هر لینک تغییرناپذیر است و روی بیت‌کوین برای هر لینک از توصیف‌گر مشتق می‌شود. چهار لایه دیگر قابل جایگزینی‌اند. اگر نمودار فنی کامل را می‌خواهید، به <a class="" href="https://docs.orcarail.com/fa/docs/non-custodial/architecture/">/docs/non-custodial/architecture</a> بروید.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="5-settlement-primitives">۵. اجزای پایه تسویه<a href="https://docs.orcarail.com/fa/blog/orcarail-protocol-whitepaper/#5-settlement-primitives" class="hash-link" aria-label="لینک مستقیم به ۵. اجزای پایه تسویه" title="لینک مستقیم به ۵. اجزای پایه تسویه" translate="no">​</a></h2>
<p>مرجع کامل: <a class="" href="https://docs.orcarail.com/fa/docs/non-custodial/contract-reference/">/docs/non-custodial/contract-reference</a>. خلاصه:</p>
<ul>
<li class=""><strong>EVM</strong> — <code>PaymentLinkFactory</code> (آدرس‌های قطعی با CREATE2)، <code>PaymentLinkReceiver</code> (کلون حداقلی EIP-1167، تغییرناپذیر برای هر لینک)، <code>FeeSplitter</code> (تقسیم اتمیک بر حسب واحد پایه)، <code>SubscriptionHub</code> (برداشت مبتنی بر allowance با <code>lastChargedAt</code> یکنوا).</li>
<li class=""><strong>سولانا</strong> — برنامه Anchor به نام <code>payment_link</code> (یک PDA برای هر لینک، تقسیم با CPI) و برنامه Anchor به نام <code>subscription</code> (اختیار delegate در SPL، با معنای <code>charge</code> یکسان با هاب EVM).</li>
<li class=""><strong>بیت‌کوین</strong> — مولتی‌سیگ taproot دو از دو برای هر لینک (امضاکننده فروشنده + امضاکننده پلتفرم از HSM/MPC) با PSBTهای بازپرداخت از پیش امضاشده. تا بلوغ پرداخت دوره‌ای Lightning BOLT12، BTC دوره‌ای نداریم.</li>
</ul>
<p>هر جزء طوری طراحی شده که یک <code>linkId</code> یا <code>subscriptionId</code> مشخص برای همیشه به همان آدرس قطعی روی همان زنجیره برسد؛ بدون چرخش آدرس، بدون صدور مجدد و بدون نگاشت ذخیره‌شده روی سرور.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="6-cross-chain-as-intents">۶. بین‌زنجیره‌ای به‌شکل intent<a href="https://docs.orcarail.com/fa/blog/orcarail-protocol-whitepaper/#6-cross-chain-as-intents" class="hash-link" aria-label="لینک مستقیم به ۶. بین‌زنجیره‌ای به‌شکل intent" title="لینک مستقیم به ۶. بین‌زنجیره‌ای به‌شکل intent" translate="no">​</a></h2>
<p>پروتکلی که بین‌زنجیره‌ای را «بک‌اند ما Relay را صدا می‌زند» ببیند، هنوز یک محصول است. پروتکل بین‌زنجیره‌ای را <strong>intent پرداخت‌کننده</strong> می‌بیند:</p>
<ul>
<li class="">پرداخت‌کننده امضا می‌کند: «به فروشنده X مبلغ ۵۰ دلار USDC بپرداز، از هر یک از کیف پول‌هایم روی هر زنجیره پشتیبانی‌شده، ظرف ۱ ساعت، با کارمزد حداکثر Y.»</li>
<li class="">شبکه‌های solver موجود (<strong>Across، Relay، deBridge و سبک CoW</strong>) برای انجام intent رقابت می‌کنند. به solverها پاداشی پرداخت می‌شود که در خود intent گنجانده شده است.</li>
<li class="">برای مسیرهای کم‌سود دنباله بلند (مبالغ کم، زنجیره‌های کمتر شناخته‌شده)، OrcaRail یک <strong>solver پشتیبان به قیمت تمام‌شده</strong> اجرا می‌کند تا این دنباله هم تسویه شود. این پشتیبان عمومی است و هر کس دیگری هم می‌تواند یکی اجرا کند.</li>
</ul>
<p>امضای پرداخت‌کننده به مبلغ، گیرنده، مهلت و سقف کارمزد محدود است. در بدترین حالت، solver مخرب کند عمل می‌کند؛ نمی‌تواند وجوه را به جای دیگری بفرستد. این همان جمع‌بندی «باورمند به intent» از <a class="" href="https://docs.orcarail.com/fa/blog/protocol-debate-non-custodial-futures/">مناظره پروتکل</a> است که به شکل تعهد نوشته شده است.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="7-standards-and-interoperability">۷. استانداردها و تعامل‌پذیری<a href="https://docs.orcarail.com/fa/blog/orcarail-protocol-whitepaper/#7-standards-and-interoperability" class="hash-link" aria-label="لینک مستقیم به ۷. استانداردها و تعامل‌پذیری" title="لینک مستقیم به ۷. استانداردها و تعامل‌پذیری" translate="no">​</a></h2>
<p>اجزای پایه لینک پرداخت و اشتراک OrcaRail یک زیرساخت عمومی‌اند. ارزش آن‌ها فقط وقتی چند برابر می‌شود که پردازشگرها، کیف پول‌ها و ایندکسرهای دیگر به‌طور بومی پیاده‌سازی‌شان کنند.</p>
<p>تعهدات:</p>
<ul>
<li class=""><strong>نوشتن پیش‌نویس EIP برای لینک‌های پرداخت غیرامانی</strong> با <code>PaymentLinkFactory</code> و <code>PaymentLinkReceiver</code> به‌عنوان سطح مرجع. هم‌نویسی با دست‌کم یک تیم پردازشگر یا کیف پول دیگر تا از الگوی «EIP یک فروشنده» دوری شود.</li>
<li class=""><strong>نوشتن پیش‌نویس EIP برای اشتراک مبتنی بر allowance</strong> با <code>SubscriptionHub</code> به‌عنوان مرجع. <code>lastChargedAt</code> یکنوا و مجموعه دلایل <code>ChargeSkipped(reason)</code> اهداف استانداردسازی‌اند.</li>
<li class=""><strong>انتشار معادل سولانا</strong> از طریق IDL انکر و یک مشخصات مکتوب، تا هر کیف پول یا ایندکسر سولانا بتواند لینک پرداخت را از پایه نمایش دهد.</li>
<li class=""><strong>انتشار طرح‌واره مرجع subgraph</strong> تا هر ایندکسری (The Graph، Goldsky، Envio، روی سرور خودتان) بدون تغییر سازگار باشد.</li>
</ul>
<p>نوشتن EIP مزیت رقابتی ما را کم نمی‌کند. همان‌طور که در <a class="" href="https://docs.orcarail.com/fa/blog/protocol-debate-non-custodial-futures/">مناظره</a> استدلال شد، مزیت رقابتی در یکپارچه‌سازی‌ها، انطباق، SLAها و اعتماد فروشندگان است و هیچ‌کدام با یک EIP کپی نمی‌شود.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="8-governance">۸. حاکمیت<a href="https://docs.orcarail.com/fa/blog/orcarail-protocol-whitepaper/#8-governance" class="hash-link" aria-label="لینک مستقیم به ۸. حاکمیت" title="لینک مستقیم به ۸. حاکمیت" translate="no">​</a></h2>
<p>حاکمیت دو افق دارد.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="today-and-near-term">امروز و کوتاه‌مدت<a href="https://docs.orcarail.com/fa/blog/orcarail-protocol-whitepaper/#today-and-near-term" class="hash-link" aria-label="لینک مستقیم به امروز و کوتاه‌مدت" title="لینک مستقیم به امروز و کوتاه‌مدت" translate="no">​</a></h3>
<ul>
<li class=""><strong>EVM</strong>: مولتی‌سیگ Safe سه از پنج روی هر زنجیره مستقرشده. امضاکنندگان با کیف پول سخت‌افزاری. چرخش سالانه. timelock چهل‌وهشت ساعته روی ارتقای proxyها. نمونه‌های <code>PaymentLinkReceiver</code> هر لینک <strong>تغییرناپذیرند</strong>.</li>
<li class=""><strong>سولانا</strong>: مولتی‌سیگ Squads سه از پنج با همان مجموعه امضاکنندگان و همان سیاست چرخش.</li>
<li class=""><strong>دامنه ارتقا</strong>: کارخانه‌ها و هاب‌ها پشت proxyهای UUPS قرار دارند؛ گیرنده‌های هر لینک و رکوردهای هر اشتراک با ارتقا جابه‌جا نمی‌شوند.</li>
<li class=""><strong>قابل حسابرسی عمومی</strong>: هر استقرار و ارتقا به‌صورت مراسم مولتی‌سیگ اعلام‌شده با ثبت تراکنش‌های امضاشده انجام می‌شود.</li>
</ul>
<p>این همان حاکمیتی است که در <a class="" href="https://docs.orcarail.com/fa/docs/non-custodial/security-model/">/docs/non-custodial/security-model</a> شرح داده شده است.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="post-decentralization">پس از غیرمتمرکزسازی<a href="https://docs.orcarail.com/fa/blog/orcarail-protocol-whitepaper/#post-decentralization" class="hash-link" aria-label="لینک مستقیم به پس از غیرمتمرکزسازی" title="لینک مستقیم به پس از غیرمتمرکزسازی" translate="no">​</a></h3>
<p>به‌مرور، مجموعه امضاکنندگان دیگر فقط کارمندان OrcaRail نیستند و به یک <strong>شورای عمومی</strong> متشکل از یکپارچه‌کنندگان، شرکت‌های حسابرسی، گردانندگان keeper و مشارکت‌کنندگان مستقل تبدیل می‌شود. اختیار ارتقا به شورا منتقل می‌شود. در این مرحله حاکمیت روی زنجیره به گزینه‌ای واقعی تبدیل می‌شود؛ اما فقط به‌عنوان سازوکار حاکمیت، نه ابزار سفته‌بازی.</p>
<p>آستانه «پس از غیرمتمرکزسازی» صریح است: دست‌کم سه فرانت‌اند مستقل در محیط عملیاتی که زیرساخت را میزبانی کنند، دست‌کم سه keeper مستقل که برداشت‌ها را اجرا کنند، و دست‌کم یک پردازشگر غیر از OrcaRail که یکپارچه‌سازی منتشر کند. تا این‌ها واقعی نشوند، پروتکل غیرمتمرکز نیست؛ فارغ از اینکه چه سازوکار حاکمیتی رویش باشد.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="9-future-governance-token-explicit-reservation">۹. توکن حاکمیتی آینده (رزرو صریح)<a href="https://docs.orcarail.com/fa/blog/orcarail-protocol-whitepaper/#9-future-governance-token-explicit-reservation" class="hash-link" aria-label="لینک مستقیم به ۹. توکن حاکمیتی آینده (رزرو صریح)" title="لینک مستقیم به ۹. توکن حاکمیتی آینده (رزرو صریح)" translate="no">​</a></h2>
<p>این بخش عمداً کوتاه و عمداً دقیق است.</p>
<ul>
<li class=""><strong>هنگام راه‌اندازی توکنی نیست.</strong> پیش‌فروشی نیست. تخصیصی نیست. امتیازی نیست. ادعای عطف به ماسبق نیست.</li>
<li class=""><strong>توکن حاکمیتی آینده به‌عنوان یک گزینه رزرو شده است</strong>، نه به‌عنوان تعهد. فقط <strong>پس از</strong> رسیدن به آستانه غیرمتمرکزسازی بخش ۸ و وجود پایه فعالی از یکپارچه‌کنندگان، keeperها و فرانت‌اندها که از حق رسمی اعلام نظر سود ببرند، مناسب می‌شود.</li>
<li class=""><strong>اگر روزی آن را معرفی کنیم</strong>، با وایت‌پیپر مخصوص خودش و با شفافیت کامل درباره توزیع، قفل‌ها، عرضه و سطح حاکمیت منتشر می‌شود. وایت‌پیپر توکن پیش از انتشار به‌طور عمومی به بحث گذاشته می‌شود.</li>
<li class=""><strong>توکن اول برای حاکمیت است، نه سفته‌بازی.</strong> سازوکارهای معقول: رأی‌گیری اعلام نظر درباره ارتقاها، تنظیم پارامترها در محدوده‌های امن، اعتبار گردانندگان keeper. سازوکارهای نامعقول: تخفیف کارمزد وابسته به میزان دارایی، پرداخت برای پرداخت، yield farming.</li>
<li class=""><strong>به‌خاطر وجود توکن ادعا نمی‌کنیم پروتکل غیرمتمرکز است.</strong> غیرمتمرکز بودن با موارد بخش ۸ سنجیده می‌شود. توکن ابزاری است که می‌تواند غیرمتمرکزسازیِ به‌دست‌آمده را رسمی کند؛ نمی‌تواند آن را بسازد.</li>
</ul>
<p>این رزرو در وایت‌پیپر پروتکل (همین سند) ثبت شده و جای دیگری نه. هر تغییر آینده در این موضع، تغییری در همین وایت‌پیپر است که به‌طور عمومی منتشر می‌شود، نه اعلامیه‌ای یک‌جانبه.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="10-economics-and-fees--how-the-protocol-sustains-itself-without-a-token">۱۰. اقتصاد و کارمزدها: پروتکل چطور بدون توکن پایدار می‌ماند<a href="https://docs.orcarail.com/fa/blog/orcarail-protocol-whitepaper/#10-economics-and-fees--how-the-protocol-sustains-itself-without-a-token" class="hash-link" aria-label="لینک مستقیم به ۱۰. اقتصاد و کارمزدها: پروتکل چطور بدون توکن پایدار می‌ماند" title="لینک مستقیم به ۱۰. اقتصاد و کارمزدها: پروتکل چطور بدون توکن پایدار می‌ماند" translate="no">​</a></h2>
<p>مدل درآمدی پروتکل همان مدل محصول است، فقط روی زنجیره کدگذاری شده است.</p>
<ul>
<li class=""><strong>تقسیم کارمزد</strong> در پیکربندی واحد پایه <code>FeeSplitter</code> برای هر پرداخت قرار دارد. همان سهم‌هایی که صفحه <a class="" href="https://docs.orcarail.com/fa/docs/withdrawals/strategy/">برداشت‌ها</a> امروز توضیح می‌دهد: فروشنده، پلتفرم (سهم میزبانی OrcaRail)، معرف/همکار فروش و کارمزد پل.</li>
<li class=""><strong>سطح میزبانی‌شده OrcaRail</strong> (داشبورد، ایمیل، گس paymaster، پشتیبانی مشتری) از سهم OrcaRail در تقسیم پرداخت می‌شود.</li>
<li class=""><strong>میزبان‌های جایگزین</strong> (پردازشگرهای شخص ثالث، گردانندگان نصب روی سرور خود، فرانت‌اندهای سنجاق‌شده روی IPFS) می‌توانند با سهم صفر برای پلتفرم کار کنند یا دریافت‌کننده کارمزد خودشان را تنظیم کنند. پروتکل کارمزد OrcaRail را بر کارمزد هیچ‌کس دیگری برتری نمی‌دهد.</li>
<li class=""><strong>بدون انتشار توکن، بدون یارانه، بدون سود استیکینگ.</strong> هزینه‌ها نقدی و درآمدها نقدی‌اند. پروتکل فقط وقتی ارزان‌تر می‌شود که گس ارزان‌تر شود یا میزبانی حاشیه سود کمتری بپذیرد؛ نه با انتشار توکن برای پوشاندن هزینه‌های جاری.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="11-security-model">۱۱. مدل امنیتی<a href="https://docs.orcarail.com/fa/blog/orcarail-protocol-whitepaper/#11-security-model" class="hash-link" aria-label="لینک مستقیم به ۱۱. مدل امنیتی" title="لینک مستقیم به ۱۱. مدل امنیتی" translate="no">​</a></h2>
<p>بیان کامل: <a class="" href="https://docs.orcarail.com/fa/docs/non-custodial/security-model/">/docs/non-custodial/security-model</a>. رویکرد اصلی:</p>
<ul>
<li class="">گیرنده‌های هر لینک و رکوردهای هر اشتراک تغییرناپذیرند.</li>
<li class="">کارخانه‌ها و هاب‌ها فقط از طریق مولتی‌سیگ + timelock قابل ارتقا هستند.</li>
<li class="">keeperها EOAهایی هستند که فقط گس می‌پردازند و اختیار جابه‌جایی وجوه ندارند.</li>
<li class="">امضای BTC در سمت پلتفرم از سرویس HSM یا MPC به‌علاوه کلید فروشنده استفاده می‌کند؛ هیچ سروری اختیار یک‌جانبه خرج کردن ندارد.</li>
</ul>
<p>یک افزوده مخصوص پروتکل‌سازی: <strong>میزبان‌های مستقل فرانت‌اند باید پیش از نمایش لینک پرداخت، آدرس قراردادها را با یک رجیستری روی زنجیره</strong> (یا یک مانیفست انتشار امضاشده) <strong>بررسی کنند</strong>. فرانت‌اند کلون مخربی که پرداخت‌ها را به قراردادی شبیه به اصل بفرستد، محتمل‌ترین راه فیشینگ پس از چندمیزبانی شدن اکوسیستم است. رجیستری مرجع روی زنجیره است و جریان بررسی به‌عنوان بخشی از P2 مستند می‌شود.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="12-roadmap--two-parallel-tracks">۱۲. نقشه راه: دو مسیر موازی<a href="https://docs.orcarail.com/fa/blog/orcarail-protocol-whitepaper/#12-roadmap--two-parallel-tracks" class="hash-link" aria-label="لینک مستقیم به ۱۲. نقشه راه: دو مسیر موازی" title="لینک مستقیم به ۱۲. نقشه راه: دو مسیر موازی" translate="no">​</a></h2>
<p>استقرار پروتکل هم‌زمان در دو مسیر پیش می‌رود.</p>
<div class="wrapper_vprU"><button type="button" class="expandBtn_RmxB" aria-label="Show diagram fullscreen" title="Fullscreen"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><path d="M15 3h6v6M9 21H3v-6M21 3l-7 7M3 21l7-7" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div>
<p>مسیر N همان <a class="" href="https://docs.orcarail.com/fa/blog/non-custodial-roadmap/">نقشه راه موجود</a> است، بدون تغییر. مسیر P تعهدات M1 تا M5 از <a class="" href="https://docs.orcarail.com/fa/blog/protocol-debate-non-custodial-futures/">مطلب مناظره</a> را به شکل مرحله رسمی می‌کند. هر دو مسیر یک وضعیت نهایی را هدف گرفته‌اند: زیرساختی که اگر OrcaRail کنار برود همچنان کار کند.</p>
<p>مسیر P هرگز مسیر N را متوقف نمی‌کند و مسیر N هرگز مسیر P را. هر کدام می‌تواند زودتر از دیگری مرحله‌ای را منتشر کند.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="13-track-p-phases">۱۳. مراحل مسیر P<a href="https://docs.orcarail.com/fa/blog/orcarail-protocol-whitepaper/#13-track-p-phases" class="hash-link" aria-label="لینک مستقیم به ۱۳. مراحل مسیر P" title="لینک مستقیم به ۱۳. مراحل مسیر P" translate="no">​</a></h2>
<p>پنج مرحله، که هر کدام ادامه طبیعی یکی از تعهدات M در مطلب مناظره است.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="p1--public-subgraph-and-open-indexer">P1 — subgraph عمومی و ایندکسر باز<a href="https://docs.orcarail.com/fa/blog/orcarail-protocol-whitepaper/#p1--public-subgraph-and-open-indexer" class="hash-link" aria-label="لینک مستقیم به P1 — subgraph عمومی و ایندکسر باز" title="لینک مستقیم به P1 — subgraph عمومی و ایندکسر باز" translate="no">​</a></h3>
<p><strong>دامنه</strong>: یک subgraph مرجع (The Graph، Envio یا معادل) که همه رویدادهای <code>Paid</code>، <code>SubscriptionCreated</code>، <code>Charged</code>، <code>ChargeSkipped</code>، <code>Canceled</code> و <code>Refunded</code> از <code>PaymentLinkReceiver</code> و <code>SubscriptionHub</code> را روی همه زنجیره‌های مستقرشده ایندکس کند. طرح‌واره منتشر شود. دستورالعمل نصب روی سرور خود منتشر شود تا هر کسی بتواند همان ایندکس را اجرا کند.</p>
<p><strong>چک‌لیست وضعیت</strong></p>
<ul class="contains-task-list containsTaskList_mC6p">
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->مانیفست + mappingهای subgraph برای زنجیره‌های EVM فعال در مرحله ۱ و مرحله ۳</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->معادل سولانا (وب‌هوک‌های Helius یا استریم Triton) با همان ساختار رویدادها</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->طرح‌واره مستند و با نسخه‌گذاری پایدار</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->نمایش اجرای همان طرح‌واره روی رویدادهای واقعی توسط یک ایندکسر خارجی</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="p2--decentralized-frontends-ipfs--ens">P2 — فرانت‌اندهای غیرمتمرکز (IPFS / ENS)<a href="https://docs.orcarail.com/fa/blog/orcarail-protocol-whitepaper/#p2--decentralized-frontends-ipfs--ens" class="hash-link" aria-label="لینک مستقیم به P2 — فرانت‌اندهای غیرمتمرکز (IPFS / ENS)" title="لینک مستقیم به P2 — فرانت‌اندهای غیرمتمرکز (IPFS / ENS)" translate="no">​</a></h3>
<p><strong>دامنه</strong>: سنجاق کردن اپ پرداخت و داشبورد فروشنده OrcaRail روی IPFS با بسته‌های انتشار مبتنی بر محتوا. بازیابی از طریق ENS (<code>pay.orcarail.eth</code>، <code>app.orcarail.eth</code>). بیلدهای تکرارپذیر تا هر خواننده‌ای بتواند تطابق بسته با کد منبع را بررسی کند. کلون مخرب باید هم آدرس قراردادها و هم رکورد ENS را جعل کند، نه فقط نام میزبان را.</p>
<p><strong>چک‌لیست وضعیت</strong></p>
<ul class="contains-task-list containsTaskList_mC6p">
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->بیلد تکرارپذیر اپ پرداخت</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->بیلد تکرارپذیر داشبورد</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->رکوردهای ENS که به CIDهای IPFS اشاره می‌کنند</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->مراسم امضای انتشار از مولتی‌سیگ Safe</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->رجیستری روی زنجیره آدرس قراردادها که فرانت‌اندها پیش از نمایش با آن بررسی می‌کنند</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="p3--standards-draft-eip">P3 — استانداردها (پیش‌نویس EIP)<a href="https://docs.orcarail.com/fa/blog/orcarail-protocol-whitepaper/#p3--standards-draft-eip" class="hash-link" aria-label="لینک مستقیم به P3 — استانداردها (پیش‌نویس EIP)" title="لینک مستقیم به P3 — استانداردها (پیش‌نویس EIP)" translate="no">​</a></h3>
<p><strong>دامنه</strong>: نوشتن و ارسال یک EIP برای لینک‌های پرداخت غیرامانی و یک EIP همراه برای اشتراک مبتنی بر allowance. هم‌نویسی با دست‌کم یک تیم پردازشگر یا کیف پول دیگر. پیاده‌سازی مرجع، قراردادهای OrcaRail است. مشخصات معادل سولانا همراه با EIPها منتشر می‌شود.</p>
<p><strong>چک‌لیست وضعیت</strong></p>
<ul class="contains-task-list containsTaskList_mC6p">
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->تأیید هم‌نویسنده</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->پیش‌نویس EIP لینک پرداخت در مرحله رشته بحث</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->پیش‌نویس EIP اشتراک در مرحله رشته بحث</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->انتشار مشخصات سولانا همراه با IDLهای Anchor</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->اعمال بازخورد ویراستاران EIP تا مرحله Last Call</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="p4--intent-based-payer-sdk">P4 — SDK پرداخت‌کننده مبتنی بر intent<a href="https://docs.orcarail.com/fa/blog/orcarail-protocol-whitepaper/#p4--intent-based-payer-sdk" class="hash-link" aria-label="لینک مستقیم به P4 — SDK پرداخت‌کننده مبتنی بر intent" title="لینک مستقیم به P4 — SDK پرداخت‌کننده مبتنی بر intent" translate="no">​</a></h3>
<p><strong>دامنه</strong>: یک سطح SDK (<code>orcarail.pay(intent)</code>) که intent امضاشده پرداخت‌کننده را بپذیرد و از طریق شبکه‌های solver موجود (Across، Relay، deBridge) مسیریابی کند، با یک solver پشتیبان که OrcaRail برای مسیرهای دنباله بلند اجرا می‌کند. طرح‌واره intent هم‌گام با P3 استاندارد می‌شود.</p>
<p><strong>چک‌لیست وضعیت</strong></p>
<ul class="contains-task-list containsTaskList_mC6p">
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->نهایی شدن طرح‌واره intent</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->آداپتور SDK برای دست‌کم دو شبکه solver</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->استقرار و اندازه‌گیری solver پشتیبان</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->پشتیبانی تجربه پرداخت‌کننده در اپ پرداخت از intent یکسان + بین‌زنجیره‌ای</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->انتشار مشخصات به‌عنوان بخشی از مرجع SDK نود</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="p5--self-host--reference-implementation-kit">P5 — کیت نصب روی سرور خود / پیاده‌سازی مرجع<a href="https://docs.orcarail.com/fa/blog/orcarail-protocol-whitepaper/#p5--self-host--reference-implementation-kit" class="hash-link" aria-label="لینک مستقیم به P5 — کیت نصب روی سرور خود / پیاده‌سازی مرجع" title="لینک مستقیم به P5 — کیت نصب روی سرور خود / پیاده‌سازی مرجع" translate="no">​</a></h3>
<p><strong>دامنه</strong>: یک Docker Compose (و Helm chart) که به هر کسی اجازه دهد یک پردازشگر سازگار با OrcaRail را سرتاسر از روی قراردادهای عمومی اجرا کند. شامل subgraph، keeper، ایندکسر، داشبورد اختیاری و مشخصات OpenAPI برای API پردازشگر که دیگران بتوانند با آن منطبق شوند.</p>
<p><strong>چک‌لیست وضعیت</strong></p>
<ul class="contains-task-list containsTaskList_mC6p">
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->Docker Compose که روی یک زنجیره واقعی بالا می‌آید و به یک فروشنده آزمایشی سرویس می‌دهد</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->مشخصات OpenAPI برای API پردازشگر</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->Helm chart برای گردانندگان Kubernetes</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->آزمون سرتاسری که نشان دهد گرداننده نصب روی سرور خود پرداخت‌ها را دقیقاً مثل نسخه میزبانی‌شده پردازش می‌کند</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->مستندات در <code>/docs/non-custodial/</code> (در یک تغییر آینده فقط برای مستندات اضافه می‌شود؛ خارج از دامنه این وایت‌پیپر)</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="14-optional-p6--own-chain-evaluation">۱۴. P6 اختیاری: ارزیابی زنجیره اختصاصی<a href="https://docs.orcarail.com/fa/blog/orcarail-protocol-whitepaper/#14-optional-p6--own-chain-evaluation" class="hash-link" aria-label="لینک مستقیم به ۱۴. P6 اختیاری: ارزیابی زنجیره اختصاصی" title="لینک مستقیم به ۱۴. P6 اختیاری: ارزیابی زنجیره اختصاصی" translate="no">​</a></h2>
<p>P6 از الگوی <a class="" href="https://docs.orcarail.com/fa/docs/non-custodial/eigenlayer-evaluation/">ارزیابی EigenLayer</a> پیروی می‌کند. این یک تعهد <strong>نیست</strong>. یک بازبینی فصلی با محرک‌های مشخص است.</p>
<p>توصیه فعلی: <strong>به تعویق انداختن</strong>.</p>
<p>محرک‌هایی که باعث باز شدن سند طراحی برای ساخت مرحله P6 می‌شوند:</p>
<ol>
<li class="">حجم پرداخت روی یک زنجیره از آستانه‌ای بگذرد که گس به قلم قابل توجهی از کارمزد پلتفرم تبدیل شود.</li>
<li class="">یک زنجیره ابزار مرجع L2/L3 پیش‌کامپایل‌های تخصصی برای منطق تقسیم پرداخت با هزینه تقریباً صفر ارائه دهد.</li>
<li class="">تقاضای فروشندگان برای تأخیر تسویه کسری از سنت که شبکه اصلی / L2 به‌طور مداوم نتواند برآورده کند.</li>
<li class="">یک شریک rollup-as-a-service به OrcaRail اجازه دهد از روز اول با توالی‌دهی مشترک راه‌اندازی شود.</li>
</ol>
<p>در صورت فعال شدن، ساخت ترجیحاً با OP Stack و توالی‌دهی مشترک (Espresso، Astria) و یک پل خروج معتبر به زنجیره‌های مرجعی که هم‌اکنون پشتیبانی می‌کنیم انجام می‌شود. حتی در آن صورت، مراحل N0 تا N7 و P1 تا P5 باید آن‌قدر بالغ باشند که زنجیره اختصاصی یک <strong>بهینه‌سازی</strong> باشد، نه یک وابستگی.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="15-what-orcarail-is-today-vs-what-it-becomes">۱۵. OrcaRail امروز چیست و به چه تبدیل می‌شود<a href="https://docs.orcarail.com/fa/blog/orcarail-protocol-whitepaper/#15-what-orcarail-is-today-vs-what-it-becomes" class="hash-link" aria-label="لینک مستقیم به ۱۵. OrcaRail امروز چیست و به چه تبدیل می‌شود" title="لینک مستقیم به ۱۵. OrcaRail امروز چیست و به چه تبدیل می‌شود" translate="no">​</a></h2>
<p>مقایسه قبل و بعد در سطح زیرساخت.</p>
<table><thead><tr><th>بُعد</th><th>امروز</th><th>پس از مسیرهای N و P</th></tr></thead><tbody><tr><td>امانت‌داری هنگام پرداخت</td><td>OrcaRail کلید کیف پول واریز را نگه می‌دارد</td><td>بدون امانت‌داری. پرداخت‌کننده ← قرارداد ← فروشنده با تقسیم اتمیک</td></tr><tr><td>spender اشتراک</td><td>smart account تحت کنترل OrcaRail</td><td>قرارداد عمومی <code>SubscriptionHub</code>؛ هر کسی می‌تواند فراخوانی کند</td></tr><tr><td>Keeper</td><td>زمان‌بند واحد NestJS</td><td>NestJS + Chainlink + Gelato + AVS اختیاری EigenLayer</td></tr><tr><td>ایندکسر</td><td>داخلی</td><td>subgraph عمومی با طرح‌واره مستند</td></tr><tr><td>اپ پرداخت / داشبورد</td><td>میزبانی‌شده توسط OrcaRail</td><td>میزبانی‌شده + نسخه‌های IPFS/ENS؛ میزبان‌های شخص ثالث خوش‌آمدند</td></tr><tr><td>جزء پایه لینک پرداخت</td><td>ساختار داخلی API</td><td>پیش‌نویس EIP با پیاده‌سازی مرجع</td></tr><tr><td>تسویه بین‌زنجیره‌ای</td><td>keeper اورکاریل Relay را صدا می‌زند</td><td>intentهای پرداخت‌کننده از طریق بازار solver + پشتیبان OrcaRail</td></tr><tr><td>حاکمیت</td><td>مولتی‌سیگ OrcaRail (بنیان‌گذاران + تیم)</td><td>شورای عمومی؛ حاکمیت روی زنجیره به‌عنوان گزینه واقعی</td></tr><tr><td>سطح مقرراتی</td><td>«OrcaRail پردازشگر است»</td><td>«OrcaRail یکی از پردازشگرهای متعدد روی یک زیرساخت است»</td></tr><tr><td>API قابل مشاهده برای فروشنده</td><td>REST + وب‌هوک</td><td><strong>همان REST + وب‌هوک</strong> (پایدار)</td></tr><tr><td>توکن</td><td>ندارد</td><td>ندارد؛ به‌عنوان گزینه آینده رزرو شده (بخش ۹)</td></tr></tbody></table>
<p>سطح رو به وب۲ عمداً پایدار می‌ماند. فروشندگانی که در ۲۰۲۶ با API نوع REST یکپارچه شده‌اند، در ۲۰۲۸ دچار مشکل نمی‌شوند.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="16-threat-model">۱۶. مدل تهدید<a href="https://docs.orcarail.com/fa/blog/orcarail-protocol-whitepaper/#16-threat-model" class="hash-link" aria-label="لینک مستقیم به ۱۶. مدل تهدید" title="لینک مستقیم به ۱۶. مدل تهدید" translate="no">​</a></h2>
<p>تهدیدهایی که صراحتاً در نظر داریم، همراه با راهکار کاهش آن‌ها:</p>
<ul>
<li class=""><strong>باگ قرارداد</strong> ← چند حسابرسی برای هر قرارداد؛ گیرنده‌های تغییرناپذیر برای هر لینک؛ ارتقای UUPS پشت timelock چهل‌وهشت ساعته روی کارخانه‌ها و هاب‌ها؛ برنامه عمومی پاداش کشف باگ.</li>
<li class=""><strong>قطعی keeper</strong> ← افزونگی keeper در مرحله ۳ مسیر N (Chainlink/Gelato) + شبکه solver در P4 مسیر P + فراخوانی دستی عمومی <code>charge()</code> به‌عنوان پشتیبان.</li>
<li class=""><strong>فیشینگ فرانت‌اند</strong> ← رجیستری قرارداد روی زنجیره در P2 مسیر P + آدرس‌دهی مبتنی بر محتوا با ENS + مراسم امضای انتشار از مولتی‌سیگ Safe.</li>
<li class=""><strong>تصاحب حاکمیت</strong> ← چرخش امضاکنندگان مولتی‌سیگ؛ آستانه سه از پنج؛ شورای پس از غیرمتمرکزسازی از گردانندگان مستقل؛ مراسم عمومی.</li>
<li class=""><strong>اقدام مقرراتی علیه یک میزبان</strong> ← کیت نصب روی سرور خود در P5 مسیر P + چند فرانت‌اند مستقل تا فروشندگان زیرساخت جایگزین داشته باشند.</li>
<li class=""><strong>انحراف subgraph یا ایندکسر</strong> ← طرح‌واره مرجع + آزمون‌های تکرارپذیری؛ چند ایندکسر مستقل.</li>
<li class=""><strong>کم‌عمقی بازار solver</strong> ← solver پشتیبان OrcaRail به قیمت تمام‌شده؛ ورود بدون نیاز به مجوز برای solverهای جدید.</li>
<li class=""><strong>گم شدن کلید BTC</strong> ← xpub پشتیبان هنگام ثبت‌نام فروشنده؛ جایگزینی خودکار HSM؛ PSBTهای بازپرداخت از پیش امضاشده امکان بازیابی برای پرداخت‌کننده را حفظ می‌کنند.</li>
<li class=""><strong>بازسازمان‌دهی (reorg) زنجیره‌های EVM</strong> ← <code>lastChargedAt</code> یکنوا در <code>SubscriptionHub</code>؛ معادل سولانا در <code>last_charged_at</code>.</li>
<li class=""><strong>انحراف ناشی از توکن</strong> ← بدون توکن هنگام راه‌اندازی؛ رزرو صریح؛ هر توکن آینده پیش از اینکه بتواند نقش حاکمیتی بگیرد، مشروط به آستانه گردانندگان مستقل است.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="17-open-questions-we-are-honest-about">۱۷. پرسش‌های باز که صادقانه می‌پذیریم<a href="https://docs.orcarail.com/fa/blog/orcarail-protocol-whitepaper/#17-open-questions-we-are-honest-about" class="hash-link" aria-label="لینک مستقیم به ۱۷. پرسش‌های باز که صادقانه می‌پذیریم" title="لینک مستقیم به ۱۷. پرسش‌های باز که صادقانه می‌پذیریم" translate="no">​</a></h2>
<p>نوشتن این سند همه پرسش‌هایی را که مطرح می‌کند حل نمی‌کند.</p>
<ul>
<li class=""><strong>«پس از غیرمتمرکزسازی» دقیقاً کی شروع می‌شود؟</strong> بخش ۸ یک آستانه می‌دهد (سه فرانت‌اند مستقل، سه keeper مستقل، یک پردازشگر غیر از OrcaRail). اینکه این آستانه درست است یا نه، بحثی باز است.</li>
<li class=""><strong>هزینه subgraph عمومی در مقیاس بالا را چه کسی می‌پردازد؟</strong> The Graph بازار دارد؛ نصب روی سرور خود رایگان است اما از نظر عملیاتی سنگین. اقتصاد آن هنوز روشن نیست.</li>
<li class=""><strong>مسیر خروج فروشنده‌ای که میزبان اصلی فرانت‌اندش ناپدید می‌شود چیست؟</strong> P5 نصب روی سرور خود را ممکن می‌کند، اما خودکارش نمی‌کند. جریان «انتقال فروشگاهم به میزبان دیگر» کار آینده است.</li>
<li class=""><strong>حاکمیت در پروتکلی با قراردادهای تغییرناپذیر برای هر لینک واقعاً درباره چه تصمیم می‌گیرد؟</strong> ارتقای کارخانه‌ها، تنظیم پارامترهای هاب‌ها (فهرست توکن‌های متوقف‌شده، استقرار روی زنجیره‌های جدید)، مقادیر پیش‌فرض تقسیم کارمزد برای ترافیک میزبانی‌شده OrcaRail؛ اما نه خیلی بیشتر. اینکه این دامنه برای توجیه حاکمیت روی زنجیره کافی است یا نه، بخشی از گفت‌وگوی پس از غیرمتمرکزسازی است.</li>
<li class=""><strong>اگر شرکت OrcaRail نظرش را درباره رزرو بخش ۹ عوض کند، چه بر سر پروتکل می‌آید؟</strong> هر تغییری، تغییری منتشرشده در همین وایت‌پیپر است. هیچ چرخش یک‌جانبه و بی‌سروصدایی در کار نیست.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="18-conclusion--a-call-to-builders">۱۸. جمع‌بندی: دعوت از سازندگان<a href="https://docs.orcarail.com/fa/blog/orcarail-protocol-whitepaper/#18-conclusion--a-call-to-builders" class="hash-link" aria-label="لینک مستقیم به ۱۸. جمع‌بندی: دعوت از سازندگان" title="لینک مستقیم به ۱۸. جمع‌بندی: دعوت از سازندگان" translate="no">​</a></h2>
<p><a class="" href="https://docs.orcarail.com/fa/blog/non-custodial-roadmap/">نقشه راه غیرامانی</a> زیرساخت را از امانت‌داری جدا می‌کند. این وایت‌پیپر زیرساخت را از OrcaRail جدا می‌کند. هر دو باید منتشر شوند تا هر کدام معنا پیدا کند.</p>
<p>اگر در حال ساختن کیف پول، داشبورد، ایندکسر، solver، ابزار انطباق یا پردازشگر رقیب هستید، پروتکل طوری طراحی شده که مشارکت شما را بدون نیاز به اجازه بپذیرد. در نوشتن EIP مشارکت کنید. subgraph را اجرا کنید. فرانت‌اند خودتان را سنجاق کنید. keeper یا solver اجرا کنید. برای پیاده‌سازی مرجع issue ثبت کنید. هرچه بخش بیشتری از مسیر P توسط کسانی انجام شود که در OrcaRail کار نمی‌کنند، پروتکل بیشتر شایسته واژه <em>پروتکل</em> می‌شود.</p>
<p>فروشندگان وب۲ که امروز با آن‌ها کار می‌کنیم متوجه هیچ‌کدام از این‌ها نمی‌شوند؛ کلیدهای API، وب‌هوک‌ها و داشبوردهایشان همچنان کار می‌کنند. همین پایداری هدف است. ما پایه زیرساخت را تغییر می‌دهیم، نه سطحی را که فروشندگان هنگام ثبت‌نام با آن سروکار داشتند.</p>
<hr>
<p><strong>منابع</strong></p>
<ul>
<li class=""><a class="" href="https://docs.orcarail.com/fa/blog/non-custodial-roadmap/">نقشه راه غیرامانی OrcaRail</a> — مسیر N</li>
<li class=""><a class="" href="https://docs.orcarail.com/fa/blog/protocol-debate-non-custodial-futures/">مناظره پروتکل: پنج چشم‌انداز برای OrcaRail کاملاً غیرامانی</a> — خاستگاه مسیر P</li>
<li class=""><a class="" href="https://docs.orcarail.com/fa/blog/why-allowance-pull-subscriptions/">چرا برداشت مبتنی بر allowance از اسکرو و session key بهتر است</a> — تصمیم درباره مدل اشتراک</li>
<li class=""><a class="" href="https://docs.orcarail.com/fa/docs/non-custodial/architecture/">معماری</a> — معماری فنی کامل</li>
<li class=""><a class="" href="https://docs.orcarail.com/fa/docs/non-custodial/contract-reference/">مرجع قراردادها</a> — ABIها، رویدادها و آدرس‌ها</li>
<li class=""><a class="" href="https://docs.orcarail.com/fa/docs/non-custodial/security-model/">مدل امنیتی</a> — فرض‌های اعتماد و نگهداری کلیدها</li>
<li class=""><a class="" href="https://docs.orcarail.com/fa/docs/non-custodial/roadmap/">نقشه راه</a> — وضعیت مراحل مسیر N</li>
<li class=""><a class="" href="https://docs.orcarail.com/fa/docs/non-custodial/eigenlayer-evaluation/">ارزیابی EigenLayer</a> — الگویی که برای P6 تکرار شده است</li>
</ul>]]></content>
        <author>
            <name>OrcaRail</name>
            <uri>https://orcarail.com</uri>
        </author>
        <category label="Announcement" term="Announcement"/>
        <category label="Payments" term="Payments"/>
        <category label="Multi-Chain" term="Multi-Chain"/>
        <category label="Web3" term="Web3"/>
        <category label="Stablecoins" term="Stablecoins"/>
        <category label="Subscriptions" term="Subscriptions"/>
        <category label="Crypto" term="Crypto"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[مرحله ۰: طراحی یک پشته پرداخت غیرامانی]]></title>
        <id>https://docs.orcarail.com/fa/blog/phase-0-design-and-audit-strategy/</id>
        <link href="https://docs.orcarail.com/fa/blog/phase-0-design-and-audit-strategy/"/>
        <updated>2026-04-20T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[مرحله ۰ نقشه راه غیرامانی OrcaRail. مشخصات تقسیم کارمزد، انتخاب زنجیره، انتخاب شرکت حسابرسی، مولتی‌سیگ استقراردهنده، سیاست ارتقا و ماتریس تصمیم مدل اشتراک.]]></summary>
        <content type="html"><![CDATA[<p><strong>۲۰ آوریل ۲۰۲۶</strong> — پیش از نوشتن حتی یک خط Solidity، مشخصات را نهایی می‌کنیم. مرحله ۰ مرحله طراحی و تأیید <a class="" href="https://docs.orcarail.com/fa/blog/non-custodial-roadmap/">نقشه راه غیرامانی</a> است: چه چیزی روی زنجیره می‌رود و چه چیزی نه، کدام زنجیره اول راه‌اندازی می‌شود، چه کسی قراردادها را حسابرسی می‌کند و چه کسی کلیدهای استقرار را نگه می‌دارد.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="tldr">خلاصه<a href="https://docs.orcarail.com/fa/blog/phase-0-design-and-audit-strategy/#tldr" class="hash-link" aria-label="لینک مستقیم به خلاصه" title="لینک مستقیم به خلاصه" translate="no">​</a></h2>
<ul>
<li class="">تقسیم کارمزد در چهار سهم نهایی شده است: <strong>فروشنده، پلتفرم، معرف/همکار فروش، کارمزد پل</strong>. همه‌چیز در تقسیم‌کننده روی زنجیره بر حسب واحد پایه (basis points) قابل بیان است؛ بدون اصلاحات خارج از زنجیره.</li>
<li class=""><strong>Base</strong> زنجیره راه‌اندازی مرحله ۱ است. ارزان، سریع، از قبل در فهرست زنجیره‌های <a href="https://github.com/orcarail/orcarail/tree/main/api/src/payments/wallet.service.ts" target="_blank" rel="noopener noreferrer" class="">سرویس کیف پول</a> و دارای USDC بومی.</li>
<li class="">اشتراک‌ها از <strong>approve + برداشت در ERC-20</strong> (EVM) و <strong>delegate در SPL</strong> (سولانا) استفاده می‌کنند. طرح‌های اسکرو و session key رد شدند؛ ماتریس تصمیم را در ادامه ببینید.</li>
<li class="">قراردادها توسط <strong>مولتی‌سیگ Safe سه از پنج</strong> (EVM) و <strong>مولتی‌سیگ Squads سه از پنج</strong> (سولانا) مستقر می‌شوند. گیرنده‌های هر لینک تغییرناپذیرند. کارخانه‌ها و <code>SubscriptionHub</code> پشت یک proxy کوچک با timelock چهل‌وهشت ساعته قرار دارند.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-this-phase-changes">این مرحله چه چیزی را تغییر می‌دهد<a href="https://docs.orcarail.com/fa/blog/phase-0-design-and-audit-strategy/#what-this-phase-changes" class="hash-link" aria-label="لینک مستقیم به این مرحله چه چیزی را تغییر می‌دهد" title="لینک مستقیم به این مرحله چه چیزی را تغییر می‌دهد" translate="no">​</a></h2>
<p>هیچ چیزی در محیط عملیاتی. مرحله ۰ شامل یک مشخصات مکتوب، سه پیشنهاد حسابرسی، یک مراسم کلید استقرار و چند ADR ادغام‌شده است.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-fee-split-spec-frozen">مشخصات تقسیم کارمزد (نهایی‌شده)<a href="https://docs.orcarail.com/fa/blog/phase-0-design-and-audit-strategy/#the-fee-split-spec-frozen" class="hash-link" aria-label="لینک مستقیم به مشخصات تقسیم کارمزد (نهایی‌شده)" title="لینک مستقیم به مشخصات تقسیم کارمزد (نهایی‌شده)" translate="no">​</a></h2>
<p>امروز، <code>SmartAccountWalletService.drainSmartAccountWallet</code> در <a href="https://github.com/orcarail/orcarail/tree/main/api/src/withdrawals/services/smart-account-wallet.service.ts" target="_blank" rel="noopener noreferrer" class="">api/src/withdrawals/services/smart-account-wallet.service.ts</a> انتقال‌ها را در یک UserOperation با سه گیرنده ترکیب می‌کند: فروشنده (<code>toAddress</code>)، کیف پول پشتیبانی (<code>supportWalletAddress</code>) و کیف پول کمیسیون. نسخه قراردادی دقیقاً همین را بازتاب می‌دهد:</p>
<div class="language-solidity codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-solidity codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">struct Split {</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    address merchant;   // main receiver</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    address platform;   // support / platform fee</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    address referral;   // commission / affiliate (optional, zero = skip)</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    address bridgeFee;  // Relay bridge fee carrier (optional, zero = skip)</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    uint16 platformBps;</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    uint16 referralBps;</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    uint16 bridgeFeeBps;</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">}</span><br></div></code></pre></div></div>
<p>هر کاری که keeper امروز در TypeScript انجام می‌دهد از روی این struct و مبلغ پرداخت قابل محاسبه است. هر چیزی که keeper فعلی نمی‌تواند بیان کند (مثلاً مالیات پویا یا مبالغ نگه‌داشته‌شده در سطح فروشنده) خارج از دامنه مرحله ۱ است و در صورت نیاز در مرحله‌ای بعدی اضافه می‌شود.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="chain-selection">انتخاب زنجیره<a href="https://docs.orcarail.com/fa/blog/phase-0-design-and-audit-strategy/#chain-selection" class="hash-link" aria-label="لینک مستقیم به انتخاب زنجیره" title="لینک مستقیم به انتخاب زنجیره" translate="no">​</a></h2>
<p>زنجیره راه‌اندازی مرحله ۱ <strong>Base</strong> است:</p>
<ul>
<li class="">از قبل در نگاشت chainId ما (<code>8453 → base</code>، <code>84532 → baseSepolia</code>) در <code>api/src/payments/wallet.service.ts</code> وجود دارد.</li>
<li class="">گس آن‌قدر ارزان است که استقرار <code>PaymentLinkReceiver</code> + تقسیم در اولین پرداخت، برای هر تراکنش فقط چند سنت هزینه دارد.</li>
<li class="">سیاست paymaster آلکمی از قبل از آن پشتیبانی می‌کند؛ اگر بخواهیم هزینه keeper روی <code>SubscriptionHub.charge()</code> را حمایت کنیم، راه فرار داریم.</li>
<li class="">USDC بومی (نه پل‌شده) دارد که برای allowance اشتراک‌ها مهم است.</li>
</ul>
<p>Ethereum mainnet، Arbitrum، Optimism و Polygon در <a class="" href="https://docs.orcarail.com/fa/blog/phase-3-multi-evm-and-keeper-redundancy/">مرحله ۳</a> اضافه می‌شوند. سولانا یک برنامه جداگانه است که در <a class="" href="https://docs.orcarail.com/fa/blog/phase-4-solana-pda-programs/">مرحله ۴</a> پیگیری می‌شود.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="subscription-model-the-decision-matrix">مدل اشتراک: ماتریس تصمیم<a href="https://docs.orcarail.com/fa/blog/phase-0-design-and-audit-strategy/#subscription-model-the-decision-matrix" class="hash-link" aria-label="لینک مستقیم به مدل اشتراک: ماتریس تصمیم" title="لینک مستقیم به مدل اشتراک: ماتریس تصمیم" translate="no">​</a></h2>
<p>سه طرح را ارزیابی کردیم. فقط یکی برای ما کار می‌کند.</p>
<table><thead><tr><th>مدل</th><th>امانت‌داری</th><th>تجربه پرداخت‌کننده</th><th>سازگاری کیف پول</th><th>نیاز به keeper</th><th>نتیجه</th></tr></thead><tbody><tr><td><strong>approve + برداشت در ERC-20</strong> (انتخاب‌شده)</td><td>ندارد</td><td>یک <code>approve</code> یک‌باره</td><td>MetaMask، Phantom، Ledger، Safe؛ بومی</td><td>هر فراخواننده‌ای؛ keeper اختیاری</td><td>همین را منتشر کن</td></tr><tr><td>سپرده اسکرو</td><td>ندارد</td><td>سپرده N ماه</td><td>همه کیف پول‌ها</td><td>هر فراخواننده‌ای</td><td>تجربه بدتر؛ وجوه قفل می‌شوند</td></tr><tr><td>کیف پول هوشمند + session key</td><td>ندارد</td><td>ثبت‌نام در 4337</td><td>فقط کیف پول‌های 4337</td><td>امضاکننده session key</td><td>سازگاری بیش از حد محدود</td></tr></tbody></table>
<p>approve + برداشت تنها طرحی است که با کیف پول‌هایی که پرداخت‌کنندگان همین حالا استفاده می‌کنند (MetaMask، Phantom، کیف پول‌های سخت‌افزاری، Safeها) کار می‌کند. همچنین همان طرحی است که در <a class="" href="https://docs.orcarail.com/fa/docs/subscriptions/auto-charge/">برداشت خودکار</a> منتشر کرده‌ایم و <code>approve(spender, amount)</code> و delegation در SPL را مستند می‌کند. مرحله ۲ <strong>سمت برداشت</strong> را با یک قرارداد هوشمند جایگزین می‌کند و سمت پرداخت‌کننده را تغییر نمی‌دهد.</p>
<p>استدلال کامل در <a class="" href="https://docs.orcarail.com/fa/blog/why-allowance-pull-subscriptions/">چرا برداشت مبتنی بر allowance از اسکرو و session key بهتر است</a> آمده است.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="deployer-key-custody">نگهداری کلیدهای استقرار<a href="https://docs.orcarail.com/fa/blog/phase-0-design-and-audit-strategy/#deployer-key-custody" class="hash-link" aria-label="لینک مستقیم به نگهداری کلیدهای استقرار" title="لینک مستقیم به نگهداری کلیدهای استقرار" translate="no">​</a></h2>
<ul>
<li class=""><strong>EVM</strong>: Safe (پیش‌تر Gnosis Safe) روی Base با <strong>آستانه سه از پنج</strong>. امضاکنندگان: دو بنیان‌گذار، یک مسئول عملیات، یک مشاور و یک نسخه پشتیبان سرد. هر امضاکننده از کیف پول سخت‌افزاری استفاده می‌کند؛ هیچ کلیدی روی سرور نیست.</li>
<li class=""><strong>سولانا</strong>: مولتی‌سیگ Squads با همان تنظیم سه از پنج و همان امضاکنندگان.</li>
<li class=""><strong>چرخش</strong>: هر امضاکننده سالانه یا هنگام جدایی چرخش می‌یابد؛ هر چرخش یک تراکنش Safe/Squads است.</li>
<li class=""><strong>هیچ keeper داغی نمی‌تواند استقرار دهد</strong>. EOA مربوط به keeper در NestJS (که در مرحله ۲ برای فراخوانی <code>charge()</code> استفاده می‌شود) هیچ اختیار استقرار، ارتقا یا آدرس کارمزدی ندارد.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="upgrade-policy">سیاست ارتقا<a href="https://docs.orcarail.com/fa/blog/phase-0-design-and-audit-strategy/#upgrade-policy" class="hash-link" aria-label="لینک مستقیم به سیاست ارتقا" title="لینک مستقیم به سیاست ارتقا" translate="no">​</a></h2>
<ul>
<li class=""><strong><code>PaymentLinkReceiver</code> هر لینک</strong>: تغییرناپذیر. بدون ارتقا. این برای پرداخت‌کنندگان امتیاز اعتمادی است؛ کدی که به آن پرداخت می‌کنند بعداً تغییر نمی‌کند.</li>
<li class=""><strong><code>PaymentLinkFactory</code></strong>: proxy کوچک UUPS متعلق به مولتی‌سیگ، با timelock چهل‌وهشت ساعته روی <code>upgradeTo</code>. ارتقاها نمی‌توانند گیرنده‌های مستقرشده را تغییر دهند.</li>
<li class=""><strong><code>SubscriptionHub</code></strong>: همان الگو. معنای <code>charge()</code> و <code>cancel()</code> بین نسخه‌ها پایدار است؛ اگر روزی تغییر ناسازگاری لازم شود، به‌جای ارتقا <code>SubscriptionHubV2</code> را مستقر و مهاجرت می‌کنیم.</li>
<li class=""><strong>معنای بازپرداخت و اختلاف</strong>: <code>refund(txId)</code> روی زنجیره که امضاکننده فروشنده (از طریق کلید API او ← EOA مربوط به keeper) یا مولتی‌سیگ استقرار می‌تواند فراخوانی کند. پرداخت‌کننده نمی‌تواند خودش بازپرداخت بگیرد (مطابق محصول فعلی).</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="audit-vendor-strategy">راهبرد انتخاب شرکت حسابرسی<a href="https://docs.orcarail.com/fa/blog/phase-0-design-and-audit-strategy/#audit-vendor-strategy" class="hash-link" aria-label="لینک مستقیم به راهبرد انتخاب شرکت حسابرسی" title="لینک مستقیم به راهبرد انتخاب شرکت حسابرسی" translate="no">​</a></h2>
<p>سه شرکت را در فهرست کوتاه قرار می‌دهیم و یک حسابرسی اصلی + یک بازبینی رقابتی انجام می‌دهیم:</p>
<ul>
<li class=""><strong>نامزدهای اصلی (EVM)</strong>: Spearbit، Trail of Bits، Zellic.</li>
<li class=""><strong>نامزدهای ثانویه (سولانا)</strong>: OtterSec، Neodyme.</li>
<li class=""><strong>دامنه</strong>: <code>PaymentLinkFactory</code>، <code>PaymentLinkReceiver</code>، <code>FeeSplitter</code>، <code>SubscriptionHub</code>. برنامه‌های Anchor در مرحله ۴ حسابرسی جداگانه دارند.</li>
<li class=""><strong>بودجه</strong>: حسابرسی پیش‌نیاز قطعی راه‌اندازی روی Base mainnet است. پیش از گزارش رفع همه موارد، mainnet نداریم.</li>
<li class=""><strong>افشای عمومی</strong>: گزارش‌های حسابرسی در مخزن قرار می‌گیرند و از <a class="" href="https://docs.orcarail.com/fa/docs/non-custodial/security-model/">/docs/non-custodial/security-model</a> لینک می‌شوند.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="risks-and-mitigations">ریسک‌ها و راهکارها<a href="https://docs.orcarail.com/fa/blog/phase-0-design-and-audit-strategy/#risks-and-mitigations" class="hash-link" aria-label="لینک مستقیم به ریسک‌ها و راهکارها" title="لینک مستقیم به ریسک‌ها و راهکارها" translate="no">​</a></h2>
<ul>
<li class=""><strong>گسترش بی‌رویه مشخصات</strong>. راهکار: هر چیزی که به شکل تقسیم بر حسب واحد پایه قابل بیان نباشد به مرحله بعد موکول می‌شود. مرحله ۱ منتظر مالیات پویا یا تنظیمات اختصاصی هر فروشنده نمی‌ماند.</li>
<li class=""><strong>در دسترس بودن امضاکنندگان مولتی‌سیگ</strong>. راهکار: سه از پنج، نه دو از سه؛ تا اگر هر دو امضاکننده‌ای در دسترس نباشند استقرارها متوقف نشوند.</li>
<li class=""><strong>زمان‌بندی حسابرسی</strong>. راهکار: گفت‌وگو با شرکت‌ها از همین حالا شروع شود؛ قراردادها در حین حسابرسی روی شبکه آزمایشی منتشر شوند؛ استقرار روی mainnet مشروط است.</li>
<li class=""><strong>فراموش شدن یک حالت کارمزد</strong>. راهکار: بازتولید همه مسیرهای فعلی <code>drainSmartAccountWallet</code> (بومی + ERC-20، با/بدون پشتیبانی، با/بدون کمیسیون) به‌صورت آزمون invariant در Foundry پیش از حسابرسی.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="status-checklist">چک‌لیست وضعیت<a href="https://docs.orcarail.com/fa/blog/phase-0-design-and-audit-strategy/#status-checklist" class="hash-link" aria-label="لینک مستقیم به چک‌لیست وضعیت" title="لینک مستقیم به چک‌لیست وضعیت" translate="no">​</a></h2>
<ul class="contains-task-list containsTaskList_mC6p">
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->تأیید و برچسب‌گذاری struct تقسیم کارمزد</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->انتخاب Base به‌عنوان زنجیره راه‌اندازی مرحله ۱</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->قرار گرفتن سه شرکت حسابرسی در فهرست کوتاه</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->ساخت و آزمایش مولتی‌سیگ‌های استقرار Safe (Base) و Squads (سولانا)</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->ادغام ADR درباره سیاست ارتقا و timelock</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->ادغام ADR درباره تصمیم مدل اشتراک</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->مستندسازی معنای بازپرداخت / اختلاف</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-is-next">قدم بعدی<a href="https://docs.orcarail.com/fa/blog/phase-0-design-and-audit-strategy/#what-is-next" class="hash-link" aria-label="لینک مستقیم به قدم بعدی" title="لینک مستقیم به قدم بعدی" translate="no">​</a></h2>
<p>مرحله ۱ این مشخصات را پیاده‌سازی می‌کند: <strong><a class="" href="https://docs.orcarail.com/fa/blog/phase-1-evm-payment-link-contracts/">لینک‌های پرداخت مبتنی بر قرارداد روی EVM</a></strong>.</p>
<hr>
<p>مستندات مرجع: <strong><a class="" href="https://docs.orcarail.com/fa/docs/non-custodial/phases/phase-0-design/">وضعیت مرحله ۰</a></strong> · <strong><a class="" href="https://docs.orcarail.com/fa/docs/non-custodial/security-model/">مدل امنیتی</a></strong> · <strong><a class="" href="https://docs.orcarail.com/fa/docs/non-custodial/architecture/">معماری</a></strong></p>]]></content>
        <author>
            <name>OrcaRail</name>
            <uri>https://orcarail.com</uri>
        </author>
        <category label="Payments" term="Payments"/>
        <category label="Web3" term="Web3"/>
        <category label="Multi-Chain" term="Multi-Chain"/>
        <category label="Announcement" term="Announcement"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[مرحله ۱: لینک‌های پرداخت مبتنی بر قرارداد روی EVM]]></title>
        <id>https://docs.orcarail.com/fa/blog/phase-1-evm-payment-link-contracts/</id>
        <link href="https://docs.orcarail.com/fa/blog/phase-1-evm-payment-link-contracts/"/>
        <updated>2026-04-20T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[مرحله ۱ نقشه راه غیرامانی OrcaRail. قراردادهای PaymentLinkFactory، کلون PaymentLinkReceiver و FeeSplitter مدل جاروب با کیف پول HD را روی EVM با تقسیم اتمیک روی زنجیره جایگزین می‌کنند.]]></summary>
        <content type="html"><![CDATA[<p><strong>۲۰ آوریل ۲۰۲۶</strong> — مرحله ۱ شروع واقعی کار مهندسی <a class="" href="https://docs.orcarail.com/fa/blog/non-custodial-roadmap/">نقشه راه غیرامانی</a> است. EOAهای مشتق از HD برای هر لینک و smart accountهای آلکمی را با الگوی <strong>کارخانه + گیرنده به‌شکل کلون حداقلی</strong> روی EVM جایگزین می‌کنیم. وجوه در همان تراکنش پرداخت به‌صورت اتمیک تقسیم می‌شوند؛ بدون جاروب و بدون امانت‌داری.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="tldr">خلاصه<a href="https://docs.orcarail.com/fa/blog/phase-1-evm-payment-link-contracts/#tldr" class="hash-link" aria-label="لینک مستقیم به خلاصه" title="لینک مستقیم به خلاصه" translate="no">​</a></h2>
<ul>
<li class=""><code>PaymentLinkFactory.computeAddress(linkId)</code> یک آدرس قطعی CREATE2 برمی‌گرداند. این آدرس را <strong>پیش از</strong> استقرار هر چیزی به پرداخت‌کننده نشان می‌دهیم.</li>
<li class=""><code>PaymentLinkReceiver</code> یک کلون حداقلی EIP-1167 است. توکن بومی یا ERC-20 می‌پذیرد، رویداد <code>Paid</code> منتشر می‌کند و در همان تراکنش <code>FeeSplitter.split()</code> را فراخوانی می‌کند.</li>
<li class=""><a href="https://github.com/orcarail/orcarail/tree/main/api/src/payments/wallet.service.ts" target="_blank" rel="noopener noreferrer" class="">api/src/payments/wallet.service.ts</a> دیگر برای لینک‌های EVM کیف پول HD نمی‌سازد؛ به‌جای آن تابع view کارخانه را صدا می‌زند.</li>
<li class="">مسیر جاروب (<code>drainSmartAccountWallet</code>، <code>getSmartAccountClientForDepositWallet</code>) برای لینک‌هایی که با پرچم <code>useOnChainReceiver</code> ساخته شده‌اند دور زده می‌شود.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-this-phase-changes">این مرحله چه چیزی را تغییر می‌دهد<a href="https://docs.orcarail.com/fa/blog/phase-1-evm-payment-link-contracts/#what-this-phase-changes" class="hash-link" aria-label="لینک مستقیم به این مرحله چه چیزی را تغییر می‌دهد" title="لینک مستقیم به این مرحله چه چیزی را تغییر می‌دهد" translate="no">​</a></h2>
<div class="wrapper_vprU"><button type="button" class="expandBtn_RmxB" aria-label="Show diagram fullscreen" title="Fullscreen"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><path d="M15 3h6v6M9 21H3v-6M21 3l-7 7M3 21l7-7" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div>
<p>در سمت «بعد» هیچ جعبه‌ای که ما کنترل کنیم وجوه را نگه نمی‌دارد.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="contracts-introduced">قراردادهای معرفی‌شده<a href="https://docs.orcarail.com/fa/blog/phase-1-evm-payment-link-contracts/#contracts-introduced" class="hash-link" aria-label="لینک مستقیم به قراردادهای معرفی‌شده" title="لینک مستقیم به قراردادهای معرفی‌شده" translate="no">​</a></h2>
<p>همه در یک پکیج جدید به نام <code>contracts/evm/</code>.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="paymentlinkfactory">PaymentLinkFactory<a href="https://docs.orcarail.com/fa/blog/phase-1-evm-payment-link-contracts/#paymentlinkfactory" class="hash-link" aria-label="لینک مستقیم به PaymentLinkFactory" title="لینک مستقیم به PaymentLinkFactory" translate="no">​</a></h3>
<ul>
<li class=""><code>computeAddress(bytes32 linkId) view returns (address)</code> — آدرس قطعی CREATE2 مشتق از <code>linkId</code> (همان UUID فعلی لینک پرداخت که به <code>bytes32</code> هش شده است).</li>
<li class=""><code>deployAndPay(bytes32 linkId, Split split, address token, uint256 amount)</code> — استقرار تنبل + پرداخت در یک تراکنش. کارخانه پیاده‌سازی <code>PaymentLinkReceiver</code> را کلون می‌کند، آن را با <code>Split</code> مقداردهی می‌کند و وجوه را ارسال می‌کند.</li>
<li class=""><code>isDeployed(bytes32 linkId) view returns (bool)</code> — تابع کمکی که ایندکسر و رابط کاربری از آن استفاده می‌کنند.</li>
<li class="">قابل ارتقا پشت proxy نوع UUPS، متعلق به مولتی‌سیگ استقرار (Safe سه از پنج)، با timelock چهل‌وهشت ساعته روی <code>upgradeTo</code>.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="paymentlinkreceiver-clone">PaymentLinkReceiver (کلون)<a href="https://docs.orcarail.com/fa/blog/phase-1-evm-payment-link-contracts/#paymentlinkreceiver-clone" class="hash-link" aria-label="لینک مستقیم به PaymentLinkReceiver (کلون)" title="لینک مستقیم به PaymentLinkReceiver (کلون)" translate="no">​</a></h3>
<ul>
<li class="">پس از مقداردهی تغییرناپذیر است. struct مربوط به <code>Split</code> و آدرس <code>FeeSplitter</code> را ذخیره می‌کند.</li>
<li class=""><code>pay(address token, uint256 amount)</code> — توکن بومی و ERC-20 را در یک نقطه ورود مدیریت می‌کند. از <code>SafeERC20</code> استفاده می‌کند تا توکن‌های غیراستاندارد (USDT) هم کار کنند. رویداد <code>Paid(linkId, payer, token, amount)</code> را منتشر می‌کند.</li>
<li class=""><code>FeeSplitter.split()</code> را به‌صورت اتمیک فراخوانی می‌کند. اگر تقسیم revert شود، پرداخت هم revert می‌شود.</li>
<li class="">تابع صریح <code>refund(bytes32 txId)</code> که فقط EOA مربوط به keeper فروشنده یا مولتی‌سیگ استقرار می‌تواند فراخوانی کند.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="feesplitter">FeeSplitter<a href="https://docs.orcarail.com/fa/blog/phase-1-evm-payment-link-contracts/#feesplitter" class="hash-link" aria-label="لینک مستقیم به FeeSplitter" title="لینک مستقیم به FeeSplitter" translate="no">​</a></h3>
<ul>
<li class=""><code>split(Split s, address token, uint256 amount)</code> — بر اساس واحد پایه توزیع می‌کند. wei باقی‌مانده به فروشنده می‌رسد (بدون هدر رفتن خرده‌ها).</li>
<li class="">رویداد <code>Split(txId, merchant, platform, referral, bridgeFee)</code> را منتشر می‌کند تا ایندکسر با payloadهای وب‌هوک قدیمی هم‌خوان بماند.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="api-changes">تغییرات API<a href="https://docs.orcarail.com/fa/blog/phase-1-evm-payment-link-contracts/#api-changes" class="hash-link" aria-label="لینک مستقیم به تغییرات API" title="لینک مستقیم به تغییرات API" translate="no">​</a></h2>
<p>بزرگ‌ترین تغییر کد در <a href="https://github.com/orcarail/orcarail/tree/main/api/src/payments/wallet.service.ts" target="_blank" rel="noopener noreferrer" class="">api/src/payments/wallet.service.ts</a> است. امروز <code>getOrCreateAddressForPaymentLink</code> از <code>hd_wallet_seed</code> مشتق‌گیری می‌کند، آدرس counterfactual آلکمی را محاسبه می‌کند و در <code>wallet_address</code> ذخیره می‌کند. پس از مرحله ۱، برای زنجیره‌های EVM که پرچم فعال دارند، این تابع چنین می‌شود:</p>
<div class="language-ts codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-ts codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">async</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">function</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">getOrCreateAddressForPaymentLink</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">paymentLinkId</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> network</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token keyword" style="color:#00009f">if</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">(</span><span class="token function" style="color:#d73a49">isEvm</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">network</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">&amp;&amp;</span><span class="token plain"> featureFlags</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">useOnChainReceiver</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">network</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">chainId</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token keyword" style="color:#00009f">const</span><span class="token plain"> address </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">await</span><span class="token plain"> factory</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">computeAddress</span><span class="token punctuation" style="color:#393A34">(</span><span class="token function" style="color:#d73a49">hashLinkId</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">paymentLinkId</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token keyword" style="color:#00009f">return</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> address</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> walletAddressId</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">null</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> derivationPath</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">null</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token comment" style="color:#999988;font-style:italic">// legacy path unchanged</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></div></code></pre></div></div>
<p>بدون مشتق‌گیری HD. بدون هیچ داده خصوصی در پایگاه داده برای لینک‌های جدید.</p>
<p>یک سرویس جدید به نام <code>payments/indexer/evm-paid-event.service.ts</code> با <code>viem.watchContractEvent</code> روی هر زنجیره فعال مشترک رویدادهای <code>Paid</code> می‌شود. هنگام تطابق:</p>
<ol>
<li class=""><code>paymentLinkId</code> را از رویداد (ایندکس‌شده به‌صورت <code>bytes32</code>) پیدا می‌کند.</li>
<li class="">یک ردیف <code>PaymentTransaction</code> درج یا به‌روزرسانی می‌کند؛ با همان ساختار امروز.</li>
<li class="">همان وب‌هوک‌هایی را منتشر می‌کند که امروز مسیر تکمیل جاروب منتشر می‌کند (<a href="https://github.com/orcarail/orcarail/tree/main/api/src/webhooks/webhooks.service.ts" target="_blank" rel="noopener noreferrer" class="">api/src/webhooks/webhooks.service.ts</a>).</li>
</ol>
<p>پرچم <code>useOnChainReceiver</code> برای هر chain id جداگانه تعریف می‌شود. لینکی که در زمان خاموش بودن پرچم ساخته شود، برای همیشه روی مسیر جاروب قدیمی می‌ماند؛ لینک‌های در جریان را مهاجرت نمی‌دهیم.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="deprecations">موارد منسوخ‌شده<a href="https://docs.orcarail.com/fa/blog/phase-1-evm-payment-link-contracts/#deprecations" class="hash-link" aria-label="لینک مستقیم به موارد منسوخ‌شده" title="لینک مستقیم به موارد منسوخ‌شده" translate="no">​</a></h2>
<p>در این مرحله این موارد را <strong>دور می‌زنیم</strong> اما حذف نمی‌کنیم:</p>
<ul>
<li class=""><code>SmartAccountWalletService.drainSmartAccountWallet</code> — برای زنجیره‌هایی که پرچم فعال دارند دیگر فراخوانی نمی‌شود.</li>
<li class=""><code>SmartAccountWalletService.getSmartAccountClientForDepositWallet</code> — وقتی آدرس‌ها از کارخانه می‌آیند لازم نیست.</li>
<li class="">ردیف‌های <code>wallet_address</code> — برای زنجیره‌های EVM با پرچم فعال نوشته نمی‌شوند.</li>
</ul>
<p>حذف واقعی در <a class="" href="https://docs.orcarail.com/fa/blog/phase-7-retiring-custody/">مرحله ۷</a> انجام می‌شود؛ پس از تسویه همه لینک‌های قدیمی روی آن زنجیره.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="migration-plan">برنامه مهاجرت<a href="https://docs.orcarail.com/fa/blog/phase-1-evm-payment-link-contracts/#migration-plan" class="hash-link" aria-label="لینک مستقیم به برنامه مهاجرت" title="لینک مستقیم به برنامه مهاجرت" translate="no">​</a></h2>
<ul>
<li class=""><strong>لینک‌های جدید روی Base</strong>: یک آدرس CREATE2 محاسبه‌شده توسط کارخانه می‌گیرند. رابط کاربری آن را مثل امروز نمایش می‌دهد.</li>
<li class=""><strong>لینک‌های باز فعلی روی Base</strong>: تا انقضا یا تسویه روی مسیر جاروب قدیمی می‌مانند. مهاجرت اجباری در کار نیست.</li>
<li class=""><strong>دیگر زنجیره‌های EVM</strong>: تا وقتی <a class="" href="https://docs.orcarail.com/fa/blog/phase-3-multi-evm-and-keeper-redundancy/">مرحله ۳</a> پرچمشان را روشن کند، روی مسیر قدیمی‌اند.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="risks-and-mitigations">ریسک‌ها و راهکارها<a href="https://docs.orcarail.com/fa/blog/phase-1-evm-payment-link-contracts/#risks-and-mitigations" class="hash-link" aria-label="لینک مستقیم به ریسک‌ها و راهکارها" title="لینک مستقیم به ریسک‌ها و راهکارها" translate="no">​</a></h2>
<ul>
<li class=""><strong>نمایش آدرس CREATE2 پیش از وجود هر کدی</strong>. راهکار: مستند کنیم که قابلیت بازیابی به استقراردهنده کارخانه بستگی دارد. سقف <code>maxLinkValue</code> در کارخانه برای ۳۰ روز اول.</li>
<li class=""><strong>USDT و دیگر توکن‌های ERC-20 غیراستاندارد</strong>. راهکار: <code>SafeERC20</code> در هر دو قرارداد <code>PaymentLinkReceiver</code> و <code>FeeSplitter</code>؛ آزمون‌های fuzz در Foundry روی فورک mainnet با USDT.</li>
<li class=""><strong>توکن‌هایی که هنگام انتقال کارمزد کم می‌کنند</strong>. راهکار: فهرست مجاز توکن‌ها؛ توکن‌های خارج از آن به مسیر قدیمی برمی‌گردند.</li>
<li class=""><strong>تأخیر ایندکسر زنجیره</strong>. راهکار: اشتراک دوگانه (آلکمی + RPC عمومی پشتیبان)؛ کارهای تطبیق هر ساعت؛ درج/به‌روزرسانی idempotent.</li>
<li class=""><strong>یافته حسابرسی در حین توسعه</strong>. راهکار: حسابرسی پیش‌شرط است؛ پیش از گزارش رفع همه موارد، استقرار روی mainnet انجام نمی‌شود.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="status-checklist">چک‌لیست وضعیت<a href="https://docs.orcarail.com/fa/blog/phase-1-evm-payment-link-contracts/#status-checklist" class="hash-link" aria-label="لینک مستقیم به چک‌لیست وضعیت" title="لینک مستقیم به چک‌لیست وضعیت" translate="no">​</a></h2>
<ul class="contains-task-list containsTaskList_mC6p">
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->ساخت پروژه Foundry در <code>contracts/evm/</code></li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->پیاده‌سازی <code>PaymentLinkFactory</code> + <code>PaymentLinkReceiver</code> + <code>FeeSplitter</code></li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->آزمون‌های fuzz + invariant برای محاسبات تقسیم (فروشنده همیشه ≥ مبلغ مورد انتظار منهای کارمزد دریافت می‌کند)</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->قبولی آزمون‌های فورک برای USDT / ERC-20 غیراستاندارد</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->اتصال پرچم <code>useOnChainReceiver</code> در <code>api/src/payments</code></li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->انتشار ایندکسر <code>evm-paid-event.service.ts</code> و ارسال وب‌هوک‌های موجود</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->شروع حسابرسی و اعمال اصلاحات</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->استقرار روی Base mainnet از مولتی‌سیگ</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->گروه آزمایشی (canary) از فروشندگان با پرچم فعال</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-is-next">قدم بعدی<a href="https://docs.orcarail.com/fa/blog/phase-1-evm-payment-link-contracts/#what-is-next" class="hash-link" aria-label="لینک مستقیم به قدم بعدی" title="لینک مستقیم به قدم بعدی" translate="no">​</a></h2>
<p>با رفتن فروشندگان Base به گیرنده‌های قراردادی، مرحله ۲ همین کار را برای اشتراک‌ها انجام می‌دهد: <strong><a class="" href="https://docs.orcarail.com/fa/blog/phase-2-allowance-pull-subscriptions/">اشتراک مبتنی بر allowance</a></strong>.</p>
<hr>
<p>مستندات مرجع: <strong><a class="" href="https://docs.orcarail.com/fa/docs/non-custodial/phases/phase-1-evm-payment-links/">وضعیت مرحله ۱</a></strong> · <strong><a class="" href="https://docs.orcarail.com/fa/docs/non-custodial/contract-reference/">مرجع قراردادها</a></strong> · <strong><a class="" href="https://docs.orcarail.com/fa/docs/non-custodial/architecture/">معماری</a></strong></p>]]></content>
        <author>
            <name>OrcaRail</name>
            <uri>https://orcarail.com</uri>
        </author>
        <category label="Payments" term="Payments"/>
        <category label="Web3" term="Web3"/>
        <category label="Multi-Chain" term="Multi-Chain"/>
        <category label="Stablecoins" term="Stablecoins"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[مرحله ۲: اشتراک مبتنی بر allowance]]></title>
        <id>https://docs.orcarail.com/fa/blog/phase-2-allowance-pull-subscriptions/</id>
        <link href="https://docs.orcarail.com/fa/blog/phase-2-allowance-pull-subscriptions/"/>
        <updated>2026-04-20T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[مرحله ۲ نقشه راه غیرامانی OrcaRail. قرارداد SubscriptionHub جایگزین پردازشگر امانی برداشت خودکار می‌شود؛ پرداخت‌کنندگان یک approve در ERC-20 امضا می‌کنند و هر کسی می‌تواند طبق زمان‌بندی charge(id) را فراخوانی کند.]]></summary>
        <content type="html"><![CDATA[<p><strong>۲۰ آوریل ۲۰۲۶</strong> — مرحله ۲ صورت‌حساب دوره‌ای را به یک <code>SubscriptionHub</code> روی زنجیره منتقل می‌کند. پرداخت‌کننده یک <code>approve</code> در کیف پولش امضا می‌کند و وقتی دوره‌ای سررسید شود، هر کسی (از جمله keeper ما) می‌تواند <code>charge(id)</code> را فراخوانی کند. وجوه مستقیماً از پرداخت‌کننده به سهم‌های فروشنده می‌رود؛ OrcaRail هرگز آن‌ها را نگه نمی‌دارد.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="tldr">خلاصه<a href="https://docs.orcarail.com/fa/blog/phase-2-allowance-pull-subscriptions/#tldr" class="hash-link" aria-label="لینک مستقیم به خلاصه" title="لینک مستقیم به خلاصه" translate="no">​</a></h2>
<ul>
<li class=""><code>SubscriptionHub.createSubscription(...)</code> زمان‌بندی را روی زنجیره ثبت می‌کند.</li>
<li class="">پرداخت‌کننده یک بار در کیف پول معمولش <code>approve(USDC, hub, cap)</code> را امضا می‌کند. این همان گامی است که پیش‌تر در <a class="" href="https://docs.orcarail.com/fa/docs/subscriptions/auto-charge/">برداشت خودکار</a> مستند کرده‌ایم.</li>
<li class="">هر EOAی می‌تواند <code>charge(id)</code> را فراخوانی کند. زمان‌بند NestJS ما به‌طور پیش‌فرض این کار را می‌کند؛ از <a class="" href="https://docs.orcarail.com/fa/blog/phase-3-multi-evm-and-keeper-redundancy/">مرحله ۳</a> به بعد Chainlink/Gelato پشتیبان آن خواهند بود.</li>
<li class="">محافظت در برابر reorg با <code>lastChargedAt</code> یکنوا. بدون برداشت دوباره.</li>
<li class="">مشترکان فعلی به‌صورت <strong>اختیاری</strong> و هنگام تمدید مهاجرت می‌کنند.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-this-phase-changes">این مرحله چه چیزی را تغییر می‌دهد<a href="https://docs.orcarail.com/fa/blog/phase-2-allowance-pull-subscriptions/#what-this-phase-changes" class="hash-link" aria-label="لینک مستقیم به این مرحله چه چیزی را تغییر می‌دهد" title="لینک مستقیم به این مرحله چه چیزی را تغییر می‌دهد" translate="no">​</a></h2>
<p>امروز <a href="https://github.com/orcarail/orcarail/tree/main/api/src/scheduler/processors/subscription-auto-charge.processor.ts" target="_blank" rel="noopener noreferrer" class="">api/src/scheduler/processors/subscription-auto-charge.processor.ts</a> از یک smart account تحت کنترل OrcaRail استفاده می‌کند تا از طریق <code>approve</code> موجود از پرداخت‌کننده برداشت کند. کار می‌کند، اما smart account متعلق به ماست؛ اعتماد از مسیر ما عبور می‌کند.</p>
<p>پس از مرحله ۲:</p>
<div class="wrapper_vprU"><button type="button" class="expandBtn_RmxB" aria-label="Show diagram fullscreen" title="Fullscreen"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><path d="M15 3h6v6M9 21H3v-6M21 3l-7 7M3 21l7-7" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div>
<p>allowance <strong>همچنان از پرداخت‌کننده به یک قرارداد</strong> داده می‌شود، اما قرارداد قابل حسابرسی و تغییرناپذیر است و هر کسی (نه فقط ما) می‌تواند keeper باشد.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="contracts-introduced">قراردادهای معرفی‌شده<a href="https://docs.orcarail.com/fa/blog/phase-2-allowance-pull-subscriptions/#contracts-introduced" class="hash-link" aria-label="لینک مستقیم به قراردادهای معرفی‌شده" title="لینک مستقیم به قراردادهای معرفی‌شده" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="subscriptionhub">SubscriptionHub<a href="https://docs.orcarail.com/fa/blog/phase-2-allowance-pull-subscriptions/#subscriptionhub" class="hash-link" aria-label="لینک مستقیم به SubscriptionHub" title="لینک مستقیم به SubscriptionHub" translate="no">​</a></h3>
<p>یک نمونه برای هر زنجیره. سطح حداقلی:</p>
<div class="language-solidity codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-solidity codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">function createSubscription(</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    bytes32 id,</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    address payer,</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    IERC20 token,</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    uint256 amount,</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    uint64 interval,</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    uint256 cap,</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    Split calldata split</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">) external;</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">function charge(bytes32 id) external;        // any caller</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">function cancel(bytes32 id) external;        // payer only</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">function subscription(bytes32 id) view returns (Subscription memory);</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">event SubscriptionCreated(bytes32 indexed id, address indexed payer, ...);</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">event Charged(bytes32 indexed id, uint256 amount, uint64 nextChargeAt);</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">event ChargeSkipped(bytes32 indexed id, bytes32 reason);</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">event Canceled(bytes32 indexed id);</span><br></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="invariants-enforced-in-charge">اصول ثابتی که <code>charge()</code> اعمال می‌کند<a href="https://docs.orcarail.com/fa/blog/phase-2-allowance-pull-subscriptions/#invariants-enforced-in-charge" class="hash-link" aria-label="لینک مستقیم به invariants-enforced-in-charge" title="لینک مستقیم به invariants-enforced-in-charge" translate="no">​</a></h3>
<ul>
<li class=""><code>block.timestamp &gt;= nextChargeAt</code> — برداشت زودهنگام ممکن نیست.</li>
<li class=""><code>block.timestamp &gt; lastChargedAt</code> — یکنوا، تا reorgها نتوانند دوبار برداشت کنند.</li>
<li class=""><code>amountCharged + amount &lt;= cap</code> — سقف تأیید را علاوه بر allowance در ERC-20 اعمال می‌کند.</li>
<li class=""><code>token.allowance(payer, hub) &gt;= amount</code> — revert صریح با <code>InsufficientAllowance</code> برای متن وب‌هوک روشن.</li>
<li class=""><code>token.balanceOf(payer) &gt;= amount</code> — همین‌طور، با <code>InsufficientBalance</code>.</li>
</ul>
<p><code>Split</code> از <a class="" href="https://docs.orcarail.com/fa/blog/phase-1-evm-payment-link-contracts/">مرحله ۱</a> دوباره استفاده می‌شود؛ همان <code>FeeSplitter</code> و همان منطق واحد پایه.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="api-changes">تغییرات API<a href="https://docs.orcarail.com/fa/blog/phase-2-allowance-pull-subscriptions/#api-changes" class="hash-link" aria-label="لینک مستقیم به تغییرات API" title="لینک مستقیم به تغییرات API" translate="no">​</a></h2>
<p>تغییر بزرگ این است که <a href="https://github.com/orcarail/orcarail/tree/main/api/src/scheduler/processors/subscription-auto-charge.processor.ts" target="_blank" rel="noopener noreferrer" class="">api/src/scheduler/processors/subscription-auto-charge.processor.ts</a> دیگر از smart account ما برداشت نمی‌کند و به‌جای آن با یک EOA مربوط به keeper تابع <code>SubscriptionHub.charge(id)</code> را فراخوانی می‌کند.</p>
<p>به‌طور مشخص:</p>
<ul>
<li class="">EOA مربوط به keeper یک کیف پول داغ برای هر زنجیره است که فقط گس دارد. هیچ اختیاری روی وجوه فروشنده ندارد.</li>
<li class="">اگر زنجیره سیاست paymaster آلکمی داشته باشد (<a href="https://github.com/orcarail/orcarail/tree/main/api/src/withdrawals/services/gas-strategy" target="_blank" rel="noopener noreferrer" class="">api/src/withdrawals/services/gas-strategy</a> را ببینید)، keeper از مسیر حمایت‌شده استفاده می‌کند؛ در غیر این صورت از موجودی گس خودش می‌پردازد.</li>
<li class="">هنگام revert، پردازشگر selector خطا را تجزیه می‌کند و همان وضعیت‌های <a href="https://github.com/orcarail/orcarail/tree/main/api/src/subscriptions/infrastructure/persistence/relational/entities/subscription-auto-charge.entity.ts" target="_blank" rel="noopener noreferrer" class="">SubscriptionAutoChargeEntity</a> را که امروز استفاده می‌کنیم (<code>past_due</code>، <code>insufficient_balance</code> و غیره) به‌روزرسانی می‌کند.</li>
<li class="">وب‌هوک‌ها و ایمیل‌های <code>api/src/mail/mail-templates/subscription-*.hbs</code> بدون تغییر ارسال می‌شوند.</li>
</ul>
<p>تجربه پرداخت‌کننده در <a href="https://github.com/orcarail/orcarail/tree/main/pay" target="_blank" rel="noopener noreferrer" class="">pay</a> دو تنظیم جزئی دارد:</p>
<ol>
<li class="">گام <code>approve()</code> اکنون spender را به‌جای کیف پول داغ ما به آدرس <code>SubscriptionHub</code> نشانه می‌رود. این یک تغییر متن و یک مقدار پیکربندی است؛ جریانی که پرداخت‌کننده می‌بیند یکسان است.</li>
<li class="">دکمه «لغو مجوز» که <code>SubscriptionHub.cancel(id)</code> را فراخوانی می‌کند و سپس برای پاک‌سازی کامل یک <code>approve(hub, 0)</code> روی زنجیره درخواست می‌کند. <a class="" href="https://docs.orcarail.com/fa/docs/subscriptions/auto-charge/">مستندات فعلی لغو برداشت خودکار</a> همچنان دقیق است.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="deprecations">موارد منسوخ‌شده<a href="https://docs.orcarail.com/fa/blog/phase-2-allowance-pull-subscriptions/#deprecations" class="hash-link" aria-label="لینک مستقیم به موارد منسوخ‌شده" title="لینک مستقیم به موارد منسوخ‌شده" translate="no">​</a></h2>
<ul>
<li class="">مسیر برداشت امانی در <code>subscription-auto-charge.processor.ts</code> — با پرچم فعال، فقط شاخه <code>SubscriptionHub.charge</code> اجرا می‌شود.</li>
<li class="">smart account متعلق به OrcaRail به‌عنوان <code>approval_spender_address</code> — اشتراک‌های جدید به‌جای آن آدرس هاب را ذخیره می‌کنند.</li>
<li class="">فیلد <code>approval_spender_address</code> در پاسخ API باقی می‌ماند؛ فقط به جای جدید و قابل حسابرسی اشاره می‌کند.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="migration-plan">برنامه مهاجرت<a href="https://docs.orcarail.com/fa/blog/phase-2-allowance-pull-subscriptions/#migration-plan" class="hash-link" aria-label="لینک مستقیم به برنامه مهاجرت" title="لینک مستقیم به برنامه مهاجرت" translate="no">​</a></h2>
<p>مشترکان فعلی <strong>هرگز به‌اجبار مهاجرت داده نمی‌شوند</strong>. دو مسیر پیشنهاد می‌کنیم:</p>
<ol>
<li class=""><strong>هنگام تمدید</strong>: در دوره بعد، بنر داشبورد از پرداخت‌کننده می‌خواهد <code>approve(hub, cap)</code> را روی <code>SubscriptionHub</code> جدید دوباره امضا کند. یک کلیک. allowance قبلی به کیف پول داغ قدیمی را می‌توان نگه داشت یا لغو کرد؛ دیگر اهمیتی ندارد.</li>
<li class=""><strong>به ابتکار کاربر</strong>: دکمه «انتقال به غیرامانی» در صفحه جزئیات اشتراک همین کار را فوراً انجام می‌دهد.</li>
</ol>
<p>اشتراک‌هایی که هرگز مهاجرت نکنند تا زمان لغو روی مسیر امانی می‌مانند. این مسیر در <a class="" href="https://docs.orcarail.com/fa/blog/phase-7-retiring-custody/">مرحله ۷</a> با اطلاع‌رسانی کافی خاموش می‌شود.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="risks-and-mitigations">ریسک‌ها و راهکارها<a href="https://docs.orcarail.com/fa/blog/phase-2-allowance-pull-subscriptions/#risks-and-mitigations" class="hash-link" aria-label="لینک مستقیم به ریسک‌ها و راهکارها" title="لینک مستقیم به ریسک‌ها و راهکارها" translate="no">​</a></h2>
<ul>
<li class=""><strong>سردرگمی پرداخت‌کننده هنگام مهاجرت</strong>. راهکار: قالب ایمیل از زبان <code>subscription-auto-charge-approved.hbs</code> موجود پیروی می‌کند؛ بنر در داشبورد؛ پرسش متداول در <a class="" href="https://docs.orcarail.com/fa/docs/non-custodial/migration-guide/">/docs/non-custodial/migration-guide</a>.</li>
<li class=""><strong>قطعی keeper باعث از دست رفتن برداشت می‌شود</strong>. راهکار: <code>charge()</code> بدون مجوز است؛ هر نمونه Chainlink Automation یا Gelato می‌تواند پشتیبان باشد؛ فراخوانی دستی <code>charge()</code> توسط فروشنده هم ممکن است. برنامه کامل در <a class="" href="https://docs.orcarail.com/fa/blog/phase-3-multi-evm-and-keeper-redundancy/">مرحله ۳</a>.</li>
<li class=""><strong>برداشت دوباره بر اثر reorg</strong>. راهکار: اصل ثابت یکنوای <code>lastChargedAt</code>؛ آزمون واحد با reorg روی فورک.</li>
<li class=""><strong>لغو مجوز توسط پرداخت‌کننده بین دو دوره</strong>. راهکار: <code>charge()</code> رویداد <code>ChargeSkipped(AllowanceRevoked)</code> را منتشر می‌کند؛ قالب ایمیل موجود <code>subscription-insufficient-allowance.hbs</code> ارسال می‌شود؛ اشتراک به <code>past_due</code> می‌رود.</li>
<li class=""><strong>انحراف فهرست مجاز توکن‌ها</strong>. راهکار: هاب فقط توکن‌هایی را می‌پذیرد که <code>SubscriptionHub.isAllowed(token)</code> برایشان برقرار است؛ تغییرات نیازمند مولتی‌سیگ است.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="status-checklist">چک‌لیست وضعیت<a href="https://docs.orcarail.com/fa/blog/phase-2-allowance-pull-subscriptions/#status-checklist" class="hash-link" aria-label="لینک مستقیم به چک‌لیست وضعیت" title="لینک مستقیم به چک‌لیست وضعیت" translate="no">​</a></h2>
<ul class="contains-task-list containsTaskList_mC6p">
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->پیاده‌سازی <code>SubscriptionHub</code> با همه اصول ثابت</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->آزمون‌های fuzz برای حالت‌های سقف، allowance، reorg و رد شدن</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->تکمیل حسابرسی تکمیلی برای <code>SubscriptionHub</code></li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->تأمین EOA مربوط به keeper برای هر زنجیره، با پایش گس از طریق Sentry + Datadog</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->تغییر مقصد <code>approve</code> در اپ پرداخت به <code>SubscriptionHub</code></li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->به‌روزرسانی اندپوینت <code>approve-auto-charge</code> برای پذیرش allowance با هاب به‌عنوان spender</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->بنر داشبورد برای اشتراک‌های فعلی</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->مهاجرت گروه آزمایشی و پایداری به مدت ۱۴ روز</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-is-next">قدم بعدی<a href="https://docs.orcarail.com/fa/blog/phase-2-allowance-pull-subscriptions/#what-is-next" class="hash-link" aria-label="لینک مستقیم به قدم بعدی" title="لینک مستقیم به قدم بعدی" translate="no">​</a></h2>
<p>گسترش به چند زنجیره و keeper دوم: <strong><a class="" href="https://docs.orcarail.com/fa/blog/phase-3-multi-evm-and-keeper-redundancy/">مرحله ۳</a></strong>.</p>
<hr>
<p>مستندات مرجع: <strong><a class="" href="https://docs.orcarail.com/fa/docs/non-custodial/phases/phase-2-evm-subscriptions/">وضعیت مرحله ۲</a></strong> · <strong><a class="" href="https://docs.orcarail.com/fa/docs/non-custodial/migration-guide/">راهنمای مهاجرت</a></strong> · <strong><a class="" href="https://docs.orcarail.com/fa/docs/non-custodial/contract-reference/">مرجع قراردادها</a></strong> · <strong><a class="" href="https://docs.orcarail.com/fa/blog/why-allowance-pull-subscriptions/">چرا برداشت مبتنی بر allowance</a></strong></p>]]></content>
        <author>
            <name>OrcaRail</name>
            <uri>https://orcarail.com</uri>
        </author>
        <category label="Subscriptions" term="Subscriptions"/>
        <category label="Payments" term="Payments"/>
        <category label="Web3" term="Web3"/>
        <category label="Stablecoins" term="Stablecoins"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[مرحله ۳: گسترش به چند زنجیره EVM و افزونگی keeper]]></title>
        <id>https://docs.orcarail.com/fa/blog/phase-3-multi-evm-and-keeper-redundancy/</id>
        <link href="https://docs.orcarail.com/fa/blog/phase-3-multi-evm-and-keeper-redundancy/"/>
        <updated>2026-04-20T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[مرحله ۳ نقشه راه غیرامانی OrcaRail. استقرار کارخانه لینک پرداخت و SubscriptionHub روی Ethereum، Arbitrum، Optimism و Polygon؛ و افزودن Chainlink Automation یا Gelato به‌عنوان keeper دوم.]]></summary>
        <content type="html"><![CDATA[<p><strong>۲۰ آوریل ۲۰۲۶</strong> — مرحله ۳ سطح قراردادهای <a class="" href="https://docs.orcarail.com/fa/blog/phase-1-evm-payment-link-contracts/">مرحله ۱</a> و <a class="" href="https://docs.orcarail.com/fa/blog/phase-2-allowance-pull-subscriptions/">مرحله ۲</a> را روی همه زنجیره‌های EVM پشتیبانی‌شده می‌برد. همچنین یک keeper دوم اضافه می‌کند تا قطعی NestJS نتواند باعث جا افتادن برداشت اشتراک شود.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="tldr">خلاصه<a href="https://docs.orcarail.com/fa/blog/phase-3-multi-evm-and-keeper-redundancy/#tldr" class="hash-link" aria-label="لینک مستقیم به خلاصه" title="لینک مستقیم به خلاصه" translate="no">​</a></h2>
<ul>
<li class="">استقرار <code>PaymentLinkFactory</code>، پیاده‌سازی <code>PaymentLinkReceiver</code>، <code>FeeSplitter</code> و <code>SubscriptionHub</code> روی <strong>Ethereum mainnet، Arbitrum، Optimism و Polygon</strong>.</li>
<li class="">همان طرح salt برای CREATE2 در همه‌جا؛ آدرس کارخانه روی همه زنجیره‌ها یکسان است (تمیز برای مستندات، یکپارچه‌سازی‌ها و <code>computeAddress</code> در سمت کلاینت).</li>
<li class="">ثبت <strong>Chainlink Automation</strong> (ترجیحی) و/یا <strong>Gelato Web3 Functions</strong> به‌عنوان keeper دوم که همان <code>charge(ids[])</code> را فراخوانی می‌کند.</li>
<li class="">انتشار SLO: <strong>۹۹٫۵٪ برداشت‌ها ظرف ۱۰ دقیقه از زمان سررسید</strong>، به‌صورت اندازه‌گیری‌شده.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-this-phase-changes">این مرحله چه چیزی را تغییر می‌دهد<a href="https://docs.orcarail.com/fa/blog/phase-3-multi-evm-and-keeper-redundancy/#what-this-phase-changes" class="hash-link" aria-label="لینک مستقیم به این مرحله چه چیزی را تغییر می‌دهد" title="لینک مستقیم به این مرحله چه چیزی را تغییر می‌دهد" translate="no">​</a></h2>
<div class="wrapper_vprU"><button type="button" class="expandBtn_RmxB" aria-label="Show diagram fullscreen" title="Fullscreen"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><path d="M15 3h6v6M9 21H3v-6M21 3l-7 7M3 21l7-7" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div>
<p>چند keeper که همان <code>charge()</code> عمومی را فراخوانی می‌کنند، تضمین زنده‌بودن است. هیچ‌کدام امانت‌دار نیستند؛ هر کدام می‌تواند برداشت سررسیدشده را نجات دهد.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="deployment-plan">برنامه استقرار<a href="https://docs.orcarail.com/fa/blog/phase-3-multi-evm-and-keeper-redundancy/#deployment-plan" class="hash-link" aria-label="لینک مستقیم به برنامه استقرار" title="لینک مستقیم به برنامه استقرار" translate="no">​</a></h2>
<p>ترتیب استقرار (هر هفته یک زنجیره، با canary برای هر زنجیره):</p>
<ol>
<li class="">Ethereum mainnet (chainId <code>1</code>)</li>
<li class="">Arbitrum One (<code>42161</code>)</li>
<li class="">Optimism (<code>10</code>)</li>
<li class="">Polygon PoS (<code>137</code>)</li>
</ol>
<p>آدرس‌ها روی هر زنجیره در <a class="" href="https://docs.orcarail.com/fa/docs/non-custodial/contract-reference/">/docs/non-custodial/contract-reference</a> منتشر می‌شوند. کلید استقرار همان مولتی‌سیگ Safe سه از پنج تعریف‌شده در <a class="" href="https://docs.orcarail.com/fa/blog/phase-0-design-and-audit-strategy/">مرحله ۰</a> است که از همان مراسم برای هر زنجیره دوباره مستقر می‌شود.</p>
<p>هر چهار زنجیره از همان پرچم <code>useOnChainReceiver</code> استفاده می‌کنند که بر اساس <code>chainId</code> در <a href="https://github.com/orcarail/orcarail/tree/main/api/src/payments/wallet.service.ts" target="_blank" rel="noopener noreferrer" class="">api/src/payments/wallet.service.ts</a> تعریف شده است. فروشندگان زنجیره به زنجیره آن را فعال می‌کنند؛ پس از یک هفته canary بدون مشکل، مقدار پیش‌فرض روشن می‌شود.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="gas-strategy-for-charge">راهبرد گس برای <code>charge()</code><a href="https://docs.orcarail.com/fa/blog/phase-3-multi-evm-and-keeper-redundancy/#gas-strategy-for-charge" class="hash-link" aria-label="لینک مستقیم به gas-strategy-for-charge" title="لینک مستقیم به gas-strategy-for-charge" translate="no">​</a></h2>
<p>تراکنش‌های <code>charge()</code> مربوط به keeper به گس نیاز دارند. از زیرساخت paymaster موجود در <a href="https://github.com/orcarail/orcarail/tree/main/api/src/withdrawals/services/gas-strategy" target="_blank" rel="noopener noreferrer" class="">api/src/withdrawals/services/gas-strategy</a> دوباره استفاده می‌کنیم:</p>
<ul>
<li class=""><strong>با paymaster آلکمی (Base، Arbitrum، Optimism، Polygon)</strong>: keeper تابع <code>SubscriptionHub.charge()</code> را به‌صورت UserOperation با حمایت سیاست فراخوانی می‌کند. هزینه گس برای EOA مربوط به keeper صفر است.</li>
<li class=""><strong>Ethereum mainnet (بدون paymaster)</strong>: keeper از موجودی گس داغ خودش می‌پردازد. کیف پول پلتفرم روزانه آن را شارژ می‌کند و با هشدار Datadog برای موجودی کم پایش می‌شود.</li>
<li class=""><strong>گس با یارانه فروشنده (اختیاری)</strong>: فروشندگان می‌توانند یک <code>gas_refund_address</code> تنظیم کنند و keeper بازپرداخت را از آنجا برداشت کند؛ مطابق الگوی فعلی پشتیبانی/کمیسیون. خارج از دامنه راه‌اندازی اولیه.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="second-keeper-chainlink-and-gelato">keeper دوم: Chainlink و Gelato<a href="https://docs.orcarail.com/fa/blog/phase-3-multi-evm-and-keeper-redundancy/#second-keeper-chainlink-and-gelato" class="hash-link" aria-label="لینک مستقیم به keeper دوم: Chainlink و Gelato" title="لینک مستقیم به keeper دوم: Chainlink و Gelato" translate="no">​</a></h2>
<p>keeper دوم برای افزونگی است، نه جایگزینی. در کنار زمان‌بند NestJS کار می‌کند.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="chainlink-automation-preferred-on-evm">Chainlink Automation (ترجیحی روی EVM)<a href="https://docs.orcarail.com/fa/blog/phase-3-multi-evm-and-keeper-redundancy/#chainlink-automation-preferred-on-evm" class="hash-link" aria-label="لینک مستقیم به Chainlink Automation (ترجیحی روی EVM)" title="لینک مستقیم به Chainlink Automation (ترجیحی روی EVM)" translate="no">​</a></h3>
<ul>
<li class="">ثبت یک <strong>Upkeep</strong> برای هر <code>SubscriptionHub</code>.</li>
<li class=""><code>checkUpkeep()</code> برای همه <code>id</code>هایی که <code>block.timestamp &gt;= nextChargeAt</code> دارند (خوانده‌شده از یک تابع view)، مقدار <code>performData = abi.encode(ids[])</code> را برمی‌گرداند.</li>
<li class=""><code>performUpkeep(performData)</code> تابع <code>charge(ids)</code> را به‌صورت دسته‌ای فراخوانی می‌کند.</li>
<li class="">با LINK از خزانه پلتفرم تأمین می‌شود؛ موجودی پایش می‌شود.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="gelato-web3-functions-alternative">Gelato Web3 Functions (جایگزین)<a href="https://docs.orcarail.com/fa/blog/phase-3-multi-evm-and-keeper-redundancy/#gelato-web3-functions-alternative" class="hash-link" aria-label="لینک مستقیم به Gelato Web3 Functions (جایگزین)" title="لینک مستقیم به Gelato Web3 Functions (جایگزین)" translate="no">​</a></h3>
<ul>
<li class="">یک Web3 Function به زبان JS هاب را بررسی می‌کند، IDهای سررسیدشده را پیدا می‌کند و یک تراکنش <code>charge(ids[])</code> ارسال می‌کند.</li>
<li class="">هزینه به‌صورت پس‌پرداخت از <code>1Balance</code> در Gelato پرداخت می‌شود.</li>
</ul>
<p>هر کدام به‌تنهایی کافی است؛ بر اساس تجربه عملیاتی در مرحله ۳ انتخاب می‌کنیم. اجرای هر دو هم مشکلی ندارد؛ به لطف <code>lastChargedAt</code>، تابع <code>charge()</code> در هر دوره idempotent است.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="slos-and-monitoring">SLOها و پایش<a href="https://docs.orcarail.com/fa/blog/phase-3-multi-evm-and-keeper-redundancy/#slos-and-monitoring" class="hash-link" aria-label="لینک مستقیم به SLOها و پایش" title="لینک مستقیم به SLOها و پایش" translate="no">​</a></h2>
<p>اهداف SLO منتشرشده:</p>
<table><thead><tr><th>معیار</th><th>هدف</th></tr></thead><tbody><tr><td><code>charge()</code> ظرف ۱۰ دقیقه از <code>nextChargeAt</code></td><td>۹۹٫۵٪</td></tr><tr><td><code>charge()</code> ظرف ۱ ساعت از <code>nextChargeAt</code></td><td>۹۹٫۹٪</td></tr><tr><td>موجودی گس داغ EOA مربوط به keeper بالاتر از آستانه هشدار</td><td>۹۹٫۹۹٪</td></tr><tr><td>ایندکس شدن رویدادها ظرف ۲ دقیقه از قطعیت بلاک</td><td>۹۹٫۵٪</td></tr></tbody></table>
<p>پایش به تنظیمات موجود Sentry که در <a href="https://github.com/orcarail/orcarail/tree/main/.cursor/plugins" target="_blank" rel="noopener noreferrer" class="">مهارت گردش کار Sentry</a> مخزن مستند شده وصل می‌شود. هشدارها:</p>
<ul>
<li class="">revertهای <code>charge()</code> در هر ساعت &gt; آستانه ← PagerDuty</li>
<li class="">موجودی بومی EOA مربوط به keeper کمتر از N gwei × gasLimit × 100 ← PagerDuty</li>
<li class="">ناسالم بودن upkeep در Chainlink/Gelato ← هشدار</li>
<li class="">تأخیر ایندکسر رویداد <code>Paid</code> بیش از ۵ دقیقه ← هشدار</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="deprecations">موارد منسوخ‌شده<a href="https://docs.orcarail.com/fa/blog/phase-3-multi-evm-and-keeper-redundancy/#deprecations" class="hash-link" aria-label="لینک مستقیم به موارد منسوخ‌شده" title="لینک مستقیم به موارد منسوخ‌شده" translate="no">​</a></h2>
<p>مانند مراحل ۱ و ۲، اما روی زنجیره‌های بیشتر. هنوز چیزی حذف نمی‌شود؛ حذف منتظر <a class="" href="https://docs.orcarail.com/fa/blog/phase-7-retiring-custody/">مرحله ۷</a> می‌ماند.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="migration-plan">برنامه مهاجرت<a href="https://docs.orcarail.com/fa/blog/phase-3-multi-evm-and-keeper-redundancy/#migration-plan" class="hash-link" aria-label="لینک مستقیم به برنامه مهاجرت" title="لینک مستقیم به برنامه مهاجرت" translate="no">​</a></h2>
<ul>
<li class=""><strong>لینک‌های پرداخت جدید</strong>: روی هر زنجیره‌ای که پرچم روشن دارد از گیرنده‌های قراردادی استفاده می‌کنند.</li>
<li class=""><strong>اشتراک‌های جدید</strong>: روی هر زنجیره‌ای که پرچم روشن دارد از <code>SubscriptionHub</code> استفاده می‌کنند.</li>
<li class=""><strong>مشتریان فعلی</strong>: مهاجرت اختیاری هنگام تمدید، مانند مرحله ۲.</li>
<li class=""><strong>تسویه بین‌زنجیره‌ای (Relay)</strong>: سطح بدون تغییر؛ keeper همچنان اجراکننده‌های Relay را در <a href="https://github.com/orcarail/orcarail/tree/main/api/src/withdrawals/services/bridge" target="_blank" rel="noopener noreferrer" class="">api/src/withdrawals/services/bridge</a> فراخوانی می‌کند، فقط از یک EOA بدون امانت‌داری.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="risks-and-mitigations">ریسک‌ها و راهکارها<a href="https://docs.orcarail.com/fa/blog/phase-3-multi-evm-and-keeper-redundancy/#risks-and-mitigations" class="hash-link" aria-label="لینک مستقیم به ریسک‌ها و راهکارها" title="لینک مستقیم به ریسک‌ها و راهکارها" translate="no">​</a></h2>
<ul>
<li class=""><strong>ناهمخوانی آدرس بین زنجیره‌ها</strong>. راهکار: استقراردهنده قطعی CREATE2 (مثلاً <code>0x4e59b44847b379578588920cA78FbF26c0B4956C</code>) با هش init-code ثابت؛ کارخانه‌ها روی هر چهار زنجیره آدرس یکسان دارند.</li>
<li class=""><strong>محدودیت‌های سیاست paymaster در هر زنجیره</strong>. راهکار: پایش جداگانه هر زنجیره و هشدار سهمیه سیاست در ۷۰٪ مصرف.</li>
<li class=""><strong>تغییرات مکرر ثبت upkeep در Chainlink</strong>. راهکار: یک upkeep برای هر زنجیره؛ فهرست IDها روی زنجیره خوانده می‌شود، پس ثبت‌نام فروشندگان نیازی به تغییر پیکربندی Chainlink ندارد.</li>
<li class=""><strong>برداشت دوباره توسط keeperهای مختلف</strong>. راهکار: <code>lastChargedAt</code> یکنوا به‌علاوه <code>ChargeSkipped</code> برای موارد تکراری؛ هر دو keeper ذاتاً idempotent هستند.</li>
<li class=""><strong>جهش ناگهانی گس روی mainnet</strong>. راهکار: تنظیم اندازه دسته برای هر زنجیره؛ سقف قیمت گس که بالاتر از آن <code>charge()</code> یک بلاک عقب می‌افتد.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="status-checklist">چک‌لیست وضعیت<a href="https://docs.orcarail.com/fa/blog/phase-3-multi-evm-and-keeper-redundancy/#status-checklist" class="hash-link" aria-label="لینک مستقیم به چک‌لیست وضعیت" title="لینک مستقیم به چک‌لیست وضعیت" translate="no">​</a></h2>
<ul class="contains-task-list containsTaskList_mC6p">
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->تکمیل استقرار روی Ethereum، Arbitrum، Optimism و Polygon</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->انتشار آدرس کارخانه + هاب در مرجع قراردادها</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->اعتبارسنجی سیاست‌های paymaster برای هر زنجیره</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->فعال بودن upkeep در Chainlink Automation دست‌کم روی ۲ زنجیره</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->داشبورد SLO در Datadog</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->runbook برای قطعی keeper (فراخوانی دستی <code>charge()</code> از CLI فروشنده)</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->راه‌اندازی فروشندگان canary برای هر زنجیره</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-is-next">قدم بعدی<a href="https://docs.orcarail.com/fa/blog/phase-3-multi-evm-and-keeper-redundancy/#what-is-next" class="hash-link" aria-label="لینک مستقیم به قدم بعدی" title="لینک مستقیم به قدم بعدی" translate="no">​</a></h2>
<p>سولانا زنجیره بزرگ دیگری است که باید غیرامانی شود: <strong><a class="" href="https://docs.orcarail.com/fa/blog/phase-4-solana-pda-programs/">مرحله ۴</a></strong>.</p>
<hr>
<p>مستندات مرجع: <strong><a class="" href="https://docs.orcarail.com/fa/docs/non-custodial/phases/phase-3-multi-evm-rollout/">وضعیت مرحله ۳</a></strong> · <strong><a class="" href="https://docs.orcarail.com/fa/docs/non-custodial/keeper-strategy/">راهبرد keeper</a></strong> · <strong><a class="" href="https://docs.orcarail.com/fa/docs/non-custodial/contract-reference/">مرجع قراردادها</a></strong></p>]]></content>
        <author>
            <name>OrcaRail</name>
            <uri>https://orcarail.com</uri>
        </author>
        <category label="Payments" term="Payments"/>
        <category label="Multi-Chain" term="Multi-Chain"/>
        <category label="Web3" term="Web3"/>
        <category label="Stablecoins" term="Stablecoins"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[مرحله ۴: سولانای غیرامانی با PDAهای Anchor]]></title>
        <id>https://docs.orcarail.com/fa/blog/phase-4-solana-pda-programs/</id>
        <link href="https://docs.orcarail.com/fa/blog/phase-4-solana-pda-programs/"/>
        <updated>2026-04-20T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[مرحله ۴ نقشه راه غیرامانی OrcaRail. برنامه‌های Anchor جاروب با کیف پول HD را روی سولانا با خزانه‌های لینک پرداخت مبتنی بر PDA و اشتراک‌های delegate در SPL جایگزین می‌کنند.]]></summary>
        <content type="html"><![CDATA[<p><strong>۲۰ آوریل ۲۰۲۶</strong> — مرحله ۴ مدل غیرامانی را به سولانا می‌آورد. دو برنامه Anchor جایگزین جریان کیف پول HD + جاروب برای هر لینک می‌شوند: <code>payment_link</code> برای پرداخت‌های یک‌باره و <code>subscription</code> برای برداشت خودکار با delegate در SPL. برای لینک‌های جدید سولانا هیچ عبارت بازیابی (mnemonic) روی سرورهای ما نیست.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="tldr">خلاصه<a href="https://docs.orcarail.com/fa/blog/phase-4-solana-pda-programs/#tldr" class="hash-link" aria-label="لینک مستقیم به خلاصه" title="لینک مستقیم به خلاصه" translate="no">​</a></h2>
<ul>
<li class="">برنامه <code>payment_link</code> برای هر لینک پرداخت مالک یک PDA است که از <code>seeds = [b"pl", link_id]</code> مشتق می‌شود. بدون keypair، بدون seed، بدون جاروب.</li>
<li class="">برنامه <code>subscription</code> از اختیار <strong>delegate</strong> در SPL استفاده می‌کند؛ همان جزء پایه‌ای که در <a class="" href="https://docs.orcarail.com/fa/docs/subscriptions/auto-charge/">برداشت خودکار</a> به آن تکیه داریم؛ به‌عنوان allowance صریحی که پرداخت‌کننده اعطا می‌کند.</li>
<li class="">تقسیم‌ها از طریق CPI به همان منطق <code>fee_splitter</code> که روی EVM ساختیم و برای حساب‌های سولانا تطبیق داده‌ایم انجام می‌شوند.</li>
<li class="">سرویس جاروب <a href="https://github.com/orcarail/orcarail/tree/main/api/src/withdrawals/services/solana-withdrawal-transfer.service.ts" target="_blank" rel="noopener noreferrer" class="">api/src/withdrawals/services/solana-withdrawal-transfer.service.ts</a> برای لینک‌های دارای پرچم دور زده می‌شود و در <a class="" href="https://docs.orcarail.com/fa/blog/phase-7-retiring-custody/">مرحله ۷</a> حذف می‌شود.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-this-phase-changes">این مرحله چه چیزی را تغییر می‌دهد<a href="https://docs.orcarail.com/fa/blog/phase-4-solana-pda-programs/#what-this-phase-changes" class="hash-link" aria-label="لینک مستقیم به این مرحله چه چیزی را تغییر می‌دهد" title="لینک مستقیم به این مرحله چه چیزی را تغییر می‌دهد" translate="no">​</a></h2>
<div class="wrapper_vprU"><button type="button" class="expandBtn_RmxB" aria-label="Show diagram fullscreen" title="Fullscreen"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><path d="M15 3h6v6M9 21H3v-6M21 3l-7 7M3 21l7-7" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div>
<p>سمت «بعد» seed مربوط به HD در <a href="https://github.com/orcarail/orcarail/tree/main/api/src/payments/wallet.service.ts" target="_blank" rel="noopener noreferrer" class="">api/src/payments/wallet.service.ts</a> (شاخه <code>m/44'/501'/i'/0'</code>) را با محاسبه کاملاً قطعی PDA جایگزین می‌کند.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="programs-introduced">برنامه‌های معرفی‌شده<a href="https://docs.orcarail.com/fa/blog/phase-4-solana-pda-programs/#programs-introduced" class="hash-link" aria-label="لینک مستقیم به برنامه‌های معرفی‌شده" title="لینک مستقیم به برنامه‌های معرفی‌شده" translate="no">​</a></h2>
<p>پکیج جدید <code>contracts/solana/</code> (Anchor).</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="payment_link-program">برنامه <code>payment_link</code><a href="https://docs.orcarail.com/fa/blog/phase-4-solana-pda-programs/#payment_link-program" class="hash-link" aria-label="لینک مستقیم به payment_link-program" title="لینک مستقیم به payment_link-program" translate="no">​</a></h3>
<p>حساب‌ها برای هر لینک:</p>
<div class="language-rust codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-rust codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token attribute attr-name" style="color:#00a4db">#[account]</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">pub</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">struct</span><span class="token plain"> </span><span class="token type-definition class-name">PaymentLink</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token keyword" style="color:#00009f">pub</span><span class="token plain"> link_id</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token keyword" style="color:#00009f">u8</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">32</span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token keyword" style="color:#00009f">pub</span><span class="token plain"> expected_mint</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token class-name">Pubkey</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain">        </span><span class="token comment" style="color:#999988;font-style:italic">// e.g. USDC on SOL</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token keyword" style="color:#00009f">pub</span><span class="token plain"> expected_amount</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">u64</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token keyword" style="color:#00009f">pub</span><span class="token plain"> split</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token class-name">Split</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token keyword" style="color:#00009f">pub</span><span class="token plain"> created_at</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">i64</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token keyword" style="color:#00009f">pub</span><span class="token plain"> status</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token class-name">PaymentStatus</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></div></code></pre></div></div>
<p>دستورها:</p>
<ul>
<li class=""><code>initialize(link_id, expected_mint, expected_amount, split)</code> — تنبل؛ هنگام اولین واریز توسط پوشش‌دهنده شبیه کارخانه فراخوانی می‌شود.</li>
<li class=""><code>pay(link_id, amount)</code> — mint و مبلغ را اعتبارسنجی می‌کند، با CPI به ATA مربوط به PDA منتقل می‌کند و سپس با CPI به‌صورت اتمیک تقسیم می‌کند. رویداد <code>PaymentReceived { link_id, payer, amount }</code> را منتشر می‌کند.</li>
<li class=""><code>refund(link_id)</code> — نیازمند مولتی‌سیگ، مشابه بازپرداخت در EVM.</li>
</ul>
<p>seedهای PDA: <code>[b"pl", link_id]</code>. PDA <strong>کلید خصوصی ندارد</strong>؛ از طریق <code>invoke_signed</code> امضا می‌کند.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="subscription-program">برنامه <code>subscription</code><a href="https://docs.orcarail.com/fa/blog/phase-4-solana-pda-programs/#subscription-program" class="hash-link" aria-label="لینک مستقیم به subscription-program" title="لینک مستقیم به subscription-program" translate="no">​</a></h3>
<p>از <strong>Approve / Revoke</strong> در SPL برای واگذاری اختیار استفاده می‌کند. پرداخت‌کننده <code>spl_token::approve</code> را امضا می‌کند و PDA برنامه را تا سقف <code>cap</code> توکن به‌عنوان delegate تعیین می‌کند. سپس:</p>
<div class="language-rust codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-rust codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">pub</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">fn</span><span class="token plain"> </span><span class="token function-definition function" style="color:#d73a49">charge</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">ctx</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token class-name">Context</span><span class="token operator" style="color:#393A34">&lt;</span><span class="token class-name">Charge</span><span class="token operator" style="color:#393A34">&gt;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> id</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token keyword" style="color:#00009f">u8</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">32</span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">-&gt;</span><span class="token plain"> </span><span class="token class-name">Result</span><span class="token operator" style="color:#393A34">&lt;</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token operator" style="color:#393A34">&gt;</span><br></div></code></pre></div></div>
<p>هر کسی می‌تواند فراخوانی‌اش کند؛ این موارد را بررسی می‌کند:</p>
<ul>
<li class=""><code>clock.unix_timestamp &gt;= next_charge_at</code></li>
<li class=""><code>clock.unix_timestamp &gt; last_charged_at</code>  // monotonic</li>
<li class=""><code>amount_charged + period_amount &lt;= cap</code></li>
<li class="">اینکه اختیار delegate هنوز روی ATA پرداخت‌کننده وجود دارد</li>
</ul>
<p>در صورت قبولی، <code>spl_token::transfer_checked</code> با CPI از ATA پرداخت‌کننده (به‌عنوان delegate) برداشت می‌کند و با CPI تقسیم می‌کند.</p>
<p>رویدادها: <code>SubscriptionCreated</code>، <code>Charged</code>، <code>ChargeSkipped</code>، <code>Canceled</code>. همان ساختاری که ایندکسر EVM تولید می‌کند، پس <code>api/src/webhooks</code> به زنجیره وابسته نیست.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="api-changes">تغییرات API<a href="https://docs.orcarail.com/fa/blog/phase-4-solana-pda-programs/#api-changes" class="hash-link" aria-label="لینک مستقیم به تغییرات API" title="لینک مستقیم به تغییرات API" translate="no">​</a></h2>
<ul>
<li class="">شاخه سولانا در <code>WalletService.generateAddressForNetwork</code> دیگر keypair مشتق نمی‌کند و به‌جای آن <code>findProgramAddressSync(["pl", linkId], programId)</code> را برمی‌گرداند. برای لینک‌های جدید سولانا هیچ ردیف <code>encryptedSeed</code> نوشته نمی‌شود.</li>
<li class="">یک سرویس ایندکسر جدید لاگ‌های برنامه را (با وب‌هوک‌های Helius یا استریم‌های Triton) زیر نظر می‌گیرد و رویدادهای وب‌هوک موجود را منتشر می‌کند.</li>
<li class=""><a href="https://github.com/orcarail/orcarail/tree/main/api/src/scheduler/processors/subscription-auto-charge.processor.ts" target="_blank" rel="noopener noreferrer" class="">api/src/scheduler/processors/subscription-auto-charge.processor.ts</a> یک شاخه SOL اضافه می‌کند: یک تراکنش <code>charge</code> می‌سازد و با keeper امضا می‌کند (مسیر بدون گس از طریق تراکنش حمایت‌شده، مشابه paymaster مرحله ۲).</li>
<li class=""><code>withdrawals/services/solana-withdrawal-transfer.service.ts</code> برای لینک‌های دارای پرچم فراخوانی نمی‌شود.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="gas-on-solana">گس روی سولانا<a href="https://docs.orcarail.com/fa/blog/phase-4-solana-pda-programs/#gas-on-solana" class="hash-link" aria-label="لینک مستقیم به گس روی سولانا" title="لینک مستقیم به گس روی سولانا" translate="no">​</a></h2>
<p>کارمزدهای سولانا ناچیزند (معمولاً ۵۰۰۰ lamport برای هر امضا، یعنی ۰٫۰۰۰۰۰۵ SOL). keeper از موجودی SOL داغ با همان الگوی هشدار مرحله ۳ استفاده می‌کند. چون سولانا paymaster شبیه آلکمی ندارد، تراکنش‌های حمایت‌شده از الگوی ساده هم‌امضاکننده استفاده می‌کنند: keeper به‌عنوان پرداخت‌کننده کارمزد امضا می‌کند و پرداخت‌کننده اصلاً به SOL نیاز ندارد.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="deprecations">موارد منسوخ‌شده<a href="https://docs.orcarail.com/fa/blog/phase-4-solana-pda-programs/#deprecations" class="hash-link" aria-label="لینک مستقیم به موارد منسوخ‌شده" title="لینک مستقیم به موارد منسوخ‌شده" translate="no">​</a></h2>
<ul>
<li class="">مشتق‌گیری HD برای SOL (<code>m/44'/501'/i'/0'</code>) برای لینک‌های جدید — با روشن بودن پرچم فراخوانی نمی‌شود.</li>
<li class=""><code>solana-withdrawal-transfer.service.ts</code> — برای لینک‌های دارای پرچم دور زده می‌شود.</li>
<li class=""><code>SolanaRelayBridgeExecutorService</code> در <a href="https://github.com/orcarail/orcarail/tree/main/api/src/withdrawals/services/bridge/solana-relay-bridge-executor.service.ts" target="_blank" rel="noopener noreferrer" class="">api/src/withdrawals/services/bridge/solana-relay-bridge-executor.service.ts</a> باقی می‌ماند: وقتی فروشنده روی EVM است، پل از SOL به EVM همچنان از Relay استفاده می‌کند، اما محرک آن به برنامه منتقل می‌شود.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="migration-plan">برنامه مهاجرت<a href="https://docs.orcarail.com/fa/blog/phase-4-solana-pda-programs/#migration-plan" class="hash-link" aria-label="لینک مستقیم به برنامه مهاجرت" title="لینک مستقیم به برنامه مهاجرت" translate="no">​</a></h2>
<p>همان مدل اختیاری مرحله ۲:</p>
<ul>
<li class="">لینک‌های پرداخت جدید: آدرس‌دهی با PDA.</li>
<li class="">اشتراک‌های جدید: مبتنی بر delegate در SPL.</li>
<li class="">اشتراک‌های فعال فعلی: بنر + ایمیل در تمدید بعدی برای واگذاری دوباره به برنامه جدید.</li>
<li class="">واریزهای در جریان به آدرس‌های قدیمی همچنان روی مسیر قدیمی تسویه می‌شوند.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="risks-and-mitigations">ریسک‌ها و راهکارها<a href="https://docs.orcarail.com/fa/blog/phase-4-solana-pda-programs/#risks-and-mitigations" class="hash-link" aria-label="لینک مستقیم به ریسک‌ها و راهکارها" title="لینک مستقیم به ریسک‌ها و راهکارها" translate="no">​</a></h2>
<ul>
<li class=""><strong>delegate در SPL قابل بازنویسی است</strong>. راهکار: <code>charge</code> پیش از انتقال <code>delegated_amount</code> را دوباره بررسی می‌کند؛ در صورت شکست، <code>ChargeSkipped(DelegateRevoked)</code> منتشر می‌شود و همان قالب ایمیلِ حالت لغو allowance در EVM استفاده می‌شود.</li>
<li class=""><strong>اختیار ارتقای Anchor</strong>. راهکار: مولتی‌سیگ Squads سه از پنج مالک اختیار ارتقاست، با timelock. مطابق رویکرد Safe در EVM از <a class="" href="https://docs.orcarail.com/fa/blog/phase-0-design-and-audit-strategy/">مرحله ۰</a>.</li>
<li class=""><strong>SOL بسته‌بندی‌شده در برابر SOL بومی</strong>. راهکار: <code>payment_link</code> از هر دو پشتیبانی می‌کند و برای جلوگیری از ابهام، <code>expected_mint</code> صریح برای هر لینک دارد.</li>
<li class=""><strong>جهش کارمزد اولویت</strong>. راهکار: محاسبه پویای کارمزد اولویت در keeper؛ تلاش مجدد پشتیبان با اولویت بالاتر پس از یک slot.</li>
<li class=""><strong>حسابرسی</strong>. راهکار: حسابرسی هر دو برنامه توسط OtterSec یا Neodyme پیش از استقرار روی mainnet.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="status-checklist">چک‌لیست وضعیت<a href="https://docs.orcarail.com/fa/blog/phase-4-solana-pda-programs/#status-checklist" class="hash-link" aria-label="لینک مستقیم به چک‌لیست وضعیت" title="لینک مستقیم به چک‌لیست وضعیت" translate="no">​</a></h2>
<ul class="contains-task-list containsTaskList_mC6p">
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->ساخت workspace انکر <code>contracts/solana/</code></li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->برنامه <code>payment_link</code> با همه دستورها + آزمون‌ها</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->برنامه <code>subscription</code> با همه دستورها + آزمون‌ها</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->انتشار ایندکسر وب‌هوک Helius</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->شاخه SOL مربوط به keeper در <code>subscription-auto-charge.processor.ts</code></li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->انتشار گزارش حسابرسی</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->استقرار روی mainnet از مولتی‌سیگ Squads</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->گروه آزمایشی فروشندگان</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-is-next">قدم بعدی<a href="https://docs.orcarail.com/fa/blog/phase-4-solana-pda-programs/#what-is-next" class="hash-link" aria-label="لینک مستقیم به قدم بعدی" title="لینک مستقیم به قدم بعدی" translate="no">​</a></h2>
<p>بیت‌کوین. سخت‌ترین زنجیره برای غیرامانی شدن، و جایی که باید درباره محدودیت‌ها صادق باشیم: <strong><a class="" href="https://docs.orcarail.com/fa/blog/phase-5-bitcoin-reduced-custody/">مرحله ۵</a></strong>.</p>
<hr>
<p>مستندات مرجع: <strong><a class="" href="https://docs.orcarail.com/fa/docs/non-custodial/phases/phase-4-solana/">وضعیت مرحله ۴</a></strong> · <strong><a class="" href="https://docs.orcarail.com/fa/docs/non-custodial/contract-reference/">مرجع قراردادها</a></strong> · <strong><a class="" href="https://docs.orcarail.com/fa/docs/non-custodial/architecture/">معماری</a></strong></p>]]></content>
        <author>
            <name>OrcaRail</name>
            <uri>https://orcarail.com</uri>
        </author>
        <category label="Payments" term="Payments"/>
        <category label="Multi-Chain" term="Multi-Chain"/>
        <category label="Web3" term="Web3"/>
        <category label="Stablecoins" term="Stablecoins"/>
        <category label="Subscriptions" term="Subscriptions"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[مرحله ۵: بیت‌کوین، taproot دو از دو و دامنه‌ای صادقانه]]></title>
        <id>https://docs.orcarail.com/fa/blog/phase-5-bitcoin-reduced-custody/</id>
        <link href="https://docs.orcarail.com/fa/blog/phase-5-bitcoin-reduced-custody/"/>
        <updated>2026-04-20T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[مرحله ۵ نقشه راه غیرامانی OrcaRail. بیت‌کوین امروز نمی‌تواند کاملاً غیرامانی شود؛ پس برای هر لینک به مولتی‌سیگ taproot دو از دو با بازپرداخت از پیش امضاشده می‌رویم و پرداخت دوره‌ای را به‌عنوان کار آینده به Lightning BOLT12 می‌سپاریم.]]></summary>
        <content type="html"><![CDATA[<p><strong>۲۰ آوریل ۲۰۲۶</strong> — بیت‌کوین زنجیره‌ای است که در آن باید صادق باشیم. سطح اسکریپت لایه ۱ قدرت بیان EVM یا سولانا را ندارد، پس الگوی «قرارداد لینک پرداختی که به‌صورت اتمیک تقسیم می‌کند» قابل انتقال نیست. کاری که می‌توانیم بکنیم <strong>کاهش امانت‌داری</strong> است؛ از «OrcaRail مالک xpub است» به «مولتی‌سیگ دو امضاکننده با یک امضاکننده از طرف فروشنده و یک بازپرداخت از پیش امضاشده»؛ و پرداخت‌های دوره‌ای را به مسیر آینده Lightning بسپاریم.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="tldr">خلاصه<a href="https://docs.orcarail.com/fa/blog/phase-5-bitcoin-reduced-custody/#tldr" class="hash-link" aria-label="لینک مستقیم به خلاصه" title="لینک مستقیم به خلاصه" translate="no">​</a></h2>
<ul>
<li class="">هر لینک پرداخت BTC یک <strong>مولتی‌سیگ taproot دو از دو</strong> می‌شود: یک امضاکننده فروشنده و یک امضاکننده پلتفرم. پلتفرم نمی‌تواند به‌تنهایی وجوه را جابه‌جا کند.</li>
<li class="">هر واریز یک <strong>PSBT بازپرداخت از پیش امضاشده</strong> دارد که خارج از زنجیره ذخیره می‌شود تا اگر فروشنده ناپدید شد، پرداخت‌کننده بتواند وجهش را پس بگیرد.</li>
<li class="">xpubهای اصلی از سرور API به یک <strong>سرویس HSM یا MPC</strong> (مثلاً Lit یا Turnkey) منتقل می‌شوند. هیچ عبارت بازیابی روی دیسک نیست.</li>
<li class=""><strong>پرداخت دوره‌ای روی BTC خارج از دامنه است</strong> تا وقتی Lightning BOLT12 آماده محیط عملیاتی شود. امروز هم <a class="" href="https://docs.orcarail.com/fa/docs/subscriptions/auto-charge/">برداشت خودکار</a> اعلام کرده که BTC برای برداشت خودکار پشتیبانی نمی‌شود؛ این همچنان صادق است.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-this-phase-changes">این مرحله چه چیزی را تغییر می‌دهد<a href="https://docs.orcarail.com/fa/blog/phase-5-bitcoin-reduced-custody/#what-this-phase-changes" class="hash-link" aria-label="لینک مستقیم به این مرحله چه چیزی را تغییر می‌دهد" title="لینک مستقیم به این مرحله چه چیزی را تغییر می‌دهد" translate="no">​</a></h2>
<p>امروز <code>BitcoinHotWalletService</code> در <a href="https://github.com/orcarail/orcarail/tree/main/api/src/withdrawals/services/bitcoin-hot-wallet.service.ts" target="_blank" rel="noopener noreferrer" class="">api/src/withdrawals/services/bitcoin-hot-wallet.service.ts</a> یک آدرس p2wpkh یک‌جانبه از عبارت بازیابی نگهداری‌شده روی سرور مشتق می‌کند و از طریق <code>bitcoin-withdrawal-transfer.service.ts</code> جاروبش می‌کند. این یک کلید واحد است که ما کنترلش می‌کنیم.</p>
<p>پس از مرحله ۵:</p>
<div class="wrapper_vprU"><button type="button" class="expandBtn_RmxB" aria-label="Show diagram fullscreen" title="Fullscreen"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><path d="M15 3h6v6M9 21H3v-6M21 3l-7 7M3 21l7-7" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div>
<p>هیچ طرفی به‌تنهایی نمی‌تواند خرج کند. هیچ سروری seed یک‌جانبه نگه نمی‌دارد.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-we-are-shipping">آنچه منتشر می‌کنیم<a href="https://docs.orcarail.com/fa/blog/phase-5-bitcoin-reduced-custody/#what-we-are-shipping" class="hash-link" aria-label="لینک مستقیم به آنچه منتشر می‌کنیم" title="لینک مستقیم به آنچه منتشر می‌کنیم" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-taproot-2-of-2-per-link">۱. taproot دو از دو برای هر لینک<a href="https://docs.orcarail.com/fa/blog/phase-5-bitcoin-reduced-custody/#1-taproot-2-of-2-per-link" class="hash-link" aria-label="لینک مستقیم به ۱. taproot دو از دو برای هر لینک" title="لینک مستقیم به ۱. taproot دو از دو برای هر لینک" translate="no">​</a></h3>
<ul>
<li class="">کیف پول مبتنی بر توصیف‌گر برای هر لینک: <code>wsh(multi(2, merchant_pubkey, platform_pubkey))</code> یا معادل taproot آن (<code>tr(NUMS, {pk(m), pk(p)})</code> با MuSig2 برای خروجی‌ای که شبیه تک‌امضا به نظر می‌رسد؛ خوب برای حریم خصوصی و کارمزد).</li>
<li class="">کلید فروشنده در مرورگر یا افزونه موبایل فروشنده نگهداری می‌شود. جریان ثبت‌نام فروشنده یک xpub درخواست می‌کند و کلیدهای هر لینک از آن مشتق می‌شوند.</li>
<li class="">کلید پلتفرم پشت سرویس HSM یا MPC است. سرور API هرگز داده خصوصی را نمی‌بیند.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-pre-signed-refund-psbt">۲. PSBT بازپرداخت از پیش امضاشده<a href="https://docs.orcarail.com/fa/blog/phase-5-bitcoin-reduced-custody/#2-pre-signed-refund-psbt" class="hash-link" aria-label="لینک مستقیم به ۲. PSBT بازپرداخت از پیش امضاشده" title="لینک مستقیم به ۲. PSBT بازپرداخت از پیش امضاشده" translate="no">​</a></h3>
<p>وقتی واریزی شناسایی می‌شود:</p>
<ol>
<li class="">API یک PSBT می‌سازد که مبلغ واریز منهای گس را به آدرس پرداخت‌کننده برمی‌گرداند (آدرسی که هنگام ساخت لینک پرداخت، اگر کیف پول پرداخت‌کننده مشخص باشد، ثبت شده؛ در غیر این صورت سیاست <code>sendback</code> اعمال می‌شود).</li>
<li class="">هر دو امضاکننده بلافاصله PSBT بازپرداخت را امضا می‌کنند و آن (رمزنگاری‌شده) در پایگاه داده ذخیره می‌شود.</li>
<li class="">فروشنده هر زمان با یک کلیک می‌تواند بازپرداخت را منتشر کند؛ امضای دیگری لازم نیست.</li>
</ol>
<p>این معادل BTC برای تابع <code>refund()</code> روی زنجیره است.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-mpc-key-rotation">۳. چرخش کلید MPC<a href="https://docs.orcarail.com/fa/blog/phase-5-bitcoin-reduced-custody/#3-mpc-key-rotation" class="hash-link" aria-label="لینک مستقیم به ۳. چرخش کلید MPC" title="لینک مستقیم به ۳. چرخش کلید MPC" translate="no">​</a></h3>
<ul>
<li class="">xpubهای اصلی کلیدهای پلتفرم سالانه چرخش می‌یابند.</li>
<li class="">همه کلیدهای مشتق‌شده هر لینک با چرخش‌ها جلو می‌روند؛ لینک‌های قدیمی همچنان کار می‌کنند چون مولتی‌سیگشان با pubkey مشخص از قبل روی زنجیره است.</li>
<li class="">چرخش در همان سابقه حسابرسی استقرارهای مولتی‌سیگ <a class="" href="https://docs.orcarail.com/fa/blog/phase-0-design-and-audit-strategy/">مرحله ۰</a> ثبت می‌شود.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-we-are-not-shipping">آنچه منتشر نمی‌کنیم<a href="https://docs.orcarail.com/fa/blog/phase-5-bitcoin-reduced-custody/#what-we-are-not-shipping" class="hash-link" aria-label="لینک مستقیم به آنچه منتشر نمی‌کنیم" title="لینک مستقیم به آنچه منتشر نمی‌کنیم" translate="no">​</a></h2>
<ul>
<li class=""><strong>اشتراک / برداشت خودکار BTC</strong>. امروز هیچ طرح معتبری روی لایه ۱ وجود ندارد. <a class="" href="https://docs.orcarail.com/fa/docs/subscriptions/auto-charge/">مستندات برداشت خودکار</a> از قبل BTC را مستثنا کرده و این همچنان درست است.</li>
<li class=""><strong>تقسیم اتمیک روی زنجیره برای BTC</strong>. تقسیم در PSBT تسویه‌ای انجام می‌شود که فروشنده امضا می‌کند. تقسیم همچنان قطعی است و در تراکنش منتشرشده دیده می‌شود، اما اسکریپت آن را اجبار نمی‌کند.</li>
<li class=""><strong>Fedimint یا statechainها</strong>. پژوهش جالبی است؛ اما در این مرحله نیست.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="lightning-as-the-future-path">Lightning به‌عنوان مسیر آینده<a href="https://docs.orcarail.com/fa/blog/phase-5-bitcoin-reduced-custody/#lightning-as-the-future-path" class="hash-link" aria-label="لینک مستقیم به Lightning به‌عنوان مسیر آینده" title="لینک مستقیم به Lightning به‌عنوان مسیر آینده" translate="no">​</a></h2>
<p>پرداخت‌های دوره‌ای BTC یک گزینه واقع‌بینانه دارند: <strong>پیشنهادهای BOLT12 در Lightning + افزونه <code>recurrence</code></strong>. این به ما راهکاری برای اشتراک BTC می‌دهد که با approve + برداشت در ERC-20 قابل مقایسه است. آن را به‌عنوان مرحله‌ای آینده پیگیری می‌کنیم:</p>
<ul>
<li class="">وابسته به پیاده‌سازی‌های بالغ recurrence در BOLT12 روی LND و CLN.</li>
<li class="">وابسته به پشتیبانی کیف پول‌های Lightning (Phoenix، Zeus، Blink) از recurrence در BOLT12.</li>
<li class="">نیازمند ناوگانی از نودهای LN با نقدینگی کافی؛ احتمالاً از طریق یک شریک (Voltage، Greenlight).</li>
</ul>
<p>وقتی ابزارهای پایه آماده شوند، یک سند طراحی اختصاصی منتشر می‌کنیم. تا آن زمان، BTC فقط پرداخت یک‌باره دارد.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="deprecations">موارد منسوخ‌شده<a href="https://docs.orcarail.com/fa/blog/phase-5-bitcoin-reduced-custody/#deprecations" class="hash-link" aria-label="لینک مستقیم به موارد منسوخ‌شده" title="لینک مستقیم به موارد منسوخ‌شده" translate="no">​</a></h2>
<ul>
<li class=""><code>BitcoinHotWalletService</code> — رابطش را حفظ می‌کند، اما تأمین‌کننده کلید به HSM/MPC منتقل می‌شود. آدرس واریز p2wpkh یک‌جانبه دیگر برای لینک‌های جدید ساخته نمی‌شود.</li>
<li class="">آدرس‌های واریز BTC قدیمی تا زمان انقضا از طریق مسیر جاروب قدیمی قابل تسویه می‌مانند.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="migration-plan">برنامه مهاجرت<a href="https://docs.orcarail.com/fa/blog/phase-5-bitcoin-reduced-custody/#migration-plan" class="hash-link" aria-label="لینک مستقیم به برنامه مهاجرت" title="لینک مستقیم به برنامه مهاجرت" translate="no">​</a></h2>
<ul>
<li class=""><strong>لینک‌های پرداخت BTC جدید</strong>: آدرس‌های مولتی‌سیگ دو از دو. رابط کاربری بدون تغییر؛ قالب آدرس به taproot به‌روز می‌شود.</li>
<li class=""><strong>لینک‌های BTC باز فعلی</strong>: آدرس‌های یک‌جانبه قدیمی تا انقضا فعال می‌مانند؛ مهاجرت را اجباری نمی‌کنیم.</li>
<li class=""><strong>فروشندگان بدون امضاکننده BTC تنظیم‌شده</strong>: فعلاً به مولتی‌سیگ فقط با پلتفرم برمی‌گردند، با یک گام اجباری ثبت‌نام برای افزودن کلید فروشنده ظرف ۳۰ روز. این کار مسیر بازپرداخت را حفظ می‌کند و حجم فعلی BTC را متوقف نمی‌کند.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="risks-and-mitigations">ریسک‌ها و راهکارها<a href="https://docs.orcarail.com/fa/blog/phase-5-bitcoin-reduced-custody/#risks-and-mitigations" class="hash-link" aria-label="لینک مستقیم به ریسک‌ها و راهکارها" title="لینک مستقیم به ریسک‌ها و راهکارها" translate="no">​</a></h2>
<ul>
<li class=""><strong>گم شدن کلید فروشنده</strong>. راهکار: ثبت‌نام فروشنده <strong>دو</strong> xpub درخواست می‌کند (اصلی + پشتیبان)؛ پشتیبان اختیاری است اما به‌شدت توصیه می‌شود.</li>
<li class=""><strong>قطعی HSM پلتفرم</strong>. راهکار: HSM در چند منطقه افزونگی دارد؛ بازیابی اضطراری کلید از طریق مراسم مولتی‌سیگ که در runbook مستند شده است.</li>
<li class=""><strong>نفوذ به محل ذخیره PSBTهای بازپرداخت</strong>. راهکار: PSBTهای بازپرداخت در حالت ذخیره با کلید KMS جداگانه رمزنگاری می‌شوند؛ ضمن اینکه بدون امضای دوباره فروشنده برای مقصدی دیگر بی‌فایده‌اند (مقصد در PSBT از پیش امضاشده ثابت است).</li>
<li class=""><strong>بلوغ MuSig2</strong>. راهکار: نسخه ۱ با دو از دوی صریح <code>wsh(multi(...))</code> منتشر می‌شود؛ MuSig2 بعداً و پس از حسابرسی گسترده ابزارها می‌آید.</li>
<li class=""><strong>جهش بازار کارمزد</strong>. راهکار: PSBTهای تسویه یک قلاب CPFP دارند که فروشنده می‌تواند کارمزد را با آن بالا ببرد؛ keeper ممپول را پایش می‌کند و وقتی گس تسویه از آستانه‌ای بگذرد به فروشندگان هشدار می‌دهد.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="status-checklist">چک‌لیست وضعیت<a href="https://docs.orcarail.com/fa/blog/phase-5-bitcoin-reduced-custody/#status-checklist" class="hash-link" aria-label="لینک مستقیم به چک‌لیست وضعیت" title="لینک مستقیم به چک‌لیست وضعیت" translate="no">​</a></h2>
<ul class="contains-task-list containsTaskList_mC6p">
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->نهایی شدن قالب توصیف‌گر taproot</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->انتخاب ارائه‌دهنده HSM / MPC (Lit در برابر Turnkey در برابر HSM داخلی)</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->جریان ثبت xpub فروشنده در داشبورد</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->مشتق‌گیری و ذخیره توصیف‌گر برای هر لینک</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->تولید PSBT بازپرداخت از پیش امضاشده + ذخیره رمزنگاری‌شده</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->رابط هم‌امضای تسویه (امضای فروشنده با یک کلیک)</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->runbook برای جایگزینی خودکار HSM و گم شدن کلید فروشنده</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->گروه آزمایشی فروشندگان روی BTC دو از دو</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-is-next">قدم بعدی<a href="https://docs.orcarail.com/fa/blog/phase-5-bitcoin-reduced-custody/#what-is-next" class="hash-link" aria-label="لینک مستقیم به قدم بعدی" title="لینک مستقیم به قدم بعدی" translate="no">​</a></h2>
<p>غیرمتمرکزسازی اختیاری keeper از طریق EigenLayer: <strong><a class="" href="https://docs.orcarail.com/fa/blog/phase-6-eigenlayer-keeper-avs/">مرحله ۶</a></strong>.</p>
<hr>
<p>مستندات مرجع: <strong><a class="" href="https://docs.orcarail.com/fa/docs/non-custodial/phases/phase-5-bitcoin/">وضعیت مرحله ۵</a></strong> · <strong><a class="" href="https://docs.orcarail.com/fa/docs/non-custodial/bitcoin-considerations/">ملاحظات بیت‌کوین</a></strong> · <strong><a class="" href="https://docs.orcarail.com/fa/docs/non-custodial/security-model/">مدل امنیتی</a></strong></p>]]></content>
        <author>
            <name>OrcaRail</name>
            <uri>https://orcarail.com</uri>
        </author>
        <category label="Payments" term="Payments"/>
        <category label="Multi-Chain" term="Multi-Chain"/>
        <category label="Web3" term="Web3"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[مرحله ۶: زمان‌بند غیرمتمرکز و EigenLayer]]></title>
        <id>https://docs.orcarail.com/fa/blog/phase-6-eigenlayer-keeper-avs/</id>
        <link href="https://docs.orcarail.com/fa/blog/phase-6-eigenlayer-keeper-avs/"/>
        <updated>2026-04-20T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[مرحله ۶ نقشه راه غیرامانی OrcaRail. ری‌استیکینگ EigenLayer واقعاً چه چیزی به شما می‌دهد، کجا یک AVS برای سیستم پرداخت معنا دارد و چرا آن را اختیاری نگه می‌داریم.]]></summary>
        <content type="html"><![CDATA[<p><strong>۲۰ آوریل ۲۰۲۶</strong> — مرحله ۶ مرحله‌ای است که در آن صراحتاً چیزی <strong>نمی‌سازیم</strong>، مگر اینکه یک نیاز واقعی مجبورمان کند. ری‌استیکینگ EigenLayer قدرتمند است، اما خانه‌ای همه‌منظوره برای «یک سیستم پرداخت» نیست. این مطلب توضیح می‌دهد یک AVS چه چیزی به ما می‌دهد، کی ارزش ساختن دارد و چرا Chainlink + NestJS برای بیشتر نیازهای ما کافی است.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="tldr">خلاصه<a href="https://docs.orcarail.com/fa/blog/phase-6-eigenlayer-keeper-avs/#tldr" class="hash-link" aria-label="لینک مستقیم به خلاصه" title="لینک مستقیم به خلاصه" translate="no">​</a></h2>
<ul>
<li class="">EigenLayer یعنی <strong>ری‌استیکینگ + گواهی‌های قابل جریمه از اپراتورهای ETH</strong>. نه زنجیره است، نه پلتفرم قرارداد و نه راهکار امانت‌داری.</li>
<li class="">دو جا که می‌تواند به OrcaRail کمک کند: یک <strong>AVS برای keeper</strong> برای <code>charge()</code> غیرمتمرکز و یک <strong>AVS برای گواهی پل</strong> برای تسویه بین‌زنجیره‌ای.</li>
<li class=""><strong>ساخت را به تعویق می‌اندازیم</strong> مگر اینکه یک مشتری یا الزام انطباق، زنده‌بودن غیرمتمرکزی فراتر از آنچه Chainlink Automation + NestJS می‌دهد بخواهد.</li>
<li class="">اگر روزی بسازیم، از قالب‌های Othentic / Eigen Foundation شروع می‌کنیم، نه از صفر.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-eigenlayer-actually-gives-you">EigenLayer واقعاً چه چیزی به شما می‌دهد<a href="https://docs.orcarail.com/fa/blog/phase-6-eigenlayer-keeper-avs/#what-eigenlayer-actually-gives-you" class="hash-link" aria-label="لینک مستقیم به EigenLayer واقعاً چه چیزی به شما می‌دهد" title="لینک مستقیم به EigenLayer واقعاً چه چیزی به شما می‌دهد" translate="no">​</a></h2>
<p>یک <strong>AVS</strong> (Actively Validated Service) شبکه‌ای از اپراتورهاست که محاسبه‌ای خارج از زنجیره اجرا می‌کنند و گواهی‌های آن با امنیت رمزاقتصادی ETH ری‌استیک‌شده روی زنجیره منتشر می‌شود. رفتار نادرست جریمه (slash) می‌شود.</p>
<p>آنچه به دست می‌آورید:</p>
<ul>
<li class=""><strong>زنده‌بودن غیرمتمرکز</strong>: یک کار حتی اگر یکی از طرف‌ها (OrcaRail) آفلاین شود اجرا می‌شود.</li>
<li class=""><strong>درستی قابل جریمه</strong>: گواهی نادرست باعث از دست رفتن سپرده اپراتور می‌شود.</li>
<li class=""><strong>امنیت اقتصادی ETH</strong>: به‌جای راه‌اندازی توکن خودتان، بخشی از سپرده اعتبارسنج‌های اتریوم را به ارث می‌برید.</li>
</ul>
<p>آنچه به دست <strong>نمی‌آورید</strong>:</p>
<ul>
<li class="">یک پلتفرم قرارداد هوشمند. قراردادها همچنان روی اتریوم / L2 مستقر می‌شوند.</li>
<li class="">امانت‌داری. EigenLayer برای شما USDC نگه نمی‌دارد.</li>
<li class="">پشتیبانی بومی از سولانا یا بیت‌کوین. پل‌های بین‌زنجیره‌ای وجود دارند و پیچیدگی و نیاز به اعتماد اضافه می‌کنند.</li>
<li class="">یک زمان‌بند همه‌منظوره. همچنان خودتان کار خارج از زنجیره و اعتبارسنجی روی زنجیره را تعریف می‌کنید.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="where-an-avs-could-help-orcarail">یک AVS کجا می‌تواند به OrcaRail کمک کند<a href="https://docs.orcarail.com/fa/blog/phase-6-eigenlayer-keeper-avs/#where-an-avs-could-help-orcarail" class="hash-link" aria-label="لینک مستقیم به یک AVS کجا می‌تواند به OrcaRail کمک کند" title="لینک مستقیم به یک AVS کجا می‌تواند به OrcaRail کمک کند" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-keeper-avs-decentralized-charge">۱. AVS برای keeper (<code>charge()</code> غیرمتمرکز)<a href="https://docs.orcarail.com/fa/blog/phase-6-eigenlayer-keeper-avs/#1-keeper-avs-decentralized-charge" class="hash-link" aria-label="لینک مستقیم به 1-keeper-avs-decentralized-charge" title="لینک مستقیم به 1-keeper-avs-decentralized-charge" translate="no">​</a></h3>
<p>امروز و تا <a class="" href="https://docs.orcarail.com/fa/blog/phase-3-multi-evm-and-keeper-redundancy/">مرحله ۳</a>، وضعیت keeperها این است:</p>
<ul>
<li class="">زمان‌بند NestJS (اصلی)</li>
<li class="">Chainlink Automation یا Gelato (پشتیبان)</li>
</ul>
<p>این به ما افزونگی دوگانه می‌دهد. یک AVS برای keeper افزونگی <strong>N‌گانه</strong> با زنده‌بودن قابل جریمه می‌دهد: اپراتورها گواهی می‌دهند «این IDها سررسید بودند و من <code>charge</code> را فراخوانی کردم»، و جا انداختن برداشت سررسیدشده تخلفی قابل جریمه است.</p>
<p>کی ارزشش را دارد:</p>
<ul>
<li class="">وقتی مشتری‌ای داشته باشیم که قراردادش هر نوع اتکا به یک طرف واحد در زیرساخت ما را ممنوع کند.</li>
<li class="">وقتی انطباق مقرراتی صراحتاً آن را بخواهد (امروز نادر است).</li>
</ul>
<p>کی ارزشش را ندارد:</p>
<ul>
<li class="">وقتی بهبود حاشیه‌ای قابلیت اطمینان نسبت به Chainlink کم است و هزینه مهندسی چند ماه است.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-bridge-attestation-avs-relay-replacement">۲. AVS برای گواهی پل (جایگزین Relay)<a href="https://docs.orcarail.com/fa/blog/phase-6-eigenlayer-keeper-avs/#2-bridge-attestation-avs-relay-replacement" class="hash-link" aria-label="لینک مستقیم به ۲. AVS برای گواهی پل (جایگزین Relay)" title="لینک مستقیم به ۲. AVS برای گواهی پل (جایگزین Relay)" translate="no">​</a></h3>
<p>تسویه بین‌زنجیره‌ای ما امروز از Relay استفاده می‌کند (<a href="https://github.com/orcarail/orcarail/tree/main/api/src/withdrawals/services/bridge" target="_blank" rel="noopener noreferrer" class="">api/src/withdrawals/services/bridge</a> را ببینید). Relay نیازمند اعتماد است. یک AVS می‌تواند با امنیت قابل جریمه گواهی دهد که «وجوه روی زنجیره X مشاهده شد، روی زنجیره Y آزاد کن»؛ ساختاری شبیه Hyperlane ISM با EigenLayer یا Omni.</p>
<p>کی ارزشش را دارد:</p>
<ul>
<li class="">وقتی Relay شرایط یا عملکردی ارائه دهد که نتوانیم بپذیریم.</li>
<li class="">وقتی پلتفرم آن‌قدر حجم بین‌زنجیره‌ای پردازش کند که ریسک پل قابل توجه شود.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-fraud--compliance-oracle">۳. اوراکل تقلب / انطباق<a href="https://docs.orcarail.com/fa/blog/phase-6-eigenlayer-keeper-avs/#3-fraud--compliance-oracle" class="hash-link" aria-label="لینک مستقیم به ۳. اوراکل تقلب / انطباق" title="لینک مستقیم به ۳. اوراکل تقلب / انطباق" translate="no">​</a></h3>
<p>«آیا این کیف پول تحریم است؟» «آیا کالا تحویل داده شد؟» — بررسی‌های سیاستی که امروز در مسیر وب‌هوک NestJS قرار دارند می‌توانند به گواهی‌های AVS تبدیل شوند. کاربرد خاص؛ فقط وقتی مفید است که پلتفرم مسئولیت صریح سیاست‌گذاری روی زنجیره را بپذیرد.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="why-we-defer-the-build">چرا ساخت را به تعویق می‌اندازیم<a href="https://docs.orcarail.com/fa/blog/phase-6-eigenlayer-keeper-avs/#why-we-defer-the-build" class="hash-link" aria-label="لینک مستقیم به چرا ساخت را به تعویق می‌اندازیم" title="لینک مستقیم به چرا ساخت را به تعویق می‌اندازیم" translate="no">​</a></h2>
<ul>
<li class="">Chainlink Automation + NestJS هزینه مهندسی تقریباً صفر دارد. AVS برای keeper چند ماه کار است.</li>
<li class="">ساختن AVS یعنی اجرای اپراتورها (یا هماهنگ کردن دیگران برای این کار) و نگهداری شرایط جریمه. این بار عملیاتی قابل مقایسه با اداره ناوگان نودهای بلاکچین خودمان است.</li>
<li class="">بهبود امنیتی فقط وقتی معنادار است که از قبل افزونگی دوگانه داشته باشیم. هنوز نداریم (در مرحله ۳ به دست می‌آید). در نتیجه: فقط پس از پایدار شدن مرحله ۳، AVS برای keeper نامزد می‌شود.</li>
<li class="">حتی با دامنه محافظه‌کارانه، AVS ملاحظات امانت‌داری خودش را دارد (ETH ری‌استیک‌شده، اقتصاد پاداش اپراتورها).</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="decision-log">گزارش تصمیم‌ها<a href="https://docs.orcarail.com/fa/blog/phase-6-eigenlayer-keeper-avs/#decision-log" class="hash-link" aria-label="لینک مستقیم به گزارش تصمیم‌ها" title="لینک مستقیم به گزارش تصمیم‌ها" translate="no">​</a></h2>
<p>یک گزارش عمومی تصمیم‌ها در <a class="" href="https://docs.orcarail.com/fa/docs/non-custodial/eigenlayer-evaluation/">/docs/non-custodial/eigenlayer-evaluation</a> نگه می‌داریم که توصیه فعلی و محرک‌هایی را که می‌توانند آن را تغییر دهند نشان می‌دهد. توصیه امروز: <strong>به تعویق انداختن</strong>.</p>
<p>محرک‌هایی که بحث را دوباره باز می‌کنند:</p>
<ol>
<li class="">یک مذاکره فروش که صراحتاً به‌خاطر ریسک «keeper تک‌طرفه» متوقف شود.</li>
<li class="">یک چارچوب مقرراتی که زنده‌بودن مبتنی بر AVS را کنترلی پذیرفتنی بداند.</li>
<li class="">افت قابل توجه قیمت یا دسترس‌پذیری Chainlink Automation روی پرکاربردترین زنجیره‌های ما.</li>
<li class="">همکاری‌ای که در آن بتوانیم از AVS keeper شخص دیگری با هزینه عملیاتی نزدیک به صفر استفاده کنیم.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="if-we-do-build-it">اگر بسازیمش<a href="https://docs.orcarail.com/fa/blog/phase-6-eigenlayer-keeper-avs/#if-we-do-build-it" class="hash-link" aria-label="لینک مستقیم به اگر بسازیمش" title="لینک مستقیم به اگر بسازیمش" translate="no">​</a></h2>
<ul>
<li class=""><strong>شروع از قالب</strong>. Othentic و Eigen Foundation قالب‌هایی برای AVSهای گواهی کار منتشر می‌کنند. منطق جریمه را دستی نمی‌نویسیم.</li>
<li class=""><strong>نقطه ورود روی زنجیره بدون تغییر بماند</strong>. <code>SubscriptionHub.charge(ids[])</code> عمومی و بدون نیاز به مجوز می‌ماند. AVS فقط یک فراخواننده دیگر در کنار NestJS و Chainlink می‌شود.</li>
<li class=""><strong>توکن یا سازوکار استیکینگ جدیدی معرفی نکنیم</strong> برای حجم خودمان. اپراتورها از بودجه گس پلتفرم با ETH پاداش می‌گیرند؛ توکن OrcaRail در کار نیست.</li>
<li class=""><strong>حسابرسی‌اش کنیم</strong>. حتی AVS مبتنی بر قالب هم به حسابرسی نیاز دارد.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="status-checklist">چک‌لیست وضعیت<a href="https://docs.orcarail.com/fa/blog/phase-6-eigenlayer-keeper-avs/#status-checklist" class="hash-link" aria-label="لینک مستقیم به چک‌لیست وضعیت" title="لینک مستقیم به چک‌لیست وضعیت" translate="no">​</a></h2>
<ul class="contains-task-list containsTaskList_mC6p">
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->انتشار صفحه گزارش تصمیم‌ها</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->بازبینی فصلی محرک‌ها</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->sandbox اثبات مفهوم (نه محیط عملیاتی) در صورت فعال شدن یک محرک</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-is-next">قدم بعدی<a href="https://docs.orcarail.com/fa/blog/phase-6-eigenlayer-keeper-avs/#what-is-next" class="hash-link" aria-label="لینک مستقیم به قدم بعدی" title="لینک مستقیم به قدم بعدی" translate="no">​</a></h2>
<p>مرحله پایانی مسیرهای کد امانی را که مراحل ۱ تا ۵ جایگزینشان کردند حذف می‌کند: <strong><a class="" href="https://docs.orcarail.com/fa/blog/phase-7-retiring-custody/">مرحله ۷</a></strong>.</p>
<hr>
<p>مستندات مرجع: <strong><a class="" href="https://docs.orcarail.com/fa/docs/non-custodial/phases/phase-6-decentralized-keepers/">وضعیت مرحله ۶</a></strong> · <strong><a class="" href="https://docs.orcarail.com/fa/docs/non-custodial/eigenlayer-evaluation/">ارزیابی EigenLayer</a></strong> · <strong><a class="" href="https://docs.orcarail.com/fa/docs/non-custodial/keeper-strategy/">راهبرد keeper</a></strong></p>]]></content>
        <author>
            <name>OrcaRail</name>
            <uri>https://orcarail.com</uri>
        </author>
        <category label="Payments" term="Payments"/>
        <category label="Web3" term="Web3"/>
        <category label="Multi-Chain" term="Multi-Chain"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[مرحله ۷: بازنشسته کردن زیرساخت امانی]]></title>
        <id>https://docs.orcarail.com/fa/blog/phase-7-retiring-custody/</id>
        <link href="https://docs.orcarail.com/fa/blog/phase-7-retiring-custody/"/>
        <updated>2026-04-20T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[مرحله ۷ نقشه راه غیرامانی OrcaRail. حذف جدول hd_wallet_seed، کلید WALLET_ENCRYPTION_KEY و مسیرهای جاروب EVM/سولانا، و به‌روزرسانی شرایط استفاده و وضعیت انطباق.]]></summary>
        <content type="html"><![CDATA[<p><strong>۲۰ آوریل ۲۰۲۶</strong> — مرحله ۷ مرحله پاک‌سازی است. تا به اینجا برسیم، حجم EVM و سولانا روی گیرنده‌های قراردادی و <code>SubscriptionHub</code> است، بیت‌کوین روی مولتی‌سیگ دو از دو است و هیچ لینک پرداخت جدیدی از مسیر جاروب قدیمی عبور نمی‌کند. این مرحله کد قدیمی و رازهای قدیمی را حذف می‌کند.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="tldr">خلاصه<a href="https://docs.orcarail.com/fa/blog/phase-7-retiring-custody/#tldr" class="hash-link" aria-label="لینک مستقیم به خلاصه" title="لینک مستقیم به خلاصه" translate="no">​</a></h2>
<ul>
<li class="">حذف <code>hd_wallet_seed</code>، پیکربندی <code>WALLET_ENCRYPTION_KEY</code> و منطق مشتق‌گیری برای زنجیره‌های دارای پرچم.</li>
<li class="">حذف مسیرهای EVM/SOL در <code>api/src/withdrawals/</code>: <code>SmartAccountWalletService.drainSmartAccountWallet</code>، <code>solana-withdrawal-transfer.service.ts</code> و فایل‌های spec مرتبط.</li>
<li class="">حفظ مسیر BTC (کاهش‌یافته به مدل دو از دوی <a class="" href="https://docs.orcarail.com/fa/blog/phase-5-bitcoin-reduced-custody/">مرحله ۵</a>).</li>
<li class="">به‌روزرسانی شرایط استفاده، سیاست حریم خصوصی و کنترل‌های SOC2 برای بازتاب سطح امانت‌داری بسیار کوچک‌تر.</li>
<li class="">انتشار یک گزارش پس از رخداد (postmortem) با خلاصه آموخته‌ها.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-this-phase-changes">این مرحله چه چیزی را تغییر می‌دهد<a href="https://docs.orcarail.com/fa/blog/phase-7-retiring-custody/#what-this-phase-changes" class="hash-link" aria-label="لینک مستقیم به این مرحله چه چیزی را تغییر می‌دهد" title="لینک مستقیم به این مرحله چه چیزی را تغییر می‌دهد" translate="no">​</a></h2>
<p>پیش از این مرحله، کد از هر چیزی دو نسخه دارد (مسیر جاروب قدیمی و مسیر قراردادی جدید) که پشت feature flag قرار دارند. پس از این مرحله، مسیر جدید تنها مسیر روی EVM و سولاناست.</p>
<div class="wrapper_vprU"><button type="button" class="expandBtn_RmxB" aria-label="Show diagram fullscreen" title="Fullscreen"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><path d="M15 3h6v6M9 21H3v-6M21 3l-7 7M3 21l7-7" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-we-delete">چه چیزهایی حذف می‌شوند<a href="https://docs.orcarail.com/fa/blog/phase-7-retiring-custody/#what-we-delete" class="hash-link" aria-label="لینک مستقیم به چه چیزهایی حذف می‌شوند" title="لینک مستقیم به چه چیزهایی حذف می‌شوند" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="database">پایگاه داده<a href="https://docs.orcarail.com/fa/blog/phase-7-retiring-custody/#database" class="hash-link" aria-label="لینک مستقیم به پایگاه داده" title="لینک مستقیم به پایگاه داده" translate="no">​</a></h3>
<ul>
<li class="">جدول <code>hd_wallet_seed</code> و موجودیت TypeORM آن در <a href="https://github.com/orcarail/orcarail/tree/main/api/src/payments/infrastructure/persistence/relational/entities" target="_blank" rel="noopener noreferrer" class="">api/src/payments/infrastructure/persistence/relational/entities/hd-wallet-seed.entity.ts</a>.</li>
<li class="">ستون <code>wallet_address.derivationPath</code> برای جست‌وجوهای تاریخی حفظ می‌شود اما nullable می‌شود؛ هیچ ردیف جدیدی برای EVM/SOL آن را نمی‌نویسد.</li>
<li class="">یک migration ردیف‌های seed رمزنگاری‌شده را برای هفت سال (نگهداری الزامی مقرراتی) در ذخیره‌سازی سرد بایگانی می‌کند و سپس جدول را حذف می‌کند.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="code">کد<a href="https://docs.orcarail.com/fa/blog/phase-7-retiring-custody/#code" class="hash-link" aria-label="لینک مستقیم به کد" title="لینک مستقیم به کد" translate="no">​</a></h3>
<p>در <a href="https://github.com/orcarail/orcarail/tree/main/api/src/payments/wallet.service.ts" target="_blank" rel="noopener noreferrer" class="">api/src/payments/wallet.service.ts</a>:</p>
<ul>
<li class="">حذف <code>encryptSeed</code>، <code>decryptSeed</code>، <code>getOrCreateHDWallet</code>، <code>generateAddressForNetwork</code> (شاخه‌های EVM + SOL)، <code>getNextAvailableIndex</code> و import پویای <code>@account-kit/wallet-client</code>.</li>
<li class=""><code>getOrCreateAddressForPaymentLink</code> به پوشش نازکی روی <code>factory.computeAddress</code> برای EVM و <code>findProgramAddressSync</code> برای سولانا تبدیل می‌شود.</li>
</ul>
<p>در <a href="https://github.com/orcarail/orcarail/tree/main/api/src/withdrawals/services/smart-account-wallet.service.ts" target="_blank" rel="noopener noreferrer" class="">api/src/withdrawals/services/smart-account-wallet.service.ts</a>:</p>
<ul>
<li class="">حذف <code>drainSmartAccountWallet</code>، <code>transferFromSmartAccount</code>، <code>batchTransferFromSmartAccount</code>، <code>getSmartAccountClientForDepositWallet</code> و <code>derivePrivateKey</code>.</li>
<li class="">ماژول باقی می‌ماند (هنوز کاربرد کوچکی برای توابع کمکی مرتبط با BTC و خواندن موجودی‌ها دارد).</li>
</ul>
<p>حذف‌های دیگر:</p>
<ul>
<li class=""><a href="https://github.com/orcarail/orcarail/tree/main/api/src/withdrawals/services/solana-withdrawal-transfer.service.ts" target="_blank" rel="noopener noreferrer" class="">api/src/withdrawals/services/solana-withdrawal-transfer.service.ts</a></li>
<li class="">فایل‌های <code>.spec.ts</code> و fixtureهای مربوط.</li>
<li class="">شاخه امانی <code>subscription-auto-charge.processor.ts</code> (شاخه <code>SubscriptionHub.charge</code> باقی می‌ماند).</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="config">پیکربندی<a href="https://docs.orcarail.com/fa/blog/phase-7-retiring-custody/#config" class="hash-link" aria-label="لینک مستقیم به پیکربندی" title="لینک مستقیم به پیکربندی" translate="no">​</a></h3>
<ul>
<li class=""><code>WALLET_ENCRYPTION_KEY</code> — از <code>.env</code>، رازهای استقرار و مستندات حذف می‌شود.</li>
<li class="">هر داده امضاکننده Alchemy Account Kit در پیکربندی (کلیدهای API برای <code>@account-kit/*</code> اگر هنوز برای paymaster استفاده شوند باقی می‌مانند).</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-stays">چه چیزهایی می‌مانند<a href="https://docs.orcarail.com/fa/blog/phase-7-retiring-custody/#what-stays" class="hash-link" aria-label="لینک مستقیم به چه چیزهایی می‌مانند" title="لینک مستقیم به چه چیزهایی می‌مانند" translate="no">​</a></h2>
<ul>
<li class=""><strong>کیف پول داغ BTC</strong> — کاهش‌یافته به مدل مولتی‌سیگ دو از دوی <a class="" href="https://docs.orcarail.com/fa/blog/phase-5-bitcoin-reduced-custody/">مرحله ۵</a>. هیچ seed مربوط به HD برای EVM/SOL باقی نمی‌ماند.</li>
<li class=""><strong>سیاست paymaster آلکمی</strong> — keeper در موارد لازم از آن برای حمایت از <code>charge()</code> استفاده می‌کند.</li>
<li class=""><strong>اجراکننده‌های پل Relay</strong> — همچنان تسویه بین‌زنجیره‌ای را هماهنگ می‌کنند؛ فراخوانندگان EOAهای keeper هستند، نه امضاکنندگان امانی.</li>
<li class=""><strong>همه وب‌هوک‌ها، ایمیل‌ها، صورت‌حساب‌ها، داشبورد و تحلیل‌ها</strong> — بدون تغییر.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="legal-and-compliance-updates">به‌روزرسانی‌های حقوقی و انطباق<a href="https://docs.orcarail.com/fa/blog/phase-7-retiring-custody/#legal-and-compliance-updates" class="hash-link" aria-label="لینک مستقیم به به‌روزرسانی‌های حقوقی و انطباق" title="لینک مستقیم به به‌روزرسانی‌های حقوقی و انطباق" translate="no">​</a></h2>
<ul>
<li class=""><strong>شرایط استفاده</strong>: جمله «OrcaRail در طول تسویه پرداخت، وجوه EVM یا سولانا را نگهداری نمی‌کند» به یک گزاره واقعی تبدیل می‌شود، نه متنی آرمانی.</li>
<li class=""><strong>سیاست حریم خصوصی</strong>: حذف اشاره‌ها به داده‌های seed ذخیره‌شده.</li>
<li class=""><strong>دامنه SOC2</strong>: کنترل‌های امانت‌داری کوچک می‌شوند؛ یافته‌های حسابرسی به سطح جدید و کوچک‌تر نگاشت می‌شوند.</li>
<li class=""><strong>وضعیت به‌عنوان انتقال‌دهنده پول</strong>: بازبینی دوباره با مشاور حقوقی. نقاط تماس کمتر با امانت‌داری تحلیل را در چند حوزه قضایی ساده‌تر می‌کند.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="postmortem">گزارش پس از رخداد<a href="https://docs.orcarail.com/fa/blog/phase-7-retiring-custody/#postmortem" class="hash-link" aria-label="لینک مستقیم به گزارش پس از رخداد" title="لینک مستقیم به گزارش پس از رخداد" translate="no">​</a></h2>
<p>یک مطلب همراه آموخته‌های مراحل ۰ تا ۷ را خلاصه می‌کند: چه چیزی بیش از انتظار طول کشید، چه چیزی روان‌تر پیش رفت، هزینه واقعی مهندسی غیرامانی شدن چه بود و فروشندگان چه واکنشی نشان دادند. زمان‌بندی مورد انتظار: یک مطلب ظرف ۳۰ روز پس از انتشار مرحله ۷.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="deprecations-none-new">موارد منسوخ‌شده (مورد جدیدی نیست)<a href="https://docs.orcarail.com/fa/blog/phase-7-retiring-custody/#deprecations-none-new" class="hash-link" aria-label="لینک مستقیم به موارد منسوخ‌شده (مورد جدیدی نیست)" title="لینک مستقیم به موارد منسوخ‌شده (مورد جدیدی نیست)" translate="no">​</a></h2>
<p>این مرحله خودش همان منسوخ‌سازی است. همه مسیرهای دارای پرچم <code>useOnChainReceiver</code> به‌طور پیش‌فرض فعال می‌شوند و پرچم حذف می‌شود.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="migration-plan">برنامه مهاجرت<a href="https://docs.orcarail.com/fa/blog/phase-7-retiring-custody/#migration-plan" class="hash-link" aria-label="لینک مستقیم به برنامه مهاجرت" title="لینک مستقیم به برنامه مهاجرت" translate="no">​</a></h2>
<p>تا زمان اجرای مرحله ۷، همه پرداخت‌ها و اشتراک‌های جدید بیش از ۱۲ ماه است که غیرامانی بوده‌اند. مهاجرت درباره دنباله بلند لینک‌های قدیمی است:</p>
<ul>
<li class=""><strong>لینک‌های پرداخت باز قدیمی</strong> پس از انقضا ← تسویه خرده‌های باقی‌مانده با یک اسکریپت یک‌باره و سپس توقف.</li>
<li class=""><strong>اشتراک‌های قدیمی</strong> که هرگز مهاجرت نکردند ← اطلاع‌رسانی ایمیلی ۳۰ روز پیش از خاموشی، پیشنهاد مهاجرت با یک کلیک در داشبورد، و تعلیق برداشت خودکار در صورت عدم مهاجرت.</li>
<li class=""><strong>موجودی‌های باقی‌مانده روی آدرس‌های واریز قدیمی</strong> ← برای آخرین بار با مسیر drain قدیمی به آدرس‌های برداشت فروشنده جاروب می‌شوند و سپس کلیدها بازنشسته می‌شوند.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="risks-and-mitigations">ریسک‌ها و راهکارها<a href="https://docs.orcarail.com/fa/blog/phase-7-retiring-custody/#risks-and-mitigations" class="hash-link" aria-label="لینک مستقیم به ریسک‌ها و راهکارها" title="لینک مستقیم به ریسک‌ها و راهکارها" translate="no">​</a></h2>
<ul>
<li class=""><strong>خرده‌های باقی‌مانده روی آدرس‌های قدیمی</strong>. راهکار: اجرای اسکریپت جاروب نهایی پیش از از رده خارج کردن؛ انتشار هر خرده غیرقابل بازیابی در یک گزارش عمومی.</li>
<li class=""><strong>ریسک حقوقی حذف زودهنگام</strong>. راهکار: بایگانی هفت‌ساله ردیف‌های seed رمزنگاری‌شده (که بدون کلید رمزنگاری، که در یک مراسم نابود می‌شود، هرگز قابل رمزگشایی نیستند)؛ حسابرسان همچنان می‌توانند وضعیت تاریخی را بررسی کنند.</li>
<li class=""><strong>کسی به ساختار API مستندنشده‌ای وابسته است</strong>. راهکار: اطلاعیه عمومی منسوخ‌سازی ۹۰ روزه؛ ثبت در changelog مربوط به API؛ تماس هدفمند با فروشندگان اصلی.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="status-checklist">چک‌لیست وضعیت<a href="https://docs.orcarail.com/fa/blog/phase-7-retiring-custody/#status-checklist" class="hash-link" aria-label="لینک مستقیم به چک‌لیست وضعیت" title="لینک مستقیم به چک‌لیست وضعیت" translate="no">​</a></h2>
<ul class="contains-task-list containsTaskList_mC6p">
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->همه فروشندگان EVM + SOL دست‌کم ۹۰ روز روی جریان غیرامانی</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->صفر شدن اشتراک‌های قدیمی باقی‌مانده</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->تکمیل اسکریپت جاروب نهایی</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->تکمیل مهاجرت <code>hd_wallet_seed</code> به بایگانی سرد</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->ادغام حذف‌های کد</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->به‌روزرسانی و انتشار شرایط استفاده + سیاست حریم خصوصی</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->انتشار مطلب گزارش پس از رخداد</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-end-of-the-roadmap">پایان نقشه راه<a href="https://docs.orcarail.com/fa/blog/phase-7-retiring-custody/#the-end-of-the-roadmap" class="hash-link" aria-label="لینک مستقیم به پایان نقشه راه" title="لینک مستقیم به پایان نقشه راه" translate="no">​</a></h2>
<p>پس از مرحله ۷، وضعیت امانت‌داری این است:</p>
<ul>
<li class=""><strong>EVM، سولانا</strong>: غیرامانی. OrcaRail هیچ داده seedی نگه نمی‌دارد.</li>
<li class=""><strong>بیت‌کوین</strong>: امانت‌داری کاهش‌یافته از طریق مولتی‌سیگ دو از دو با امضاکننده فروشنده.</li>
<li class=""><strong>لحظه در حال انتقال</strong>: روی EVM/SOL حذف شده؛ روی BTC به مسیر بازپرداخت مولتی‌سیگ کاهش یافته.</li>
</ul>
<p>این همان هدفی است که در <a class="" href="https://docs.orcarail.com/fa/blog/non-custodial-roadmap/">نقشه راه غیرامانی</a> دنبال می‌کردیم.</p>
<hr>
<p>مستندات مرجع: <strong><a class="" href="https://docs.orcarail.com/fa/docs/non-custodial/phases/phase-7-retire-custody/">وضعیت مرحله ۷</a></strong> · <strong><a class="" href="https://docs.orcarail.com/fa/docs/non-custodial/security-model/">مدل امنیتی</a></strong> · <strong><a class="" href="https://docs.orcarail.com/fa/docs/non-custodial/roadmap/">نقشه راه</a></strong></p>]]></content>
        <author>
            <name>OrcaRail</name>
            <uri>https://orcarail.com</uri>
        </author>
        <category label="Payments" term="Payments"/>
        <category label="Web3" term="Web3"/>
        <category label="Multi-Chain" term="Multi-Chain"/>
        <category label="Announcement" term="Announcement"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[مناظره پروتکل: پنج چشم‌انداز برای OrcaRail کاملاً غیرامانی]]></title>
        <id>https://docs.orcarail.com/fa/blog/protocol-debate-non-custodial-futures/</id>
        <link href="https://docs.orcarail.com/fa/blog/protocol-debate-non-custodial-futures/"/>
        <updated>2026-04-20T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[مناظره‌ای با مدیریت گرداننده میان پنج طرح برای تبدیل OrcaRail به یک پروتکل کاملاً غیرامانی؛ قرارداد هوشمند به‌علاوه API، کاملاً روی زنجیره به سبک Uniswap، یک appchain لایه ۳، شبکه intent و solver، و یک پیاده‌سازی مرجع مبتنی بر استاندارد.]]></summary>
        <content type="html"><![CDATA[<p><strong>۲۰ آوریل ۲۰۲۶</strong> — <a class="" href="https://docs.orcarail.com/fa/blog/non-custodial-roadmap/">نقشه راه غیرامانی</a> که هفته گذشته منتشر کردیم یک مسیر را توصیف می‌کند: قرارداد هوشمند روی هر زنجیره، keeper تحت اداره OrcaRail، ایندکسر تحت اداره OrcaRail و API تحت اداره OrcaRail. این مسیر امانت‌داری را حذف می‌کند، اما ما را در میانه تقریباً همه چیزهای دیگر نگه می‌دارد.</p>
<p>چند نفر از خوانندگان به‌درستی پرسیدند: اگر هدف تبدیل شدن به یک <strong>پروتکل</strong> است، چرا فقط به حذف امانت‌داری بسنده کنیم؟ اگر OrcaRail فردا خاموش شود و پرداخت‌ها همچنان جریان داشته باشند، زیرساخت چه شکلی خواهد داشت؟</p>
<p>این مطلب یک مناظره است. پنج موضع از پنج معماری متفاوت دفاع می‌کنند. یک گرداننده هر کدام را به چالش می‌کشد. هیچ‌کس به‌طور کامل برنده نمی‌شود، اما در پایان روشن‌تر می‌دانیم واقعاً چه بده‌بستان‌هایی را انتخاب می‌کنیم.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-fully-non-custodial-protocol-means-precisely">«پروتکل کاملاً غیرامانی» دقیقاً یعنی چه<a href="https://docs.orcarail.com/fa/blog/protocol-debate-non-custodial-futures/#what-fully-non-custodial-protocol-means-precisely" class="hash-link" aria-label="لینک مستقیم به «پروتکل کاملاً غیرامانی» دقیقاً یعنی چه" title="لینک مستقیم به «پروتکل کاملاً غیرامانی» دقیقاً یعنی چه" translate="no">​</a></h2>
<p>پیش از شروع مناظره به یک تعریف مشترک نیاز داریم. یک سیستم وقتی <strong>پروتکل کاملاً غیرامانی</strong> است که <strong>همه</strong> این شرایط برقرار باشند:</p>
<ol>
<li class=""><strong>امانت‌داری</strong>: هیچ طرفی وجوه کاربران را در حال انتقال نگه نمی‌دارد، حتی برای یک بلاک.</li>
<li class=""><strong>زنده‌بودن</strong>: برای انجام یک پرداخت یا برداشت مشروع اشتراک، به هیچ طرف واحدی نیاز نیست.</li>
<li class=""><strong>مقاومت در برابر سانسور</strong>: هیچ طرف واحدی نمی‌تواند تراکنش درست‌ساخت و پرداخت‌شده را رد کند.</li>
<li class=""><strong>کنترل ارتقا / تغییر</strong>: ارتقاها به رضایت چند طرف نیاز دارند، نه استقرار یک شرکت.</li>
<li class=""><strong>شفافیت</strong>: قواعدی که کاربر به آن‌ها اعتماد می‌کند به‌طور کامل روی زنجیره یا زیر یک هش قابل تأیید خواندنی‌اند.</li>
</ol>
<p>برنامه فعلی شرط (۱) را برآورده می‌کند. شرط‌های (۳)، (۴) و (۵) را تا حدی برآورده می‌کند. شرط (۲) را برآورده <strong>نمی‌کند</strong>؛ keeper و API اورکاریل هنوز برای اجرای قابل‌اعتماد مسیر عادی لازم‌اند. مناظره زیر درباره این است که آیا چهار معیار باقی‌مانده را تا انتها پیش ببریم و با چه هزینه‌ای.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-positions">مواضع<a href="https://docs.orcarail.com/fa/blog/protocol-debate-non-custodial-futures/#the-positions" class="hash-link" aria-label="لینک مستقیم به مواضع" title="لینک مستقیم به مواضع" translate="no">​</a></h2>
<p>پنج معمار وارد می‌شوند. بیایید حرفشان را بشنویم.</p>
<ul>
<li class=""><strong>عمل‌گرا</strong> — قرارداد هوشمند + API اورکاریل (نقشه راه فعلی).</li>
<li class=""><strong>حداکثرگرا</strong> — پروتکل کاملاً روی زنجیره + فرانت‌اند غیرمتمرکز («مدل Uniswap»).</li>
<li class=""><strong>مستقل</strong> — OrcaRail به‌عنوان یک لایه ۳ / appchain با پیش‌کامپایل‌های مخصوص پرداخت.</li>
<li class=""><strong>باورمند به intent</strong> — پرداخت‌کنندگان intent بیان می‌کنند؛ یک شبکه solver بدون نیاز به مجوز آن‌ها را تسویه می‌کند.</li>
<li class=""><strong>مدافع استاندارد</strong> — یک EIP باز برای لینک پرداخت و اشتراک؛ هر کسی پیاده‌سازی می‌کند.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="round-1--the-opening-statements">دور ۱: بیانیه‌های آغازین<a href="https://docs.orcarail.com/fa/blog/protocol-debate-non-custodial-futures/#round-1--the-opening-statements" class="hash-link" aria-label="لینک مستقیم به دور ۱: بیانیه‌های آغازین" title="لینک مستقیم به دور ۱: بیانیه‌های آغازین" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="pragmatist-ship-something-real-then-decentralize-the-painful-parts">عمل‌گرا: «چیز واقعی منتشر کن، بعد بخش‌های دردناک را غیرمتمرکز کن.»<a href="https://docs.orcarail.com/fa/blog/protocol-debate-non-custodial-futures/#pragmatist-ship-something-real-then-decentralize-the-painful-parts" class="hash-link" aria-label="لینک مستقیم به عمل‌گرا: «چیز واقعی منتشر کن، بعد بخش‌های دردناک را غیرمتمرکز کن.»" title="لینک مستقیم به عمل‌گرا: «چیز واقعی منتشر کن، بعد بخش‌های دردناک را غیرمتمرکز کن.»" translate="no">​</a></h3>
<p>نقشه راه همین حالا مسئله سخت (امانت‌داری) را حذف می‌کند. keeper می‌تواند هر کسی باشد؛ زمان‌بند NestJS ما یکی از چند فراخواننده است و Chainlink و Gelato را می‌توان فردا ثبت کرد. ایندکسر عمومی است: هر کسی می‌تواند مشترک همان رویدادهای <code>Paid</code> و <code>Charged</code> شود و وضعیت را بازسازی کند. «API اورکاریل» <strong>لایه تسویه نیست</strong>؛ یک لایه راحتی روی قراردادهای عمومی است. فروشندگانی که مسیر کاملاً پروتکلی را می‌خواهند، همین حالا هم می‌توانند ما را دور بزنند و مستقیم کارخانه را فراخوانی کنند.</p>
<p><strong>ادعا</strong>: ما ۸۰٪ پروتکل هستیم. ۲۰٪ باقی‌مانده ابزار است (کیف پول، داشبورد، ایمیل)، نه اعتماد. ابزارها باید قابل تکرار و بهبود بمانند.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="maximalist-no-api-events-contracts-subgraph-thats-it">حداکثرگرا: «بدون API. رویداد، قرارداد، subgraph. همین.»<a href="https://docs.orcarail.com/fa/blog/protocol-debate-non-custodial-futures/#maximalist-no-api-events-contracts-subgraph-thats-it" class="hash-link" aria-label="لینک مستقیم به حداکثرگرا: «بدون API. رویداد، قرارداد، subgraph. همین.»" title="لینک مستقیم به حداکثرگرا: «بدون API. رویداد، قرارداد، subgraph. همین.»" translate="no">​</a></h3>
<p>Uniswap وجود دارد. 1inch وجود دارد. از طریق فرانت‌اندهایی که شرکت‌هایشان میزبانی می‌کنند به آن‌ها دسترسی دارید، اما هر کدام از این فرانت‌اندها می‌تواند خاموش شود و پروتکل همچنان کار کند. «پروتکل» یعنی همین.</p>
<p>برای OrcaRail، این یعنی:</p>
<ul>
<li class="">کارخانه‌ها، هاب‌ها و تقسیم‌کننده‌ها روی همه زنجیره‌های EVM/سولانا.</li>
<li class="">یک <strong>subgraph مرجع</strong> (یا ایندکسر سولانا) که هر کسی بتواند پرس‌وجو کند.</li>
<li class="">یک <strong>فرانت‌اند غیرمتمرکز</strong> سنجاق‌شده روی IPFS/Arweave که از طریق ENS (<code>orcarail.eth</code>) بازیابی می‌شود. داشبورد فروشنده و اپ پرداخت بسته‌های ایستا هستند؛ هر انتشار مبتنی بر محتوا آدرس‌دهی می‌شود.</li>
<li class=""><strong>هیچ REST API اورکاریلی در مسیر حیاتی نیست.</strong> SDK مستقیم subgraph را صدا می‌زند. وب‌هوک‌ها توسط ایندکسر به‌عنوان سرویس (Alchemy، QuickNode، روی سرور خود) از رویدادهای روی زنجیره مشتق می‌شوند.</li>
</ul>
<p><strong>ادعا</strong>: هر چیزی که برای کار کردن پرداخت به <code>api.orcarail.com</code> نیاز داشته باشد، پروتکلی ناقص است.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="sovereign-make-payments-a-precompile-on-our-own-chain">مستقل: «پرداخت را به یک پیش‌کامپایل روی زنجیره خودمان تبدیل کن.»<a href="https://docs.orcarail.com/fa/blog/protocol-debate-non-custodial-futures/#sovereign-make-payments-a-precompile-on-our-own-chain" class="hash-link" aria-label="لینک مستقیم به مستقل: «پرداخت را به یک پیش‌کامپایل روی زنجیره خودمان تبدیل کن.»" title="لینک مستقیم به مستقل: «پرداخت را به یک پیش‌کامپایل روی زنجیره خودمان تبدیل کن.»" translate="no">​</a></h3>
<p>پرداخت‌ها به تأخیر حساس و تکراری‌اند. هر بار برای همان تقسیم همان گس را می‌پردازیم. چرا امنیت L1/L2 را برای کاربردی اجاره کنیم که می‌شود تخصصی‌اش کرد؟</p>
<p><strong>زنجیره OrcaRail</strong> را به‌صورت یک رول‌آپ OP Stack (یا appchain کازماس، یا زنجیره Arbitrum Orbit) راه بیندازیم. آن‌وقت:</p>
<ul>
<li class="">معنای لینک پرداخت یک <strong>پیش‌کامپایل</strong> است، نه یک قرارداد ۸۰ خطی Solidity. کارمزدها از چند سنت به تقریباً صفر می‌رسند.</li>
<li class="">منطق keeper در تولید بلاک گنجانده می‌شود: sequencer فراخوانی‌های <code>charge()</code> را به‌عنوان بخشی از بلاک اجرا می‌کند و با امنیت خود زنجیره قابل جریمه است.</li>
<li class="">پل به زنجیره‌های «واقعی» (اتریوم، Arbitrum، سولانا) از پل مرجع موجود + Relay استفاده می‌کند؛ زنجیره OrcaRail لایه هماهنگی است، نه لایه ارزش.</li>
<li class="">اشتراک‌ها به شهروند درجه یک تبدیل می‌شوند؛ «اشتراک» یک نوع تراکنش است، مثل «انتقال» در بیت‌کوین.</li>
</ul>
<p><strong>ادعا</strong>: ارزان‌ترین راه برای اینکه یک پروتکل در مقیاس بالا قابل‌اعتماد کار کند، این است که فضای بلاک را با mintهای تصادفی NFT شریک نشود.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="intents-believer-payers-express-intent-solvers-compete-to-settle">باورمند به intent: «پرداخت‌کنندگان قصدشان را بیان می‌کنند. solverها برای تسویه رقابت می‌کنند.»<a href="https://docs.orcarail.com/fa/blog/protocol-debate-non-custodial-futures/#intents-believer-payers-express-intent-solvers-compete-to-settle" class="hash-link" aria-label="لینک مستقیم به باورمند به intent: «پرداخت‌کنندگان قصدشان را بیان می‌کنند. solverها برای تسویه رقابت می‌کنند.»" title="لینک مستقیم به باورمند به intent: «پرداخت‌کنندگان قصدشان را بیان می‌کنند. solverها برای تسویه رقابت می‌کنند.»" translate="no">​</a></h3>
<p>پرداخت‌کننده می‌گوید: «می‌خواهم ۵۰ دلار USDC از هر کدام از کیف پول‌هایم، ظرف ساعت آینده و با کمترین کارمزد، به فروشنده X بپردازم.» این یک <strong>intent</strong> است؛ امضاشده اما هنوز تراکنش نیست.</p>
<p>یک <strong>شبکه solver</strong> بدون نیاز به مجوز (به سبک CoW، SUAVE، Anoma، relayerهای شبیه Across) intent را می‌بیند، ارزان‌ترین مسیر را پیدا می‌کند (شامل پل‌زدن و بین‌زنجیره‌ای، از هر توکنی که پرداخت‌کننده دارد) و آن را تسویه می‌کند. به solverها پاداشی پرداخت می‌شود که در intent گنجانده شده است.</p>
<p>برای اشتراک‌ها: پرداخت‌کننده یک intent دوره‌ای امضا می‌کند («ماهانه ۲۰ دلار USDC از کیف پولم به PDA این فروشنده برداشت کن، به مدت ۱۲ ماه، قابل لغو در هر زمان»). solverها رقابت می‌کنند تا هنگام سررسید <code>charge()</code> را فراخوانی کنند و کارمزد کوچکی بگیرند. اگر کمی دقیق شوید، «AVS برای keeper» در مرحله ۶ به همین تبدیل می‌شود؛ اما با یک بازار واقعی به‌جای طرح جریمه.</p>
<p><strong>ادعا</strong>: keeperها واقعاً مسئله قابلیت اطمینان نیستند؛ مسئله طراحی بازارند. بازار را بسازیم.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="standards-advocate-write-an-eip-everyone-wins-including-us">مدافع استاندارد: «یک EIP بنویس. همه برنده‌اند، از جمله ما.»<a href="https://docs.orcarail.com/fa/blog/protocol-debate-non-custodial-futures/#standards-advocate-write-an-eip-everyone-wins-including-us" class="hash-link" aria-label="لینک مستقیم به مدافع استاندارد: «یک EIP بنویس. همه برنده‌اند، از جمله ما.»" title="لینک مستقیم به مدافع استاندارد: «یک EIP بنویس. همه برنده‌اند، از جمله ما.»" translate="no">​</a></h3>
<p>لینک‌های پرداخت و اشتراک‌های OrcaRail یک جزء پایه عمومی‌اند. Shopify، Coinbase Commerce، دیگر پشته‌های پرداخت کریپتوی میزبانی‌شده و دو دوجین استارتاپ همین را می‌سازند. باید یک <strong>EIP برای لینک‌های پرداخت غیرامانی</strong> و یک <strong>EIP همراه برای اشتراک مبتنی بر allowance</strong> با پیاده‌سازی مرجع بنویسیم.</p>
<p>آن‌وقت:</p>
<ul>
<li class="">هر کیف پولی می‌تواند URL لینک پرداخت را با رابط استاندارد نمایش دهد («در حال پرداخت به فروشنده X هستید، ۵۰ دلار، USDC، غیرامانی»).</li>
<li class="">هر ایندکسری (The Graph، Goldsky، Envio) از همان ابتدا از رویدادهای استاندارد پشتیبانی می‌کند.</li>
<li class="">هر پردازشگری، حتی رقیب آینده OrcaRail، می‌تواند همان پروتکل را میزبانی کند.</li>
<li class="">محصول OrcaRail به <strong>بهترین پیاده‌سازی</strong> یک استاندارد باز تبدیل می‌شود، نه پشته‌ای بسته.</li>
</ul>
<p><strong>ادعا</strong>: بزرگ‌ترین مزیت رقابتی در پرداخت، اعتماد به <em>جزء پایه</em> است، نه به پشته یک شرکت. جزء پایه را عمومی کنیم.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="round-2--the-moderator-cross-examines">دور ۲: گرداننده به پرسش می‌کشد<a href="https://docs.orcarail.com/fa/blog/protocol-debate-non-custodial-futures/#round-2--the-moderator-cross-examines" class="hash-link" aria-label="لینک مستقیم به دور ۲: گرداننده به پرسش می‌کشد" title="لینک مستقیم به دور ۲: گرداننده به پرسش می‌کشد" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="to-pragmatist-be-honest--if-orcarail-stops-paying-the-paymaster-bill-does-alices-subscription-still-charge">از عمل‌گرا: «صادق باش؛ اگر OrcaRail قبض paymaster را نپردازد، اشتراک Alice همچنان برداشت می‌شود؟»<a href="https://docs.orcarail.com/fa/blog/protocol-debate-non-custodial-futures/#to-pragmatist-be-honest--if-orcarail-stops-paying-the-paymaster-bill-does-alices-subscription-still-charge" class="hash-link" aria-label="لینک مستقیم به از عمل‌گرا: «صادق باش؛ اگر OrcaRail قبض paymaster را نپردازد، اشتراک Alice همچنان برداشت می‌شود؟»" title="لینک مستقیم به از عمل‌گرا: «صادق باش؛ اگر OrcaRail قبض paymaster را نپردازد، اشتراک Alice همچنان برداشت می‌شود؟»" translate="no">​</a></h3>
<p><strong>عمل‌گرا</strong>: در نقشه راه فعلی، پس از مرحله ۳، بله؛ Chainlink Automation همچنان <code>charge()</code> را اجرا می‌کند. قبض paymaster برای گس keeper است و Chainlink برای همان کار از LINK استفاده می‌کند. اما <strong>فروشندگانی که برای تطبیق حساب به داشبورد OrcaRail نیاز دارند</strong> آسیب می‌بینند: ایمیل‌ها، تلاش‌های مجدد و کدهای خطای خوانا همه در API ما هستند. قراردادها کار می‌کنند؛ <strong>محصول</strong> نه.</p>
<p><strong>گرداننده</strong>: آیا «قراردادها کار می‌کنند اما آدم‌ها متوجه نمی‌شوند» واقعاً زنده‌بودن است؟</p>
<p><strong>عمل‌گرا</strong>: زنده‌بودن <em>تسویه</em> است بدون زنده‌بودن <em>تجربه کاربری</em>. این تمایز واقعی است و باید آن را بپذیریم، نه پنهانش کنیم. رفع آن هم به‌مرور ارزان است: قالب‌های ایمیلمان را منتشر کنیم، ایندکسر را متن‌باز کنیم، بگذاریم کس دیگری داشبورد را میزبانی کند. لازم نیست همه این‌ها را در مرحله ۱ انجام دهیم.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="to-maximalist-ens-pinned-ipfs-dashboards-are-great-until-a-regulator-sends-us-a-letter-about-a-merchant">از حداکثرگرا: «داشبوردهای IPFS با ENS عالی‌اند تا وقتی یک نهاد ناظر درباره یک فروشنده برایمان نامه بفرستد.»<a href="https://docs.orcarail.com/fa/blog/protocol-debate-non-custodial-futures/#to-maximalist-ens-pinned-ipfs-dashboards-are-great-until-a-regulator-sends-us-a-letter-about-a-merchant" class="hash-link" aria-label="لینک مستقیم به از حداکثرگرا: «داشبوردهای IPFS با ENS عالی‌اند تا وقتی یک نهاد ناظر درباره یک فروشنده برایمان نامه بفرستد.»" title="لینک مستقیم به از حداکثرگرا: «داشبوردهای IPFS با ENS عالی‌اند تا وقتی یک نهاد ناظر درباره یک فروشنده برایمان نامه بفرستد.»" translate="no">​</a></h3>
<p><strong>حداکثرگرا</strong>: آن‌وقت OrcaRail میزبانی آن فروشنده را در داشبورد خودش متوقف می‌کند. پروتکل از طریق فرانت‌اند دیگری، یا فرانت‌اند خود فروشنده، همچنان به او خدمت می‌دهد. این ویژگی است، نه باگ؛ مقایسه کنید با مالی سنتی که «پردازشگر حسابم را مسدود کرد» درامی تکراری است و هیچ راه‌حلی در سطح پروتکل ندارد.</p>
<p><strong>گرداننده</strong>: فروشندگانی که پردازشگر کارت اخراجشان می‌کند معمولاً از شبکه Visa هم اخراج می‌شوند. در پرداخت، زیرساخت و پردازشگر اغلب همان سانسورگرند.</p>
<p><strong>حداکثرگرا</strong>: درست است، و این دقیقاً مسئله‌ای است که پروتکل حل می‌کند. Visa نمی‌تواند اتریوم را سانسور کند. OrcaRail با معماری پروتکلی نمی‌تواند فروشندگان را در سطح زیرساخت سانسور کند؛ فقط در سطح فرانت‌اند. فرانت‌اندها قابل جایگزینی‌اند؛ زیرساخت نه.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="to-sovereign-how-do-merchants-withdraw-to-usdc-on-ethereum-if-settlement-lives-on-orcarail-chain">از مستقل: «اگر تسویه روی زنجیره OrcaRail باشد، فروشندگان چطور به USDC روی اتریوم برداشت می‌کنند؟»<a href="https://docs.orcarail.com/fa/blog/protocol-debate-non-custodial-futures/#to-sovereign-how-do-merchants-withdraw-to-usdc-on-ethereum-if-settlement-lives-on-orcarail-chain" class="hash-link" aria-label="لینک مستقیم به از مستقل: «اگر تسویه روی زنجیره OrcaRail باشد، فروشندگان چطور به USDC روی اتریوم برداشت می‌کنند؟»" title="لینک مستقیم به از مستقل: «اگر تسویه روی زنجیره OrcaRail باشد، فروشندگان چطور به USDC روی اتریوم برداشت می‌کنند؟»" translate="no">​</a></h3>
<p><strong>مستقل</strong>: همان‌طور که هر کسی از هر L2 خارج می‌شود: با پل مرجع. Relay را به‌صورت بومی یکپارچه می‌کنیم تا خروج استیبل‌کوین‌ها فوری باشد. حجم روزانه برداشت در مقایسه با حجم درون زنجیره ناچیز است.</p>
<p><strong>گرداننده</strong>: از ما می‌خواهی یک زنجیره اداره کنیم. هر زنجیره مهمی حالت‌های خرابی دارد: توقف sequencer، تأخیر در انتشار state root، خروج از پل. این خرابی‌ها <em>عمومی</em> و <em>آشکار</em>ند. «sequencer اورکاریل ۳ ساعت از کار افتاد، پرداخت‌ها در سراسر جهان متوقف شد» تیتر بدتری است از «API اورکاریل ۳ ساعت قطع بود».</p>
<p><strong>مستقل</strong>: فقط تا وقتی sequencer را غیرمتمرکز کنی تیتر بدتری است. اثبات خطا در OP Stack و توالی‌دهی مشترک (Espresso، Astria) این را به‌تدریج کمتر به ریسک یک طرف واحد تبدیل می‌کنند. درست می‌گویی که از آنجا شروع نمی‌کنیم. اما این هم درست است که نباید به‌تنهایی زنجیره اداره کنیم؛ از طریق یک شریک rollup-as-a-service با مسیری معتبر به توالی‌دهی مشترک راه‌اندازی می‌کنیم.</p>
<p><strong>گرداننده</strong>: این وابستگی‌های زیادی است.</p>
<p><strong>مستقل</strong>: هست. بده‌بستان این است: برای همیشه پرداخت گس را کنار می‌گذاریم، دیگر برای فضای بلاک mainnet نمی‌جنگیم و می‌توانیم اجزای پایه سفارشی منتشر کنیم. اگر حجم پرداخت آن‌قدر بزرگ باشد که هر کدام از این‌ها را توجیه کند، توجیه دارد. اگر نه، من اشتباه می‌کنم.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="to-intents-believer-solver-markets-have-an-mev-problem-who-protects-the-payer-from-a-solver-that-skims">از باورمند به intent: «بازارهای solver مسئله MEV دارند. چه کسی از پرداخت‌کننده در برابر solverی که سهمی برمی‌دارد محافظت می‌کند؟»<a href="https://docs.orcarail.com/fa/blog/protocol-debate-non-custodial-futures/#to-intents-believer-solver-markets-have-an-mev-problem-who-protects-the-payer-from-a-solver-that-skims" class="hash-link" aria-label="لینک مستقیم به از باورمند به intent: «بازارهای solver مسئله MEV دارند. چه کسی از پرداخت‌کننده در برابر solverی که سهمی برمی‌دارد محافظت می‌کند؟»" title="لینک مستقیم به از باورمند به intent: «بازارهای solver مسئله MEV دارند. چه کسی از پرداخت‌کننده در برابر solverی که سهمی برمی‌دارد محافظت می‌کند؟»" translate="no">​</a></h3>
<p><strong>باورمند به intent</strong>: intent با محدودیت‌های سخت امضا می‌شود. مبلغ پرداختی نمی‌تواند از آنچه پرداخت‌کننده مجاز کرده بیشتر شود. آنچه می‌تواند تغییر کند <strong>مسیر</strong> است (کدام پل، کدام DEX اگر swap لازم باشد) و <strong>زمان‌بندی</strong>. solver مخرب نمی‌تواند وجوه را به جای دیگری بفرستد؛ در بدترین حالت کند است. رقابت این را از بین می‌برد.</p>
<p><strong>گرداننده</strong>: رقابت کارمزد را در مسیرهای پرحجم <em>پایین</em> می‌آورد. پرداخت خرد ۵ دلاری USDC به USDC بین‌زنجیره‌ای که به هیچ‌کس برای حلش پول کافی نمی‌رسد چه؟</p>
<p><strong>باورمند به intent</strong>: این شکاف واقعی است. پاسخ <strong>solverهای پشتیبان</strong> است؛ OrcaRail یکی را به قیمت تمام‌شده اجرا می‌کند. بازار ۹۵٪ بالایی را پوشش می‌دهد و ما دنباله بلند را. به‌مرور، زنجیره‌های ارزان‌تر و پل‌های بهتر این شکاف را می‌بندند.</p>
<p><strong>گرداننده</strong>: یعنی تو هم keeper اجرا می‌کنی، فقط اسمش را solver گذاشته‌ای.</p>
<p><strong>باورمند به intent</strong>: keeperی که <em>یکی از چند</em> است، روی یک intent عمومی رقابت می‌کند و پشتیبان دارد؛ بله. این همان تفاوت بین «بک‌اند OrcaRail همان keeper است» و «OrcaRail یک مشارکت‌کننده در بازاری باز است» است.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="to-standards-advocate-eips-take-years-what-do-we-do-until-then">از مدافع استاندارد: «EIPها سال‌ها طول می‌کشند. تا آن موقع چه کنیم؟»<a href="https://docs.orcarail.com/fa/blog/protocol-debate-non-custodial-futures/#to-standards-advocate-eips-take-years-what-do-we-do-until-then" class="hash-link" aria-label="لینک مستقیم به از مدافع استاندارد: «EIPها سال‌ها طول می‌کشند. تا آن موقع چه کنیم؟»" title="لینک مستقیم به از مدافع استاندارد: «EIPها سال‌ها طول می‌کشند. تا آن موقع چه کنیم؟»" translate="no">​</a></h3>
<p><strong>مدافع استاندارد</strong>: اول <strong>پیاده‌سازی مرجع</strong> را طبق برنامه فعلی منتشر می‌کنی. بعد EIP را حول آنچه منتشر کرده‌ای می‌نویسی، نه از قبل. ERC-4337، ERC-721 و ERC-20 همین‌طور نوشته شدند. نقشه راه فعلی با این سازگار است؛ سطح <code>SubscriptionHub</code> با چند تغییر نام جزئی می‌تواند همان سطح ERC باشد.</p>
<p><strong>گرداننده</strong>: انتشار «مزیت رقابتی» به شکل استاندارد ریسکی ندارد؟</p>
<p><strong>مدافع استاندارد</strong>: مزیت رقابتی قرارداد نیست. مزیت رقابتی <strong>یکپارچه‌سازی‌ها، SLAها، کار انطباق، داشبوردها، تحویل‌پذیری ایمیل و اعتماد فروشندگان</strong> است. هیچ‌کدام را رقیب با خواندن یک EIP نمی‌تواند کپی کند. متن‌باز کردن سطح قرارداد رقابت را به جاهایی می‌برد که ما در آن قوی هستیم.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="round-3--where-each-position-actually-wins">دور ۳: هر موضع واقعاً کجا برنده است<a href="https://docs.orcarail.com/fa/blog/protocol-debate-non-custodial-futures/#round-3--where-each-position-actually-wins" class="hash-link" aria-label="لینک مستقیم به دور ۳: هر موضع واقعاً کجا برنده است" title="لینک مستقیم به دور ۳: هر موضع واقعاً کجا برنده است" translate="no">​</a></h2>
<p>پس از پرسش‌وپاسخ، هر موضع در ابعاد <em>مشخصی</em> قوی‌تر است. کارنامه صادقانه:</p>
<table><thead><tr><th>بُعد</th><th>عمل‌گرا</th><th>حداکثرگرا</th><th>مستقل</th><th>intent</th><th>استاندارد</th></tr></thead><tbody><tr><td>زمان انتشار مرحله ۱</td><td>سریع</td><td>کند</td><td>بسیار کند</td><td>کند</td><td>سریع</td></tr><tr><td>حذف امانت‌داری</td><td>بله</td><td>بله</td><td>بله</td><td>بله</td><td>بله</td></tr><tr><td>زنده‌بودن بدون OrcaRail</td><td>جزئی</td><td>قوی</td><td>متوسط</td><td>قوی</td><td>قوی</td></tr><tr><td>مقاومت در برابر سانسور</td><td>جزئی</td><td>قوی</td><td>متوسط</td><td>قوی</td><td>قوی</td></tr><tr><td>تجربه بین‌زنجیره‌ای</td><td>خوب</td><td>خوب</td><td>ضعیف</td><td>بهترین</td><td>خوب</td></tr><tr><td>شفافیت مقرراتی</td><td>متوسط</td><td>متوسط</td><td>ضعیف</td><td>ضعیف</td><td>بالا</td></tr><tr><td>وابستگی به زیرساخت OrcaRail</td><td>بالا</td><td>کم</td><td>بسیار بالا (زنجیره)</td><td>کم</td><td>کم</td></tr><tr><td>تمایز OrcaRail</td><td>بالا</td><td>کم</td><td>بالا</td><td>متوسط</td><td>بالا</td></tr><tr><td>ثبت‌نام فروشندگان غیرآشنا با کریپتو</td><td>بهترین</td><td>سخت‌ترین</td><td>متوسط</td><td>متوسط</td><td>متوسط</td></tr><tr><td>هزینه مهندسی</td><td>کم</td><td>متوسط</td><td>بسیار بالا</td><td>بالا</td><td>متوسط</td></tr><tr><td>خرابی قابل مشاهده برای کاربران فعلی</td><td>هیچ</td><td>قابل توجه</td><td>جدی</td><td>متوسط</td><td>کم</td></tr></tbody></table>
<p>هیچ ردیفی غالب نیست. برای همین این یک مناظره است و نه برنامه استقرار.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="round-4--moderators-synthesis">دور ۴: جمع‌بندی گرداننده<a href="https://docs.orcarail.com/fa/blog/protocol-debate-non-custodial-futures/#round-4--moderators-synthesis" class="hash-link" aria-label="لینک مستقیم به دور ۴: جمع‌بندی گرداننده" title="لینک مستقیم به دور ۴: جمع‌بندی گرداننده" translate="no">​</a></h2>
<p>این‌طور مناظره را می‌خوانم، به‌عنوان کسی که باید انتخاب کند.</p>
<p><strong>عمل‌گرا امروز برنده است</strong> چون محصول باید به انتشار ادامه دهد و ما توان توقف ۱۸ ماهه برای بازنویسی معماری را نداریم. نقشه راه فعلی نسخه‌ای اکیداً بهتر از نسخه امانی است که امروز اجرا می‌کنیم، با بهبودهای تدریجی سازگار.</p>
<p><strong>حداکثرگرا از نظر اصول برنده است</strong> و یک محدودیت واقعی را نشان می‌دهد: روزی که API ما دلیل دریافت نکردن پول یک فروشنده باشد، روزی است که دیگر پروتکل نیستیم. این همان فشاری است که باید هر تصمیم مهندسی مراحل ۱ تا ۷ را هدایت کند: ایندکسر را منتشر کن، subgraph را منتشر کن، داشبورد را زیر ENS روی IPFS سنجاق کن، نحوه نصب روی سرور خود را مستند کن. نقشه راه عمل‌گرا <strong>این را ممکن می‌کند</strong>، اما <strong>اجبارش نمی‌کند</strong>. باید اجبارش کنیم.</p>
<p><strong>مستقل برنده است اگر مقیاس توجیهش کند.</strong> زیر یک آستانه حجم، اداره زنجیره سربار است. بالای آن، اجاره فضای بلاک اتریوم برای تقسیم ۳ دلار بین شش نفر در هر بار بی‌معناست. وقتی بخش غالب حجم ما مسیرهای پرداخت‌کننده به فروشنده روی یک زنجیره باشد و بهینه‌سازی گس صرفه‌جویی قابل اندازه‌گیری در صورت مالی ایجاد کند، می‌فهمیم از آن آستانه گذشته‌ایم. هنوز نه.</p>
<p><strong>باورمند به intent در بین‌زنجیره‌ای برنده است.</strong> پرداخت‌ها ذاتاً چنددارایی و چندزنجیره‌ای‌اند. جریان پرداخت‌کننده مبتنی بر intent («به فروشنده X بپرداز، برایم مهم نیست چطور») بهترین تجربه ممکن برای پرداخت‌کننده کریپتو است. باید intentها را <strong>در لایه SDK پرداخت‌کننده</strong> بپذیریم، پیش از اینکه در لایه تسویه بپذیریم. این کار solverهای موجود (Across، deBridge، Relay) را بدون نیاز به ساختن بازاری جدید به گزینه‌ای طبیعی تبدیل می‌کند.</p>
<p><strong>مدافع استاندارد هر جا حداکثرگرا برنده است برنده است، با ریسک کمتر.</strong> نوشتن یک EIP حول آنچه در مراحل ۱ و ۲ منتشر می‌کنیم <strong>رایگان</strong> است، برای اکوسیستم مفید است و ما را کند نمی‌کند. همچنین برای فروشندگانی که برای اولین بار زیرساخت‌های کریپتو را ارزیابی می‌کنند، روایت معتبری از «ما زیرساخت می‌سازیم، نه تله» به ما می‌دهد.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-blended-answer">پاسخ ترکیبی<a href="https://docs.orcarail.com/fa/blog/protocol-debate-non-custodial-futures/#the-blended-answer" class="hash-link" aria-label="لینک مستقیم به پاسخ ترکیبی" title="لینک مستقیم به پاسخ ترکیبی" translate="no">​</a></h2>
<p>جمع‌بندی کسل‌کننده اما درست: <strong>مسیر عمل‌گرا را منتشر کن، فشار حداکثرگرا را اعمال کن، intentها را برای تجربه پرداخت‌کننده بپذیر، در طول راه EIP بنویس و مستقل را به‌عنوان گزینه مرحله ۸ به بعد، مشروط به مقیاس، نگه دار.</strong></p>
<p>به‌طور مشخص، این‌ها تعهدات تدریجی روی <a class="" href="https://docs.orcarail.com/fa/docs/non-custodial/roadmap/">نقشه راه</a> موجود است:</p>
<ul>
<li class=""><strong>M1: subgraph عمومی از مرحله ۱</strong>. همه رویدادهای <code>Paid</code> و <code>Charged</code> در یک subgraph مرجع که هر کسی بتواند پرس‌وجو کند. بدون مسدود کردن API.</li>
<li class=""><strong>M2: اپ پرداخت سنجاق‌شده روی IPFS از مرحله ۲</strong>. هر انتشار مبتنی بر محتوا آدرس‌دهی می‌شود و <code>pay.orcarail.eth</code> از طریق ENS قابل بازیابی است.</li>
<li class=""><strong>M3: کیت نصب روی سرور خود از مرحله ۳</strong>. Docker Compose + مستنداتی که به هر کسی اجازه می‌دهد داشبوردی سازگار با OrcaRail را از روی همان قراردادها اجرا کند.</li>
<li class=""><strong>M4: SDK مبتنی بر intent از مرحله ۳</strong>. <code>orcarail.pay(intent)</code> در کلاینت پرداخت‌های بین‌زنجیره‌ای را از طریق شبکه‌های solver موجود (Across/Relay) مسیریابی می‌کند. solver پشتیبان تحت اداره OrcaRail برای دنباله بلند.</li>
<li class=""><strong>M5: پیش‌نویس EIP از مرحله ۲</strong>. هم‌نویسی EIP لینک پرداخت با یک پردازشگر دیگر یا یک تیم کیف پول، بر پایه <code>SubscriptionHub</code> ما.</li>
<li class=""><strong>M6: ارزیابی فصلی گزینه مستقل</strong> در کنار <a class="" href="https://docs.orcarail.com/fa/docs/non-custodial/eigenlayer-evaluation/">ارزیابی EigenLayer</a>. محرک‌ها: حجم پرداخت بر حسب زنجیره، هزینه گس هر پرداخت به‌عنوان درصدی از ارزش پرداخت، و تقاضای فروشندگان برای تسویه زیر یک سنت.</li>
</ul>
<p>این پنج افزوده نقشه راه موجود را از «غیرامانی» به «غیرامانی، پروتکل‌محور و بی‌طرف به‌طور معتبر» می‌برند. مراحل ۱ تا ۷ را کند نمی‌کنند. به‌عنوان جریان‌های کاری زنده و جداگانه پیگیری می‌شوند.</p>
<p>این موارد به‌عنوان <strong>مسیر P</strong> در <a class="" href="https://docs.orcarail.com/fa/blog/orcarail-protocol-whitepaper/">وایت‌پیپر پروتکل</a> رسمی شده‌اند؛ وایت‌پیپری که M1 تا M5 را به مراحل P1 تا P5 تبدیل می‌کند و M6 (زنجیره اختصاصی) را به‌عنوان P6 اختیاری نگه می‌دارد.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-we-are-explicitly-not-doing-yet">آنچه صراحتاً هنوز انجام نمی‌دهیم<a href="https://docs.orcarail.com/fa/blog/protocol-debate-non-custodial-futures/#what-we-are-explicitly-not-doing-yet" class="hash-link" aria-label="لینک مستقیم به آنچه صراحتاً هنوز انجام نمی‌دهیم" title="لینک مستقیم به آنچه صراحتاً هنوز انجام نمی‌دهیم" translate="no">​</a></h2>
<ul>
<li class=""><strong>زنجیره اختصاصی</strong>. نه در ۱۸ ماه آینده. هر فصل دوباره ارزیابی می‌شود.</li>
<li class=""><strong>توکن OrcaRail هنگام راه‌اندازی</strong>. اکنون توکنی نیست. توکن حاکمیتی آینده برای پس از غیرمتمرکزسازی <strong>به‌عنوان گزینه رزرو شده است</strong> (برای موضع کامل <a class="" href="https://docs.orcarail.com/fa/blog/orcarail-protocol-whitepaper/">وایت‌پیپر پروتکل</a> را ببینید). بدون پیش‌فروش، بدون تخصیص، بدون امتیاز.</li>
<li class=""><strong>مسیر کاملاً روی زنجیره حداکثرگرا بدون هیچ API</strong>. محصول به سطوح خوانا برای انسان نیاز دارد و فروشندگان وقتی مشکلی پیش می‌آید به کسی نیاز دارند که با او تماس بگیرند. استفاده بدون API را <em>ممکن</em> می‌کنیم، نه <em>الزامی</em>.</li>
<li class=""><strong>شبکه solver اختصاصی خودمان</strong>. از شبکه‌های موجود استفاده می‌کنیم. ممکن است برای مسیرهای دنباله بلندی که solverهای موجود نادیده می‌گیرند یک <strong>solver پشتیبان به قیمت تمام‌شده</strong> اجرا کنیم، اما شبکه رقیب جدیدی راه نمی‌اندازیم.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="where-this-lands">به کجا می‌رسیم<a href="https://docs.orcarail.com/fa/blog/protocol-debate-non-custodial-futures/#where-this-lands" class="hash-link" aria-label="لینک مستقیم به به کجا می‌رسیم" title="لینک مستقیم به به کجا می‌رسیم" translate="no">​</a></h2>
<p>این مطلب <strong>همراه</strong> <a class="" href="https://docs.orcarail.com/fa/blog/non-custodial-roadmap/">نقشه راه غیرامانی</a> است، نه جایگزین آن. نقشه راه همچنان مراحل ۰ تا ۷ را پیگیری می‌کند. این مناظره یک محور ششم اضافه می‌کند، یعنی <em>پروتکل‌محوری</em>، که هر مرحله باید بر اساس آن هم ارزیابی شود.</p>
<p>اگر در این مناظره بودید، موضع خودتان را برایمان بفرستید. استدلال‌های مخالف قوی را منتشر می‌کنیم.</p>
<hr>
<p><strong>مطالب مرتبط</strong></p>
<ul>
<li class=""><a class="" href="https://docs.orcarail.com/fa/blog/non-custodial-roadmap/">نقشه راه غیرامانی OrcaRail</a> — نقشه راه مرجع</li>
<li class=""><a class="" href="https://docs.orcarail.com/fa/blog/why-allowance-pull-subscriptions/">چرا برداشت مبتنی بر allowance از اسکرو و session key بهتر است</a> — مناظره مدل اشتراک، با همین قالب</li>
<li class=""><a class="" href="https://docs.orcarail.com/fa/docs/non-custodial/eigenlayer-evaluation/">ارزیابی EigenLayer</a> — گزارش تصمیم همراه برای keeperهای غیرمتمرکز</li>
<li class=""><a class="" href="https://docs.orcarail.com/fa/docs/non-custodial/architecture/">معماری</a> — آنچه مسیر عمل‌گرا واقعاً می‌سازد</li>
</ul>]]></content>
        <author>
            <name>OrcaRail</name>
            <uri>https://orcarail.com</uri>
        </author>
        <category label="Payments" term="Payments"/>
        <category label="Web3" term="Web3"/>
        <category label="Multi-Chain" term="Multi-Chain"/>
        <category label="Stablecoins" term="Stablecoins"/>
        <category label="Subscriptions" term="Subscriptions"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[چرا برداشت مبتنی بر allowance از اسکرو و session key بهتر است]]></title>
        <id>https://docs.orcarail.com/fa/blog/why-allowance-pull-subscriptions/</id>
        <link href="https://docs.orcarail.com/fa/blog/why-allowance-pull-subscriptions/"/>
        <updated>2026-04-20T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[گفت‌وگوی طراحی پشت مدل اشتراک غیرامانی OrcaRail. چرا approve + برداشت در ERC-20 (و delegate در SPL روی سولانا) برای اشتراک کریپتو از سپرده اسکرو و کیف پول هوشمند با session key بهتر است.]]></summary>
        <content type="html"><![CDATA[<p><strong>۲۰ آوریل ۲۰۲۶</strong> — هر محصول اشتراک کریپتو باید یک مسئله را حل کند: پرداخت‌کننده چطور پرداخت‌های آینده را مجاز کند بدون اینکه امانت‌داری را واگذار کند؟ سه پاسخ واقع‌بینانه وجود دارد. ما <strong>برداشت مبتنی بر allowance</strong> را انتخاب کردیم و این مطلب دلیلش را توضیح می‌دهد.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-three-models">سه مدل<a href="https://docs.orcarail.com/fa/blog/why-allowance-pull-subscriptions/#the-three-models" class="hash-link" aria-label="لینک مستقیم به سه مدل" title="لینک مستقیم به سه مدل" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-allowance-pull-erc-20-approve--spl-delegate">۱. برداشت مبتنی بر allowance (approve در ERC-20 + delegate در SPL)<a href="https://docs.orcarail.com/fa/blog/why-allowance-pull-subscriptions/#1-allowance-pull-erc-20-approve--spl-delegate" class="hash-link" aria-label="لینک مستقیم به ۱. برداشت مبتنی بر allowance (approve در ERC-20 + delegate در SPL)" title="لینک مستقیم به ۱. برداشت مبتنی بر allowance (approve در ERC-20 + delegate در SPL)" translate="no">​</a></h3>
<p>پرداخت‌کننده یک بار روی قرارداد توکن <code>approve(spender, cap)</code> را امضا می‌کند. بعداً وقتی دوره‌ای سررسید شود، spender (همان <code>SubscriptionHub</code> ما یا برنامه سولانا) <code>transferFrom</code> را فراخوانی می‌کند (EVM) یا با اختیار delegate انتقال می‌دهد (SOL). امانت‌داری نزد پرداخت‌کننده می‌ماند؛ spender در طول عمر اشتراک حداکثر تا <code>cap</code> می‌تواند برداشت کند.</p>
<p>لغو: پرداخت‌کننده <code>approve(spender, 0)</code> یا <code>Revoke</code> را امضا می‌کند. از آن لحظه هیچ برداشتی موفق نمی‌شود.</p>
<p>این همان چیزی است که <a class="" href="https://docs.orcarail.com/fa/docs/subscriptions/auto-charge/">برداشت خودکار</a> امروز استفاده می‌کند. <a class="" href="https://docs.orcarail.com/fa/blog/phase-2-allowance-pull-subscriptions/">مرحله ۲</a> spender را از یک کیف پول داغ تحت کنترل پلتفرم به یک قرارداد روی زنجیره منتقل می‌کند، اما سمت پرداخت‌کننده تغییری نمی‌کند.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-escrow-deposit">۲. سپرده اسکرو<a href="https://docs.orcarail.com/fa/blog/why-allowance-pull-subscriptions/#2-escrow-deposit" class="hash-link" aria-label="لینک مستقیم به ۲. سپرده اسکرو" title="لینک مستقیم به ۲. سپرده اسکرو" translate="no">​</a></h3>
<p>پرداخت‌کننده وجوه N دوره را در یک قرارداد اسکرو مخصوص هر اشتراک واریز می‌کند. قرارداد طبق زمان‌بندی وجه را به فروشنده آزاد می‌کند. پرداخت‌کننده هر زمان می‌تواند موجودی استفاده‌نشده (منهای دوره‌های پرداخت‌شده) را برداشت کند.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-smart-wallet-with-session-keys">۳. کیف پول هوشمند با session key<a href="https://docs.orcarail.com/fa/blog/why-allowance-pull-subscriptions/#3-smart-wallet-with-session-keys" class="hash-link" aria-label="لینک مستقیم به ۳. کیف پول هوشمند با session key" title="لینک مستقیم به ۳. کیف پول هوشمند با session key" translate="no">​</a></h3>
<p>پرداخت‌کننده از کیف پول هوشمند ERC-4337 استفاده می‌کند و یک session key با دامنه محدود به قرارداد اشتراک می‌دهد. session key فقط کارهایی را می‌تواند انجام دهد که دامنه‌اش اجازه می‌دهد (مثلاً «انتقال حداکثر X دلار USDC در هر ۳۰ روز به این آدرس»). پرداخت‌کننده با حذف session key مجوز را لغو می‌کند.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-scoring">امتیازدهی<a href="https://docs.orcarail.com/fa/blog/why-allowance-pull-subscriptions/#the-scoring" class="hash-link" aria-label="لینک مستقیم به امتیازدهی" title="لینک مستقیم به امتیازدهی" translate="no">​</a></h2>
<p>هر سه را روی پنج محور ارزیابی کردیم:</p>
<table><thead><tr><th>محور</th><th>برداشت مبتنی بر allowance</th><th>اسکرو</th><th>session key</th></tr></thead><tbody><tr><td>امانت‌داری در طول اشتراک فعال</td><td>پرداخت‌کننده</td><td>قرارداد اسکرو</td><td>پرداخت‌کننده (از طریق کیف پول هوشمند)</td></tr><tr><td>گام‌های راه‌اندازی برای پرداخت‌کننده</td><td>۱ امضا</td><td>۱ واریز (با گس)</td><td>۱ ثبت‌نام در کیف پول 4337</td></tr><tr><td>سازگاری کیف پول پرداخت‌کننده</td><td>همه کیف پول‌ها</td><td>همه کیف پول‌ها</td><td>فقط کیف پول‌های 4337</td></tr><tr><td>وجوه قفل‌شده / سرمایه در گردش</td><td>ندارد</td><td>N ماه قفل</td><td>ندارد</td></tr><tr><td>تجربه لغو</td><td>لغو approve</td><td>برداشت + لغو</td><td>حذف session key</td></tr><tr><td>ریسک keeper</td><td>هر فراخواننده‌ای</td><td>هر فراخواننده‌ای</td><td>هر فراخواننده‌ای</td></tr><tr><td>پیچیدگی سمت فروشنده</td><td>حداقلی</td><td>حسابداری آزادسازی</td><td>راه‌اندازی bundler در 4337</td></tr><tr><td>کار با MetaMask / Phantom</td><td>بله</td><td>بله</td><td>نه به‌صورت بومی</td></tr><tr><td>کار با Ledger / سخت‌افزاری</td><td>بله</td><td>بله</td><td>جزئی</td></tr><tr><td>شفافیت مقرراتی</td><td>بالا</td><td>کمتر (بوی اسکرو می‌دهد)</td><td>بالا</td></tr></tbody></table>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="why-not-escrow">چرا اسکرو نه<a href="https://docs.orcarail.com/fa/blog/why-allowance-pull-subscriptions/#why-not-escrow" class="hash-link" aria-label="لینک مستقیم به چرا اسکرو نه" title="لینک مستقیم به چرا اسکرو نه" translate="no">​</a></h3>
<p>اسکرو جذاب‌ترین شعار را دارد («وجوه پرداخت‌کننده در قرارداد قفل است، نه نزد یک شرکت») اما بدترین تجربه واقعی را:</p>
<ul>
<li class="">پرداخت‌کنندگان دوست ندارند وجوه N ماه را قفل کنند. اشتراک ماهانه ۲۰ دلاری با اسکروی ۱۲ ماهه یعنی ۲۴۰ دلار قفل‌شده. سقفی روی نرخ تبدیل.</li>
<li class="">برداشت‌ها پیچیده می‌شوند: قرارداد باید دوره‌های پرداخت‌شده و نشده را پیگیری کند، بازپرداخت جزئی را مدیریت کند و جلوی دسترسی فروشنده به وجوه آینده را بگیرد.</li>
<li class="">«اسکرویی که وجوه مشتری را نگه می‌دارد» در چند حوزه قضایی بوی مقرراتی دارد که «allowance به یک قرارداد هوشمند» ندارد.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="why-not-session-keys">چرا session key نه<a href="https://docs.orcarail.com/fa/blog/why-allowance-pull-subscriptions/#why-not-session-keys" class="hash-link" aria-label="لینک مستقیم به چرا session key نه" title="لینک مستقیم به چرا session key نه" translate="no">​</a></h3>
<p>session key روی کیف پول‌های هوشمند 4337 زیباست. اما لازمه‌اش این است که کیف پول پرداخت‌کننده هوشمند باشد. بیشتر پرداخت‌کنندگان در ۲۰۲۶ هنوز از EOA استفاده می‌کنند (MetaMask، Rabby، کیف پول‌های سخت‌افزاری، امضاکنندگان Safe) و پرداخت‌کنندگان سولانا از کیف پول‌های keypair به سبک Phantom. اجبار به ثبت‌نام در 4337 برای یک اشتراک، نرخ تبدیل را نابود می‌کند.</p>
<p>مسیری هست که در آن 4337 کیف پول پیش‌فرض پرداخت‌کننده شود و session key ساده شود. هنوز به آنجا نرسیده‌ایم.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="why-allowance-pull-wins-today">چرا امروز برداشت مبتنی بر allowance برنده است<a href="https://docs.orcarail.com/fa/blog/why-allowance-pull-subscriptions/#why-allowance-pull-wins-today" class="hash-link" aria-label="لینک مستقیم به چرا امروز برداشت مبتنی بر allowance برنده است" title="لینک مستقیم به چرا امروز برداشت مبتنی بر allowance برنده است" translate="no">​</a></h3>
<ul>
<li class=""><strong>بدون هیچ تغییری در کیف پول پرداخت‌کننده</strong>. هر کیف پولی که بتواند <code>approve</code> در ERC-20 را امضا کند کار می‌کند؛ یعنی همه.</li>
<li class=""><strong>بدون وجوه قفل‌شده</strong>. امانت‌داری نزد پرداخت‌کننده می‌ماند؛ برداشت درست سر موعد انجام می‌شود.</li>
<li class=""><strong>لغو همگانی است</strong>. <code>approve(0)</code> یا <code>Revoke</code> جزئی است که رابط هر کیف پولی از قبل نشان می‌دهد.</li>
<li class=""><strong>keeper کالایی عمومی است</strong>. <code>SubscriptionHub.charge(id)</code> عمومی و بدون نیاز به مجوز است. NestJS، Chainlink، Gelato یا یک AVS در EigenLayer (<a class="" href="https://docs.orcarail.com/fa/blog/phase-6-eigenlayer-keeper-avs/">مرحله ۶</a> را ببینید) همه می‌توانند فراخوانی‌اش کنند.</li>
<li class=""><strong>روایت مقرراتی ساده‌تر است</strong>. پلتفرم هرگز وجوه در حال انتقال را نگه نمی‌دارد.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="known-limitations-and-how-we-mitigate-them">محدودیت‌های شناخته‌شده و راهکارهای ما<a href="https://docs.orcarail.com/fa/blog/why-allowance-pull-subscriptions/#known-limitations-and-how-we-mitigate-them" class="hash-link" aria-label="لینک مستقیم به محدودیت‌های شناخته‌شده و راهکارهای ما" title="لینک مستقیم به محدودیت‌های شناخته‌شده و راهکارهای ما" translate="no">​</a></h2>
<p>برداشت مبتنی بر allowance بی‌نقص نیست. معایب، صادقانه:</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-infinite-approvals">۱. تأیید نامحدود<a href="https://docs.orcarail.com/fa/blog/why-allowance-pull-subscriptions/#1-infinite-approvals" class="hash-link" aria-label="لینک مستقیم به ۱. تأیید نامحدود" title="لینک مستقیم به ۱. تأیید نامحدود" translate="no">​</a></h3>
<p>کیف پول‌ها اغلب به‌طور پیش‌فرض مقدار <code>approve</code> نامحدود پیشنهاد می‌دهند. قراردادهای مخرب با allowance نامحدود کیف پول‌ها را خالی می‌کنند. راهکار ما: رابط کاربری صراحتاً تأیید <em>محدود</em> درخواست می‌کند (مثلاً <code>12 × monthly_amount</code> برای اشتراک سالانه)، رقم دلاری را نشان می‌دهد و متن «هر زمان لغو کنید» را ارائه می‌دهد. قرارداد <code>cap</code> را جدا از allowance در ERC-20 اعمال می‌کند.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-revoke-between-cycles">۲. لغو مجوز بین دو دوره<a href="https://docs.orcarail.com/fa/blog/why-allowance-pull-subscriptions/#2-revoke-between-cycles" class="hash-link" aria-label="لینک مستقیم به ۲. لغو مجوز بین دو دوره" title="لینک مستقیم به ۲. لغو مجوز بین دو دوره" translate="no">​</a></h3>
<p>پرداخت‌کننده می‌تواند در میانه اشتراک مجوز را لغو کند و برداشت بعدی ناموفق می‌شود. همان حالت خرابی کارت ذخیره‌شده‌ای که باطل شده است. با وب‌هوک + ایمیل موجود مدیریت می‌شود: <code>subscription-insufficient-allowance.hbs</code> و <code>subscription-past-due.hbs</code>.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-stale-allowance-after-price-change">۳. allowance قدیمی پس از تغییر قیمت<a href="https://docs.orcarail.com/fa/blog/why-allowance-pull-subscriptions/#3-stale-allowance-after-price-change" class="hash-link" aria-label="لینک مستقیم به ۳. allowance قدیمی پس از تغییر قیمت" title="لینک مستقیم به ۳. allowance قدیمی پس از تغییر قیمت" translate="no">​</a></h3>
<p>اگر فروشنده در میانه اشتراک قیمت را بالا ببرد، <code>cap</code> قبلی ممکن است کافی نباشد. با اصل ثابت <code>cap</code> که <code>charge()</code> را revert می‌کند و رابط فروشنده که درخواست تأیید دوباره می‌دهد مدیریت می‌شود.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="4-reorg-induced-double-charge">۴. برداشت دوباره بر اثر reorg<a href="https://docs.orcarail.com/fa/blog/why-allowance-pull-subscriptions/#4-reorg-induced-double-charge" class="hash-link" aria-label="لینک مستقیم به ۴. برداشت دوباره بر اثر reorg" title="لینک مستقیم به ۴. برداشت دوباره بر اثر reorg" translate="no">​</a></h3>
<p>رباتی که از reorg بلاک سوءاستفاده کند می‌تواند <code>charge()</code> را تکرار کند. با <code>lastChargedAt</code> یکنوا در <code>SubscriptionHub</code> مدیریت می‌شود.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-changes-for-payers-today">امروز برای پرداخت‌کنندگان چه تغییر می‌کند<a href="https://docs.orcarail.com/fa/blog/why-allowance-pull-subscriptions/#what-changes-for-payers-today" class="hash-link" aria-label="لینک مستقیم به امروز برای پرداخت‌کنندگان چه تغییر می‌کند" title="لینک مستقیم به امروز برای پرداخت‌کنندگان چه تغییر می‌کند" translate="no">​</a></h2>
<p>هیچ. جریان فعلی <a class="" href="https://docs.orcarail.com/fa/docs/subscriptions/auto-charge/">برداشت خودکار</a> از قبل <code>approve(spender, amount)</code> و <code>SPL Approve</code> را درخواست می‌کند؛ همان گام‌ها. <a class="" href="https://docs.orcarail.com/fa/blog/phase-2-allowance-pull-subscriptions/">مرحله ۲</a> spender را به آدرس یک قرارداد غیرامانی منتقل می‌کند. کیف پول شما همان صفحه مجوز را نشان می‌دهد.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-changes-for-merchants">برای فروشندگان چه تغییر می‌کند<a href="https://docs.orcarail.com/fa/blog/why-allowance-pull-subscriptions/#what-changes-for-merchants" class="hash-link" aria-label="لینک مستقیم به برای فروشندگان چه تغییر می‌کند" title="لینک مستقیم به برای فروشندگان چه تغییر می‌کند" translate="no">​</a></h2>
<p>هیچ تغییری در ساختار پاسخ API. فیلد <code>approval_spender_address</code> در شیء <code>auto_charge</code> اشتراک فقط به‌جای کیف پول داغ OrcaRail به قرارداد <code>SubscriptionHub</code> اشاره می‌کند. وب‌هوک‌ها در همان لحظه‌ها ارسال می‌شوند.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="summary">جمع‌بندی<a href="https://docs.orcarail.com/fa/blog/why-allowance-pull-subscriptions/#summary" class="hash-link" aria-label="لینک مستقیم به جمع‌بندی" title="لینک مستقیم به جمع‌بندی" translate="no">​</a></h2>
<table><thead><tr><th>ملاحظه</th><th>برنده</th></tr></thead><tbody><tr><td>تجربه ثبت‌نام پرداخت‌کننده</td><td>برداشت مبتنی بر allowance</td></tr><tr><td>سرمایه در گردش</td><td>برداشت مبتنی بر allowance / session key</td></tr><tr><td>سازگاری کیف پول</td><td>برداشت مبتنی بر allowance</td></tr><tr><td>شفافیت مقرراتی</td><td>برداشت مبتنی بر allowance / session key</td></tr><tr><td>انعطاف keeper</td><td>هر سه</td></tr><tr><td>سادگی قرارداد</td><td>برداشت مبتنی بر allowance</td></tr></tbody></table>
<p>برداشت مبتنی بر allowance در سازگاری کیف پول و سرمایه در گردش به‌طور قطعی برنده است و در همه محورهای دیگر مساوی یا برنده است. به همین دلیل اشتراک‌های OrcaRail بر پایه آن ساخته شده‌اند.</p>
<hr>
<p>مرتبط: <strong><a class="" href="https://docs.orcarail.com/fa/blog/phase-2-allowance-pull-subscriptions/">مرحله ۲: اشتراک مبتنی بر allowance</a></strong> · <strong><a class="" href="https://docs.orcarail.com/fa/docs/subscriptions/auto-charge/">مستندات برداشت خودکار</a></strong> · <strong><a class="" href="https://docs.orcarail.com/fa/docs/non-custodial/security-model/">مدل امنیتی</a></strong></p>]]></content>
        <author>
            <name>OrcaRail</name>
            <uri>https://orcarail.com</uri>
        </author>
        <category label="Subscriptions" term="Subscriptions"/>
        <category label="Payments" term="Payments"/>
        <category label="Web3" term="Web3"/>
        <category label="Stablecoins" term="Stablecoins"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[اشتراک در OrcaRail: برداشت خودکار و چندزنجیره‌ای]]></title>
        <id>https://docs.orcarail.com/fa/blog/subscriptions-autocharge-multichain/</id>
        <link href="https://docs.orcarail.com/fa/blog/subscriptions-autocharge-multichain/"/>
        <updated>2026-03-25T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[OrcaRail چطور اشتراک‌های دوره‌ای کریپتو را مدیریت می‌کند؛ لینک پرداخت در برابر برداشت خودکار، تأیید و صورت‌حساب روی زنجیره، و جایگاه چندزنجیره‌ای در شبکه‌های فروشنده، اطلاعات پرداخت‌کننده و برداشت‌ها.]]></summary>
        <content type="html"><![CDATA[<p><strong>۲۵ مارس ۲۰۲۶</strong> — OrcaRail از <strong>اشتراک‌های دوره‌ای</strong> با همان مدل API‌محور پرداخت‌های یک‌باره پشتیبانی می‌کند: شما اشتراک می‌سازید، ما دوره‌های صورت‌حساب را پیگیری می‌کنیم و پرداخت‌کنندگان هر دوره را تکمیل می‌کنند؛ یا با <strong>باز کردن لینک پرداخت</strong> یا با <strong>برداشت خودکار</strong>، که در آن پس از یک تأیید یک‌باره روی زنجیره به ما اجازه می‌دهند هر دوره استیبل‌کوین برداشت کنیم.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="why-subscriptions-on-orcarail">چرا اشتراک در OrcaRail<a href="https://docs.orcarail.com/fa/blog/subscriptions-autocharge-multichain/#why-subscriptions-on-orcarail" class="hash-link" aria-label="لینک مستقیم به چرا اشتراک در OrcaRail" title="لینک مستقیم به چرا اشتراک در OrcaRail" translate="no">​</a></h2>
<p>اشتراک‌ها برای SaaS، عضویت‌ها، قراردادهای ماهانه و هر محصولی است که در <strong>بازه ثابت</strong> (روز، هفته، ماه، سال) صورت‌حساب می‌شود؛ با امکان دوره آزمایشی، سقف تعداد دوره و قواعد لغو. از همان <a class="" href="https://docs.orcarail.com/fa/docs/authentication/overview/">احراز هویت پرداخت</a> بقیه پلتفرم استفاده می‌کنید و می‌توانید با <a class="" href="https://docs.orcarail.com/fa/docs/subscriptions/webhooks/">وب‌هوک‌های اشتراک</a> به رویدادهای چرخه عمر واکنش نشان دهید.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="two-ways-to-collect-payment-links-vs-auto-charge">دو روش دریافت وجه: لینک پرداخت یا برداشت خودکار<a href="https://docs.orcarail.com/fa/blog/subscriptions-autocharge-multichain/#two-ways-to-collect-payment-links-vs-auto-charge" class="hash-link" aria-label="لینک مستقیم به دو روش دریافت وجه: لینک پرداخت یا برداشت خودکار" title="لینک مستقیم به دو روش دریافت وجه: لینک پرداخت یا برداشت خودکار" translate="no">​</a></h2>
<ul>
<li class=""><strong><code>send_payment_link</code></strong> (پیش‌فرض): در هر دوره صورت‌حساب، پرداخت‌کننده یک <strong>لینک پرداخت</strong> دریافت می‌کند (ایمیل و/یا جریان میزبانی‌شده). با باز کردن لینک پرداخت می‌کند؛ روشی آشنا برای پرداخت کریپتو که به‌راحتی با مسیرهای Relay و انتخاب کیف پول ترکیب می‌شود.</li>
<li class=""><strong><code>auto_charge</code></strong>: پرداخت‌کننده از قبل به <strong>کیف پول داغ (hot wallet)</strong> اورکاریل <strong>اجازه می‌دهد</strong> مبلغ هر دوره را در هر تمدید برداشت کند. پس از راه‌اندازی، تا وقتی موجودی و مجوز معتبر باشد، پرداخت‌کننده لازم نیست برای هر تمدید روی لینک جدیدی کلیک کند.</li>
</ul>
<p>نحوه دریافت را با <a class="" href="https://docs.orcarail.com/fa/docs/subscriptions/create-subscription/"><code>POST /api/v1/subscriptions</code></a> بسازید و تنظیم کنید؛ برای فهرست، ویرایش، توقف و لغو از <a class="" href="https://docs.orcarail.com/fa/docs/subscriptions/manage-subscriptions/">مدیریت اشتراک‌ها</a> استفاده کنید. فیلدهای کامل درخواست و نمونه‌ها در همین راهنماها آمده است.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="auto-charge-how-we-handle-it">برداشت خودکار: چطور انجامش می‌دهیم<a href="https://docs.orcarail.com/fa/blog/subscriptions-autocharge-multichain/#auto-charge-how-we-handle-it" class="hash-link" aria-label="لینک مستقیم به برداشت خودکار: چطور انجامش می‌دهیم" title="لینک مستقیم به برداشت خودکار: چطور انجامش می‌دهیم" translate="no">​</a></h2>
<ol>
<li class=""><strong>فروشنده</strong> اشتراکی با <code>collection_method: "auto_charge"</code> و فیلدهای معمول <code>amount</code>، <code>interval</code>، <code>token_id</code>، <code>network_id</code> و اطلاعات تماس پرداخت‌کننده می‌سازد.</li>
<li class=""><strong>پرداخت‌کننده</strong> صفحه اشتراک یا پرداخت دوره اول را باز می‌کند. <strong>دامنه کل تأیید</strong> را می‌بیند (مثلاً مجموع پرداخت‌های آینده‌ای که از او می‌خواهید پوشش دهد) و یک مجوز روی زنجیره امضا می‌کند:<!-- -->
<ul>
<li class="">روی زنجیره‌های <strong>EVM</strong>، این یک <strong><code>approve(spender, amount)</code></strong> استاندارد ERC-20 است که کیف پول داغ ما spender آن است.</li>
<li class="">روی <strong>سولانا</strong>، گام مشابه <strong>واگذاری (delegation) توکن SPL</strong> دست‌کم به اندازه مبلغ یک دوره به کیف پول داغ سولانای ما است.</li>
</ul>
</li>
<li class=""><strong>پرداخت‌کننده</strong> اندپوینت عمومی <strong><code>POST /api/v1/subscriptions/:id/approve-auto-charge</code></strong> را با <strong>هش تراکنش</strong> allowance (یا delegation)، <strong><code>payer_wallet_address</code></strong>، <strong><code>payer_network_id</code></strong> و <strong><code>payer_token_id</code></strong> فراخوانی می‌کند. کلید API فروشنده لازم نیست؛ پرداخت‌کننده با امضای تراکنش روی زنجیره قصد خود را ثابت کرده است.</li>
<li class=""><strong>OrcaRail روی زنجیره بررسی می‌کند</strong> که allowance یا delegation برای کیف پول داغ مورد انتظار <strong>دست‌کم یک دوره صورت‌حساب</strong> را پوشش می‌دهد و سپس برداشت خودکار را <strong>تأییدشده</strong> علامت می‌زند. پیش از هر برداشت می‌توانیم مجوز را دوباره بررسی کنیم تا مشکلات موقت RPC با لغو allowance اشتباه گرفته نشود.</li>
<li class=""><strong>در هر دوره صورت‌حساب</strong>، فرایند صورت‌حساب <strong>برداشت</strong> را انجام می‌دهد (در EVM جریانی شبیه <code>transferFrom</code> از پرداخت‌کننده به تسویه؛ در سولانا از موجودی واگذارشده استفاده می‌شود). در صورت موفقیت دوره جلو می‌رود؛ در صورت شکست مکرر (مثلاً موجودی ناکافی یا لغو مجوز) اشتراک ممکن است به <strong><code>past_due</code></strong> برود و به پرداخت‌کننده اطلاع داده شود. می‌توانید به وب‌هوک‌هایی مثل <code>subscription.payment_link.payment_failed</code> یا <code>subscription.past_due</code> گوش دهید؛ توضیحات در <a class="" href="https://docs.orcarail.com/fa/docs/subscriptions/auto-charge/">برداشت خودکار</a> و <a class="" href="https://docs.orcarail.com/fa/docs/subscriptions/webhooks/">وب‌هوک‌ها</a> آمده است.</li>
</ol>
<p><strong>لغو مجوز و روش جایگزین:</strong> اگر پرداخت‌کننده مجوز را روی زنجیره لغو کند، برداشت‌های بعدی ناموفق می‌شوند. او همچنین می‌تواند پس از لغو، <strong><code>POST .../revoke-auto-charge</code></strong> را فراخوانی کند تا وضعیت را ثبت کنیم و روش دریافت را به <strong><code>send_payment_link</code></strong> تغییر دهیم؛ همراه با ایمیل راهنما برای مدیریت اشتراک و پرداخت دوباره از طریق لینک. جزئیات در <a class="" href="https://docs.orcarail.com/fa/docs/subscriptions/auto-charge/">برداشت خودکار</a> و <a class="" href="https://docs.orcarail.com/fa/docs/subscriptions/manage-subscriptions/">مدیریت اشتراک‌ها</a> آمده است.</p>
<p><strong>امنیت و شفافیت:</strong> فقط کیف پولی که تأیید را انجام داده برای برداشت استفاده می‌شود؛ تجربه کاربری را با مجموع مبالغ و تعداد دوره‌های روشن هماهنگ کرده‌ایم تا پرداخت‌کنندگان بدانند چه چیزی را تأیید کرده‌اند. برای پلن‌های بسیار طولانی یا بی‌پایان، محدود کردن مبلغ تأییدشده و تمدید دوره‌ای تأیید را در نظر بگیرید، یا از لینک پرداخت استفاده کنید؛ <a class="" href="https://docs.orcarail.com/fa/docs/subscriptions/auto-charge/">برداشت خودکار</a> را ببینید.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="multichain-how-it-fits-subscriptions">چندزنجیره‌ای: جایگاهش در اشتراک‌ها<a href="https://docs.orcarail.com/fa/blog/subscriptions-autocharge-multichain/#multichain-how-it-fits-subscriptions" class="hash-link" aria-label="لینک مستقیم به چندزنجیره‌ای: جایگاهش در اشتراک‌ها" title="لینک مستقیم به چندزنجیره‌ای: جایگاهش در اشتراک‌ها" translate="no">​</a></h2>
<ul>
<li class=""><strong>مبنای فروشنده:</strong> هر اشتراک با یک <strong><code>network_id</code></strong> و <strong><code>token_id</code></strong> ساخته می‌شود که نحوه قیمت‌گذاری و تسویه آن را در API تعیین می‌کند؛ شبکه و دارایی «اصلی» آن پلن.</li>
<li class=""><strong>اطلاعات پرداخت‌کننده در برداشت خودکار:</strong> برداشت خودکار <strong><code>payer_network_id</code></strong> و <strong><code>payer_token_id</code></strong> را ذخیره می‌کند؛ یعنی شبکه و توکنی که پرداخت‌کننده واقعاً allowance یا delegation را روی آن تنظیم کرده است. وقتی پرداخت‌کننده از زنجیره یا دارایی پشتیبانی‌شده دیگری پرداخت کند، این مقادیر می‌توانند با فیلدهای اصلی اشتراک فرق داشته باشند؛ هماهنگ با نحوه‌ای که پیش‌فاکتور و صفحه پرداخت مسیرهای سمت پرداخت‌کننده را تعیین می‌کنند.</li>
<li class=""><strong>پوشش هم‌راستا با Relay:</strong> شبکه‌ها و ارزهای پشتیبانی‌شده با <strong><a href="https://relay.link/" target="_blank" rel="noopener noreferrer" class="">Relay</a></strong> هم‌راستا می‌مانند؛ وقتی Relay زنجیره‌ها و توکن‌ها را گسترش دهد، فهرست ما هم دنبالش می‌آید. این مدل را در <a class="" href="https://docs.orcarail.com/fa/blog/supported-networks-currencies-relay/">شبکه‌ها و ارزهای پشتیبانی‌شده: با قدرت Relay</a> خلاصه کرده‌ایم.</li>
<li class=""><strong>مقصد وجوه:</strong> فروشندگان همچنان <strong>آدرس‌های برداشت برای هر نوع زنجیره</strong> تنظیم می‌کنند (و در صورت پشتیبانی می‌توانند برای هر پرداخت جایگزین کنند). برای تصویر کامل برداشت چندزنجیره‌ای و چند آدرس برای هر زنجیره، <a class="" href="https://docs.orcarail.com/fa/blog/orcarail-multichain-withdrawals-relay/">OrcaRail چندزنجیره‌ای است: برداشت‌ها و هم‌راستایی با Relay</a> را ببینید.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="summary">جمع‌بندی<a href="https://docs.orcarail.com/fa/blog/subscriptions-autocharge-multichain/#summary" class="hash-link" aria-label="لینک مستقیم به جمع‌بندی" title="لینک مستقیم به جمع‌بندی" translate="no">​</a></h2>
<table><thead><tr><th>موضوع</th><th>رفتار OrcaRail</th></tr></thead><tbody><tr><td><strong>دریافت وجه</strong></td><td><code>send_payment_link</code> در هر دوره، یا <code>auto_charge</code> با تأیید روی زنجیره</td></tr><tr><td><strong>برداشت خودکار</strong></td><td>approve در ERC-20 روی EVM یا delegate در SPL روی سولانا ← API عمومی تأیید ← بررسی روی زنجیره ← برداشت در هر دوره، با <code>past_due</code> و وب‌هوک در صورت شکست</td></tr><tr><td><strong>لغو مجوز</strong></td><td>لغو روی زنجیره + <code>revoke-auto-charge</code> اختیاری؛ امکان بازگشت به لینک پرداخت</td></tr><tr><td><strong>چندزنجیره‌ای</strong></td><td><code>network_id</code> / <code>token_id</code> اشتراک؛ تأیید پرداخت‌کننده <code>payer_network_id</code> / <code>payer_token_id</code> را ذخیره می‌کند؛ شبکه‌های هم‌راستا با Relay؛ برداشت برای هر نوع زنجیره</td></tr></tbody></table>
<p>اشتراک در OrcaRail <strong>منابع REST اشتراک</strong> را با <strong>مجوز غیرامانی پرداخت‌کننده</strong> برای برداشت خودکار و تسویه <strong>چندزنجیره‌ای</strong> ترکیب می‌کند؛ بدون اینکه از تجربه پرداخت میزبانی‌شده و APIهایی که برای پرداخت‌های یک‌باره استفاده می‌کنید دست بکشید.</p>
<hr>
<p><strong><a href="https://app.orcarail.com/" target="_blank" rel="noopener noreferrer" class="">اپ OrcaRail</a></strong> · <strong><a href="https://docs.orcarail.com/" target="_blank" rel="noopener noreferrer" class="">مستندات</a></strong> · <strong><a href="https://relay.link/" target="_blank" rel="noopener noreferrer" class="">Relay</a></strong></p>]]></content>
        <author>
            <name>OrcaRail</name>
            <uri>https://orcarail.com</uri>
        </author>
        <category label="Announcement" term="Announcement"/>
        <category label="Payments" term="Payments"/>
        <category label="Multi-Chain" term="Multi-Chain"/>
        <category label="Web3" term="Web3"/>
        <category label="Stablecoins" term="Stablecoins"/>
        <category label="Subscriptions" term="Subscriptions"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[شبکه‌ها و ارزهای پشتیبانی‌شده: با قدرت Relay و به‌روزرسانی خودکار]]></title>
        <id>https://docs.orcarail.com/fa/blog/supported-networks-currencies-relay/</id>
        <link href="https://docs.orcarail.com/fa/blog/supported-networks-currencies-relay/"/>
        <updated>2026-03-15T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[شبکه‌ها و ارزهای پشتیبانی‌شده در OrcaRail از Relay Link می‌آیند و به‌طور خودکار همگام می‌مانند؛ وقتی Relay زنجیره یا توکنی اضافه کند، ما هم آن را داریم.]]></summary>
        <content type="html"><![CDATA[<p><strong>۱۵ مارس ۲۰۲۶</strong> — OrcaRail برای پرداخت‌ها و پل‌زدن بین زنجیره‌ها از <strong><a href="https://relay.link/" target="_blank" rel="noopener noreferrer" class="">Relay Link</a></strong> استفاده می‌کند. در نتیجه، همان <strong>شبکه‌ها و ارزهایی</strong> را پشتیبانی می‌کنیم که Relay پشتیبانی می‌کند و این‌ها <strong>به‌طور خودکار یکپارچه می‌شوند</strong>. فهرست ثابتی برای نگهداری وجود ندارد؛ وقتی Relay زنجیره‌ها و توکن‌ها را اضافه یا به‌روزرسانی کند، سیستم ما آن‌ها را دریافت می‌کند.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="where-the-list-comes-from">این فهرست از کجا می‌آید<a href="https://docs.orcarail.com/fa/blog/supported-networks-currencies-relay/#where-the-list-comes-from" class="hash-link" aria-label="لینک مستقیم به این فهرست از کجا می‌آید" title="لینک مستقیم به این فهرست از کجا می‌آید" translate="no">​</a></h2>
<p>ما فهرست جداگانه و دستی از شبکه‌ها و توکن‌های پشتیبانی‌شده نگه نمی‌داریم. به‌جای آن:</p>
<ul>
<li class=""><strong>شبکه‌ها</strong> از <strong>Chains API</strong> رله همگام می‌شوند (<a href="https://api.relay.link/chains" target="_blank" rel="noopener noreferrer" class="">api.relay.link/chains</a> برای شبکه اصلی، به‌علاوه شبکه‌های آزمایشی). فرایند seed ما رکوردهای شبکه را از داده‌های زنجیره Relay می‌سازد؛ از جمله انواع زنجیره EVM، بیت‌کوین و سولانا در جاهایی که Relay پشتیبانی می‌کند.</li>
<li class=""><strong>ارزها و توکن‌ها</strong> از <strong>Currencies v2 API</strong> رله همگام می‌شوند (<a href="https://docs.relay.link/references/api/get-currencies-v2" target="_blank" rel="noopener noreferrer" class="">get-currencies-v2</a>). توکن‌ها برای هر شبکه درج یا به‌روزرسانی می‌شوند تا هر زنجیره مجموعه درستی از دارایی‌های قابل پرداخت و قابل انتقال با پل داشته باشد.</li>
</ul>
<p>وقتی Relay زنجیره یا ارز جدیدی اضافه کند، فرایند seed/به‌روزرسانی ما آن را وارد می‌کند. شما بدون کار یکپارچه‌سازی اضافه، <strong>هم‌راستایی خودکار</strong> با پوشش Relay دارید.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-support-means">«پشتیبانی» یعنی چه<a href="https://docs.orcarail.com/fa/blog/supported-networks-currencies-relay/#what-support-means" class="hash-link" aria-label="لینک مستقیم به «پشتیبانی» یعنی چه" title="لینک مستقیم به «پشتیبانی» یعنی چه" translate="no">​</a></h2>
<p>پرداخت‌ها و (در موارد لازم) پل‌زدن از <strong>مسیرهای پشتیبانی‌شده Relay</strong> پیروی می‌کنند. Relay در حال حاضر از <strong>بیش از ۶۹ شبکه بلاکچین</strong> در این دسته‌ها پشتیبانی می‌کند:</p>
<ul>
<li class="">زنجیره‌های <strong>EVM</strong> (Ethereum، Base، Polygon، Arbitrum، Optimism و بسیاری دیگر)</li>
<li class=""><strong>بیت‌کوین</strong></li>
<li class=""><strong>سولانا</strong> (SVM)</li>
<li class=""><strong>ترون</strong></li>
</ul>
<p>پشتیبانی از توکن‌ها در هر زنجیره می‌تواند <strong>"All"</strong> (توکن‌هایی که نقدینگی Solver یا DEX دارند) یا <strong>"Limited"</strong> (فقط توکن‌هایی با <code>supportsBridging: true</code>) باشد. برای تصویر مرجع از مسیرها و توکن‌های پشتیبانی‌شده، مستندات Relay را ببینید:</p>
<ul>
<li class=""><a href="https://docs.relay.link/references/api/api_resources/supported-routes" target="_blank" rel="noopener noreferrer" class="">Supported Tokens &amp; Routes</a> — نحوه بررسی پشتیبانی از یک مسیر</li>
<li class=""><a href="https://docs.relay.link/references/api/api_resources/contract-addresses" target="_blank" rel="noopener noreferrer" class="">Contract Addresses</a> — آدرس solverها و قراردادها برای هر زنجیره</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="how-to-see-what-orcarail-supports">چطور ببینیم OrcaRail از چه چیزهایی پشتیبانی می‌کند<a href="https://docs.orcarail.com/fa/blog/supported-networks-currencies-relay/#how-to-see-what-orcarail-supports" class="hash-link" aria-label="لینک مستقیم به چطور ببینیم OrcaRail از چه چیزهایی پشتیبانی می‌کند" title="لینک مستقیم به چطور ببینیم OrcaRail از چه چیزهایی پشتیبانی می‌کند" translate="no">​</a></h2>
<p>از API ما برای دریافت مجموعه فعلی شبکه‌ها و توکن‌های موجود در OrcaRail استفاده کنید:</p>
<ul>
<li class=""><strong>شبکه‌ها:</strong> <code>GET /payments/networks</code> — فهرست همه شبکه‌های پشتیبانی‌شده (اختیاری: فیلتر با <code>?active=true</code>).</li>
<li class=""><strong>توکن‌های هر شبکه:</strong> <code>GET /payments/networks/:id/tokens</code> — فهرست توکن‌های یک شبکه (از <code>id</code> شبکه در فهرست بالا استفاده کنید).</li>
<li class=""><strong>ارزهای فیات/نمایشی:</strong> <code>GET /price/currencies</code> — فهرست ارزهای فیات پشتیبانی‌شده برای قیمت‌گذاری و پیش‌فاکتور.</li>
</ul>
<p>جزئیات کامل در مستندات <a class="" href="https://docs.orcarail.com/fa/docs/api-reference/payments/#list-networks">Payments API – فهرست شبکه‌ها / فهرست توکن‌ها</a> و <a class="" href="https://docs.orcarail.com/fa/docs/api-reference/price/#list-currencies">Price API – فهرست ارزها</a> آمده است.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="summary">جمع‌بندی<a href="https://docs.orcarail.com/fa/blog/supported-networks-currencies-relay/#summary" class="hash-link" aria-label="لینک مستقیم به جمع‌بندی" title="لینک مستقیم به جمع‌بندی" translate="no">​</a></h2>
<table><thead><tr><th>منبع</th><th>چه چیزی همگام می‌کنیم</th><th>نحوه به‌روزرسانی</th></tr></thead><tbody><tr><td><strong>شبکه‌ها</strong></td><td>از Chains API رله</td><td>از طریق seed شبکه؛ زنجیره‌های جدید ظاهر می‌شوند</td></tr><tr><td><strong>ارزها/توکن‌ها</strong></td><td>از Currencies v2 رله، برای هر شبکه</td><td>از طریق seed توکن؛ توکن‌های جدید ظاهر می‌شوند</td></tr><tr><td><strong>پوشش Relay</strong></td><td>بیش از ۶۹ زنجیره، EVM + بیت‌کوین + سولانا + ترون</td><td>Relay منبع حقیقت است؛ ما از آن پیروی می‌کنیم</td></tr></tbody></table>
<p>شبکه‌ها و ارزهای پشتیبانی‌شده در OrcaRail <strong>با قدرت Relay و به‌صورت خودکار به‌روز می‌شوند</strong>؛ یک یکپارچه‌سازی، زنجیره‌های متعدد.</p>
<hr>
<p><strong><a href="https://app.orcarail.com/" target="_blank" rel="noopener noreferrer" class="">اپ OrcaRail</a></strong> · <strong><a href="https://docs.orcarail.com/" target="_blank" rel="noopener noreferrer" class="">مستندات</a></strong> · <strong><a href="https://relay.link/" target="_blank" rel="noopener noreferrer" class="">Relay</a></strong></p>]]></content>
        <author>
            <name>OrcaRail</name>
            <uri>https://orcarail.com</uri>
        </author>
        <category label="Announcement" term="Announcement"/>
        <category label="Multi-Chain" term="Multi-Chain"/>
        <category label="Payments" term="Payments"/>
        <category label="Crypto" term="Crypto"/>
        <category label="Web3" term="Web3"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[OrcaRail چندزنجیره‌ای است: چند آدرس برداشت برای هر زنجیره و هم‌راستایی با Relay]]></title>
        <id>https://docs.orcarail.com/fa/blog/orcarail-multichain-withdrawals-relay/</id>
        <link href="https://docs.orcarail.com/fa/blog/orcarail-multichain-withdrawals-relay/"/>
        <updated>2026-03-05T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[OrcaRail چندزنجیره‌ای است و برای هر زنجیره چند آدرس برداشت پشتیبانی می‌کند. هنوز از بیت‌کوین و سولانا پشتیبانی نمی‌کنیم؛ Relay از آن‌ها پشتیبانی می‌کند و ما هم از طریق هم‌راستایی و نقشه راه همین مسیر را می‌رویم.]]></summary>
        <content type="html"><![CDATA[<p><strong>۵ مارس ۲۰۲۶</strong> — OrcaRail <strong>از پایه چندزنجیره‌ای</strong> طراحی شده است. در این مطلب تصویر روشنی از آنچه امروز پشتیبانی می‌کنیم، نحوه کار برداشت در هر زنجیره و هم‌راستایی ما با Relay درباره بیت‌کوین و سولانا ارائه می‌دهیم.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="multichain-not-every-chain-yet">چندزنجیره‌ای، اما (هنوز) نه همه زنجیره‌ها<a href="https://docs.orcarail.com/fa/blog/orcarail-multichain-withdrawals-relay/#multichain-not-every-chain-yet" class="hash-link" aria-label="لینک مستقیم به چندزنجیره‌ای، اما (هنوز) نه همه زنجیره‌ها" title="لینک مستقیم به چندزنجیره‌ای، اما (هنوز) نه همه زنجیره‌ها" translate="no">​</a></h2>
<p>OrcaRail امروز برای <strong>زنجیره‌های سازگار با EVM</strong> ساخته شده است. ما از <strong>بیت‌کوین</strong> و <strong>سولانا</strong> (یا توکن‌های بومی سولانا) به‌عنوان زنجیره‌های اصلی در جریان‌های پرداخت و برداشت <strong>پشتیبانی نمی‌کنیم</strong>. این کار سطح یکپارچه‌سازی را متمرکز و APIها را در حین رشد یکدست نگه می‌دارد.</p>
<p>اگر زیرساخت شما Ethereum، Base، Polygon، Arbitrum، Optimism یا دیگر لایه‌های ۱ و ۲ مبتنی بر EVM است، یک یکپارچه‌سازی و یک مجموعه مستندات دارید. فعلاً جریان جداگانه‌ای برای بیت‌کوین یا سولانا وجود ندارد.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="multiple-withdrawal-addresses-per-chain-type">چند آدرس برداشت برای هر نوع زنجیره<a href="https://docs.orcarail.com/fa/blog/orcarail-multichain-withdrawals-relay/#multiple-withdrawal-addresses-per-chain-type" class="hash-link" aria-label="لینک مستقیم به چند آدرس برداشت برای هر نوع زنجیره" title="لینک مستقیم به چند آدرس برداشت برای هر نوع زنجیره" translate="no">​</a></h2>
<p>ارزش واقعی «چندزنجیره‌ای» در برداشت‌ها مشخص می‌شود. در OrcaRail می‌توانید <strong>برای هر نوع زنجیره چند آدرس برداشت</strong> تنظیم کنید.</p>
<ul>
<li class=""><strong>کنترل برای هر زنجیره:</strong> برای Ethereum، Base، Polygon و غیره مقصد پیش‌فرض (یا مجموعه آدرس‌های) متفاوتی تعیین کنید تا وجوه در هر شبکه همان‌جایی برسد که می‌خواهید.</li>
<li class=""><strong>جایگزینی برای هر پرداخت:</strong> هنگام ساخت payment intent همچنان می‌توانید یک <code>withdrawal_address</code> بفرستید تا همان پرداخت به فروشنده یا خزانه روی زنجیره درست برود.</li>
<li class=""><strong>بدون گلوگاه واحد:</strong> مارکت‌پلیس، SaaS یا ساختارهای چندنهادی را بدون اجبار به عبور همه‌چیز از یک زنجیره یا یک آدرس اداره کنید.</li>
</ul>
<p>پس چندزنجیره‌ای یعنی چند شبکه و <strong>چند مقصد برداشت برای هر زنجیره</strong>؛ همه قابل تنظیم در داشبورد و از طریق API.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="relay-supports-bitcoin-and-solanaand-so-do-we-on-the-roadmap">Relay از بیت‌کوین و سولانا پشتیبانی می‌کند و ما هم (در نقشه راه)<a href="https://docs.orcarail.com/fa/blog/orcarail-multichain-withdrawals-relay/#relay-supports-bitcoin-and-solanaand-so-do-we-on-the-roadmap" class="hash-link" aria-label="لینک مستقیم به Relay از بیت‌کوین و سولانا پشتیبانی می‌کند و ما هم (در نقشه راه)" title="لینک مستقیم به Relay از بیت‌کوین و سولانا پشتیبانی می‌کند و ما هم (در نقشه راه)" translate="no">​</a></h2>
<p><strong><a href="https://relay.link/" target="_blank" rel="noopener noreferrer" class="">Relay</a></strong> در پوشش چندزنجیره‌ای خود از <strong>بیت‌کوین</strong> و <strong>سولانا</strong> (و توکن‌هایشان) پشتیبانی می‌کند. OrcaRail طوری ساخته شده که با مدل Relay هم‌راستا باشد: یک لینک، زنجیره‌های متعدد.</p>
<p>ما <em>امروز</em> از بیت‌کوین یا سولانا پشتیبانی نمی‌کنیم، اما معماری و نقشه راه ما طوری طراحی شده که <strong>وقتی آن‌ها را اضافه کنیم، همان محصول باشد</strong>: همان APIها، همان مدل برداشت (چند آدرس برای هر زنجیره) و همان داشبورد. منظور از «ما هم» این است که به همان چشم‌انداز چندزنجیره‌ای که Relay نماینده آن است، از جمله بیت‌کوین و سولانا، متعهدیم و در همان جهت گسترش می‌یابیم.</p>
<p>تا آن زمان، تجربه‌ای پایدار و EVM‌محور از پرداخت چندزنجیره‌ای دارید و روی مقصد وجوه در هر زنجیره پشتیبانی‌شده کنترل کامل دارید.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="summary">جمع‌بندی<a href="https://docs.orcarail.com/fa/blog/orcarail-multichain-withdrawals-relay/#summary" class="hash-link" aria-label="لینک مستقیم به جمع‌بندی" title="لینک مستقیم به جمع‌بندی" translate="no">​</a></h2>
<table><thead><tr><th>حوزه</th><th>OrcaRail امروز</th></tr></thead><tbody><tr><td><strong>زنجیره‌ها</strong></td><td>سازگار با EVM (Ethereum، Base، Polygon، Arbitrum، Optimism و غیره)</td></tr><tr><td><strong>بیت‌کوین / سولانا</strong></td><td>هنوز پشتیبانی نمی‌شوند؛ در نقشه راه هم‌راستا با پشتیبانی Relay</td></tr><tr><td><strong>برداشت</strong></td><td>چند آدرس برداشت برای هر نوع زنجیره؛ جایگزینی برای هر پرداخت پشتیبانی می‌شود</td></tr><tr><td><strong>Relay</strong></td><td>همان فلسفه چندزنجیره‌ای؛ پشتیبانی از زنجیره‌ها را هم‌گام با Relay گسترش می‌دهیم (بیت‌کوین، سولانا و فراتر)</td></tr></tbody></table>
<p>چندزنجیره‌ای در OrcaRail یعنی: <strong>همین حالا زنجیره‌های EVM متعدد، چند آدرس برداشت برای هر زنجیره و مسیری به سوی بیت‌کوین و سولانا هم‌گام با Relay.</strong></p>
<hr>
<p><strong><a href="https://app.orcarail.com/" target="_blank" rel="noopener noreferrer" class="">اپ OrcaRail</a></strong> · <strong><a href="https://docs.orcarail.com/" target="_blank" rel="noopener noreferrer" class="">مستندات</a></strong> · <strong><a href="https://relay.link/" target="_blank" rel="noopener noreferrer" class="">Relay</a></strong></p>]]></content>
        <author>
            <name>OrcaRail</name>
            <uri>https://orcarail.com</uri>
        </author>
        <category label="Announcement" term="Announcement"/>
        <category label="Multi-Chain" term="Multi-Chain"/>
        <category label="Payments" term="Payments"/>
        <category label="Crypto" term="Crypto"/>
        <category label="Web3" term="Web3"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[OrcaRail متولد شد: زیرساخت پرداخت کریپتو باز و چندزنجیره‌ای]]></title>
        <id>https://docs.orcarail.com/fa/blog/orcarail-born/</id>
        <link href="https://docs.orcarail.com/fa/blog/orcarail-born/"/>
        <updated>2026-01-01T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[OrcaRail استیبل‌کوین‌محور و چندزنجیره‌ای است؛ با تعرفه شفاف نسخه میزبانی‌شده (۰٫۵٪ پس از ۱٬۰۰۰ تراکنش رایگان) و نسخه رایگان برای نصب روی سرور خودتان. پرداخت ارز دیجیتال را با API و وب‌هوک‌های قابل پیش‌بینی بپذیرید.]]></summary>
        <content type="html"><![CDATA[<p><strong>۱ ژانویه ۲۰۲۶</strong> — امروز با افتخار از راه‌اندازی <strong>OrcaRail</strong> خبر می‌دهیم.</p>
<p>OrcaRail با کمک هوش مصنوعی ساخته شده و یک باور اصلی پشت آن است: <strong>پرداخت‌های کریپتو باید باز، شفاف و روی همه زنجیره‌ها در دسترس باشند.</strong> مدت‌هاست که فروشندگان و توسعه‌دهندگان مجبورند بین ابزارهای متن‌باز پیچیده و بدون نگهداری، یا درگاه‌های پرداخت گران و بسته‌ای که شما را در اکوسیستم خود قفل می‌کنند و کارمزد بالا می‌گیرند، یکی را انتخاب کنند.</p>
<p>OrcaRail را ساختیم تا این الگو را بشکنیم. OrcaRail یک <strong>پلتفرم پرداخت چندزنجیره‌ای</strong> است که منطق کسب‌وکار وب۲ را به تسویه وب۳ وصل می‌کند؛ به‌صورت <strong>میزبانی‌شده</strong> با تعرفه ساده درصدی و سطح رایگان سخاوتمندانه، یا <strong>نصب روی سرور خودتان</strong> برای استقلال کامل.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-philosophy-a-transparent-public-good">فلسفه ما: یک کالای عمومی شفاف<a href="https://docs.orcarail.com/fa/blog/orcarail-born/#the-philosophy-a-transparent-public-good" class="hash-link" aria-label="لینک مستقیم به فلسفه ما: یک کالای عمومی شفاف" title="لینک مستقیم به فلسفه ما: یک کالای عمومی شفاف" translate="no">​</a></h2>
<p>ما باور داریم زیرساخت مالی اینترنت باید یک <strong>کالای عمومی</strong> باشد. <strong>نسخه میزبانی‌شده OrcaRail</strong> برای <strong>هر تراکنش تکمیل‌شده ۰٫۵٪</strong> هزینه دارد و <strong>۱٬۰۰۰ تراکنش اول شما رایگان</strong> است؛ به این ترتیب می‌توانیم زیرساختی قابل‌اعتماد را اجرا کنیم و همچنان برای سازندگان در دسترس بمانیم. <strong>نسخه نصب روی سرور خودتان</strong> از کارمزد نرم‌افزاری OrcaRail <strong>رایگان</strong> است: آن را روی سخت‌افزار خودتان مستقر کنید و فقط هزینه زیرساخت خودتان را بپردازید. SDKهای رسمی، MCP و افزونه‌ها با مجوز MIT منتشر شده‌اند.</p>
<p>پیش‌فاکتور هر پرداخت همچنان می‌تواند <strong>اقلام اختیاری</strong> تحت کنترل شما را داشته باشد؛ مثلاً <strong>کارمزد پشتیبانی</strong> قابل تنظیم (درصدی) و <strong>کمیسیون</strong> روی کلیدهای API، به‌علاوه <strong>کارمزد پل</strong> هنگام مسیریابی بین توکن‌ها یا شبکه‌ها. این موارد در راهنمای <a class="" href="https://docs.orcarail.com/fa/docs/fees-and-limits/overview/">کارمزدها و محدودیت‌ها</a> توضیح داده شده‌اند و از تعرفه پلتفرم میزبانی‌شده جدا هستند.</p>
<p>با <strong>متن‌باز</strong> ماندن و سپردن بهبود محصول به جامعه، هدف ما زیرساختی <strong>غیرامانی</strong> و پرسرعت است که ریسک طرف مقابل کمتری از درگاه‌های بسته دارد؛ <strong>شفاف از پایه</strong>.</p>
<p>چه سازندگان از نسخه میزبانی‌شده استفاده کنند، چه آن را روی سرور خود نصب کنند یا هر دو را ترکیب کنند، با هم می‌توانیم در برابر سیلوهای پرداخت مبهم و پرکارمزد بایستیم.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-developer-experience-familiar-payment-primitives">تجربه توسعه‌دهنده: مفاهیم آشنای پرداخت<a href="https://docs.orcarail.com/fa/blog/orcarail-born/#the-developer-experience-familiar-payment-primitives" class="hash-link" aria-label="لینک مستقیم به تجربه توسعه‌دهنده: مفاهیم آشنای پرداخت" title="لینک مستقیم به تجربه توسعه‌دهنده: مفاهیم آشنای پرداخت" translate="no">​</a></h2>
<p>اگر بلدید درگاه‌های پرداخت سنتی وب۲ را یکپارچه کنید، استفاده از OrcaRail را هم بلدید. معماری ما طوری طراحی شده که وضعیت‌های قابل پیش‌بینی، جریان‌های قابل حسابرسی و وب‌هوک‌هایی امن در برابر تلاش مجدد داشته باشید.</p>
<ul>
<li class=""><strong>استیبل‌کوین در اولویت:</strong> قیمت کالاهایتان را به ارز فیات (USD/EUR) تعیین کنید و بلافاصله با USDC یا USDT تسویه کنید. ریسک نوسان را از کسب‌وکارتان حذف کنید و تجربه پرداخت روانی به مشتریان بدهید.</li>
<li class=""><strong>صفحه پرداخت آماده:</strong> از لینک‌های پرداخت میزبانی‌شده، ویجت‌های قابل جاسازی و رابط‌های سازگار با WalletConnect برای تجربه کاربری تمیز استفاده کنید.</li>
<li class=""><strong>وب‌هوک و idempotency:</strong> پایگاه داده‌تان را کاملاً با واقعیت روی زنجیره همگام نگه دارید. سیستم ما رویدادهای قابل‌اعتمادی برای وضعیت‌های <code>succeeded</code>، <code>processing</code> و <code>canceled</code> با تلاش مجدد خودکار ارسال می‌کند.</li>
<li class=""><strong>SDK برای Node.js و REST API:</strong> یک بار بسازید، همه‌جا وصل شوید.<!-- -->
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">npm install @orcarail/node</span><br></div></code></pre></div></div>
</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="multi-chain-and-multi-token-native">چندزنجیره‌ای و چندتوکنی از پایه<a href="https://docs.orcarail.com/fa/blog/orcarail-born/#multi-chain-and-multi-token-native" class="hash-link" aria-label="لینک مستقیم به چندزنجیره‌ای و چندتوکنی از پایه" title="لینک مستقیم به چندزنجیره‌ای و چندتوکنی از پایه" translate="no">​</a></h2>
<p>وب۳ پراکنده است، اما درگاه پرداخت شما نباید باشد. یک یکپارچه‌سازی دارید که بدون دردسر روی همه شبکه‌ها کار می‌کند.</p>
<p>در حال حاضر OrcaRail به‌طور پیش‌فرض از <strong>زنجیره‌های سازگار با EVM</strong> پشتیبانی می‌کند. اما همین‌جا متوقف نمی‌شویم؛ <strong>همه زنجیره‌های پشتیبانی‌شده توسط Relay در راه هستند.</strong> فناوری مسیریابی هوشمند ما به‌طور خودکار کمک می‌کند سریع‌ترین یا کم‌کارمزدترین شبکه برای هر پرداخت انتخاب شود تا مشتریان شما هیچ‌وقت به‌خاطر کارمزد گس سنگین سبد خرید را رها نکنند.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="dynamic-withdrawals-built-for-saas--marketplaces">برداشت پویا: ساخته‌شده برای SaaS و مارکت‌پلیس‌ها<a href="https://docs.orcarail.com/fa/blog/orcarail-born/#dynamic-withdrawals-built-for-saas--marketplaces" class="hash-link" aria-label="لینک مستقیم به برداشت پویا: ساخته‌شده برای SaaS و مارکت‌پلیس‌ها" title="لینک مستقیم به برداشت پویا: ساخته‌شده برای SaaS و مارکت‌پلیس‌ها" translate="no">​</a></h2>
<p>کسب‌وکارهای اینترنتی امروزی پیچیده‌اند. چه یک پلتفرم SaaS اداره کنید، چه یک مارکت‌پلیس چندفروشنده یا یک اپ اقتصاد تولیدکنندگان محتوا، مسیریابی دستی وجوه کابوس است. OrcaRail این مسئله را به‌صورت بومی حل می‌کند:</p>
<ul>
<li class=""><strong>مسیریابی برای هر پرداخت:</strong> هنگام ساخت payment intent یک <code>withdrawal_address</code> بفرستید. وقتی مشتری پرداخت می‌کند، وجه به‌طور خودکار مستقیم به کیف پول همان فروشنده فرستاده می‌شود.</li>
<li class=""><strong>مقصد پیش‌فرض:</strong> برای راه‌اندازی‌های ساده‌تر، آدرس را نفرستید تا وجوه در آدرس پیش‌فرض حساب شما تسویه شود.</li>
<li class=""><strong>تقسیم کمیسیون:</strong> پلتفرم دارید؟ روی کلیدهای API خود درصد کمیسیون تعیین کنید. سهم پلتفرم را از هر تراکنش می‌گیرید؛ این سهم به‌صورت شفاف در صفحه پرداخت محاسبه و به‌طور خودکار به آدرس برداشت خودتان فرستاده می‌شود.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="whats-next-on-the-roadmap">قدم بعدی در نقشه راه چیست؟<a href="https://docs.orcarail.com/fa/blog/orcarail-born/#whats-next-on-the-roadmap" class="hash-link" aria-label="لینک مستقیم به قدم بعدی در نقشه راه چیست؟" title="لینک مستقیم به قدم بعدی در نقشه راه چیست؟" translate="no">​</a></h2>
<p>این تازه روز اول است. هرچه بزرگ‌تر شویم، تعهدمان به اکوسیستم باز عمیق‌تر می‌شود:</p>
<ol>
<li class=""><strong>گسترش پشتیبانی از زنجیره‌ها:</strong> راه‌اندازی سریع زنجیره‌های غیر EVM از طریق یکپارچه‌سازی با Relay.</li>
<li class=""><strong>نصب روی سرور خودتان:</strong> روی زیرساخت خودتان مستقر کنید تا استقلال و حریم خصوصی داشته باشید؛ بدون هیچ کارمزد نرم‌افزاری به ازای تراکنش از سوی ما.</li>
<li class=""><strong>ابزارهای پیشرفته انطباق:</strong> فیلدهای فراداده اختیاری و یکپارچه‌سازی‌ها برای جریان‌های KYT/KYC بدون دردسر.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="try-it-feel-the-difference">امتحانش کنید: تفاوت را حس کنید<a href="https://docs.orcarail.com/fa/blog/orcarail-born/#try-it-feel-the-difference" class="hash-link" aria-label="لینک مستقیم به امتحانش کنید: تفاوت را حس کنید" title="لینک مستقیم به امتحانش کنید: تفاوت را حس کنید" translate="no">​</a></h2>
<p>از شما دعوت می‌کنیم ببینید پرداخت کریپتو چقدر می‌تواند ساده باشد.</p>
<ul>
<li class="">🚀 <strong><a href="https://app.orcarail.com/" target="_blank" rel="noopener noreferrer" class="">ساختن را شروع کنید</a></strong> — حساب بسازید، یک کلید API ایجاد کنید و در کمتر از دو دقیقه اولین لینک پرداختتان را بسازید.</li>
<li class="">🎮 <strong><a href="https://demo.orcarail.com/" target="_blank" rel="noopener noreferrer" class="">دموی زنده را امتحان کنید</a></strong> — کل جریان را از ساخت intent تا تأیید از طریق وب‌هوک آزمایش کنید.</li>
<li class="">📖 <strong><a href="https://docs.orcarail.com/" target="_blank" rel="noopener noreferrer" class="">مستندات را بخوانید</a></strong> — مرجع API، راهنمای SDKها و نمای کلی معماری را ببینید.</li>
</ul>
<p><em>آینده باید باز و شفاف باشد. بیایید با هم آن را بسازیم.</em></p>
<hr>
<p><strong><a href="https://app.orcarail.com/" target="_blank" rel="noopener noreferrer" class="">اپ OrcaRail</a></strong> · <strong><a href="https://github.com/orcarail/orcarail" target="_blank" rel="noopener noreferrer" class="">GitHub</a></strong> · <strong><a href="https://docs.orcarail.com/fa/blog/orcarail-born/#" class="">X/Twitter</a></strong></p>]]></content>
        <author>
            <name>OrcaRail</name>
            <uri>https://orcarail.com</uri>
        </author>
        <category label="Announcement" term="Announcement"/>
        <category label="Crypto" term="Crypto"/>
        <category label="Payments" term="Payments"/>
        <category label="Open Source" term="Open Source"/>
        <category label="Multi-Chain" term="Multi-Chain"/>
        <category label="Stablecoins" term="Stablecoins"/>
        <category label="Web3" term="Web3"/>
    </entry>
</feed>