在 SolMask 存款是免费的。 协议在提款时收取费用,分两部分,都在链上并由程序强制执行。没有隐藏费用,没有 swap 路径上的价差,也没有按资产变化。
存款:免费
当您在 SolMask 池存款时,全额进入屏蔽保险库。入口处不扣除任何东西:您在屏蔽 note 中承诺的金额,正是您存入的金额。
提款百分比费用:以提款资产支付
提款时,协议收取一小笔百分比 —— Config.withdraw_fee_bps,一个由管理员可调、上限为 100 个基点(1.00%)的值。按推荐的 23 bps(0.23%)计算为 fee = 提款金额 * 23 / 10_000。费用以您提取的资产收取 —— 提 SOL 收 SOL,提 USDC 收 USDC —— 并累积到每个池子的代币 fee vault。该百分比被绑定在提款的零知识证明内部,因此您和中继器都无法篡改它。
提款费:固定 0.003 SOL
提款端更简单。每一笔提款交易默认支付 0.003 SOL 的协议费用 —— 它来自链上的 Config.withdraw_fee_lamports(即 3,000,000 lamports),是一个由管理员可调的链上值(上限为 0.1 SOL),而非硬编码常量,无需重新部署即可调整。它不随提款金额变化。
机制上,提交您提款的 relayer 先用自己的钱包支付这笔 SOL 费用,然后正好从被释放的金额中收回它:在将其余部分路由给收款人之前,按存款资产计价扣除一小笔 tip。Solana 网络 gas(基础费用 + 账户租金)是 relayer 自行承担的另一项成本,不会叠加到您的费用上。您不会看到这是一笔独立交易;它已捆绑在您在界面上接受的提款报价中。
正是这种设计,让您能够提款到一个刚创建、尚未注资的钱包。接收资金的钱包不需要任何 SOL 来覆盖 gas,因为 relayer 替您垫付了。
一个完整的算例
假设您向 SOL 池存入 1.0000 SOL。
存款指令拿走 0.0023 SOL 作为 0.23% 的费用,将 0.9977 SOL 路由到池子保险库。您的屏蔽 note 记录 0.9977 SOL 为可花费金额,因为这正是真正支撑您承诺的部分。
您经历完隐私延迟。提款时,协议从保险库释放 0.9977 SOL。其中 0.003 SOL 作为固定提款费支付给费用收集者,剩下的 0.9947 SOL 到达您的接收地址。
1 SOL 存款的总成本:0.0053 SOL,也就是往返 53 个基点。在 100 SOL 的存款上,因为提款费是固定的,比例会收紧 —— 存款 0.23 SOL + 提款 0.003 SOL,合计约 23.3 bps。在 0.1 SOL 的存款上,因为固定费用占主导,往返成本接近 3.23%。SolMask 在大额上更具成本效益。
费用最终流向何处
两项费用最终都汇入一个链上账户 —— Config.fee_collector —— 它由 SolMask 管理员在部署时配置。提款费在每次提款时直接以 SOL 进入该账户。存款费在每个池的 fee_vault 账户中以池的原生资产累积,当某个池的保险库越过可配置的 sweep_threshold 时,管理员将其清扫到费用收集者。清扫是手动操作,不是自动的。
费用收集者的目的地发布在已部署的 Config PDA 中。如果您不想仅凭我们的说辞,您可以自己在链上读取它,验证费用的去向。
费用用来支付什么
存款费是协议的收入:它支付基础设施(relayer、indexer、可信设置仪式的开支)以及持续的开发。它不是网络 gas 费 —— 您存款交易上实际的 Solana 优先费用是另外的,按通常方式流向验证者。
提款费是协议的收入:relayer 用 SOL 把它支付给费用收集者,再通过一笔以存款资产计价的 tip 收回这笔支出。relayer 自身的网络 gas 是它自行承担的另一项成本,并非由该费用补偿。由于费用是固定的,它使得非常小额的提款在经济上不具吸引力,但不惩罚大额提款。这是有意为之。隐私池经济学在典型提款规模足够大、能不抱怨地吸收一笔固定费用时效果最好,这能让匿名集合被有意义的金额而非粉尘填充。
没有其他费用。没有订阅、没有退出税、swap 端除了 Jupiter 自身为跨资产路由收取的之外没有任何代扣。您在界面看到多少,就支付多少。