什麼是 Solana 租金?完整指南
Learn what Solana rent is: a refundable SOL deposit for account storage, not a recurring fee. Understand rent exemption and how to reclaim locked SOL.
準確性備註:網絡效能、驗證者數量、費用、協議功能、錢包支援以及第三方整合會隨時間變化。請將過往的數據視為歷史紀錄,並驗證最新的原始文件。
什麼是 Solana 租金?它是與持久性鏈上儲存相關的帳戶餘額機制。目前的帳戶創建規則、租金豁免、回收行為和已棄用欄位必須根據即時運作環境和目前文件進行驗證。
內容摘要
- Solana 租金是可退還的 SOL 儲值,而非持續收取的費用。
- 每個鏈上帳戶都需要最低 SOL 餘額才能保持活躍狀態。
- 大多數錢包會自動為新帳戶提供資金以達到租金豁免狀態。
- 租金豁免餘額和帳戶關閉規則應根據目前的運作環境進行檢查。
- 您可以透過關閉未使用的代幣帳戶來回收被鎖定的 SOL。
- 定期租金收取見於較舊的文件;在沒有目前原始資料確認的情況下,請勿依賴「Epoch Zero」標籤。
此內容僅供教育和資訊參考之用。它不構成財務建議、投資建議,也不構成買入、賣出或持有任何加密貨幣或數位資產的建議。
什麼是 Solana 租金?(簡短回答)
Solana 租金是每個鏈上帳戶為保持在 Solana 區塊鏈上的活躍狀態而必須持有的一筆可退還 SOL 儲值金。這筆儲值並非循環收費;它由協議持有,並在帳戶關閉時全額退還。大多數使用者從未主動管理租金,因為像 Phantom 和 Solflare 這樣的錢包會自動為新帳戶提供所需的最低資金,這就是為什麼您可能會在沒有明確授權的情況下發現少量的 SOL 被扣除。
「租金」這個詞在這裡確實令人困惑。它聽起來像是一張月度帳單。請將其視為押金:您存入 SOL 以保留在網絡上的空間,並在離開時拿回每一分錢。您的 SOL 並沒有被花掉;它只是被持有著。
如需完整的技術規範,請參閱 官方 Solana 租金文件.
為什麼 Solana 有租金機制?
Solana 驗證者必須將每個活躍帳戶的資料儲存在 RAM 中,以便每秒處理數千筆交易,而硬體成本是真實存在的。驗證者是運行 Solana 網絡、處理交易並維護帳本的節點。與磁碟儲存不同,RAM 在大規模情況下非常昂貴,驗證者必須將所有活躍帳戶資料載入記憶體中,以實現 Solana 的吞吐量。將每個帳戶佔用儲存空間的權利與其大小成比例的最低 SOL 餘額掛鉤,正是為了將這些 RAM 需求限制在一定範圍內。
如果儲存沒有附帶成本機制,任何人都可以創建無限的帳戶並免費填充資料。這就是狀態膨脹問題:鏈上狀態的總量(即驗證者必須保持加載到記憶體中的所有數據)將無限制增長,導致節點運作集中在資金充足的運營者手中,並降低所有人的網絡效能。租金儲值確保佔用驗證者儲存空間的帳戶擁有與其儲存佔用空間成比例的經濟質押。
Solana 聯合創始人 Anatoly Yakovenko 將此機制設計為協議原始架構的一部分,專門用於防止這種無限制的增長。
租金是與驗證者記憶體成本掛鉤的儲存押金。它不是支付給 Solana Labs 的費用,也不像以太坊的 Gas 費那樣運作,這是下方比較章節中提到的一個常見誤解。
協議備註: 較舊的 Solana 文件描述了從非豁免帳戶定期收取租金的情況。目前的帳戶創建和租金豁免行為必須根據即時運作環境進行檢查。不要僅憑帳戶數量推斷固定的 SOL 鎖定量或任何價格影響。
Solana 租金如何運作:儲存押金模型
Solana 將每一條鏈上資料(從您的代幣餘額到您的 NFT 所有權記錄)儲存在稱為「帳戶」的離散結構中。
儲存押金類比
將租金想像成儲物櫃的可退還押金:押金保留您的空間,您在騰空時拿回押金,且預先全額支付意味著您每個月無需支付任何費用。
當您租用儲物櫃時,設施會在您佔用空間期間持有您的押金。您並沒有失去那筆錢;它存放在託管帳戶中。當您清理完畢並歸還鑰匙時,您會拿回押金。Solana 租金的運作方式相同。您的 SOL 儲值保留了網絡帳本上的空間,並在帳戶關閉時全額退還。
一個關鍵區別:與按月支付的儲物櫃不同,Solana 使用一次性押金模型。只需為帳戶存入一次租金豁免最低金額,只要帳戶保持開啟,就無需進一步支付。押金以 lamports 為單位衡量(SOL 的最小單位;1 SOL 等於 1,000,000,000 lamports),但基於日常用途,您會看到以 SOL 標註的金額。
為什麼每個代幣都需要自己的帳戶
Solana 上的每個代幣餘額都佔用這些帳戶之一的空間,每個 NFT 記錄和每個程式狀態也是如此。這些帳戶中的每一個都需要最低 SOL 餘額才能保持開啟。
在以太坊上,錢包的所有代幣餘額都在單個地址內追蹤。Solana 的運作方式不同。您持有的每個同質化代幣都需要自己專用的 SPL 代幣帳戶(Solana 程式庫標準,用於鏈上代幣儲存,類似於以太坊上的 ERC-20 代幣帳戶)。當您第一次收到代幣時,系統會創建一個新帳戶來保存錢包中該特定代幣的餘額。SOL 儲值會自動附加到該帳戶。這就是為什麼您在第一次收到以前未持有過的代幣時,會看到少量的 SOL 被扣除。
具體來說:持有 10 種不同的代幣意味著有 10 個獨立的代幣帳戶,每個帳戶需要約 0.002 SOL 作為租金豁免押金。這大約有 0.02 SOL 被鎖定在這些帳戶中,如果您稍後關閉帳戶,所有這些資金都是可以完全回收的。
Solana 的 NFT 也遵循相同的模式。每個 NFT 都存在於其自己的帳戶中,其 NFT 的元數據、圖像引用和所有權數據佔用的儲存空間需要租金豁免押金。鑄造一個 NFT 會同時創建多個帳戶(鑄造帳戶、代幣帳戶、元數據帳戶),每個帳戶都帶有自己的押金,這就是為什麼鑄造費用比標準交易略多一些 SOL 的原因。
在 Solana 上與 DeFi 協議互動,例如借貸平台、去中心化交易所或收益金庫,通常會創建多個帶有租金押金的帳戶。如果您使用過其中的任何一個,您很可能有一些被鎖定的 SOL 分散在這些帳戶中。
包括 Phantom 和 Solflare 在內的錢包會自動處理帳戶創建和資金存入。有關底層架構的更多細節,請參閱 Solana 帳戶模型文件.)。有關代幣標準本身,請參閱 SPL 代幣文件.)
租金豁免:帳戶資金如何運作
帳戶持有滿足當前協議規則下其數據大小所需的 Lamport 餘額時,即為免租金帳戶。應根據當前的運行時文檔檢查狀態和所需金額,而不是將其視為永久性的協議保證。
什麼是免租金?
免租金是帳戶當其 Lamport 餘額達到其數據大小所需的門檻時所獲得的狀態。在當前模型下,該餘額不會被定期作為租金費用消耗。協議行為可能會演變,因此開發者應查詢相關叢集的當前需求。
免租金並不意味著沒有 SOL 被鎖定。該儲值是您的錢包代表該帳戶持有的真實 SOL。這意味著該儲值不會被消耗。它在帳戶的整個生命週期內保持相同水平,並在帳戶關閉時退還給您。
常見的錢包和應用程式流程通常會為新創建的帳戶提供所需的門檻金額,但使用者應驗證個別帳戶和交易說明,而不是假設每個錢包或應用程式的行為都相同。
需要多少 SOL 才能免租金?
標準 SPL 代幣帳戶的最低餘額約為 0.00203928 SOL (2,039,280 Lamports)。確切金額取決於帳戶的數據大小:數據大小為 0 的系統帳戶所需較少,而數據較多的自訂程式帳戶則需要成比例更多的 SOL。
協議準確性說明:在使用 getMinimumBalanceForRentExemption) 查詢當前 Solana 主網的確切數值,再做出技術或財務決策。協議參數可能會通過網路治理進行變更。
下表提供了常見帳戶類型的近似參考數字:
| 帳戶類型 | 近似數據大小 | 所需最低 SOL (近似值) |
|---|---|---|
| 系統帳戶 (錢包) | 0 位元組 | ~0.00089 SOL |
| SPL 代幣帳戶 | 165 位元組 | ~0.00204 SOL |
| NFT 鑄造帳戶 | 82 位元組 | ~0.00144 SOL |
| 自訂程式帳戶 | 變數 | 按數據大小計算 |
所有數字均為近似值。在依賴這些數字進行生產用途之前,請使用 getMinimumBalanceForRentExemption 在當前的 Solana 主網上進行驗證。
開發者說明 要以程式設計方式計算確切的最低餘額:
- 調用
connection.getMinimumBalanceForRentExemption(dataSize),其中dataSize是帳戶分配的位元組大小。- 此方法封裝了公式:
minimum_balance = (128 + data_size_bytes) × rent_rate_per_byte × two_years_of_epochs。- 創世設定的租金費率為每位元組年 3,480 Lamports。
- 在為新帳戶提供資金時,將返回的 Lamport 值直接傳遞給
SystemProgram.createAccount。在生產環境中使用之前,請通過 Solana 開發者文檔) 驗證當前費率。
Solana 帳戶用完 SOL 會怎樣?
常見的錢包和應用程式流程通常會為新帳戶提供所需的門檻金額,但使用者應驗證具體的說明和帳戶,而不是假設每個實施的行為都相同。
舊有的租金設計包含了對非免租金帳戶的收集或帳戶移除行為。在將垃圾回收描述為活躍風險之前,應驗證當前的運行時規則和帳戶創建要求。
不要假設僅僅降低帳戶餘額就會導致刪除或代幣丟失。帳戶所有權、程式規則、關閉權限以及當前的免租金執行情況決定了可能發生的情況。請檢查即時帳戶和運行時,而不是依賴舊的通用場景。
歷史文檔描述了對非免租金帳戶的定期扣款。在應用舊有描述之前,應從主要文檔中驗證當前的帳戶創建和運行時行為。
常見的錢包和應用程式流程通常會以所需的餘額創建帳戶,但使用者應驗證個別帳戶,而不是依賴通用的錢包保證。帳戶關閉是另一項獨立操作,將在下方介紹。
一般使用者需要擔心租金嗎?
對於許多 Solana 使用者來說,帳戶資金由錢包和應用程式流程處理,但帳戶關閉和開發者管理的帳戶仍然需要小心。
許多錢包會嘗試為新創建的帳戶提供所需的最低金額,但使用者不應將錢包名稱視為安全保證。在轉移或關閉任何內容之前,請驗證帳戶餘額、所有者程式、代幣數量和當前的免租金要求。
值得採取行動的一種情況是:如果您積累了許多空代幣帳戶(來自您不再持有的代幣、未領取的空投,或已不再活躍的 NFT 項目),這些帳戶會帶著鎖定的少量 SOL 儲值處於打開狀態。這些儲值是完全可回收的。請參閱如何收回鎖定的 SOL 以了解步驟。
如何收回租金:從未使用過的帳戶取回您的 SOL
符合資格的空代幣帳戶在受管轄的代幣程式下關閉時,可以退還其剩餘的 Lamports。關閉帳戶並非沒有風險:在簽署之前,請驗證程式、餘額、授權人、目的地和交易。
您曾經持有的每一個 SPL 代幣都需要自己的鏈上帳戶,而這些帳戶中的每一個都持有約 0.002 SOL 作為免租金儲值。
當代幣餘額歸零,因為您已出售、轉移或項目已結束時,帳戶不會自動關閉。它會以您鎖定的 SOL 儲值留在分類帳上,等待著。在您明確關閉帳戶之前,網路沒有理由退還該 SOL。
一個擁有 50 個空代幣帳戶的錢包,約有 0.1 SOL 被鎖定在這些帳戶中。以典型的 SOL 價格計算,這相當於 15 到 20 美元的閒置資金,而且可以免費完全收回。
關閉代幣帳戶可以將其剩餘的 Lamports 退還給指定的目的地,但首先請驗證代幣餘額是否為零、地址和授權人是否正確,並且錢包說明不包含任何無關的操作。未來收到相同代幣可能需要一個新的關聯代幣帳戶和另一個帳戶創建儲值。
安全性說明:在連接之前,務必驗證您使用的是任何錢包或投資組合工具的官方版本。第三方應用程式會與您的錢包互動;請僅使用您信任並可驗證的應用程式。
方法 1:Phantom 錢包 (內建,無需第三方連接)
- 打開 Phantom 並導航到您的代幣列表。
- 識別顯示零餘額的代幣。
- 選擇代幣,然後從期權選單中選擇「關閉帳戶」或「銷毀並關閉」。
- 確認交易。SOL 儲值會立即退還到您的主餘額。
方法 2:Step Finance (批量關閉多個帳戶)
- 前往 Step Finance 並連接您的錢包。
- 導航到投資組合管理器儀表板的「空帳戶」部分。
- 檢閱可關閉帳戶列表以及每個帳戶可收回的 SOL 金額。
- 選擇您要關閉的帳戶並確認交易。
方法 3:Solana Beach 或 Solscan (僅讀識別)
- 打開 Solana Beach 或 Solscan 並輸入您的錢包地址。
- 瀏覽您的代幣帳戶,找出餘額為零的帳戶。
這兩個瀏覽器都不直接執行關閉。識別帳戶後,請使用 Phantom 或 Step Finance 完成交易。僅關閉代幣餘額為零的帳戶;持有活躍代幣的帳戶在轉移或銷毀餘額之前無法關閉。
開發者筆記 若要透過程式化方式關閉帳戶,請使用代幣程式的
closeAccount指令。在呼叫closeAccount之前,該帳戶的代幣餘額必須為零;否則交易將會失敗。來自已關閉帳戶的 lamports 將轉移到您指定的目標帳戶。如需完整的指令參考,請參閱 SPL 代幣文件)。
Solana 租金變動與目前的運行時行為
現代 Solana 帳戶創建流程通常需要足夠的 lamports 才能達到租金豁免,而較舊的定期租金收取描述可能已不再符合目前的運行時行為。一個已棄用或作為標記的 rent_epoch 欄位本身並不能證明帳戶可以忽略最低餘額要求。
開發者應使用 getMinimumBalanceForRentExemption 查詢目前的最低要求,確認現行的運行時行為,並在相關叢集上測試帳戶的創建與關閉。使用者不應關閉帳戶,除非他們了解擁有者程式、代幣餘額、權限以及回收 lamports 的目的地。
Solana 租金 vs. Ethereum Gas 費:關鍵差異
Solana 租金與 Ethereum Gas 費是本質上不同的機制,只是剛好共享了「網路成本」的標籤。
| 功能 | Solana 租金 | Ethereum Gas |
|---|---|---|
| 用途 | 鏈上帳戶空間的存儲押金 | 執行交易所產生的運算費用 |
| 何時收取 | 帳戶創建時一次性收取 | 每次提交交易時收取 |
| 可退還? | 是,帳戶關閉時全額退還 | 否;Gas 費已被消耗且不可退還 |
| 持續成本? | 否;租金豁免帳戶沒有定期費用 | 是;每筆交易都需要 Gas 費 |
| 金額 | 根據帳戶資料大小的公式固定 | 浮動,由網路需求決定 |
| 使用者控制 | 由協議設定;使用者不可調整 | 使用者可以設定 Gas 上限與價格 |
| 涵蓋範圍 | 存儲空間(驗證器上的位元組) | 運算(執行所需的 CPU 週期) |
如果您來自 Ethereum,您可能會將租金對應到 Gas 的心理模型:一種像 Gas 燃燒 ETH 那樣燃燒 SOL 的每筆交易成本。這種對應是不正確的。租金和 Gas 服務於不同的目的,應用於不同的時間,並且在經濟行為上也有所不同。
Solana 有其自身的交易費用來支付運算成本,這與租金是分開的。請勿將租金與 Solana 的交易費用混為一談;它們是截然不同的機制。
Ethereum Gas 費是一種消耗成本:您支付了它們,它們就消失了,進而促成 EIP-1559 費用燃燒或作為優先費用交給驗證者。Solana 租金是一種可退還的押金:您是持有它而非花掉它,並在帳戶關閉時收回。這種區別說明了為什麼對於在兩個網路之間遷移的使用者來說,Solana 的成本模型在結構上感覺有所不同。
Bitcoin 採取了不同的架構方式。Bitcoin 使用 UTXO(未花費交易輸出)模型而非帳戶模型,且沒有租金機制,因為未使用的 UTXO 只是保持未花費狀態,而不會像 Solana 帳戶那樣佔用同樣的索引存儲。
Solana 租金:開發者參考
以下參考內容是為在 Solana 上構建的開發者編寫的;一般使用者可以跳至 FAQ 章節,不會錯過日常使用的任何必要資訊。
開發者筆記 以下所有範例均參考 Solana web3.js v1.x。v2.x API(目前正在發布中)使用不同的方法簽署。在生產環境中使用這些範例之前,請查看 官方 web3.js 遷移指南)。
程式與租金: Solana 程式(相當於 Ethereum 上的智慧合約)本身也是以帳戶形式存儲,並受相同的租金規則約束。已部署的程式必須維持租金豁免餘額。程式帳戶通常在部署期間被注資至租金豁免狀態。在 Solana 上,程式是無狀態的;它們寫入單獨的資料帳戶,每個資料帳戶都有自己的租金要求。
程式衍生地址 (PDAs): PDA 是根據程式 ID 與種子 (seeds) 確定性推導出的帳戶,由程式而非私鑰擁有。PDA 受與使用者擁有帳戶相同的租金豁免要求約束。擁有 PDA 的程式負責確保其資金達到租金豁免的最低限額,通常在透過跨程式調用 (CPI) 創建帳戶時進行。未正確注資的 PDA 是 Solana 程式生產環境中常見的錯誤來源。
計算租金豁免最低餘額: 使用 connection.getMinimumBalanceForRentExemption(dataSize),其中 dataSize 是帳戶分配的資料位元組大小。這會回傳目前的 lamports 最低金額。在為新帳戶注資時,將結果直接傳遞給 SystemProgram.createAccount。
透過程式化方式關閉帳戶: 使用代幣程式的 createCloseAccountInstruction 來關閉代幣帳戶,並將其 lamports 退還至指定的目的地。帳戶的代幣餘額必須為零;否則交易將會失敗。
| 操作 | 方法 | Solana web3.js v1.x 呼叫 |
|---|---|---|
| 檢查最低餘額 | getMinimumBalanceForRentExemption | connection.getMinimumBalanceForRentExemption(size) |
| 創建租金豁免帳戶 | SystemProgram.createAccount | SystemProgram.createAccount({...lamports: minBalance...}) |
| 關閉代幣帳戶 | Token Program closeAccount | createCloseAccountInstruction(account, dest, owner) |
完整參考:Solana 帳戶模型文件.)
關於 Solana 租金的常見問題
以下問題涵蓋了關於 Solana 租金最常見的困惑點,並提供獨立的回答以供直接參考。
什麼是 Solana 租金?
Solana 上的租金通常被描述為鏈上帳戶根據目前規則為其分配的資料必須持有的 lamport 餘額。當符合條件的帳戶被有效關閉時,其剩餘的 lamports 會進入關閉指令中指定的目的地。錢包通常會自動化帳戶注資,但使用者仍應驗證指令與目前的要求。
Solana 租金如何運作?
當創建 Solana 帳戶時,它通常必須持有根據其分配資料大小而定的最低 lamport 餘額。在目前規則下,達到該閾值可使帳戶免於定期的租金扣除。有效的關閉操作會將帳戶剩餘的 lamports 發送到指令指定的目的地。
什麼是 Solana 租金豁免?
租金豁免是指當帳戶的 lamport 餘額達到或超過其資料大小的目前閾值時所持有的狀態。在目前的模型下,餘額不會被定期扣除作為租金;開發者應驗證目前的運行時行為,而不是將其視為不可更改的保證。
需要多少 SOL 才能達到租金豁免?
對於標準的 SPL 代幣帳戶,約需 0.00203928 SOL (2,039,280 lamports)。確切金額取決於帳戶的資料大小:資料為 0 位元組的系統帳戶需要較少(約 0.00089 SOL),而資料量較多的自定義程式帳戶則按比例需要更多。在依賴這些數字之前,請先在 Solana 主網上使用 getMinimumBalanceForRentExemption 驗證目前的數值。
如果 Solana 帳戶沒有足夠的 SOL 支付租金會怎樣?
是的。當您關閉帳戶時,全部的租金儲值將退回至您的錢包。僅當相關程式與帳戶狀態允許時,關閉帳戶才能回收 Lamport。在簽署前,請確認帳戶為空、驗證目標地址與權限,並審查每筆交易。提及的錢包與儀表板僅為範例,不代表背書。
Solana 的租金機制解決了什麼問題?
驗證者必須將每個活躍帳戶的數據保存在 RAM 中,才能以高吞吐量處理交易。若儲存沒有成本機制,任何人都可以創建無限的帳戶,導致網路狀態無限制增長,進而推高驗證者的硬體成本。租金儲值可確保消耗驗證者儲存空間的帳戶對其佔用的空間負擔經濟責任。
Solana 租金與 Ethereum 的 Gas 費用有何不同?
Ethereum 的 Gas 費用是按每筆交易支付的不可退還計算成本;它們涵蓋 CPU 週期並立即被消耗。Solana 的租金是每個帳戶支付一次的可退還儲存押金;它涵蓋驗證者上的位元組儲存,並在帳戶關閉時全額退還。這兩種機制在架構不同的協議中服務於不同的目的。
在 Bybit 探索 SOL
讀者可以查看 目前的 SOL 市場資訊 或 SOL/USDT 現貨市場.。這些連結提供市場通路,並不證明 Solana、錢包或第三方協議適合每位讀者。
關鍵要點:您需要了解的 Solana 租金知識
Solana 租金通常被理解為帳戶資金需求,而非經常性的使用者費用,且受目前的執行期規則限制。
- Solana 帳戶通常持有其分配數據所需的 Lamport;符合條件的關閉操作會將其剩餘的 Lamport 發送至指定的目標地址。
- 每個鏈上帳戶都需要與其數據大小成比例的最低 SOL 餘額才能保持活躍。
- 常見的錢包和應用程式通常會以所需的餘額創建帳戶,但應獨立驗證每個帳戶。
- 在沒有主要來源確認的情況下,不應將舊的定期租金和垃圾回收描述應用於目前的執行期。
- 「租金豁免」狀態意味著儲值不會被扣除,並不代表沒有鎖定 SOL。
- 根據代幣程式的規則,空的代幣帳戶在關閉時可能會退還其租金豁免餘額。在簽署前,請驗證帳戶、權限、目標地址、交易手續費和工具權限。
對於一般使用者,請在關閉帳戶前確認帳戶已清空且符合條件。對於開發者,請查詢目前的租金豁免要求,並在相關叢集上測試創建與關閉。請勿將錢包自動化、舊的租金描述或帳戶數量估計視為安全性或代幣經濟保證。
本文引用的 SOL 餘額、租金率和協議參數反映了截至發布日期的 Solana 網路公開文件行為。協議參數可能透過網路治理或軟體升級而改變。讀者在做出技術或財務決策前,應在 Solana 官方文件中驗證目前數值。