You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Solana创建代币账户是否自动免租金?如何设置免租金?

关联代币账户免租金设置问题
  • 你使用的getOrCreateAssociatedTokenAccount函数不会自动将账户设置为免租金。这个函数默认只会存入维持账户创建所需的最小租金金额(仅够短期维持账户存在),并未达到覆盖2年租金的免租金阈值。

  • 要将账户设置为免租金,可通过以下两种方式操作:

    1. 创建账户时直接补足免租金余额:
      先计算代币账户的免租金最低余额(代币账户固定为165字节),再在创建关联账户的交易中添加一笔SOL转账指令,将差额转入新账户。示例代码如下:
      // 计算代币账户的免租金最低余额
      const rentExemptAmount = await connection.getMinimumBalanceForRentExemption(165);
      // 获取关联账户创建信息
      const { address: tokenAccountAddress, transaction } = await getOrCreateAssociatedTokenAccount(
        connection,
        payer,
        mint,
        payer.publicKey
      );
      // 计算需要额外转入的SOL金额
      const currentBalance = await connection.getBalance(tokenAccountAddress);
      const additionalSol = rentExemptAmount - currentBalance;
      
      if (additionalSol > 0) {
        // 添加SOL转账指令
        const transferInstruction = SystemProgram.transfer({
          fromPubkey: payer.publicKey,
          toPubkey: tokenAccountAddress,
          lamports: additionalSol,
        });
        // 合并指令并发送交易
        await sendAndConfirmTransaction(
          connection,
          new Transaction().add(...transaction.instructions, transferInstruction),
          [payer]
        );
      }
      
    2. 账户创建后手动补充SOL:
      直接向已创建的代币账户地址转入足够达到免租金阈值的SOL,转账完成后账户会自动满足免租金条件,无需额外操作。

补充:Solana的免租金规则是自动生效的,只要账户余额≥对应账户类型的免租金最低余额,就会自动享受免租金待遇,无需主动触发设置流程。

内容的提问来源于stack exchange,提问作者colinwink

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 10:54:20