> ## 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.

# Vender e Emprestar

> Venda manual com pagamento de 75% em USDT, auto-venda a 70% ao longo de um ciclo de quatro períodos de 365 dias, e uma facilidade de lending com LTV fixo de 70% contra garantia em DA com uma comissão única de 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>;
};

Uma vez que o usuário possui DA, ele tem duas opções financeiras principais: vender o ativo ou usá-lo como garantia para um empréstimo.

<CardGroup cols={2}>
  <Card title="Vender DA" icon="fire">
    100% do DA vendido é permanentemente queimado. Você recebe 75% (manual) ou 70% (auto) do valor em USDT. Os 25% (manual) ou 30% (auto) restantes são uma comissão do protocolo que permanece no pool como lastro e impulsiona o preço do DA para cima.
  </Card>

  <Card title="Emprestar DA" icon="building-columns">
    Tome emprestado a um LTV fixo de 70% em USDT contra seu DA. Uma comissão única de 5% é paga na emissão e nunca é cobrada novamente no reembolso. Seu DA permanece no seu TokenStack até que você quite (total ou parcialmente) ou o batch entre no seu ciclo de auto-venda.
  </Card>
</CardGroup>

## Venda de DA e Mecânica de Queima

Ao vender DA, há dois cenários distintos com condições diferentes:

1. **Venda Manual (o usuário vende por conta própria):**
   * O usuário recebe **75%** do valor do DA em USDT ao preço atual.
   * **100%** dos tokens DA vendidos são permanentemente queimados.
   * Os 25% restantes são uma comissão do protocolo que permanece no pool como lastro em USDT — com menos tokens e a mesma liquidez, esses 25% impulsionam diretamente o crescimento do preço.

2. **Auto-Venda (acionada após a expiração do período do TokenStack):**
   * O usuário recebe **70%** do valor do DA em USDT ao preço da data da auto-venda.
   * **100%** dos tokens DA vendidos automaticamente são permanentemente queimados.
   * Os 30% restantes são uma comissão do protocolo que permanece no pool como lastro em USDT — esses 30% são o que impulsiona o preço para cima.
   * A auto-venda é acionada automaticamente se o usuário não vender manualmente antes da expiração do período.

Em ambos os casos, 100% dos tokens vendidos são queimados — os 25%/30% representam a comissão do protocolo que permanece no pool como lastro em USDT. Este é o mecanismo que impulsiona o crescimento do preço: menos tokens + a mesma liquidez = preço mais alto por DA. A auto-venda oferece um pagamento 5% menor, incentivando os usuários a gerenciar ativamente suas posições em DA.

<Warning>
  **Vender DA consome o Limite de Rendimento do seu NFT.** Cada venda manual ou auto-venda de DA reduz o Limite de Rendimento restante do seu NFT pelo valor do pagamento em USDT — em pé de igualdade com as recompensas de marketing. Se o Limite de Rendimento estiver esgotado, a venda manual de DA não é possível (o sistema não pode creditar o pagamento), e em uma auto-venda 100% dos resultados são roteados para o Pool de Liquidez do DA ou para queima (o mecanismo exato é determinado pelas configurações da DAO). Mantenha seu Limite de Rendimento ativo — através do Autobuy ou da renovação manual do NFT — para receber o pagamento ao vender DA.
</Warning>

<Info>
  A **auto-venda** é acionada automaticamente se você não vender manualmente antes da expiração do período do TokenStack. Ela paga 5% a menos (70% vs 75%), incentivando o gerenciamento ativo.
</Info>

## Períodos de Auto-Venda

O DA está 100% disponível para o usuário imediatamente após o farming — não há período de bloqueio. O usuário pode vender manualmente a qualquer momento (recebendo 75% em USDT) ou tomar um empréstimo contra seu DA. Se o usuário **não** agir, o sistema aciona vendas forçadas automáticas a partir do **saldo restante** progressivamente ao longo de 4 períodos somando **365 dias (1 ano)** no total. As durações dos períodos são denominadas em dias on-chain (120 / 90 / 90 / 65 dias); as referências a meses abaixo são aproximações para facilitar a leitura.

**Exemplo iniciando com 100 DA:**

<Steps>
  <Step title="Período 1 — 25% de auto-venda após 120 dias (~4 meses)">
    Se você não vendeu manualmente em 120 dias (\~4 meses), 25% do seu saldo atual de DA é vendido automaticamente. 25% de 100 DA = **25 DA vendidos automaticamente** → Você recebe 70% do valor em USDT ao preço atual → 100% dos 25 DA queimados → Restante: **75 DA**
  </Step>

  <Step title="Período 2 — 40% de auto-venda após mais 90 dias (~3 meses, dia 210)">
    40% do saldo restante é vendido automaticamente. 40% de 75 DA = **30 DA vendidos automaticamente** → Restante: **45 DA**
  </Step>

  <Step title="Período 3 — 50% de auto-venda após mais 90 dias (~3 meses, dia 300)">
    50% do saldo restante é vendido automaticamente. 50% de 45 DA = **22,5 DA vendidos automaticamente** → Restante: **22,5 DA**
  </Step>

  <Step title="Período 4 — 100% de auto-venda após mais 65 dias (~2 meses, dia 365)">
    100% do saldo restante é vendido automaticamente. Posição totalmente fechada. 100% de 22,5 DA = **22,5 DA vendidos automaticamente** → Restante: **0 DA**
  </Step>
</Steps>

<Note>
  Os percentuais de auto-venda (25% / 40% / 50% / 100%) mostrados acima representam a configuração atual do protocolo. Os valores específicos são armazenados como parâmetros do protocolo e estão sujeitos aos procedimentos padrão de governança. Sempre verifique o smart contract ou a documentação atual do protocolo para os valores mais recentes.
</Note>

Cada auto-venda é executada ao preço do DA naquele momento, não ao preço original do farming. Como o preço cresce ao longo do tempo, as auto-vendas posteriores queimam tokens a um preço mais alto — fortalecendo ainda mais a deflação.

<Warning>
  **Auto-Venda com Limite de Rendimento Zero:** Se a auto-venda do DA for acionada e o usuário tiver Limite de Rendimento zero em seu NFT (significando que o NFT não foi renovado), 100% dos resultados são direcionados ao Pool de Liquidez ou à queima de DA. O mecanismo exato é determinado pelas configurações da DAO. Os usuários devem sempre manter um Limite de Rendimento ativo para receber o pagamento da auto-venda.
</Warning>

## Lending (Crédito contra DA)

Detentores de NFT Premium e Elite (Nível 5 e acima) podem tomar um empréstimo em USDT contra sua garantia em DA em vez de vender. O empréstimo é colateralizado por um batch específico de DA de um único ciclo de mineração e farming concluído - o batch inteiro de uma vez, não uma fração dele. Níveis inferiores não executam mineração e não possuem garantia em DA para tomar emprestado.

Todo empréstimo é emitido a um **LTV fixo de 70%** com uma **comissão única de 5%** direcionada ao Pool de Liquidez do DA na emissão. Nada é cobrado no reembolso. O tomador recebe 95% do valor bruto do empréstimo no seu Saldo Regular. Exemplo: para um batch de 100 DA a um preço de 1,00 USDT por DA, o empréstimo bruto é 70 USDT, a comissão é 3,50 USDT e o pagamento líquido ao tomador é 66,50 USDT.

A propriedade estrutural determinante é que o preço do DA é capturado em `loan.price` na emissão e nunca é reprecificado depois. O crescimento subsequente do preço do DA não aumenta a dívida - assim, o tomador extrai liquidez em USDT ao preço de hoje enquanto retém o potencial de valorização futura. O empréstimo não tem vencimento fixo, pode ser quitado total ou parcialmente a qualquer momento antes de o batch entrar no ciclo de auto-venda, e um dado batch só pode ser dado em garantia uma vez ao longo de toda a sua vida útil.

Se o empréstimo não for quitado antes de o batch entrar no ciclo de auto-venda, o DA dado em garantia é progressivamente queimado pelo cronograma padrão de quatro períodos. O tomador mantém o USDT recebido na emissão; o valor em USDT de cada porção queimada flui para o Pool de Liquidez do DA. Entre os períodos de auto-venda, o tomador ainda pode intervir e chamar `repay()` para resgatar o DA ainda dado em garantia.

<Warning>
  **Inadimplência de Lending - Queima Progressiva:** Se o empréstimo não for quitado antes de o batch colateralizado entrar no ciclo de auto-venda, a garantia percorre o cronograma padrão de quatro períodos (25% / 40% / 50% / 100% do DA dado em garantia **restante** queimado ao longo de 120 / 90 / 90 / 65 dias, 365 dias no total). 100% do DA queimado é destruído permanentemente; o valor correspondente em USDT ao `loan.price` é direcionado ao Pool de Liquidez do DA. O tomador **não** recebe USDT pela porção queimada - a única recuperação econômica de um batch inadimplido é o USDT recebido na emissão.

  **A recuperação parcial está sempre disponível.** O tomador pode chamar `repay()` entre quaisquer dois períodos de auto-venda e resgatar o DA dado em garantia **restante**, pagando apenas pelo que ainda está dado em garantia. O DA já queimado em períodos anteriores não pode ser recuperado, mas toda queima futura ainda pode ser interrompida reembolsando antes do limite do seu período.
</Warning>

<Note>
  **`repay()` após o início da auto-venda - comportamento corrigido pós-CertiK (RWA-58):** Versões anteriores do contrato revertiam `repay()` assim que o batch cruzava para o ciclo de auto-venda. Após a auditoria da CertiK, isso foi corrigido: `repay()` agora pode ser chamado em qualquer estágio da vida do empréstimo. Quando o batch já cruzou um gatilho de auto-venda, o contrato primeiro executa `_processExpiredStacks()` para liquidar cada período cujo limite já passou - o que queima a parte correspondente da garantia - e então prossegue contra o restante pós-queima.

  Consequência prática: um `repay()` tardio não pode "superar" uma queima que já foi acionada. Para preservar a garantia **inteira**, o tomador deve reembolsar antes de cruzar o primeiro gatilho de auto-venda (Período 1, atualmente dia 120 da vida do batch).
</Note>

<Card title="Mecânica Completa de Lending ->" icon="hand-holding-dollar" href="/pt/da-lending">
  Elegibilidade, a barreira de emissão de 30 dias, fórmulas, reembolso parcial com exemplos práticos, matemática completa de inadimplência e a tabela de parâmetros - tudo em uma página dedicada.
</Card>

<SellVsLend />
