Cüzdan 10 dk okuma

MetaMask'ta İşlem Takıldı (Pending) Sorunu ve Çözümü (Nonce)

Okan Semerci Yazar Okan Semerci
MetaMask'ta İşlem Takıldı (Pending) Sorunu ve Çözümü (Nonce)

ETH transferi gönderdiniz, dakikalar geçti, işlem hâlâ "Pending". Ağ tıkanıklığı mı, düşük gas mı, yoksa nonce bozukluğu mu? Bu üçü birbirinden farklı sorun, birbirinden farklı çözüm gerektirir.

Yanlış teşhis koyarsanız, hem gereğinden fazla gas ücreti ödersiniz hem de işlemi daha uzun süre askıda bırakırsınız. MetaMask'ta işlem takılma probleminin kökenini anlamak için birkaç temel kavramı net biçimde ayırt etmek gerekiyor.

Nonce nedir ve işlemler neden sırayla onaylanmak zorundadır?

Ethereum ve tüm EVM uyumlu zincirlerde her adresin bir işlem sayacı vardır. Bu sayaca "nonce" denir; "Number Used Only Once" ifadesinin kısaltmasıdır. İlk işleminiz nonce 0, ikincisi nonce 1, üçüncüsü nonce 2 değerini taşır.

Ağ bu sırayı zorunlu kılar: nonce 1 onaylanmadan nonce 2 bloğa girmez. Doğrulayıcılar için bu kural basit bir filtredir; nonce değeri beklenenden yüksek olan işlem mempool'a girer ama o nonce sırası gelene kadar bekler.

Bu sıralama mekanizması iki kritik güvenlik işlevi görür. Birincisi, çift harcamayı önler: aynı fonlar aynı nonce üzerinden iki kez harcanamaz. İkincisi, replay saldırılarını engeller: bir zincirde onaylanan işlem, nonce tükenmişse başka bir zincirde tekrarlanamaz. MetaMask nonce değerini otomatik yönetir; ama RPC senkronizasyon gecikmesi, iptal girişimi veya birden fazla cihazdan paralel işlem gönderimi bu otomatik sayacı şaşırtabilir.

Gas ücreti neden işlemi durdurur?

Ethereum'da gas sistemi EIP-1559 ile köklü biçimde değişti. Her blokta protokol, ağ doluluk oranına göre bir "base fee" (taban ücret) belirler. Bu değer tam blok dolulukta blok başına en fazla %12,5 artabilir, boş bloklarda aynı oranda düşer.

Nonce nedir ve işlemler neden sırayla onaylanmak zorundadır?

Base fee tamamen yakılır, doğrulayıcıya gitmez. Doğrulayıcıyı asıl teşvik eden "priority fee" (öncelik ücreti / bahşiş) bileşenidir.

İşlem bir bloğa girebilmek için en az base fee + 1 wei priority fee teklif etmeli. Ama doğrulayıcılar sınırlı blok alanını priority fee'ye göre doldurur; yoğun dönemde priority fee'nizi rakiplerden düşük bırakırsanız işleminiz sıranın en arkasına düşer. Etherscan Gas Tracker (etherscan.io/gastracker) canlı base fee ve önerilen priority fee aralıklarını gösterir, işlem göndermeden önce bu değerleri kontrol etmek, saatlik bekleyişi ortadan kaldırır.

Gas limit ise ayrı bir konudur. Ethereum.org belgelerine göre standart bir ETH transferi 21.000 gas tüketir; akıllı sözleşme etkileşimleri bu rakamın çok üzerine çıkabilir. Gas limitini gereğinden düşük ayarlarsanız işlem yürütme sırasında "Out of Gas" hatasıyla başarısız olur ve ödenen gas iade edilmez. MetaMask genellikle gas limitini simülasyonla tahmin eder; karmaşık DeFi işlemlerinde bu tahminin %20-30 üzerinde limit belirlemek makul bir güvenlik payıdır.

İşlem neden mempool'da sıkışır?

Mempool (memory pool), zincire henüz girmemiş işlemlerin doğrulayıcı düğümlerde tutulduğu geçici havuzdur. Bir işlem mempool'a girdiğinde üç yolla çözüme kavuşabilir: bloğa alınır, yetersiz gas nedeniyle sonunda silinir (tipik bekleme süresi ağa ve RPC konfigürasyonuna bağlı olarak değişir), ya da aynı nonce'la gönderilen daha yüksek ücretli yeni bir işlem tarafından geçersiz kılınır. Doğrulama sürecini araştıran 2025 tarihli bir akademik çalışma, Ethereum mempool'unun anlık olarak yaklaşık 150.000 bekleyen işlem içerebildiğini, her blokun ise bunların yalnızca küçük bir kısmını işleyebildiğini ortaya koymuştur.

İşlem mempool'da kaldığı sürece fonlarınız kilitli değildir, harcama yalnızca onay gerçekleştiğinde kesinleşir. Yani "işlem takıldı" durumu kaybedilen para anlamına gelmez; ama o nonce değeri onaylanana kadar aynı adresten sonraki işlemler de bloğa giremez. DeFi'de swap veya likidite işlemi gönderip takıldığında, arka arkaya denenen yeni işlemler de bu nonce kuyruğunda birikir, asıl sorunu çözmeden yeni işlem göndermek durumu karmaşıklaştırır.

Takılan işlemi hızlandırmak için ne yapmalısınız?

MetaMask'ın "Speed Up" (Hızlandır) butonu en doğrudan yoldur. Etkinlik sekmesinde takılan işlemi açın; "Speed Up" seçeneğini görüyorsanız buna tıklayın. MetaMask aynı nonce değerini kullanarak, ancak daha yüksek gas ücreti içeren yeni bir işlem oluşturur. Resmi MetaMask kılavuzuna göre bu yöntemde max priority fee'yi orijinalden en az %10, max fee'yi ise en az %30 artırmak gerekir, örneğin orijinal max fee 150 Gwei ise yeni işlemde 200 Gwei civarı belirleyin.

Gas ücreti neden işlemi durdurur?

Aynı nonce'la iki işlem göndermek ağ kuralına aykırı görünebilir, oysa amaç tam budur: ağ aynı nonce için ancak bir işlemi onaylayabilir. Daha yüksek ücretli yeni işlem önce işlenirse eski işlem otomatik olarak geçersiz kılınır. Gas ücretini iki kez ödemezsiniz; yalnızca revize tutarı ödersiniz.

İşlemi iptal etmek mümkün müdür?

Takılı ama henüz onaylanmamış işlemleri iptal etmek teknik olarak mümkün, ama onaylanmış işlem geri alınamaz. Etkinlik sekmesinden "Cancel" (İptal) butonuna tıklarsanız MetaMask, aynı nonce değerli ve 0 ETH tutarında, yüksek gas ücretli bir işlem gönderir. Bu işlem onaylandığında orijinal işlem kendiliğinden geçersiz olur.

Önemli bir pratik ayrıntı: iptal işlemi de bir zincir işlemidir ve gas ücreti öder. Eğer iptal işleminin gas ücreti de düşükse o da takılabilir; bu durumda aynı nonce'la bir kez daha, daha yüksek gas ücretli iptal işlemi göndermeniz gerekir. MetaMask'ın Extension 12.13.0 ve sonrasında işlem onay ekranında "Show advanced details" açıldığında nonce değeri görünür hâle gelir; eski sürümlerde Ayarlar > Gelişmiş yolunu kullanın.

Birden fazla takılı işlem varsa iptal girişimini en eski nonce'dan başlayarak sırayla yapmalısınız. Nonce 9 onaylanmadan nonce 10'u iptal edemezsiniz; ağ zinciri önce boşluklu olan nonce'ı bekler.

Manuel nonce ayarı ile ileri düzey çözüm

Speed Up ve Cancel butonları görünmüyorsa (bu çoğunlukla Smart Transactions özelliğinin açık olmasından kaynaklanır) manuel nonce yönetimi devreye girer. Önce MetaMask'ın Smart Transactions özelliğini Ayarlar > Gelişmiş yolundan kapatın. Ardından aynı menüde "Customize transaction nonce" seçeneğini etkinleştirin.

Manuel nonce ayarı ile ileri düzey çözüm

Süreç şöyle işler: Etherscan'da cüzdan adresinizi açın, takılan işlemi bulun ve nonce değerini not edin. Ardından MetaMask'ta "Gönder" butonuna basın, alıcı olarak kendi cüzdan adresinizi girin, miktar 0 ETH. Onay ekranında "Custom Nonce" alanına not aldığınız değeri yazın ve gas ücretini mevcut ağ ortalamasının üzerine çıkarın.

Bu işlem onaylandığında orijinal takılan işlem geçersiz hâle gelir. İşlemi tamamladıktan sonra Smart Transactions özelliğini yeniden etkinleştirebilirsiniz.

MetaMask mobil uygulamasında bu ayarlar Ayarlar > Gelişmiş > "İşlem nonce'unu özelleştir" yolundan erişilebilir. Polygon veya BNB Smart Chain gibi MetaMask'a Polygon ağı eklenmiş EVM zincirlerde aynı mantık geçerlidir; her zincirin kendi mempool'u olduğundan nonce değeri de o zincire özgüdür.

MetaMask hesabını sıfırlamak ne zaman gerekir?

MetaMask'ın "Clear activity and nonce data" (eski adıyla "Reset Account") özelliği, cüzdanın yerel işlem geçmişini ve nonce sayacını temizler. Resmi MetaMask belgeleri bu işlemi yalnızca Etherscan'da işlem görünmediğinde, yani sorun zincirde değil MetaMask'ın yerel durumunda olduğunda, öneriyor.

Sıfırlama fonları veya özel anahtarları etkilemez; yalnızca arayüzdeki işlem listesi temizlenir. Ama sıfırlama sonrası hâlâ mempool'da bekleyen işlemler varsa MetaMask artık onları görmez, bu işlemler ağda bağımsız olarak yaşamaya devam eder. Bu yüzden sıfırlamadan önce Etherscan'da gerçek durumu doğrulayın; bekleyen işlem varsa önce manuel nonce yöntemiyle çözün, sonra sıfırlayın.

Extension sürüm 10.28.1'den itibaren bu özelliğin adı "Clear activity and nonce data" olarak değişti; mobilde hâlâ "Reset Account" adını taşıyor. Her iki işlem de aynı sonucu verir.

Sık Sorulan Sorular (SSS)

İşlem takılınca fonlarım kaybolur mu?

Hayır. Pending durumundaki işlem henüz zincire işlenmemiştir; fonlar cüzdanınızda bloklanmış gibi görünse de işlem iptal edildiğinde veya başarısız olduğunda otomatik olarak serbest kalır. Kayıp riski yalnızca yanlış alıcı adresine gönderim ya da manuel nonce düzeltme sırasında hatalı değer girilmesi durumunda ortaya çıkar.

Takılan işlemi çözmek için en düşük maliyetli yol hangisidir?

İptal işlemi göndermek genellikle yeterlidir, aynı nonce'la 0 ETH aktarımı, standart transferle benzer gas tüketir. Karmaşık bir akıllı sözleşmeyi geçersiz kılmak yerine basit bir 0 ETH transferi çok daha az gas harcar. Hızlandırma (Speed Up) ise orijinal işlemin gas farkını ödetir; iptal kadar ucuz değildir ama işlemin onaylanmasını sağlar.

Pending işlem ne kadar süre mempool'da kalabilir?

Ağ ve RPC sağlayıcısına göre değişir; bazı düğümler düşük ücretli işlemleri birkaç gün sonra mempool'dan atar, bazıları daha uzun tutar. Bekleyerek çözüme ulaşmak pratikte saatler, hatta günler alabilir. Gas ücretleri düşük seyrediyorsa beklemek makul bir seçenek; yüksekse aktif çözüm daha akıllıca bir yaklaşımdır.

Birden fazla takılı işlem varsa hangisinden başlamalıyım?

En düşük nonce değerinden, yani en eski işlemden başlamalısınız. Nonce sırası boşluk içerdiğinde daha yüksek nonce değerleriyle işlemler zaten onaylanamaz; boşluğu doldurmadan ilerleme olmaz. Her adımda Etherscan'da onayı bekleyip sonraki nonce'a geçin.

Polygon veya BNB Smart Chain'de de aynı yöntemler geçerli mi?

Evet. MetaMask'a BNB Smart Chain ağı eklenmiş tüm EVM uyumlu zincirlerde nonce mekanizması aynı şekilde çalışır. Her zincirde ayrı nonce sayacı tutulduğundan Polygon'daki takılmış işlem Ethereum nonce'unu etkilemez; çözüm adımları ağa özgü block explorer kullanmak dışında birebir aynıdır.

MetaMask'ın Smart Transactions özelliği nedir, kapatmam gerekiyor mu?

Smart Transactions, Ethereum mainnet ve BNB Smart Chain'de işlemleri zincir içi onay öncesinde simüle ederek başarısız işlemleri engellemeye çalışır. Ancak bu mod etkinken custom nonce ayarı kilitlenir. Takılı işlemi manuel nonce yöntemiyle çözerken bu özelliği geçici kapatın; sorun çözüldükten sonra yeniden açabilirsiniz.

Kripto piyasaları çok hızlı değer kaybedebilir. Bu yazı yatırım tavsiyesi değildir; bu alandaki her şeyi kaybetmeyi göze alabileceğiniz parayla yapın.

Bir sonraki adım bellidir: Etherscan'da takılan işlemin nonce değerini not edin, MetaMask'ta Smart Transactions'ı kapatın, "Customize transaction nonce"u açın ve orijinal nonce'a eşit, daha yüksek gas ücretli 0 ETH transferi gönderin. Çözüm bu kadar mekaniktir; blok zincirinde kişiler değil, kurallar işler.

Kontrol listesi

  • Kaynak: Resmi site, kontrat adresi ve ağ bilgisi bağımsız iki kaynaktan doğrulanmalı.
  • Risk: Komisyon, likidite, kilit süresi ve saklama modeli işlemden önce netleşmeli.
  • Uygulama: İlk deneme küçük tutarla yapılmalı; seed phrase, imza ekranı ve onaylanan ağ ayrıca kontrol edilmeli.
Yazar

Okan Semerci

İzmir'in kendine has ilçesi Karşıyaka'da doğan Okan, 2017 yılında Çanakkale Onsekiz Mart Üniversitesi'nden mezun oldu. Uzun süredir dijital yayıncılıkla ilgileniyor; KriptoGetiri'de altcoin incelemeleri ve yeni başlayanlar için rehberler hazırlıyor.

Daha fazla yazı
Okan Semerci

Tartışmaya Katılın