> ## 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, авто-продажа за 70% в течение 365-дневного четырёхпериодного цикла и фиксированный 70% LTV кредитный механизм под залог DA с единовременной 5% комиссией.

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">
    100% проданного DA безвозвратно сжигается. Вы получаете 75% (ручная продажа) или 70% (авто) стоимости в USDT. Оставшиеся 25% (ручная) или 30% (авто) — это комиссия протокола, которая остаётся в пуле как обеспечение и толкает цену DA вверх.
  </Card>

  <Card title="Заложить DA" icon="building-columns">
    Занимайте USDT по фиксированному 70% LTV под ваш DA. Единовременная 5% комиссия взимается при выдаче и никогда не взимается повторно при погашении. Ваш DA остаётся в TokenStack до тех пор, пока вы не погасите заём (полностью или частично) или батч не вступит в цикл авто-продажи.
  </Card>
</CardGroup>

## Продажа DA и механика сжигания

При продаже DA есть два различных сценария с разными условиями:

1. **Ручная продажа (пользователь продаёт самостоятельно):**
   * Пользователь получает **75%** стоимости DA в USDT по текущей цене.
   * **100%** проданных токенов DA безвозвратно сжигаются.
   * Оставшиеся 25% — это комиссия протокола, которая остаётся в пуле как обеспечение USDT. С меньшим количеством токенов и той же ликвидностью эти 25% напрямую стимулируют рост цены.

2. **Авто-продажа (срабатывает после истечения периода TokenStack):**
   * Пользователь получает **70%** стоимости DA в USDT по цене на дату авто-продажи.
   * **100%** авто-проданных токенов DA безвозвратно сжигаются.
   * Оставшиеся 30% — это комиссия протокола, которая остаётся в пуле как обеспечение USDT. Эти 30% и толкают цену вверх.
   * Авто-продажа срабатывает автоматически, если пользователь не продал вручную до истечения периода.

В обоих случаях 100% проданных токенов сжигается — 25%/30% представляют комиссию протокола, остающуюся в пуле как обеспечение USDT. Это механизм, стимулирующий рост цены: меньше токенов + та же ликвидность = более высокая цена за DA. Авто-продажа предлагает на 5% меньшую выплату, стимулируя пользователей активно управлять позициями в DA.

<Warning>
  **Продажа DA расходует Лимит дохода NFT.** Каждая ручная или автоматическая продажа DA уменьшает оставшийся Лимит дохода вашего NFT на сумму выплаты в USDT — наравне с маркетинговыми вознаграждениями. Если Лимит дохода исчерпан, ручная продажа DA невозможна (система не зачислит выплату), а при автопродаже 100% выручки направляется в Пул ликвидности DA или на сжигание (точный механизм определяется DAO). Поддерживайте активный Лимит — через автопокупку или ручное обновление 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 — 25% авто-продажа через 120 дней (~4 месяца)">
    Если вы не продали вручную в течение 120 дней (\~4 месяцев), 25% текущего баланса DA продаётся автоматически. 25% от 100 DA = **25 DA авто-продано** → Вы получаете 70% стоимости в USDT по текущей цене → 100% из 25 DA сжигаются → Остаток: **75 DA**
  </Step>

  <Step title="Период 2 — 40% авто-продажа ещё через 90 дней (~3 месяца, день 210)">
    40% оставшегося баланса продаётся автоматически. 40% от 75 DA = **30 DA авто-продано** → Остаток: **45 DA**
  </Step>

  <Step title="Период 3 — 50% авто-продажа ещё через 90 дней (~3 месяца, день 300)">
    50% оставшегося баланса продаётся автоматически. 50% от 45 DA = **22,5 DA авто-продано** → Остаток: **22,5 DA**
  </Step>

  <Step title="Период 4 — 100% авто-продажа ещё через 65 дней (~2 месяца, день 365)">
    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 уровней Premium и Elite (уровень 5 и выше) могут взять заём в 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>
  **Дефолт по кредиту - прогрессивное сжигание:** Если заём не погашен до того, как обеспеченный батч вступает в цикл авто-продажи, залог проходит стандартный четырёхпериодный график (25% / 40% / 50% / 100% **оставшегося** заложенного DA сжигается за 120 / 90 / 90 / 65 дней, 365 дней всего). 100% сожжённого DA безвозвратно уничтожается; соответствующая стоимость в USDT по `loan.price` направляется в Пул ликвидности 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="/ru/da-lending">
  Критерии eligibility, 30-дневные ворота выдачи, формулы, частичное погашение с проработанными примерами, полная математика дефолта и таблица параметров - всё на отдельной странице.
</Card>

<SellVsLend />
