> ## Documentation Index
> Fetch the complete documentation index at: https://whitepaper.rwanftfi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 出售与借贷

> 手动出售获得 75% USDT 实付,在 365 天四周期内以 70% 自动出售,以及以固定 70% LTV 和一次性 5% 佣金针对 DA 抵押物的借贷设施。

export const SellVsLend = () => {
  const [daAmount, setDaAmount] = useState(1000);
  const [currentPrice, setCurrentPrice] = useState(1.00);
  const [futurePrice, setFuturePrice] = useState(2.00);
  const [tab, setTab] = useState('sell');
  const [paybackPercent, setPaybackPercent] = useState(100);
  const fmtUsd = n => {
    const digits = Math.abs(n) >= 10000 ? 0 : 2;
    return new Intl.NumberFormat('en-US', {
      style: 'currency',
      currency: 'USD',
      maximumFractionDigits: digits
    }).format(n);
  };
  const manualSellPayout = daAmount * currentPrice * 0.75;
  const autoSellPayout = daAmount * futurePrice * 0.70;
  const loanAmount = daAmount * currentPrice * 0.70 * 0.95;
  const futureValue = daAmount * futurePrice;
  const paybackFraction = paybackPercent / 100;
  const repayAmount = loanAmount * paybackFraction;
  const tokensReturned = daAmount * paybackFraction;
  const tokensReturnedValue = tokensReturned * futurePrice;
  const tokensLocked = daAmount * (1 - paybackFraction);
  const netPosition = loanAmount - repayAmount + tokensReturnedValue;
  const autoSellBetter = futurePrice > currentPrice * (75 / 70);
  const sellDifference = Math.abs(autoSellPayout - manualSellPayout);
  const sliderStyle = {
    touchAction: 'manipulation',
    height: '6px',
    borderRadius: '3px',
    background: 'linear-gradient(to right, rgba(255,255,255,0.4), rgba(255,255,255,0.15))',
    outline: 'none',
    WebkitAppearance: 'none',
    appearance: 'none'
  };
  return <div style={{
    backgroundColor: '#000000',
    color: '#FFFFFF',
    borderColor: 'rgba(255,255,255,0.05)'
  }} className="p-6 rounded-xl not-prose border">
      <div className="flex items-center justify-between mb-6">
        <h3 style={{
    color: '#FFFFFF'
  }} className="text-lg font-serif italic">Sell vs Lend Strategy Tool</h3>
        <span style={{
    color: 'rgba(255,255,255,0.6)',
    backgroundColor: 'rgba(255,255,255,0.1)',
    border: '1px solid rgba(255,255,255,0.2)'
  }} className="text-xs px-3 py-1 rounded-full font-medium">Interactive</span>
      </div>

      {}
      <div className="space-y-3 mb-6">
        {}
        <div style={{
    backgroundColor: '#383838',
    border: '1px solid rgba(255,255,255,0.05)'
  }} className="rounded-xl p-4">
          <div className="flex justify-between items-center mb-2">
            <span style={{
    color: 'rgba(255,255,255,0.5)',
    fontSize: '12px'
  }}>DA Amount</span>
            <span style={{
    color: '#FFFFFF',
    fontSize: '14px',
    fontWeight: 700
  }}>{daAmount.toLocaleString('en-US')} DA</span>
          </div>
          <input type="range" min="0" max="10000" step="100" value={daAmount} onChange={e => setDaAmount(Number(e.target.value))} className="w-full cursor-pointer" style={sliderStyle} />
        </div>

        {}
        <div style={{
    backgroundColor: '#383838',
    border: '1px solid rgba(255,255,255,0.05)'
  }} className="rounded-xl p-4">
          <div className="flex justify-between items-center mb-2">
            <span style={{
    color: 'rgba(255,255,255,0.5)',
    fontSize: '12px'
  }}>Current DA Price</span>
            <span style={{
    color: '#FFFFFF',
    fontSize: '14px',
    fontWeight: 700
  }}>${currentPrice.toFixed(2)}</span>
          </div>
          <input type="range" min="1.00" max="10.00" step="0.10" value={currentPrice} onChange={e => setCurrentPrice(Number(e.target.value))} className="w-full cursor-pointer" style={sliderStyle} />
        </div>

        {}
        <div style={{
    backgroundColor: '#383838',
    border: '1px solid rgba(255,255,255,0.05)'
  }} className="rounded-xl p-4">
          <div className="flex justify-between items-center mb-2">
            <span style={{
    color: 'rgba(255,255,255,0.5)',
    fontSize: '12px'
  }}>Expected Price in 4 Months</span>
            <span style={{
    color: '#FFFFFF',
    fontSize: '14px',
    fontWeight: 700
  }}>${futurePrice.toFixed(2)}</span>
          </div>
          <input type="range" min="1.00" max="20.00" step="0.10" value={futurePrice} onChange={e => setFuturePrice(Number(e.target.value))} className="w-full cursor-pointer" style={sliderStyle} />
        </div>
      </div>

      {}
      <div style={{
    backgroundColor: 'rgba(56,56,56,0.7)'
  }} className="flex rounded-full p-1 mb-6">
        <button onClick={() => setTab('sell')} style={tab === 'sell' ? {
    backgroundColor: '#FFFFFF',
    color: '#000000'
  } : {
    backgroundColor: 'transparent',
    color: 'rgba(255,255,255,0.5)'
  }} className="flex-1 px-3 py-1.5 rounded-full text-[11px] font-medium transition-all">
          SELL DA
        </button>
        <button onClick={() => setTab('lend')} style={tab === 'lend' ? {
    backgroundColor: '#FFFFFF',
    color: '#000000'
  } : {
    backgroundColor: 'transparent',
    color: 'rgba(255,255,255,0.5)'
  }} className="flex-1 px-3 py-1.5 rounded-full text-[11px] font-medium transition-all">
          LEND DA
        </button>
      </div>

      {}
      {tab === 'sell' && <>
          <div className="grid grid-cols-1 md:grid-cols-2 gap-4">
            {}
            <div style={{
    backgroundColor: 'rgba(255,255,255,0.03)',
    border: '1px solid rgba(255,255,255,0.15)'
  }} className="rounded-xl p-5">
              <div className="flex items-center gap-2 mb-4">
                <h4 style={{
    color: '#FFFFFF'
  }} className="text-base font-bold">MANUAL SELL</h4>
                <span style={{
    color: '#f87171',
    backgroundColor: 'rgba(239,68,68,0.1)',
    border: '1px solid rgba(239,68,68,0.2)'
  }} className="ml-auto text-[10px] font-semibold px-2 py-0.5 rounded-full">
                  Sell now
                </span>
              </div>
              <div style={{
    color: '#FFFFFF'
  }} className="text-2xl font-bold mb-1">{fmtUsd(manualSellPayout)}</div>
              <div style={{
    color: 'rgba(255,255,255,0.3)',
    fontSize: '10px',
    marginBottom: '8px'
  }}>(25% stays in pool)</div>
              <div style={{
    color: 'rgba(255,255,255,0.4)',
    fontSize: '11px',
    lineHeight: '1.6'
  }}>
                100% DA burned · 75% payout in USDT · 25% stays in pool — drives price up
              </div>
              <div style={{
    color: 'rgba(255,255,255,0.4)',
    fontSize: '11px',
    marginTop: '4px',
    lineHeight: '1.6'
  }}>
                Sell now at current price. 25% stays as backing in the pool.
              </div>
            </div>

            {}
            <div style={{
    backgroundColor: 'rgba(255,255,255,0.03)',
    border: '1px solid rgba(255,255,255,0.15)'
  }} className="rounded-xl p-5">
              <div className="flex items-center gap-2 mb-4">
                <h4 style={{
    color: '#FFFFFF'
  }} className="text-base font-bold">AUTO-SELL</h4>
                <span style={{
    color: '#fbbf24',
    backgroundColor: 'rgba(251,191,36,0.1)',
    border: '1px solid rgba(251,191,36,0.2)'
  }} className="ml-auto text-[10px] font-semibold px-2 py-0.5 rounded-full">
                  Sell at peak
                </span>
              </div>
              <div style={{
    color: '#FFFFFF'
  }} className="text-2xl font-bold mb-1">{fmtUsd(autoSellPayout)}</div>
              <div style={{
    color: 'rgba(255,255,255,0.3)',
    fontSize: '10px',
    marginBottom: '8px'
  }}>(30% stays in pool)</div>
              <div style={{
    color: 'rgba(255,255,255,0.4)',
    fontSize: '11px',
    lineHeight: '1.6'
  }}>
                100% DA burned · 70% payout in USDT · 30% stays in pool — drives price up
              </div>
              <div style={{
    color: 'rgba(255,255,255,0.4)',
    fontSize: '11px',
    marginTop: '4px',
    lineHeight: '1.6'
  }}>
                Auto-sells progressively from remaining balance if not sold manually.
              </div>
            </div>
          </div>

          {}
          {daAmount > 0 && <div style={{
    backgroundColor: 'rgba(255,255,255,0.05)',
    border: '1px solid rgba(255,255,255,0.1)',
    marginTop: '16px'
  }} className="rounded-xl p-4 text-center">
              <div style={{
    color: 'rgba(255,255,255,0.6)',
    fontSize: '12px'
  }}>
                {autoSellBetter ? <>Auto-sell pays <span style={{
    color: '#FFFFFF',
    fontWeight: 600
  }}>{fmtUsd(sellDifference)} more</span> despite 30% retention — DA price growth outweighs the extra 5% retention.</> : <>At this price projection, manual sell pays <span style={{
    color: '#FFFFFF',
    fontWeight: 600
  }}>{fmtUsd(sellDifference)} more</span>.</>}
              </div>
            </div>}
        </>}

      {}
      {tab === 'lend' && <>
          {}
          <div style={{
    backgroundColor: 'rgba(255,255,255,0.03)',
    border: '1px solid rgba(255,255,255,0.15)'
  }} className="rounded-xl p-5 mb-2">
            <div className="flex items-center mb-4">
              <div style={{
    backgroundColor: 'rgba(255,255,255,0.15)',
    width: '28px',
    height: '28px',
    borderRadius: '50%',
    display: 'flex',
    alignItems: 'center',
    justifyContent: 'center',
    fontSize: '13px',
    fontWeight: 700,
    color: '#FFFFFF',
    flexShrink: 0
  }}>1</div>
              <span style={{
    color: '#FFFFFF',
    fontSize: '15px',
    fontWeight: 700,
    marginLeft: '10px'
  }}>BORROW</span>
              <span style={{
    color: '#4ade80',
    backgroundColor: 'rgba(34,197,94,0.1)',
    border: '1px solid rgba(34,197,94,0.2)'
  }} className="ml-auto text-[10px] font-semibold px-2 py-0.5 rounded-full">
                70% LTV
              </span>
            </div>
            <div style={{
    color: '#FFFFFF',
    fontSize: '28px',
    fontWeight: 900
  }}>{fmtUsd(loanAmount)}</div>
            <div style={{
    color: 'rgba(255,255,255,0.4)',
    fontSize: '12px',
    marginTop: '4px'
  }}>USDT loan (70% LTV minus 5% fee)</div>
            <div style={{
    color: 'rgba(255,255,255,0.3)',
    fontSize: '11px',
    marginTop: '8px'
  }}>DA locked: {daAmount.toLocaleString('en-US')} DA</div>
          </div>

          {}
          <div style={{
    textAlign: 'center',
    padding: '4px 0'
  }}>
            <div style={{
    width: '1px',
    height: '16px',
    backgroundColor: 'rgba(255,255,255,0.15)',
    margin: '0 auto'
  }} />
            <div style={{
    color: '#4ade80',
    fontSize: '11px',
    fontWeight: 600,
    padding: '4px 12px',
    backgroundColor: 'rgba(74,222,128,0.08)',
    borderRadius: '9999px',
    display: 'inline-block'
  }}>
              DA price grows to {fmtUsd(futurePrice)}
            </div>
            <div style={{
    width: '1px',
    height: '16px',
    backgroundColor: 'rgba(255,255,255,0.15)',
    margin: '0 auto'
  }} />
          </div>

          {}
          <div style={{
    backgroundColor: '#383838',
    border: '1px solid rgba(255,255,255,0.05)'
  }} className="rounded-xl p-4 mb-2">
            <div className="flex justify-between items-center mb-2">
              <span style={{
    color: 'rgba(255,255,255,0.5)',
    fontSize: '12px'
  }}>Loan Repayment</span>
              <span style={{
    color: '#FFFFFF',
    fontSize: '14px',
    fontWeight: 700
  }}>{paybackPercent}%</span>
            </div>
            <input type="range" min="0" max="100" step="10" value={paybackPercent} onChange={e => setPaybackPercent(Number(e.target.value))} className="w-full cursor-pointer" style={sliderStyle} />
            <div className="flex justify-between mt-1">
              <span style={{
    color: 'rgba(255,255,255,0.5)',
    fontSize: '10px'
  }}>0%</span>
              <span style={{
    color: 'rgba(255,255,255,0.5)',
    fontSize: '10px'
  }}>100%</span>
            </div>
          </div>

          {}
          <div style={{
    backgroundColor: 'rgba(255,255,255,0.03)',
    border: '1px solid rgba(255,255,255,0.15)'
  }} className="rounded-xl p-5 mb-2">
            <div className="flex items-center mb-4">
              <div style={{
    backgroundColor: 'rgba(255,255,255,0.15)',
    width: '28px',
    height: '28px',
    borderRadius: '50%',
    display: 'flex',
    alignItems: 'center',
    justifyContent: 'center',
    fontSize: '13px',
    fontWeight: 700,
    color: '#FFFFFF',
    flexShrink: 0
  }}>2</div>
              <span style={{
    color: '#FFFFFF',
    fontSize: '15px',
    fontWeight: 700,
    marginLeft: '10px'
  }}>
                {paybackPercent === 100 ? 'FULL REPAY' : `PARTIAL REPAY (${paybackPercent}%)`}
              </span>
            </div>
            <div className="grid grid-cols-2 gap-3">
              <div>
                <div style={{
    color: 'rgba(255,255,255,0.4)',
    fontSize: '10px',
    marginBottom: '4px'
  }}>PAY BACK</div>
                <div style={{
    color: '#FFFFFF',
    fontSize: '20px',
    fontWeight: 700
  }}>{fmtUsd(repayAmount)}</div>
                <div style={{
    color: 'rgba(255,255,255,0.3)',
    fontSize: '11px'
  }}>{paybackPercent}% of loan</div>
              </div>
              <div>
                <div style={{
    color: 'rgba(255,255,255,0.4)',
    fontSize: '10px',
    marginBottom: '4px'
  }}>GET BACK</div>
                <div style={{
    color: '#4ade80',
    fontSize: '20px',
    fontWeight: 700
  }}>{tokensReturned.toLocaleString('en-US')} DA</div>
                <div style={{
    color: 'rgba(255,255,255,0.3)',
    fontSize: '11px'
  }}>worth {fmtUsd(tokensReturnedValue)} at future price</div>
              </div>
            </div>
            {paybackPercent < 100 && tokensLocked > 0 && <div style={{
    color: 'rgba(255,255,255,0.3)',
    fontSize: '11px',
    marginTop: '10px',
    borderTop: '1px solid rgba(255,255,255,0.08)',
    paddingTop: '8px'
  }}>
                {tokensLocked.toLocaleString('en-US')} DA remain locked as collateral
              </div>}
          </div>

          {}
          <div style={{
    textAlign: 'center',
    padding: '4px 0'
  }}>
            <div style={{
    width: '1px',
    height: '24px',
    backgroundColor: 'rgba(255,255,255,0.15)',
    margin: '0 auto'
  }} />
          </div>

          {}
          <div style={{
    backgroundColor: 'rgba(255,255,255,0.03)',
    border: '1px solid rgba(255,255,255,0.15)'
  }} className="rounded-xl p-5 mb-4">
            <div className="flex items-center mb-4">
              <div style={{
    backgroundColor: 'rgba(255,255,255,0.15)',
    width: '28px',
    height: '28px',
    borderRadius: '50%',
    display: 'flex',
    alignItems: 'center',
    justifyContent: 'center',
    fontSize: '13px',
    fontWeight: 700,
    color: '#FFFFFF',
    flexShrink: 0
  }}>3</div>
              <span style={{
    color: '#FFFFFF',
    fontSize: '15px',
    fontWeight: 700,
    marginLeft: '10px'
  }}>YOUR PROFIT</span>
            </div>
            <div style={{
    textAlign: 'center'
  }}>
              <div style={{
    color: '#FFFFFF',
    fontSize: '36px',
    fontWeight: 900
  }}>{fmtUsd(netPosition)}</div>
              <div style={{
    color: 'rgba(255,255,255,0.4)',
    fontSize: '11px',
    marginTop: '4px'
  }}>Net position</div>
            </div>
            <div style={{
    borderTop: '1px solid rgba(255,255,255,0.1)',
    marginTop: '16px'
  }} />
            <div className="grid grid-cols-3 gap-3 text-center" style={{
    marginTop: '12px'
  }}>
              <div>
                <div style={{
    color: 'rgba(255,255,255,0.4)',
    fontSize: '10px'
  }}>NET POSITION</div>
                <div style={{
    color: '#4ade80',
    fontSize: '16px',
    fontWeight: 700
  }}>{fmtUsd(netPosition)}</div>
                <div style={{
    color: 'rgba(255,255,255,0.3)',
    fontSize: '10px'
  }}>All fees included</div>
              </div>
              <div>
                <div style={{
    color: 'rgba(255,255,255,0.4)',
    fontSize: '10px'
  }}>VS HOLD</div>
                <div style={{
    color: '#FFFFFF',
    fontSize: '16px',
    fontWeight: 700
  }}>{fmtUsd(futureValue)}</div>
              </div>
              <div>
                <div style={{
    color: 'rgba(255,255,255,0.4)',
    fontSize: '10px'
  }}>VS SELL NOW</div>
                <div style={{
    color: '#f87171',
    fontSize: '16px',
    fontWeight: 700
  }}>{fmtUsd(manualSellPayout)}</div>
                <div style={{
    color: 'rgba(255,255,255,0.3)',
    fontSize: '10px'
  }}>25% stays in pool</div>
              </div>
            </div>
          </div>

          {}
          <div style={{
    backgroundColor: 'rgba(34,197,94,0.08)',
    border: '1px solid rgba(34,197,94,0.2)'
  }} className="rounded-xl p-4 text-center mb-3">
            <div style={{
    color: 'rgba(255,255,255,0.6)',
    fontSize: '12px'
  }}>
              Lending lets you access liquidity <span style={{
    color: '#FFFFFF',
    fontWeight: 600
  }}>NOW</span> while keeping exposure to DA price growth.
              {paybackPercent === 100 ? <span> At 100% repayment, you recover your full DA position at the new price.</span> : <span> At {paybackPercent}% repayment, {tokensLocked.toLocaleString('en-US')} DA remain locked. Unpaid loans default through the auto-sell cycle.</span>}
            </div>
          </div>

          {}
          <div style={{
    backgroundColor: 'rgba(239,68,68,0.08)',
    border: '1px solid rgba(239,68,68,0.2)',
    marginTop: '12px'
  }} className="rounded-xl p-4 text-center">
            <div style={{
    color: '#f87171',
    fontSize: '11px'
  }}>
              Each loan stays open until its collateralized stack enters the auto-sell cycle. If not repaid before then, the DA collateral is progressively burned.
            </div>
          </div>
        </>}
    </div>;
};

用户持有 DA 后,有两种主要的金融选择:出售资产,或将其作为抵押物用于借贷。

<CardGroup cols={2}>
  <Card title="出售 DA" icon="fire">
    售出 DA 100% 被永久销毁。您以 USDT 形式获得 75%(手动)或 70%(自动)的价值。剩余 25%(手动)或 30%(自动)为协议佣金,留在池中作为背书,推动 DA 价格上行。
  </Card>

  <Card title="以 DA 借贷" icon="building-columns">
    以固定 70% LTV 以 USDT 抵押您的 DA 借款。一次性 5% 佣金在发放时收取,还款时不再收取。您的 DA 保留在 TokenStack 中,直到您全额或部分还款,或批次进入其自动出售周期。
  </Card>
</CardGroup>

## 出售 DA 与销毁机制

出售 DA 时,有两种条件不同的具体场景:

1. **手动出售(用户自主出售):**
   * 用户按当前价格以 USDT 形式获得 DA 价值的 **75%**。
   * 售出 DA **100%** 被永久销毁。
   * 剩余 25% 为协议佣金,作为 USDT 背书留在池中 —— 代币更少而流动性不变,这 25% 直接驱动价格增长。

2. **自动出售(TokenStack 周期到期后触发):**
   * 用户按自动出售当日价格以 USDT 形式获得 DA 价值的 **70%**。
   * 自动售出 DA **100%** 被永久销毁。
   * 剩余 30% 为协议佣金,作为 USDT 背书留在池中 —— 这 30% 正是推动价格上行的力量。
   * 如果用户在周期到期前未手动出售,自动出售将自动触发。

两种情形下,售出代币 100% 都会被销毁 —— 25%/30% 代表作为 USDT 背书留在池中的协议佣金。这就是推动价格增长的机制:代币更少 + 流动性不变 = 每枚 DA 的价格更高。自动出售的实付率比手动出售低 5%,以激励用户主动管理其 DA 头寸。

<Warning>
  **出售 DA 会消耗您 NFT 的收入上限。** 每次手动或自动出售 DA,都会按 USDT 实付金额扣减您 NFT 的剩余收入上限 —— 与营销奖励同等对待。如果收入上限已耗尽,手动出售 DA 将无法执行(系统无法将所得款项记入您的账户),自动出售时 100% 所得款项将被路由至 DA 流动性池或销毁(具体机制由 DAO 设置决定)。请通过 Autobuy 或手动 NFT 续约,保持收入上限处于活跃状态,以便在出售 DA 时收到款项。
</Warning>

<Info>
  **自动出售** 在您未在 TokenStack 周期到期前手动出售时自动触发。其实付率比手动出售低 5%(70% 对 75%),以激励主动管理。
</Info>

## 自动出售周期

DA 自被农场产出之日起 100% 立即可供用户支配 —— 无锁仓期。用户可随时手动出售(获得 75% USDT),或以其 DA 为抵押取出贷款。如果用户 **不采取行动**,系统将从 **剩余余额** 中,在 4 个周期内分批触发强制自动出售,总跨度 **365 天(1 年)**。周期时长在链上以天为单位计量(120 / 90 / 90 / 65 天);下方使用的"月份"为方便阅读的近似值。

**以 100 DA 为例:**

<Steps>
  <Step title="周期 1 — 120 天后(~4 个月)自动出售 25%">
    如果您在 120 天(\~4 个月)内未手动出售,当前 DA 余额的 25% 将被自动出售。25% × 100 DA = **自动售出 25 DA** → 您按当前价格以 USDT 形式获得 70% 价值 → 100% 即 25 DA 被销毁 → 剩余:**75 DA**
  </Step>

  <Step title="周期 2 — 再过 90 天(~3 个月,第 210 天)自动出售 40%">
    剩余余额的 40% 被自动出售。40% × 75 DA = **自动售出 30 DA** → 剩余:**45 DA**
  </Step>

  <Step title="周期 3 — 再过 90 天(~3 个月,第 300 天)自动出售 50%">
    剩余余额的 50% 被自动出售。50% × 45 DA = **自动售出 22.5 DA** → 剩余:**22.5 DA**
  </Step>

  <Step title="周期 4 — 再过 65 天(~2 个月,第 365 天)自动出售 100%">
    剩余余额的 100% 被自动出售。头寸完全平仓。100% × 22.5 DA = **自动售出 22.5 DA** → 剩余:**0 DA**
  </Step>
</Steps>

<Note>
  上方所示的自动出售比例(25% / 40% / 50% / 100%)代表当前协议配置。具体数值作为协议参数存储,可通过标准治理流程修改。请始终查阅智能合约或最新协议文档以获取最新数值。
</Note>

每次自动出售按彼时的 DA 价格执行,而非最初的农场价格。由于价格随时间上涨,后续自动出售会以更高价格销毁代币 —— 进一步增强通缩。

<Warning>
  **零收入上限下的自动出售:** 如果 DA 自动出售触发,而用户 NFT 的收入上限为零(即 NFT 未续约),则 100% 所得款项将路由至流动性池或 DA 销毁。具体机制由 DAO 设置决定。用户应始终保持收入上限处于活跃状态,以便领取自动出售所得。
</Warning>

## 借贷(以 DA 为抵押的信贷)

高级和精英 NFT 持有者(5 级及以上)可以以其 DA 抵押物取出 USDT 贷款,而非出售 DA。贷款以单次完成的挖矿与农场周期中特定 DA 批次为抵押 - 一次性针对整个批次,而非批次中的一部分。较低等级不运行挖矿,没有可借贷的 DA 抵押物。

每笔贷款按固定 **70% LTV** 发放,一次性 **5% 佣金** 在发放时路由至 DA 流动性池。还款时不收取任何费用。借款人在其常规余额中收到总贷款金额的 95%。示例:100 DA 批次在 DA 价格 1.00 USDT 时,总贷款为 70 USDT,手续费为 3.50 USDT,借款人净实付为 66.50 USDT。

决定性的结构特性是:DA 价格在发放时被记录于 `loan.price`,此后永不重新定价。后续 DA 价格增长不会增加债务 - 因此借款人以今日价格提取 USDT 流动性,同时保留对未来升值的收益。贷款没有固定到期日,可在批次进入自动出售周期之前随时全额或部分还款,且特定批次在其整个生命周期内只能质押一次。

如果贷款在批次进入自动出售周期之前未得到偿还,质押的 DA 将通过标准四周期计划渐进式销毁。借款人保留发放时收到的 USDT;每个被销毁部分的 USDT 价值流向 DA 流动性池。在自动出售周期之间,借款人仍可介入并调用 `repay()` 以取回仍在质押的 DA。

<Warning>
  **借贷违约 - 渐进式销毁:** 如果贷款在抵押批次进入自动出售周期之前未得到偿还,抵押物将经过标准四周期计划(剩余质押 DA 的 25% / 40% / 50% / 100%,在 120 / 90 / 90 / 65 天内销毁,共 365 天)。被销毁 DA 的 100% 永久销毁;`loan.price` 对应的 USDT 价值路由至 DA 流动性池。借款人**不**会为被销毁的部分收到 USDT - 违约批次的唯一经济收益是发放时收到的 USDT。

  **部分恢复始终可用。** 借款人可以在任意两次自动出售周期之间调用 `repay()`,仅为仍在质押的部分付款,即可取回**剩余**质押 DA。早期周期中已销毁的 DA 无法恢复,但通过在每个周期边界之前还款,仍可阻止所有未来的销毁。
</Warning>

<Note>
  **自动出售开始后 `repay()` 的行为 - CertiK 审计后(RWA-58)更正:** 早期合约版本在批次进入自动出售周期后会回滚 `repay()`。经 CertiK 审计后,此行为已被更正:`repay()` 现在在贷款生命周期的任何阶段均可调用。当批次已越过自动出售触发点时,合约首先运行 `_processExpiredStacks()` 以结算所有已过边界的周期 - 这会销毁相应份额的抵押物 - 然后针对销毁后的剩余部分继续执行。

  实际影响:迟到的 `repay()` 无法"超越"已触发的销毁。要保留**全部**抵押物,借款人必须在越过第一次自动出售触发点之前还款(周期 1,当前为批次生命第 120 天)。
</Note>

<Card title="完整借贷机制 →" icon="hand-holding-dollar" href="/zh/da-lending">
  资格条件、30 天发放门槛、公式、附示例的部分还款、完整违约数学,以及参数表 - 均在专属页面上。
</Card>

<SellVsLend />
