بعد از گرفتن transaction hash چه کنیم: قدم بعدی برای Not found، Pending، Fail و گیرکردن در bridge
وقتی wallet یک رشته با 0x یا Solana یک transaction signature میدهد، آن را بدون شناخت شبکه در هر search box قرار ندهید. این راهنما transaction hash lookup را به workflow قابلتکرار تبدیل میکند: انتخاب chain و explorer درست، خواندن transaction، receipt و logs، یافتن failure reason و تصمیم میان wait، اصلاح parameter، تماس با support یا توقف. در پایان میتوانید یک تراکنش را مستقل بررسی و evidence لازم را بدون افشای secret آماده کنید.
در ۳۰ ثانیه تشخیص دهید تراکنش در کدام لایه است
| چه چیزی دارید | چه میدانیم | قدم بعد |
|---|---|---|
| فقط popup و بدون hash | درخواست broadcast نشده یا wallet/RPC نتیجه نداده | Wallet Activity و error دقیق را ببینید؛ نگویید «روی chain است» |
| Hash هست اما Not found | شبکهٔ اشتباه، index delay یا نپذیرفتن درخواست توسط node | Chain ID را تطبیق و کمی بعد یکبار refresh کنید |
| Pending | Transaction دیده شده اما هنوز نهایی نشده | Nonce، fee competition و tx قبلی را بررسی کنید |
| Success | Execution موفق است؛ target و asset هنوز باید بررسی شود | To، Method، Logs، transfers و balance نهایی |
| Failed/Reverted | در block قرار گرفته ولی execution rollback شده | Receipt، revert reason، params و app state |
1. ابتدا network و block explorer درست را انتخاب کنید
یک address ممکن است روی چند chain وجود داشته باشد و با وجود format مشابه، balance و history مستقل است. نام network و Chain ID را از Wallet Activity یا project page بردارید و explorer عمومی همان network را باز کنید. پیدا شدن hash بهتنهایی نشانهٔ معتبر بودن سایت نیست؛ explorer جعلی میتواند ظاهر را کپی کند و network اشتباه Not found میدهد.
- Network و account نمایشدادهشده هنگام submit را ثبت کنید.
- از documentation شبکه/پروژه وارد explorer شوید، نه تبلیغ یا DM.
- پس از paste، hostname، network badge، From و time را تطبیق دهید.
- برای Not found، hash اصلی را دوباره از wallet کپی و کمشدن کاراکتر یا اشتباهگرفتن address را رد کنید.
در testnet، mainnet و testnet میتوانند format آدرس مشابه داشته باشند ولی asset و transaction جداست. پیش از هر چیز network را بررسی کنید؛ برای «پیداشدن تراکنش» دارایی واقعی واریز نکنید.
2. فرق transaction hash، wallet address، block و contract
| شناسه | معنی | اشتباه رایج |
|---|---|---|
| Transaction hash/signature | کلید یک تراکنش مشخص | فرض success یا استفاده بهعنوان receiving address |
| Wallet address | شناسهٔ account/public key با چندین tx | انتظار receipt واحد از جستوجوی address |
| Contract/program address | کد یا program فراخوانیشده | فرض اینکه router/proxy گیرندهٔ نهایی است |
| Block number/slot | محل ثبت روی chain | یکیگرفتن block time با زمان کلیک |
| Token contract/mint | هویت نوع asset | اعتماد فقط به symbol یا icon |
Hash در EVM معمولاً با 0x شروع میشود، اما prefix بهتنهایی proof نیست. در Solana معمولاً transaction identifier را signature مینامند. Source، format و object type برگشتی explorer را با هم ببینید.
3. چرخهٔ Status: Not found، Pending، Success و Failed
Not found الزاماً failure نیست: network اشتباه، index delay، broadcast ناموفق RPC یا request ناقص wallet ممکن است علت باشد. Pending یعنی execution نهایی نشده و nonce قبلی میتواند tx بعدی را نگه دارد. Success یعنی execution انجام شده، اما فراخوانی اشتباه هم میتواند موفق باشد. Failed/Reverted یعنی tx وارد block شده و اجرای آن rollback شده است.
قدم بعدی بر اساس Status
| آنچه explorer نشان میدهد | معمولاً یعنی | حالا چه کنید |
|---|---|---|
| Transaction Hash not found (پیام Etherscan) | در شبکهٔ اشتباه جستوجو کردهاید، تراکنش تازه است و هنوز index نشده، یا اصلاً broadcast نشده است | اول شبکه را درست کنید: تراکنش BNB Chain یا Polygon در Etherscan اتریوم پیدا نمیشود و Sepolia را باید در sepolia.etherscan.io جست. اگر مطمئن نیستید کدام شبکه است، همان hash را در Blockscan (جستوجوی چندشبکهای تیم Etherscan) بگردید. اگر تازه ارسال شده، 30 ثانیه صبر و سپس refresh کنید؛ اگر پس از 1 ساعت هم نبود، از فرستنده، صرافی یا کیف پول سابقه بخواهید. تا روشن نشده، با مبلغ دیگری دوباره نفرستید. |
| Pending | تراکنش در صف است و هنوز وارد بلاک نشده | nonce و Max fee را ببینید و طبق بخش ۷ راهنمای Gwei بین صبر، Speed Up و Cancel تصمیم بگیرید؛ تراکنش تازه با پارامترهای متفاوت نفرستید. |
| Success، اما گیرنده یا کیف پول چیزی نشان نمیدهد | اجرای زنجیرهای موفق بوده؛ مشکل معمولاً در آدرس، شبکه، نمایش توکن یا منظورشدن در پلتفرم گیرنده است | در Token Transfers آدرس گیرنده و قرارداد توکن را ببینید؛ اگر کیف پول خودتان 0 نشان میدهد طبق راهنمای موجودی توکن را import کنید؛ اگر به صرافی فرستادهاید، با hash به تاریخچهٔ واریز و پشتیبانی صرافی مراجعه کنید؛ برای bridge بخش ۹ پایین را ببینید. |
| Fail / Failed (معمولاً با یک متن خطا) | تراکنش وارد بلاک شد و revert کرد: دارایی ارسال نشده، اما Gas کسر شده | با جدول خطاهای بخش ۷ تطبیق دهید، شرط را اصلاح کنید و سپس تراکنش تازه بفرستید؛ تراکنش Failed را نه میشود و نه لازم است «cancel» کرد. |
4. تصویر واقعی استاندارد: envelope و نوع transaction
تصویر زیر صفحهٔ واقعی EIP-2718 است. این استاندارد نشان میدهد transactionها میتوانند type/envelope متفاوت داشته باشند؛ تصویر تقلید تولیدشده از explorer نیست و هیچ دادهٔ wallet خصوصی در آن وجود ندارد.

5. Fieldهای صفحهٔ EVM transaction را چگونه بخوانیم
| Field | پاسخ به چه سؤال | نکتهٔ بررسی |
|---|---|---|
| Status | Execution موفق یا ناموفق | با Submitted/Seen اشتباه نشود |
| Block/Timestamp | کجا و چه وقت ثبت شده | Block time الزاماً click time نیست |
| From/To | فرستنده و مقصد مستقیم call | To میتواند router یا proxy باشد |
| Value | Native asset همراه tx | Token movement اغلب در Logs است |
| Nonce | ترتیب txهای account | Nonce قبلی Pending میتواند بعدی را متوقف کند |
| Method/Input | Function و parameterها | برای hex ناشناس source/ABI را بررسی کنید |
| Gas Used/Effective Gas Price | کار واقعی و unit price | هزینهٔ نهایی از receipt، نه max budget |
با ABI تأییدشده، explorer میتواند Method و parameters را decode کند. اگر فقط input خام میبینید، کورکورانه retry نکنید؛ expected method را در instruction برنامه پیدا کنید.
6. Receipt، Logs، Token Transfers و Internal Transactions
Transaction object میگوید چه چیزی درخواست شد؛ receipt نتیجهٔ execution را نشان میدهد. Status، Gas Used، contractAddress در deployment و logs شواهد پس از اجرا هستند.
- Logs/Events: رویداد ساختاریافتهٔ قرارداد؛ Transfer، Approval و NFT movement معمولاً از اینجا decode میشود.
- Token Transfers: نمای خوانای explorer از events؛ token contract را تطبیق دهید.
- Internal Transactions/Traces: call و value flow در execution؛ تراکنش external جداگانهای نیست که wallet امضا کرده باشد.
- Balance change: برای نتیجهٔ کاربر مفید است ولی scope هر explorer فرق دارد؛ با raw event و wallet تطبیق دهید.
نبودن Transfer event به معنی نبودن تغییر نیست؛ internal accounting، position یا approval ممکن است تغییر کرده باشد. وجود transfer هم ارزش بازار token را ثابت نمیکند.
7. ترتیب کامل عیبیابی تراکنش Failed
- Failed یا Pending؟ برای Pending ابتدا nonce و broadcast؛ این دو مشکل متفاوتاند.
- Receipt و error دقیق: Block، To، Method، Gas Used و revert reason را نگه دارید.
- Business precondition: Balance، approval، deadline، slippage، whitelist، claim limit و contract state را چک کنید.
- Gas limit یا business revert: Out of gas ممکن است estimate درست بخواهد؛ شرط صریح قرارداد با افزایش کور Gas حل نمیشود.
- پیش از retry شبیهسازی: با state/params یکسان ممکن است failure و هزینه تکرار شود.
اگر reason خالی است، Debug/Trace explorer (در صورت وجود) یا simulation فقطخواندنی برنامه را ببینید. Private key را به «پشتیبانی on-chain» ندهید و script ناشناس اجرا نکنید.
متن خطای کنار Fail: علتهای رایج و راهحل
| متن خطا | علت | چه کنید |
|---|---|---|
Out of gas | Gas Limit برای اجرا کم بوده؛ معمولاً وقتی Gas Limit را دستی پایین آوردهاید | مقدار پیشنهادی کیف پول را برگردانید و دوباره بفرستید؛ Gas Used تراکنشهای موفق اخیر همان قرارداد را مبنا بگیرید. |
ERC20: transfer amount exceeds balance / ERC20InsufficientBalance | مقدار توکن از موجودی بیشتر است (به decimals دقت کنید) | موجودی و مقدار واردشده را تطبیق دهید؛ کوین بومی برای Gas و خود توکن را جدا حساب کنید. |
ERC20: insufficient allowance / ERC20InsufficientAllowance | سقف approve کافی نیست و قرارداد نمیتواند توکن شما را بردارد | اول در صفحهٔ پروژه approve کنید (فقط به اندازهٔ همین کار) و پس از موفقیت، عملیات اصلی را انجام دهید. |
UniswapV2Router: INSUFFICIENT_OUTPUT_AMOUNT / Too little received | هنگام swap قیمت از محدودهٔ slippage شما بیرون رفته | quote را refresh کنید و دوباره امتحان کنید یا slippage را کمی بالا ببرید؛ برای اجرا شدن، slippage را خیلی زیاد نکنید چون خطر front-running بالا میرود. |
UniswapV2Router: EXPIRED / Transaction too old | تراکنش مدت زیادی Pending ماند و از deadline گذشت | دوباره ارسال کنید و کارمزد Gas فعلی را کافی بگذارید تا مدت طولانی در صف نماند. |
| پیام اختصاصی پروژه (مثل already claimed یا not whitelisted) یا Bad instruction | شرط پروژه برقرار نیست یا توکن هنوز قابل انتقال نیست | اطلاعیهٔ پروژه را ببینید یا از کانالی که در سایت رسمی پروژه آمده بپرسید؛ افزایش Gas مشکل را حل نمیکند. |
نام این خطاها از توضیح Etherscan دربارهٔ تراکنشهای ناموفق و کد منبع قراردادهای OpenZeppelin ERC-20 و Uniswap router برداشته شده است (بررسیشده در سپتامبر 2026). پروژههای دیگر ممکن است عبارت خودشان را داشته باشند، اما روش شناختن علت همین است.
8. Confirmations و finality: چه وقت ادامه دهیم
Confirmations تعداد blockهای ساختهشده پس از block تراکنش است. Requirement شبکه، bridge، exchange و app متفاوت است؛ یک عدد ثابت برای همهٔ chainها ایمن نیست. Policy عمومی گیرنده و وضعیت live chain را ملاک قرار دهید.
با اولین Success evidence را حذف نکنید. App مقصد ممکن است دیرتر index کند؛ در testnet نیز Success روی chain و Completed در task دو state جداست.
9. در L2 و bridge یک hash کل مسیر را نشان نمیدهد
L2 explorer ممکن است L1 data fee، batch یا message status را جدا نشان دهد. Bridge میتواند source lock/burn، relay و destination mint/release داشته باشد. Success در source chain به معنی رسیدن asset در destination نیست.
- Source و destination chain را ثبت کنید.
- Source hash، message ID و destination hash را نگه دارید.
- Status bridge مانند waiting/challenge/claimable/completed را بخوانید.
- برای delay به صفحهٔ ناشناس «manual sync» متصل نشوید.
در زنجیرهٔ مبدأ Success، در مقصد نرسیده: کجا ببینیم و سراغ چه کسی برویم
- به سایت رسمی همان پلی که استفاده کردهاید برگردید و صفحهٔ تاریخچهٔ تراکنش آن را باز کنید (معمولاً History، Transactions یا Activity)؛ همان کیف پول را وصل کنید یا با source hash وضعیت را ببینید.
- اگر پل message explorer دارد، آنجا هم قابل بررسی است: برای پیامهای LayerZero از LayerZero Scan (برای تستنت testnet.layerzeroscan.com) که وضعیت را Confirming، Inflight، Delivered، Failed، Blocked یا Payload Stored نشان میدهد، و برای Wormhole از Wormholescan. در حالت Delivered، hash مقصد را در explorer زنجیرهٔ مقصد ببینید؛ Confirming یا Inflight یعنی هنوز تأیید یا اجرا مانده؛ Payload Stored معمولاً باید از صفحهٔ پل یا برنامه retry شود.
- برداشت از پلهای رسمی native اغلب چندمرحلهای است: طبق مستندات Optimism، برداشت از OP Mainnet به Ethereum mainnet دورهٔ اعتراض 7 روزه دارد و در این میان باید خودتان تراکنشهای دیگری هم بفرستید. اگر صفحهٔ پل از شما prove یا claim خواست، خودتان کلیک کنید؛ وگرنه دارایی نمیرسد.
- اگر Failed یا Blocked دیدید یا زمان تخمینی صفحهٔ پل گذشت: از سایت رسمی پل (نه تبلیغ جستوجو یا لینک پیام خصوصی) به Help Center یا تیکت Discord بروید و نام زنجیرهٔ مبدأ و مقصد، source hash، message ID (در صورت وجود)، آدرس کیف پول، زمان و اسکرینشات را بدهید.
- «پشتیبانی پل» که خودش پیام خصوصی میدهد، شما را به سایت «sync/repair» میفرستد یا عبارت بازیابی میخواهد، کلاهبردار است؛ پشتیبانی واقعی به کلید خصوصی شما نیاز ندارد. اگر فریب خوردهاید، TxID، آدرسها و گفتوگوها را نگه دارید و از مسیر رسمی پشتیبانی پل و کیف پول پیگیری کنید.
10. Solana: Signature، Slot، Instruction و Program Logs
Explorerهای Solana معمولاً signature، slot، block time، fee payer، account keys، instructions، program logs، compute units و token balance changes را نشان میدهند. مدل nonce/gas price/event در EVM را عیناً به Solana تعمیم ندهید.
- Cluster یعنی mainnet، devnet یا محیط پروژه را مشخص کنید.
- Signature status و slot و سپس fee payer را ببینید.
- Instructions را باز و program و accounts را تطبیق دهید.
- در failure اولین error مرتبط در Program Logs را پیدا کنید.
- Pre/post token balances را با نتیجهٔ مورد انتظار مقایسه کنید.
11. آیا transaction hash را میتوان share کرد؟ بله، با توجه به linkability
Hash رمز عبور نیست و chain عمومی قابل جستوجوست، اما address، زمان، balance change، contractها و history را به هم متصل میکند. برای support فقط hash، network و error ضروری را بدهید و screenshot را ماسک کنید.
- Seed phrase، private key، OTP، session cookie یا wallet export هرگز ارسال نشود.
- Email، social account، extensions، notification و tabهای دیگر ماسک شوند.
- برای جلوگیری از اتصال walletها، همهٔ addressها را در یک تصویر/جدول نگذارید.
- برای DM مدعی support، از مسیر رسمی سایت دوباره تماس را شروع کنید.
12. از Wallet تا نتیجه: workflow کامل
- Hash اصلی، network و time را از Wallet Activity بگیرید.
- Explorer درست را از documentation باز کنید.
- Status را خوانده و شاخهٔ Not found/Pending/Success/Failed را انتخاب کنید.
- From، To، Method/Instruction و Value را تطبیق دهید.
- Receipt، Logs، Token Transfers، Internal calls یا Program Logs را ببینید.
- Wallet balance و app page را مقایسه و chain/app sync را جدا کنید.
- Evidence حداقلی و conclusion را ثبت کنید؛ بدون علت روشن دوباره sign نکنید.
نتیجه را در testnet task record بنویسید. برای fee از راهنمای Gwei/Gas و برای approval از راهنمای Revoke استفاده کنید.
13. سه سناریوی رایج
A: Wallet میگوید Sent، explorer میگوید Not found
Network و source hash را تطبیق دهید. در network درست کمی صبر و Wallet Activity را refresh کنید؛ بدون chain hash، RPC/error evidence را ببینید و مبلغ دیگری فوری نفرستید.
B: Status موفق است اما token دیده نمیشود
Token contract، target address و network را چک کنید. Add نشدن token به wallet، display delay، مرحلهٔ بعدی bridge یا token جعلی همنام ممکن است علت باشد.
C: Failed و Gas کم شده
Tx وارد block شده و rollback کرده؛ computation انجام شده و fee ممکن است مصرف شود. Revert reason و precondition را اصلاح و دوباره simulate کنید. Cancel، Gas خرجشده را برنمیگرداند.
14. چکلیست بررسی
- Network/Chain ID یا Solana cluster مشخص است.
- Hash از Wallet Activity خودتان است.
- Status و confirmations خوانده شده.
- From، To، Method/Instruction و Value تطبیق داده شده.
- Receipt، Logs/Transfers یا Program Logs دیده شده.
- Token contract/mint و destination تأیید شده.
- Chain state و app state جدا ثبت شده.
- Screenshot ماسک و بدون secret است.
- بدون علت روشن retry نمیشود.
پرسشهای رایج
داشتن hash یعنی transfer موفق است؟
خیر. hash فقط نشانهٔ پیدا کردن تراکنش است؛ در network درست Status، From، To و asset change را ببینید.
اگر explorer پیام «Transaction Hash not found» داد چه کنم؟
اول ببینید در کدام شبکه جستوجو میکنید: تراکنش BNB Chain، Polygon یا تستنت در Etherscan شبکهٔ اصلی اتریوم پیدا نمیشود؛ همان hash را در Blockscan جستوجو کنید. اگر تازه ارسال شده، 30 ثانیه بعد refresh کنید؛ اگر پس از 1 ساعت هم نبود، از فرستنده، صرافی یا کیف پول سابقه بخواهید و تا روشن نشده با مبلغ دیگری دوباره نفرستید.
Success است ولی asset نیست؛ چرا؟
آدرس مقصد، شبکه و قرارداد توکن را تطبیق دهید و ببینید مرحلهٔ بعدی bridge مانده یا پلتفرم گیرنده منتظر confirmation بیشتر است. تأخیر نمایش کیف پول به معنی نبودن دارایی روی زنجیره نیست؛ اگر به صرافی فرستادهاید، با hash تاریخچهٔ واریز صرافی را ببینید.
Failed را میتوان cancel کرد؟ پول کجاست؟
نه ممکن است و نه لازم: Failed یعنی تراکنش وارد بلاک شد و revert کرد؛ دارایی ارسال نشده و فقط Gas کسر شده. متن خطای کنار Status (مثل Out of gas، insufficient allowance، Too little received) را ببینید، شرط را اصلاح کنید و تراکنش تازه بفرستید.
در زنجیرهٔ مبدأ پل Success است ولی در مقصد نرسیده؛ به چه کسی مراجعه کنم؟
اول با source hash وضعیت را در صفحهٔ تاریخچهٔ سایت رسمی پل یا message explorerهایی مثل LayerZero Scan و Wormholescan ببینید؛ اگر در حال پردازش است صبر کنید و اگر claim لازم است خودتان claim کنید. در حالت Failed، Blocked یا گذشتن زمان، از سایت رسمی در Help Center تیکت ثبت کنید و source hash، نام دو زنجیره، آدرس کیف پول و زمان را بفرستید. «پشتیبانی» که خودش پیام میدهد کلاهبردار است.
دادن hash به support امن است؟
Secret نیست ولی address/activity را لینک میکند. فقط minimum data را در support رسمی بدهید و هرگز seed/private key/OTP نفرستید.
منابع
آخرین بررسی: 2026-09-28. در این نسخه قدم بعدی بر اساس وضعیت، جدول خطاهای رایج و اینکه هنگام گیرکردن در bridge کجا ببینید و سراغ چه کسی بروید اضافه شد؛ پیامهای explorer و نام وضعیتهای پل در سپتامبر 2026 بررسی شد.