ธุรกรรม Ethereum ขึ้นคำว่า “Pending” ค้างอยู่นานเกินไป ส่วนใหญ่เกิดจาก 2 สาเหตุ: ตั้งค่าแก๊สต่ำเกินไปจนไม่มีใครอยากขุดให้ หรือมีธุรกรรมก่อนหน้า (Nonce ต่ำกว่า) ค้างอยู่ก่อนแล้วบล็อกคิวทั้งหมด ข่าวดีคือแก้ได้ 2 ทางหลักโดยไม่ต้องรอเดา — “Speed Up” เร่งให้ธุรกรรมเดิมผ่านเร็วขึ้น หรือ “Cancel” ยกเลิกด้วยการส่งธุรกรรมใหม่ที่ใช้ Nonce เดียวกัน บทความนี้สอนขั้นตอนจริงบน MetaMask เวอร์ชันล่าสุด ทั้งปุ่มลัดและวิธี Custom Nonce สำหรับเคสที่ปุ่มปกติใช้ไม่ได้
📑 สารบัญ
ทำไมธุรกรรม Ethereum ถึงค้าง (Pending)
ทุกธุรกรรมที่ส่งจากกระเป๋าเดียวกันจะมีเลขกำกับลำดับเรียกว่า Nonce (เริ่มจาก 0 ไล่ขึ้นไปทีละ 1) และเครือข่าย Ethereum จะประมวลผลตามลำดับ Nonce เท่านั้น ถ้าธุรกรรมที่มี Nonce ต่ำกว่าค้างอยู่ ธุรกรรมที่ Nonce สูงกว่าจะค้างตามไปด้วยเสมอ แม้จะตั้งค่าแก๊สสูงแค่ไหนก็ตาม
อีกสาเหตุที่พบบ่อยคือ ตั้งค่าแก๊สต่ำกว่าที่เครือข่ายต้องการ ณ ตอนนั้น ช่วงเครือข่ายคับคั่ง (เช่น ตอน NFT mint ดัง หรือมีข่าวใหญ่ดันราคาแก๊สพุ่ง) ธุรกรรมที่จ่าย Priority Fee ต่ำจะถูกข้ามไปเรื่อยๆ จนกว่าจะมีคนยอมจ่ายมากกว่า หรือเครือข่ายเบาลงเอง
เช็คก่อนทำอะไร — อย่าเพิ่งกดอะไรมั่ว
ก่อนแก้ไขอะไร ให้ทำ 2 อย่างนี้ก่อนเสมอ เพราะบางทีปัญหาไม่ได้อยู่ที่ธุรกรรมจริงๆ แต่เป็นแค่ MetaMask แสดงผลไม่อัปเดต
- ปิดเบราว์เซอร์ทั้งหมดแล้วเปิดใหม่ ปลดล็อก MetaMask อีกครั้ง (มือถือ: ปิดแอปแล้วเปิดใหม่) — หลายครั้งแค่นี้ก็หายค้าง
- เปิด Etherscan ค้นหาด้วยที่อยู่กระเป๋าตัวเอง ดูว่าธุรกรรมนั้นค้างอยู่ในเครือข่ายจริง หรือแค่ MetaMask ยังไม่รีเฟรช
- เช็คราคาแก๊สตลาดตอนนี้ที่ Etherscan Gas Tracker เพื่อรู้ว่าต้องตั้งเท่าไหร่ถึงจะผ่าน
Speed Up vs Cancel vs Custom Nonce — ใช้แบบไหนเมื่อไหร่
| วิธี | ใช้เมื่อ | ผลลัพธ์ | จ่ายแก๊สซ้ำไหม |
|---|---|---|---|
| Speed Up | ยังอยากให้ธุรกรรมนั้นสำเร็จ แค่อยากให้เร็วขึ้น | ธุรกรรมเดิมผ่านเร็วขึ้นด้วยแก๊สที่สูงขึ้น | ไม่ — จ่ายครั้งเดียว (แค่แพงขึ้น) |
| Cancel (ปุ่มในแอป) | ไม่อยากให้ธุรกรรมนั้นสำเร็จแล้ว ปุ่ม Cancel ยังโผล่ให้กด | ส่งธุรกรรม 0 ETH แทนที่ด้วย Nonce เดิม | จ่ายแก๊สของธุรกรรมยกเลิกเพิ่ม 1 ครั้ง |
| Custom Nonce | ปุ่ม Cancel ไม่โผล่ หรือมีธุรกรรมค้างหลายอันต่อคิวกัน | เลือกยกเลิกธุรกรรมที่ Nonce ต่ำสุดก่อน ไล่ขึ้นไป | จ่ายแก๊สเพิ่มต่อธุรกรรมที่ยกเลิก |
วิธี Speed Up เร่งธุรกรรมให้ผ่านเร็วขึ้น
เลือกวิธีนี้ถ้ายังต้องการให้ธุรกรรมสำเร็จ แค่รอไม่ได้แล้ว
MetaMask Extension รุ่น 13.30 ขึ้นไป
จะเห็นแถบแจ้งเตือน “Transaction submitted” ที่แถบด้านข้าง (sidebar) คลิกแถบนั้นเพื่อเปิดหน้ารายละเอียดธุรกรรม แล้วกดปุ่ม Speed up ได้ตรงนั้นเลย (ใช้ได้กับ Ethereum, Linea, BNB Smart Chain, Arbitrum, Base, Polygon)
Extension รุ่นเก่า / Mobile
ไปที่แท็บ Activity หาธุรกรรมที่ยัง Pending แล้วกดปุ่ม Speed Up ที่แสดงอยู่ข้างธุรกรรมนั้นได้เลย
ยืนยันค่าแก๊สใหม่
MetaMask จะเสนอค่าแก๊สใหม่ที่สูงกว่าเดิมให้อัตโนมัติ (มักมีโหมด Market / Aggressive ให้เลือก) กด Submit เพื่อส่งธุรกรรมทดแทนที่ใช้ Nonce เดิม
วิธี Cancel แบบง่าย (ปุ่มในแอป)
ใช้วิธีนี้ถ้าเปลี่ยนใจไม่อยากให้ธุรกรรมนั้นเกิดขึ้นแล้ว และปุ่ม Cancel ยังปรากฏให้กด
- MetaMask Extension 13.30+: คลิกแถบแจ้งเตือน “Transaction submitted” เพื่อเปิดหน้ารายละเอียด แล้วกด Cancel
- รุ่นเก่า/มือถือ: ไปแท็บ Activity → หาธุรกรรม Pending → กด Cancel
- ยืนยันการยกเลิก — MetaMask จะส่งธุรกรรม 0 ETH ไปยังตัวเองแทนที่ด้วย Nonce เดิม พร้อมค่าแก๊สที่สูงพอให้เครือข่ายเลือกอันนี้ก่อน
วิธี Cancel ขั้นสูงด้วย Custom Nonce
ใช้วิธีนี้เมื่อปุ่ม Cancel ปกติไม่ปรากฏ หรือมีธุรกรรมค้างหลายอันเรียงคิวกัน (ต้องยกเลิกจากตัวที่ Nonce ต่ำสุดก่อนเสมอ ยกเลิกอันที่ Nonce สูงกว่าก่อนไม่ได้)
ปิด Smart Transactions ก่อน
ไปที่ Settings → Transactions → ปิดสวิตช์ Smart Transactions ชั่วคราว (ต้องปิดก่อน ไม่งั้นช่อง Custom Nonce จะไม่โผล่ให้ใช้) — เปิดกลับได้หลังทำเสร็จ
หา Nonce ของธุรกรรมที่ค้าง
เปิดธุรกรรม Pending ในแท็บ Activity แล้วดูเลข Nonce ของมัน ถ้ามีหลายธุรกรรมค้างให้เริ่มจากตัวที่ Nonce ต่ำสุดก่อนเสมอ
ส่งธุรกรรมใหม่ไปยังตัวเอง
สร้างธุรกรรมใหม่ ส่ง 0 ETH (หรือจำนวนน้อยมาก) ไปยังที่อยู่กระเป๋าตัวเอง แล้วเปิด “Show advanced details” เพื่อแก้ช่อง Custom Nonce ให้ตรงกับ Nonce ของธุรกรรมที่ต้องการยกเลิก
ตั้งค่าแก๊สให้สูงกว่าตัวเดิม
กดไอคอนดินสอข้างค่าแก๊สโดยประมาณ เลือก Advanced แล้วตั้งตามนี้:
- Gas limit: ใกล้เคียงหรือสูงกว่าธุรกรรมเดิมเล็กน้อย
- Max priority fee: สูงกว่าธุรกรรมเดิมอย่างน้อย 10%
- Max fee: สูงกว่าธุรกรรมเดิมอย่างน้อย 30%
ตัวอย่างคำนวณจริงด้วยราคาวันนี้
สมมติธุรกรรมโอน ETH มูลค่าประมาณ 79,977 บาทต่อเหรียญ (ราคาอ้างอิงจากกระดานไทยวันที่เขียน) ค้างอยู่เพราะตั้ง Max Fee ไว้ 15 Gwei ตอนเครือข่ายต้องการ 25 Gwei
| รายการ | ธุรกรรมเดิม (ค้าง) | ธุรกรรม Speed Up / Cancel ใหม่ |
|---|---|---|
| Max Priority Fee | 2 Gwei | 2.2 Gwei (+10%) |
| Max Fee | 15 Gwei | 19.5 Gwei (+30%) |
| สถานะ | Pending (ค้าง) | แทนที่ธุรกรรมเดิม ใช้ Nonce เดียวกัน |
ส่วนต่างที่จ่ายเพิ่มคือค่าแก๊สส่วนที่ปรับขึ้นเท่านั้น ไม่ใช่จ่ายค่าธุรกรรมทั้งหมดซ้ำอีกรอบ — ยิ่งรอช้าตอนเครือข่ายคับคั่ง ค่าแก๊สตลาดอาจขยับขึ้นเรื่อยๆ จนต้องปรับหลายรอบ ดังนั้นเช็ค Gas Tracker ให้ชัวร์ก่อนตั้งค่าแต่ละครั้งจะคุ้มกว่า
กับดักที่คนพลาดบ่อย
🚩 1. ตั้งแก๊สใหม่ “สูงกว่าเดิมนิดเดียว” แล้วค้างซ้ำ
ถ้าเพิ่มแค่ 1-2% เครือข่ายอาจยังไม่สนใจ โดยเฉพาะตอนคับคั่ง
🚩 2. ยกเลิกธุรกรรมที่ Nonce สูงก่อนตัวที่ Nonce ต่ำ
เครือข่ายประมวลผลตามลำดับ Nonce เสมอ ยกเลิกอันหลังก่อนอันหน้าไม่ได้ ธุรกรรมจะยังค้างต่อ
🚩 3. ลืมปิด Smart Transactions ก่อนหาช่อง Custom Nonce
ช่อง Custom Nonce จะไม่โผล่ให้ใช้เลยถ้า Smart Transactions ยังเปิดอยู่ บนเครือข่าย Ethereum Mainnet หรือ BNB Smart Chain
🚩 4. เข้าใจผิดว่า Cancel แปลว่าไม่เสียค่าแก๊สเลย
การยกเลิกคือการส่งธุรกรรมใหม่ (0 ETH ไปตัวเอง) ไม่ใช่การ “ลบ” ธุรกรรมเดิม จึงยังต้องจ่ายค่าแก๊สของธุรกรรมยกเลิกนั้นอยู่ดี
🚩 5. กด Reset Account ทั้งที่ธุรกรรมยังอยู่บน Block Explorer
Reset Account ลบแค่ประวัติในเครื่อง MetaMask ไม่กระทบเครือข่ายจริง ถ้าธุรกรรมยังเห็นบน Etherscan ว่า Pending การ Reset จะทำให้สับสนหนักขึ้นเพราะ MetaMask จะลืม Nonce ที่เคยใช้ไป
🚩 6. รอเฉยๆ นานเกินไปโดยไม่เช็ค Gas Tracker
บางช่วงเครือข่ายคับคั่งเพียงไม่กี่ชั่วโมงแล้วกลับมาปกติ การปรับแก๊สทั้งที่เครือข่ายกำลังพีคสุดอาจต้องปรับซ้ำหลายรอบ
✅ เช็กลิสต์ก่อนแก้ธุรกรรมค้าง
- ปิด-เปิดเบราว์เซอร์/แอปใหม่แล้วหรือยัง
- เช็ค Etherscan แล้วหรือยังว่าค้างจริงในเชน ไม่ใช่แค่ MetaMask แสดงผิด
- เปิด Gas Tracker ดูราคาตลาดตอนนี้แล้วหรือยัง
- รู้ Nonce ของธุรกรรมที่ค้างแล้วหรือยัง (ถ้ามีหลายอันค้าง)
- เลือกแล้วหรือยังว่าจะ Speed Up (อยากให้ผ่าน) หรือ Cancel (ไม่อยากให้ผ่าน)
- ถ้าต้อง Custom Nonce — ปิด Smart Transactions ก่อนหรือยัง
- ตั้ง Priority Fee +10% และ Max Fee +30% จากตัวเดิมหรือยัง
- ถ้ามีธุรกรรมค้างหลายอัน เริ่มจากตัว Nonce ต่ำสุดก่อนหรือยัง
คำถามที่พบบ่อย
ธุรกรรมที่ยืนยันแล้วยกเลิกได้ไหม
ไม่ได้เด็ดขาด Speed Up และ Cancel ใช้ได้เฉพาะตอนที่ธุรกรรมยังเป็น Pending บนเครือข่ายเท่านั้น
Speed Up กับ Cancel ต้องจ่ายค่าแก๊สซ้ำสองเท่าไหม
ไม่ ทั้งสองวิธีใช้ Nonce เดียวกับธุรกรรมเดิม จึงจ่ายแก๊สแค่ของธุรกรรมที่ผ่านจริงเท่านั้น ธุรกรรมเดิมที่ไม่ผ่านจะถูกแทนที่ไปเลย
วิธีนี้ใช้กับ BNB Smart Chain หรือ Polygon ได้ไหม
ได้ กลไก Nonce และปุ่ม Speed Up/Cancel ใน MetaMask ใช้ได้กับทุกเชนแบบ EVM ที่รองรับ รวม Linea, BNB Smart Chain, Arbitrum, Base และ Polygon
ทำไมปุ่ม Cancel ไม่โผล่ให้กด
บางกรณี MetaMask ไม่แสดงปุ่มให้อัตโนมัติ ต้องใช้วิธี Custom Nonce แทน โดยเฉพาะถ้ามีธุรกรรมค้างมากกว่า 1 รายการต่อคิวกัน
ตั้งค่าแก๊สสูงเกินไปจะเสียเงินเปล่าไหม
ค่าแก๊สที่จ่ายจริงคือราคาที่เครือข่ายเรียกเก็บตามความคับคั่ง ไม่ใช่ตัวเลข Max Fee ที่ตั้งไว้ทั้งหมด — ตั้งสูงไว้เป็นเพดานกันธุรกรรมค้างอีก ส่วนเกินจะได้คืนอัตโนมัติ




















