Skip to main content
Bu sayfa yapay zekâ tarafından otomatik olarak çevrilmiştir. İngilizce sürüm esas alınır.İngilizce sürümü görüntüle →
Kira bir ücret değil, geri alınabilir bir depozitodur. SIMD-0437, her hesabın tutması gereken depozitoyu beş bağımsız adımda düşürür. Bir adımdan önce oluşturulan hesaplar, finanse edildikleri bakiyeyi tutar, bu nedenle her adım onları aşırı finanse eder. SPL Token ve Token-2022 programları, hesabı kapatmadan veya token bakiyesine dokunmadan WithdrawExcessLamports aracılığıyla bu farkı geri verebilir. Hiçbir şey sona ermez — fazlalık, onu taşımayı seçene kadar kendi hesaplarınızda kalır.
Solana hesaplarının nasıl finanse edildiğini yeni öğreniyorsanız, önce Hesap modeli sayfasını okuyun.

Kira aslında nedir

Solana’daki her hesap, kapladığı alan tarafından boyutlandırılan bir SOL depozitosu tutar. Harcanmaz — hesap kapatıldığında tamamen geri verilir. Formül şu şekildedir:
ACCOUNT_STORAGE_OVERHEAD, yükü ne olursa olsun her hesabın ödediği sabit 128 bayttır. lamports_per_byte, SIMD-0437’nin değiştirdiği ağ genelinde sabittir. Standart 165 baytlık bir SPL token hesabı bu nedenle her zaman (128 + 165) × 6,960 = 2,039,280 lamport tutmuştur — bir cüzdan ilişkili token hesabı açtığında görülen ~0.00203928 SOL.

SIMD-0437 neler değiştirir

SIMD-0437, lamports_per_byte değerini 6,960’tan 696’ya düşürür — %90 azalış — beş ayrı özellik kapısı aracılığıyla dağıtılır, böylece doğrulayıcılar durum büyümesi etkisini bir seferde bir adım absorbe edebilir. Adım 1, mainnet’te 3 Eylül 2026’da etkinleştirildi. Adım 2 aynı gün testnet’e ulaştı ve Eylül 2026 ortasında mainnet’te bekleniyor; adımlar 3–5, Kasım 2026 civarında beklenen Agave 4.4 için tutulmuştur. Zamanlamayı değişebilir olarak düşünün — Vakıf, durum büyümesi kötü davranırsa dağıtımı duraklatacağını söylemiştir — ve canlı değeri kümeye kodlamak yerine oradan okuyun.
SIMD-0437, SIMD-0194’e bağlıdır; bu, kira muafiyeti eşiğini “özellik etkinleştirmesinde kira parametrelerini ayarlarken gereksiz kayan nokta matematiğinden kaçınmak için” kullanımdan kaldırır. Uygulamada Rent sysvar artık lamports_per_byte_year = 6,333 ile exemption_threshold = 1.0 taşır; eski 3,480 × 2 bölünmesi yerine 6,960 üretir. Bu iki alanı kendiniz çarpmayın — getMinimumBalanceForRentExemption çağırın ve kümenin cevap vermesine izin verin.

Mevcut hesaplar neden çok fazla tutuyor

Sabiti düşürmek, bir hesabın ihtiyaç duyduğu şeyi değiştirir. Bir hesabın sahip olduğu şeyi değiştirmez. 6,960 lamport başına finanse edilen bir hesap, adım 1 etkinleştirildikten sonra bu bakiyeyi tutar, bu nedenle aşırı finanse edilir:
Adım 1’den sonra 165 baytlık bir SPL token hesabı için bu 293 × (6,960 − 6,333) = 183,711 lamport veya hesap başına ~0.000184 SOL’dir. Uzantı taşıyan bir Token-2022 hesabı daha büyüktür, bu nedenle orantılı olarak daha fazlasını tutar — 182 baytlık bir hesap 310 × 627 = 194,370 lamport tarafından aşırı finanse edilir. Bireysel olarak bu toz miktarıdır. Yıllar içinde birkaç yüz token ile etkileşimde bulunmuş bir cüzdan, bunun anlamlı bir katını tutuyor ve adım 5’e kadar her 165 baytlık hesap, minimumunun üzerinde 1,835,352 lamport (~0.00184 SOL) tutuyor.

Hangi hesaplar bunu geri verebilir

Programa ait bir hesaptaki fazla lamportlar yalnızca o program tarafından taşınabilir. Hesabı kapatmadan kira geri alıp alamayacağınız tamamen hangi programın sahip olduğuna bağlıdır.

SPL Token ve Token-2022

Her ikisi de WithdrawExcessLamports sunar. Hesap açık kalır, token bakiyesini tutar ve basitçe geçerli minimuma düşer.

Diğer her şey

Eşdeğer bir talimat yok. Kira yalnızca hesap kapatıldığında serbest bırakılır — kendi ön koşulları olan yıkıcı bir işlem, kira taraması değil.
Somut olarak, Raydium kullanıcılarının tuttuğu hesap türleri için: Sarılı SOL hesapları tek token programı istisnasıdır: lamport bakiyeleri onların token bakiyesidir, bu nedenle her iki program da onları TokenError::NativeNotSupported ile reddeder. Her iki program bunun yerine UnwrapLamports (discriminant 45) sunar — spl-token-interface içinde WithdrawExcessLamports ile birlikte yer alır, bu nedenle eski programın da Token-2022 gibi vardır — ve @solana/spl-token 0.4.15 itibariyle createUnwrapLamportsInstruction gönderir. Yerel hesapları düz bir kira taramasında atlayın ve bunları kasıtlı olarak işleyin; bunu güvenli bir şekilde yapmanın deseni, Raydium’un kendi programlarının kullandığı aşağıdaki desendir.

WithdrawExcessLamports talimatı

Her iki token programının talimat enumlarında 38 discriminant. spl-token-interface kaynağından:
Üç özellik, bunu bir cüzdandaki her hesaba karşı ateşlemeyi güvenli hale getirir:
  • Bir miktar almaz. Program source.lamports − rent.minimum_balance(source.data_len()) değerini kendisi hesaplar, bu nedenle bir hesabı hiçbir zaman geçerli minimumun altına alamaz ve sonraki adımlar etkinleştirildikçe doğru kalır.
  • Hiçbir şeyi kapatmaz. Hesap verilerini, sahibini ve token bakiyesini tutar.
  • İdempotent’tir. Zaten minimumda olan bir hesaba karşı çalıştırmak sıfır lamport taşır ve başarılı olur.
Dondurulmuş bir token hesabı hala uygun: dondurma, token hareketini kısıtlar, lamportları değil.

Talimatı oluşturma

@solana/spl-token bunun için bir oluşturucu dışa aktarmaz. 0.4.15 itibarıyla enum girişi hâlâ yorum satırı içindedir — ayrıca upstream’in tanımlayıcıyı fazladan “al” ile WithdrawalExcessLamports olarak yazdığını unutmayın; bu nedenle onu grep’leyin:
Doğrudan kodlayın. Yük tek bir discriminant baytıdır:
Her hesabın kendi programId değerini geçin. SPL Token ve Token-2022 talimatları bir işlemde paylaşılabilir, ancak her biri, kaynak hesabına sahip olan programa adreslenmelidir. Mainnet’te ölçüldüğünde, talimat SPL Token programında 270 işlem birimi ve Token-2022’de 1,414 işlem birimi maliyetlidir — her iki şekilde de ihmal edilebilir. Gerçek kısıtlama işlem boyutu, işlem değil.

Geri alınabilir hesapları bulma

Fazlalığı kodlanmış bir oranından türetmeyin. Her hesabın şu anda ihtiyaç duyduğu şeyi kümeye sorun, böylece aynı kod beş adımın tamamında çalışmaya devam eder:
getMinimumBalanceForRentExemption(0) yararlı bir yan kanal: tam olarak 128 × lamports_per_byte döndürür, bu nedenle 128’e bölmek, Rent sysvar’ı ayrıştırmadan kümenin hangi dağıtım adımında olduğunu söyler.

Toplu işleme: bir işleme kaç tane sığar

Her WithdrawExcessLamports talimatı, bir benzersiz yazılabilir hesap anahtarı — derlenmiş mesajda 32 bayt — artı yaklaşık 7 bayt talimat kodlaması katkıda bulunur. Hedef, yetki ve ücret ödeyici hepsi aynı cüzdan, bu nedenle aralarında bir anahtar maliyeti vardır. 1,232 baytlık işlem sınırına karşı, işlem bütçesi talimatları ve blockhash sayıldığında kabaca 25 talimat sığar. İşlem başına yirmi, güvenli çalışma numarasıdır ve Raydium’un kendi uygulamasının kullandığı şeydir. 116 geri alınabilir hesabı olan bir cüzdan bu nedenle altı işlemde tarar, her biri bir 5,000 lamport taban ücreti. Ekonomiyi not edin: ücret işlem başına alınır, hesap başına değil. Daha az hesabı geri almak daha az maliyetli değildir, bu nedenle kısmi bir tarama nadiren ekstra gidiş dönüşlere değer.

Raydium aracılığıyla geri alma

raydium.io/reclaim-rent sayfası, bağlı cüzdanın SPL Token ve Token-2022 hesaplarını tarar, toplam programlara göre bölünmüş olarak gösterir ve her şeyi toplu işlemler halinde tarar. Tarama salt okunur — Tüm kirayı geri al düğmesine basana kadar imza yok. Sayfa kasıtlı olarak yalnızca token hesaplarını kapsar. Kirayı yalnızca kapatarak serbest bırakabilen hesap türleri, kullanılamaz olarak listelenmek yerine hariç tutulur, çünkü bir hesabı kapatmak farklı, yıkıcı bir işlemdir.

SDK demosundan geri alma

Sürüm başlığı. Bu demolar Solana mainnet-beta’ya karşı @raydium-io/raydium-sdk-v2@0.2.64-alpha hedefler, 2026-09 doğrulanmış; raydium-sdk-V2-demo deposu kendisi şu anda 0.2.62-alpha yükler ve ikisi burada birbirinin yerine kullanılabilir. WithdrawExcessLamports elle kodlanır ve SDK sürümünden bağımsızdır — SDK yalnızca işlem oluşturma ve toplu işleme için kullanılır.
raydium-sdk-V2-demo/src/rent içinde iki betik:
reclaimRent.ts, işlem başına 20 hesapta toplu işleme yapar ve tüm toplu işlemleri bir geçişte imzalar:
Göndermeden önce simüle edin. simulateTransaction ile accounts.addresses, yürütme sonrası lamport bakiyelerini döndürür; bu, aritmetiğin kümenin gerçekte yapacağı şeyle eşleştiğini doğrulamanın en ucuz yoludur.

Raydium programları kendi taraflarında neler tarar

Cüzdanınız, azalmayı serbest bırakan tek yer değildir. Her havuz kira tutar — kasalar, LP mintleri ve eski oranla finanse edilen programa ait durum hesapları. Bu kira protokole aittir, LP’lere değil: hesabı oluşturan kişi tarafından ödendi, herhangi bir havuzun rezervlerinin parçası değildir ve hiçbir zaman eğriye girmedi. Üç program, 2026-09-09’da bunu geri vermek için bir yönetici talimatı kazandı: Adresler reference/program-addresses içindedir. CLMM ve Stable AMM bu sürümün parçası değildi. Bunun hiçbiri bir LP veya tüccarı etkilemez. Bu talimatlar lamportları ve yalnızca lamportları taşır. Token bakiyeleri, hesap verileri, sahipleri, havuz durumu, LP arzı, ücret sayaçları ve eğri hepsi dokunulmamış kalır ve hiçbiri bir hesabı kapatamaz. Bir havuzun swap teklifi, taramadan önce ve sonra aynıdır. Kullanıcı tarafı işlem, katılım ve son tarih yoktur.

Her programın işlediği üç hesap şekli

Üçü de aynı gönderimi izler, kaynak hesabının sahibinde:
  • Bir program yetkilisi PDA’sı tarafından sahip olunan token hesabı veya mint — program, token programının WithdrawExcessLamports (discriminant 38) değerini CPI’lar, bu PDA’yı imzalayarak.
  • Sarılı SOL kasası — WithdrawExcessLamports yerel hesapları reddeder, bu nedenle program önce SyncNative yapar (bağışlanan fazlalığı sarılı amount içine katlayarak), sarılı miktarın tam olarak ne kadar büyüdüğünü ölçer, bu delta için UnwrapLamports yapar ve ardından sarılı bakiyenin ön senkronizasyon değerine geri döndüğünü iddia eder. Bu kontrol başarısız olursa tüm talimat LamportsCalculateError ile geri döner. Bu nedenle SOL tarafı havuz kasası, bir tarama aracılığıyla tam likiditeyi tutar.
  • Programa ait durum hesabı — AmmInfo, PoolState, AmmConfig, ObservationState, bir PlatformConfig ve benzeri. Bir program kendi hesaplarını doğrudan borçlandırabilir, bu nedenle bakiyeyi CPI olmadan rent.minimum_balance(data_len) değerine düşürür.
Başka bir şey tarafından sahip olunan hesaplar sessizce atlanır, bu nedenle ilgisiz bir hesabı geçmek ölümcül değil, zararsızdır. Sarılı SOL dizisi, kendi yerel hesaplarınız varsa kopyalamaya değer: hesabın token bakiyesi olarak rapor ettiği şeyi değiştirmeden bir wSOL hesabından fazlalığı almak için tek yoldur.
Bu yollar, crate sürümüne değil, dağıtılan token programına bağlıdır. Üç program da token talimatlarını elle kodlar — WithdrawExcessLamports için tek bir 38 bayt, UnwrapLamports için 45 artı bir COption<u64> — ve bunları kaynak hesaba sahip olan token programına gönderir. Her iki talimat da geçerli mainnet SPL Token ve Token-2022 programlarında mevcuttur. Eski bir paketlenmiş SPL Token derlemesi çalıştıran yerel bir doğrulayıcı veya test demesi bunları uygulamaz ve bir tarama ona karşı bilinmeyen bir discriminator yerine Raydium programında herhangi bir şey üzerinde başarısız olur. Bu yolları mainnet klonlanmış bir token programına karşı test edin.

Yerinde hala geri alınamayan şey

Bir CLMM pozisyonunun kirası bundan etkilenmez — yukarıdaki tablo söylediği gibi pozisyon kapatıldığında geri döner. LaunchLab taban mintinde de aynı: başlatma talimatı, arzı bastıran aynı çağrıda MintTokens değerini iptal eder, bu nedenle hiçbir anahtar bu mint için WithdrawExcessLamports imzalayamaz ve kirası tasarım gereği mahsur kalır.

Şimdi geri almalı mısınız yoksa beklemeli misiniz?

Her ikisi de iyidir ve fark her iki şekilde de küçüktür:
  • Fazlalık hiçbir yere gitmiyor. Kendi hesaplarınızda kalır. Hiçbir şey sona ermez, hiçbir şey taranmaz, son tarih uygulanmaz.
  • Bekleme bileşik olur. Her adım aynı hesaplardan daha fazlasını serbest bırakır ve adım 5’ten sonra bir tarama, bugün bir tarama kadar ücret maliyetlidir.
  • Şimdi geri almak sonraki adımları kaybettirmez. Bugün taradığınız bir hesap basitçe geçerli minimumda; sonraki adım onu tekrar aşırı finanse eder ve bunu tekrar tarayabilirsiniz.
Erken geri almanın tek gerçek maliyeti taban ücreti ve beklemenin tek gerçek maliyeti lamportların biraz daha uzun süre hareketsiz kalmasıdır.

Daha fazla okuma

SIMD-0437

Teklif kendisi — beş özellik kapısı ve azalmayı adımlandırmanın mantığı.

Azaltılmış kira

Solana’nın dağıtım sayfası: geçerli adım, zamanlama ve yeni hesaplar için neler değişir.

Kira azaltma: veriye dayalı bir analiz

Ekonomi ve adımlandırılmış dağıtımın yönetmek için tasarlandığı durum büyümesi riski.

Hesap modeli

Solana hesaplarının nasıl finanse edildiği, sahip olunduğu ve kapatıldığı — yukarıdaki her şeyin arka planı.