Ethereum veya diğer EVM uyumlu ağlarda (BNB Chain, Polygon, Arbitrum vb.) işlem yaparken karşınıza çıkan “out of gas” hatası, özellikle yeni başlayanlar için sinir bozucu olabilir. Daha da kötüsü, bu hatayı aldığınızda ödediğiniz işlem ücreti genellikle iade edilmez. Peki, bu hata neden olur ve nasıl çözülür? Bu rehberde, out of gas hatasının nedenlerini, çözüm yollarını ve bu hatayı tamamen nasıl önleyebileceğinizi anlatacağım.
Önemli Uyarı: Out of gas hatası aldığınızda, ödediğiniz gas ücreti (işlem ücreti) iade edilmez. Çünkü madenciler veya doğrulayıcılar, işleminiz başarısız olsa bile işlemi işlemek için enerji harcamıştır. Bu yüzden bu hatayı önlemek, çözmekten daha önemlidir.
Out of Gas Hatası Nedir?
“Out of gas” hatası, bir işlem için belirlediğiniz gas limit’in, işlemin tamamlanması için gereken gas miktarından daha düşük olması durumunda ortaya çıkar. Basitçe söylemek gerekirse: işleminiz bitmeden yakıtınız biter.
Bu hatayı Etherscan gibi blockchain explorer’larda gördüğünüzde, işlem durumu “Fail” (Başarısız) olarak işaretlenir ve “out of gas” uyarısı görürsünüz.
Out of Gas Hatasının Başlıca Nedenleri
1. Gas Limit’in Yetersiz Ayarlanması
En yaygın nedendir. MetaMask veya diğer cüzdanlar, basit işlemler için genellikle doğru gas limit’i hesaplasa da, özellikle karmaşık akıllı sözleşme işlemlerinde veya yeni token’lar söz konusu olduğunda otomatik ayar yetersiz kalabilir.
2. Akıllı Sözleşme Kaynaklı Hatalar
Bazı akıllı sözleşmelerde hatalı kodlar olabilir. Örneğin, bir fonksiyon beklendiğinden çok daha fazla gas tüketebilir veya sonsuz döngüye (infinite loop) girebilir. Bu durumda, gas limit’iniz ne kadar yüksek olursa olsun işlem başarısız olabilir.
3. Yetersiz Bakiye
İşleminizi gerçekleştirmek için hesabınızda yeterli native coin (ETH, BNB, MATIC vb.) bulunmuyorsa, out of gas hatası alabilirsiniz. Çünkü gas ücreti bu coin’lerden ödenir.
4. Yanlış Ağ Seçimi
Örneğin, Ethereum ana ağında çok düşük gas limit ile işlem yapmaya çalışmak veya BNB Chain’de Ethereum standartlarına göre ayar yapmak sorunlara yol açabilir. Her ağın gas limit ihtiyaçları farklıdır.
Önemli Uyarı: BNB Chain (BSC) gibi ağlarda gas limit ihtiyacı genellikle Ethereum’a göre daha düşüktür. Ağ değiştirdiğinizde gas limit ayarlarınızı da güncellemeyi unutmayın.
5. Cüzdan veya RPC Sorunları
Bazen cüzdanınız (MetaMask gibi) veya bağlı olduğunuz RPC (uzak prosedür çağrısı) sunucusu hatalı çalışıyor olabilir. Bu durumda cüzdanınızı güncellemek veya farklı bir RPC kullanmak sorunu çözebilir.
Out of Gas Hatası Nasıl Çözülür?
Çözüm 1: Gas Limit’i Artırın
En basit ve sık kullanılan çözüm, gas limit’i artırmaktır. İşte MetaMask’te nasıl yapılacağı:
- İşlem onay ekranında “Gas Ücreti Düzenle” (Edit Gas Fee) seçeneğine tıklayın.
- “Gelişmiş” (Advanced) sekmesine geçin.
- Gas Limit alanını mevcut değerin %20-30 üzerine çıkarın.
- Örneğin, gas limit 100.000 ise 130.000 yapın.
- Değişiklikleri kaydedin ve işlemi tekrar deneyin.
Hala sorun yaşıyorsanız, gas limit’i 2 veya 3 katına çıkarmayı deneyin.
Çözüm 2: Otomatik Gas Limit Ayarını Kullanın
MetaMask gibi modern cüzdanların otomatik gas limit ayarları genellikle doğru sonuç verir. Gas limit’i sıfırlayıp otomatik ayara geri dönün:
- İşlem onay ekranında “Gas Ücreti Düzenle”ye tıklayın.
- “Piyasa” (Market) veya “Hızlı” (Aggressive) gibi otomatik seçeneklerden birini seçin.
- İşlemi tekrar deneyin.
Çözüm 3: Cüzdan veya RPC Sunucusunu Değiştirin
Bazen sorun cüzdanınızdan veya bağlı olduğunuz RPC sunucusundan kaynaklanır:
- MetaMask’i güncelleyin: En son sürümü kullandığınızdan emin olun.
- RPC sunucusunu değiştirin: MetaMask ayarlarından farklı bir RPC sunucusu seçin (örneğin, Ethereum için Infura veya Alchemy).
- Tarayıcıyı değiştirin: Chrome yerine Firefox veya Brave’i deneyin.
- Önbelleği temizleyin: Tarayıcı önbelleğinizi ve MetaMask’in izin verilerini temizleyin.
Çözüm 4: Nonce Sıfırlama (Gelişmiş Kullanıcılar İçin)
Bazen, önceki başarısız işlemler sırayı bozabilir. Bu durumda nonce (işlem sayacı) sıfırlamak gerekebilir:
- MetaMask ayarlarından “Gelişmiş” (Advanced) bölümüne gidin.
- “Nonce Yönetimi”ni (Customize transaction nonce) açın.
- Başarısız olan işlemin nonce değerini bulun (Etherscan’den bakabilirsiniz).
- İşlem yaparken aynı nonce değerini girin ve daha yüksek gas limit ile gönderin.
Uyarı: Nonce sıfırlama, gelişmiş kullanıcılar içindir. Yanlış yaparsanız işlemleriniz takılabilir. Emin değilseniz bu yöntemi denemeyin.
Çözüm 5: Akıllı Sözleşmeyi veya Token’ı Araştırın
Eğer bir token transferi veya akıllı sözleşme çağrısı yapıyorsanız, sorun token’ın kendisinden veya sözleşmeden kaynaklanıyor olabilir:
- Token’ın dokümanlarını kontrol edin: Transfer sırasında özel bir gas gereksinimi var mı?
- Başkaları da benzer sorunu yaşıyor mu? Reddit, Twitter veya Discord’da araştırın.
- Küçük miktarla test edin: Büyük miktar göndermeye çalışmak yerine küçük bir test işlemi yapın.
Çözüm 6: Gas Limit’i Otomatik Ayara Getirip Bekleyin
Bazen ağ yoğunluğu nedeniyle otomatik gas limit hesaplaması anlık bir sorun yaşayabilir. Birkaç dakika bekleyip işlemi yeniden başlatmayı deneyin.
Out of Gas Hatasını Önleme Yöntemleri
En iyi çözüm, hatayı önlemektir. İşte alabileceğiniz önlemler:
1. Her Zaman Yeterli Bakiye Bulundurun
Gas ücretleri native coin (ETH, BNB, MATIC vb.) ile ödenir. İşlem yapmadan önce hesabınızda yeterli native coin olduğundan emin olun.
2. Otomatik Gas Limit Ayarını Kullanın
Yeni başlayanlar için en güvenli yöntem budur. MetaMask gibi cüzdanların otomatik hesaplamaları genellikle doğrudur.
3. Karmaşık İşlemlerde Gas Limit’i Artırın
Uniswap swap, NFT mint veya bir DeFi protokolü ile etkileşim gibi karmaşık işlemlerde, otomatik ayarın %20-30 üzerinde gas limit belirleyin.
4. Ağ Yoğunluğunu Takip Edin
Etherscan’in “Gas Tracker” aracını kullanarak ağ yoğunluğunu kontrol edin. Yoğun zamanlarda işlem yapmaktan kaçının.
5. Test İşlemi Yapın
Özellikle yeni bir akıllı sözleşme ile etkileşime girmeden önce, küçük bir miktarla test işlemi yapın. Bu sayede gas ihtiyacını öğrenebilirsiniz.
6. Cüzdan ve Tarayıcınızı Güncel Tutun
MetaMask gibi cüzdanların ve kullandığınız tarayıcının en son sürümde olduğundan emin olun. Güncellemeler genellikle hataları düzeltir.
Pro İpucu: Yeni bir protokol kullanmadan önce, Etherscan üzerinden aynı protokolde daha önce yapılmış başarılı işlemleri inceleyin. Hangi gas limit değerlerinin kullanıldığını görebilirsiniz.
Farklı Ağlarda Out of Gas Sorunu
Out of gas hatası sadece Ethereum’a özgü değildir. Farklı ağlar için standart gas limit değerlerini bilmek önemlidir:
| Ağ | Basit Transfer Gas Limit | Token Transfer Gas Limit | Karmaşık Swap Gas Limit |
|---|---|---|---|
| Ethereum | 21.000 | ~65.000 | 150.000 – 300.000 |
| BNB Smart Chain | 21.000 | ~50.000 | 150.000 – 250.000 |
| Polygon | 21.000 | ~60.000 | 200.000 – 400.000 |
| Arbitrum | ~100.000 | ~150.000 | 300.000 – 500.000 |
| Optimism | ~50.000 | ~100.000 | 200.000 – 400.000 |
Not: Bu değerler yaklaşıktır ve ağ koşullarına göre değişebilir. Her zaman bir güvenlik marjı (minimum %20) eklemenizi öneririm.
Sıkça Sorulan Sorular
Hayır, maalesef iade edilmez. Madenciler veya doğrulayıcılar, işleminiz başarısız olsa bile işlemi işlemek için enerji harcamıştır. Bu yüzden işlem yaparken gas limit’i yeterli ayarlamak çok önemlidir.
En yaygın çözüm gas limit’i artırmaktır. İşlem onay ekranında ‘Gas Ücreti Düzenle’ > ‘Gelişmiş’ sekmesine giderek gas limit’i %20-30 yükseltin. Hala sorun yaşıyorsanız otomatik ayara dönün veya cüzdanınızı güncelleyin.
Hayır. BNB Chain, Polygon, Arbitrum, Optimism gibi tüm EVM uyumlu ağlarda da out of gas hatası alabilirsiniz. Her ağın gas limit ihtiyaçları farklıdır, bu yüzden ağa göre ayar yapmalısınız.
İlk denemede %20-30 artırma yeterlidir. Eğer hala sorun yaşıyorsanız, 2 veya 3 katına çıkarabilirsiniz. Ancak gereksiz yüksek değerler risklidir, bir akıllı sözleşme hatasında fazla ücret ödeyebilirsiniz.
Çoğu durumda evet. Ancak yeni veya karmaşık akıllı sözleşmelerde otomatik ayar bazen yetersiz kalabilir. Bu durumda manuel müdahale gerekir.
Trust Wallet, Rabby Wallet, Coinbase Wallet gibi tüm EVM uyumlu cüzdanlarda bu hatayı alabilirsiniz. Çözüm yöntemleri benzerdir: gas limit’i artırmak veya otomatik ayara dönmek.
Sonuç
Out of gas hatası, Ethereum ve diğer akıllı sözleşme platformlarında karşılaşılan yaygın bir sorundur. Temel nedeni, belirlenen gas limit’in işlemin tamamlanması için gereken gas miktarından daha düşük olmasıdır. Bu hatayı çözmenin en etkili yolu, gas limit’i artırmak veya otomatik ayara geri dönmektir.
Unutmayın: Out of gas hatası aldığınızda ödediğiniz ücret iade edilmez. Bu yüzden özellikle karmaşık işlemlerde veya yeni protokollerle çalışırken, her zaman bir güvenlik marjı bırakmayı ve mümkünse test işlemleri yapmayı alışkanlık haline getirin.
Zamanla, hangi işlem türünün ne kadar gas limit gerektirdiğini öğrenecek ve bu hataları tamamen önleyebileceksiniz. Sabırlı olun, pratik yapın ve asla panik yapmayın!