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

# Mecânica do Token DA

> O modelo de preço somente-para-cima.

export const DaPriceSimulator = () => {
  if (typeof window === 'undefined') {
    return null;
  }
  var [minted, setMinted] = useState(1000000);
  var [liquidity, setLiquidity] = useState(1000000);
  var [burned, setBurned] = useState(0);
  var [dbMinted, setDbMinted] = useState(1000000);
  var [dbLiquidity, setDbLiquidity] = useState(1000000);
  var [dbBurned, setDbBurned] = useState(0);
  var timerRef = useRef(null);
  useEffect(function () {
    if (timerRef.current) clearTimeout(timerRef.current);
    timerRef.current = setTimeout(function () {
      setDbMinted(minted);
      setDbLiquidity(liquidity);
      setDbBurned(burned);
    }, 150);
    return function () {
      if (timerRef.current) clearTimeout(timerRef.current);
    };
  }, [minted, liquidity, burned]);
  var fmtUsd = function (n) {
    if (n >= 1000000) return '$' + (n / 1000000).toFixed(1) + 'M';
    if (n >= 1000) return '$' + (n / 1000).toFixed(1) + 'K';
    if (n >= 100) return '$' + Math.round(n);
    if (n >= 10) return '$' + n.toFixed(1);
    return '$' + n.toFixed(2);
  };
  var fmtUsdFull = function (n) {
    var digits = Math.abs(n) >= 10000 ? 0 : 2;
    return new Intl.NumberFormat('en-US', {
      style: 'currency',
      currency: 'USD',
      maximumFractionDigits: digits
    }).format(n);
  };
  var fmtNum = function (n) {
    return new Intl.NumberFormat('en-US').format(Math.round(n));
  };
  var circulating = minted - burned;
  if (circulating < 1) circulating = 1;
  var price = liquidity / circulating;
  var basePrice = liquidity / minted;
  var priceChange = (price - basePrice) / Math.max(basePrice, 0.0001) * 100;
  var burnedMax = minted - 1;
  var actualBurned = burned > burnedMax ? burnedMax : burned;
  var moonCirculating = Math.max(minted * 0.05, 1);
  var moonPrice = liquidity / moonCirculating;
  var chartData = useMemo(function () {
    var points = [];
    var steps = 200;
    for (var i = 0; i <= steps; i++) {
      var pct = i / steps * 95;
      var b = pct / 100 * dbMinted;
      var s = dbMinted - b;
      if (s < 1) s = 1;
      var p = dbLiquidity / s;
      points.push({
        pct: pct,
        burned: b,
        price: p
      });
    }
    return points;
  }, [dbMinted, dbLiquidity]);
  var W = 640, H = 280;
  var PAD = {
    top: 28,
    right: 56,
    bottom: 44,
    left: 64
  };
  var cW = W - PAD.left - PAD.right;
  var cH = H - PAD.top - PAD.bottom;
  var minP = chartData[0] ? chartData[0].price : 1;
  var maxP = chartData[chartData.length - 1] ? chartData[chartData.length - 1].price : minP * 2;
  var capP = minP * 50;
  var displayMaxP = Math.min(maxP, capP);
  var yPad = (displayMaxP - minP) * 0.08 || 0.01;
  displayMaxP = displayMaxP + yPad;
  var sqrtScale = function (val) {
    var norm = (Math.min(val, displayMaxP) - minP) / (displayMaxP - minP || 0.01);
    if (norm < 0) norm = 0;
    return Math.sqrt(norm);
  };
  var getX = function (pct) {
    return PAD.left + pct / 95 * cW;
  };
  var getY = function (p) {
    return PAD.top + cH - sqrtScale(p) * cH;
  };
  var currentPct = dbMinted > 0 ? dbBurned / dbMinted * 100 : 0;
  if (currentPct > 95) currentPct = 95;
  var currentChartPrice = dbLiquidity / Math.max(dbMinted - dbBurned, 1);
  var pathParts = [];
  for (var k = 0; k < chartData.length; k++) {
    var d = chartData[k];
    var px = getX(d.pct).toFixed(1);
    var py = getY(d.price).toFixed(1);
    pathParts.push((k === 0 ? 'M' : 'L') + ' ' + px + ' ' + py);
  }
  var pathD = pathParts.join(' ');
  var lastPt = chartData[chartData.length - 1];
  var areaD = pathD + ' L ' + getX(lastPt.pct).toFixed(1) + ' ' + (PAD.top + cH) + ' L ' + getX(0).toFixed(1) + ' ' + (PAD.top + cH) + ' Z';
  var dotX = getX(currentPct);
  var dotY = getY(currentChartPrice);
  var milestones = [10, 100, 1000, 10000];
  var visibleMilestones = milestones.filter(function (m) {
    return m > minP * 1.2 && m < displayMaxP * 0.95;
  });
  var xPcts = [0, 20, 40, 60, 80];
  var yLabelFracs = [0, 0.25, 0.5, 0.75, 1];
  var hdZoneX = getX(50);
  var hdZoneW = getX(95) - hdZoneX;
  var 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'
  };
  var pulseKeyframes = '@keyframes daPulse{0%,100%{opacity:0.6;r:12}50%{opacity:0.2;r:18}}';
  return <div style={{
    backgroundColor: '#000000',
    color: '#FFFFFF',
    border: '1px solid rgba(255,255,255,0.05)'
  }} className="p-6 rounded-xl not-prose">

      {}
      <style>{pulseKeyframes}</style>

      {}
      <div className="flex items-center justify-between mb-6">
        <h3 style={{
    color: '#FFFFFF',
    margin: 0
  }} className="text-lg font-serif italic">DA Price Simulator</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)',
    fontSize: '11px',
    padding: '4px 12px',
    borderRadius: '9999px',
    fontWeight: 500
  }}>Interactive</span>
      </div>

      {}
      <div className="grid grid-cols-1 sm:grid-cols-3 gap-4 mb-6">
        {}
        <div style={{
    backgroundColor: '#383838',
    border: '1px solid rgba(255,255,255,0.05)'
  }} className="rounded-xl p-4">
          <label style={{
    color: 'rgba(255,255,255,0.5)',
    fontSize: '11px',
    fontWeight: 500,
    display: 'block',
    marginBottom: '4px',
    textTransform: 'uppercase',
    letterSpacing: '0.05em'
  }}>DA Minted</label>
          <span style={{
    color: '#FFFFFF',
    fontSize: '18px',
    fontWeight: 800,
    display: 'block',
    marginBottom: '8px'
  }}>{fmtNum(minted)} DA</span>
          <input type="range" min="10000" max="21000000" step="10000" value={minted} onChange={function (e) {
    var val = Number(e.target.value);
    setMinted(val);
    if (burned >= val) setBurned(val - 1);
  }} className="w-full cursor-pointer" style={sliderStyle} />
          <div className="flex justify-between text-[10px] mt-1">
            <span style={{
    color: 'rgba(255,255,255,0.5)'
  }}>10,000</span>
            <span style={{
    color: 'rgba(255,255,255,0.5)'
  }}>21,000,000</span>
          </div>
        </div>
        {}
        <div style={{
    backgroundColor: '#383838',
    border: '1px solid rgba(255,255,255,0.05)'
  }} className="rounded-xl p-4">
          <label style={{
    color: 'rgba(255,255,255,0.5)',
    fontSize: '11px',
    fontWeight: 500,
    display: 'block',
    marginBottom: '4px',
    textTransform: 'uppercase',
    letterSpacing: '0.05em'
  }}>USDT Liquidity Pool</label>
          <span style={{
    color: '#FFFFFF',
    fontSize: '18px',
    fontWeight: 800,
    display: 'block',
    marginBottom: '8px'
  }}>{fmtUsdFull(liquidity)}</span>
          <input type="range" min="10000" max="100000000" step="10000" value={liquidity} onChange={function (e) {
    setLiquidity(Number(e.target.value));
  }} className="w-full cursor-pointer" style={sliderStyle} />
          <div className="flex justify-between text-[10px] mt-1">
            <span style={{
    color: 'rgba(255,255,255,0.5)'
  }}>$10,000</span>
            <span style={{
    color: 'rgba(255,255,255,0.5)'
  }}>$100,000,000</span>
          </div>
        </div>
        {}
        <div style={{
    backgroundColor: '#383838',
    border: '1px solid rgba(255,255,255,0.05)'
  }} className="rounded-xl p-4">
          <label style={{
    color: 'rgba(255,255,255,0.5)',
    fontSize: '11px',
    fontWeight: 500,
    display: 'block',
    marginBottom: '4px',
    textTransform: 'uppercase',
    letterSpacing: '0.05em'
  }}>DA Burned</label>
          <span style={{
    color: '#FFFFFF',
    fontSize: '18px',
    fontWeight: 800,
    display: 'block',
    marginBottom: '8px'
  }}>{fmtNum(actualBurned)} DA</span>
          <input type="range" min="0" max={burnedMax} step="10000" value={actualBurned} onChange={function (e) {
    setBurned(Number(e.target.value));
  }} className="w-full cursor-pointer" style={sliderStyle} />
          <div className="flex justify-between text-[10px] mt-1">
            <span style={{
    color: 'rgba(255,255,255,0.5)'
  }}>0</span>
            <span style={{
    color: 'rgba(255,255,255,0.5)'
  }}>{fmtNum(burnedMax)}</span>
          </div>
        </div>
      </div>

      {}
      <div className="mb-6" style={{
    display: 'flex',
    flexWrap: 'wrap',
    gap: '16px',
    alignItems: 'center'
  }}>
        {}
        <div style={{
    flexShrink: 0,
    display: 'flex',
    justifyContent: 'center'
  }} className="w-[160px] sm:w-[140px] mx-auto sm:mx-0">
          <video autoPlay muted loop playsInline style={{
    borderRadius: '12px',
    objectFit: 'cover'
  }} className="w-[160px] h-[160px] sm:w-[140px] sm:h-[140px]">
            <source src="/DAalpha-Uncompressed8-bit422.webm" type="video/webm" />
          </video>
        </div>
        {}
        <div style={{
    flex: '1 1 0%',
    minWidth: '240px',
    display: 'flex',
    flexWrap: 'wrap',
    gap: '12px'
  }}>
          {}
          <div style={{
    backgroundColor: '#383838',
    border: '1px solid rgba(255,255,255,0.05)',
    flex: '1 1 160px'
  }} className="rounded-xl p-4">
            <div style={{
    color: 'rgba(255,255,255,0.5)',
    fontSize: '10px',
    textTransform: 'uppercase',
    letterSpacing: '0.05em',
    marginBottom: '4px'
  }}>DA Price</div>
            <div style={{
    color: '#4ade80',
    fontSize: '28px',
    fontWeight: 900,
    lineHeight: 1.2
  }}>{fmtUsdFull(price)}</div>
            <div style={{
    color: 'rgba(255,255,255,0.7)',
    fontSize: '12px',
    fontWeight: 600,
    marginTop: '4px'
  }}>
              {priceChange >= 0 ? 'Up' : 'Down'} {Math.abs(priceChange).toFixed(2)}% from base
            </div>
          </div>
          {}
          <div style={{
    backgroundColor: '#383838',
    border: '1px solid rgba(255,255,255,0.05)',
    flex: '1 1 160px'
  }} className="rounded-xl p-4">
            <div style={{
    color: 'rgba(255,255,255,0.5)',
    fontSize: '10px',
    textTransform: 'uppercase',
    letterSpacing: '0.05em',
    marginBottom: '4px'
  }}>Circulating Supply</div>
            <div style={{
    color: '#FFFFFF',
    fontSize: '20px',
    fontWeight: 900
  }}>{fmtNum(circulating)} DA</div>
            <div style={{
    color: 'rgba(255,255,255,0.4)',
    fontSize: '12px',
    marginTop: '4px'
  }}>of 21M hard cap</div>
          </div>
          {}
          <div style={{
    backgroundColor: '#383838',
    border: '1px solid rgba(255,255,255,0.05)',
    flex: '1 1 160px'
  }} className="rounded-xl p-4">
            <div style={{
    color: 'rgba(255,255,255,0.5)',
    fontSize: '10px',
    textTransform: 'uppercase',
    letterSpacing: '0.05em',
    marginBottom: '4px'
  }}>Liquidity Pool</div>
            <div style={{
    color: '#FFFFFF',
    fontSize: '20px',
    fontWeight: 900
  }}>{fmtUsdFull(liquidity)}</div>
            <div style={{
    color: 'rgba(255,255,255,0.4)',
    fontSize: '12px',
    marginTop: '4px'
  }}>100% USDT backed</div>
          </div>
        </div>
      </div>

      {}
      <div style={{
    backgroundColor: '#383838',
    border: '1px solid rgba(255,255,255,0.05)'
  }} className="rounded-xl p-4 overflow-x-auto">
        <div style={{
    color: 'rgba(255,255,255,0.6)',
    fontSize: '12px',
    fontWeight: 600,
    marginBottom: '8px'
  }}>Price vs Burn Percentage</div>
        <svg viewBox={'0 0 ' + W + ' ' + H} className="w-full" style={{
    minWidth: '400px'
  }}>
          <defs>
            <linearGradient id="daAreaGrad" x1="0" y1="0" x2="1" y2="0">
              <stop offset="0%" stopColor="#4ade80" stopOpacity="0.03" />
              <stop offset="100%" stopColor="#4ade80" stopOpacity="0.25" />
            </linearGradient>
          </defs>

          {}
          <rect x={hdZoneX} y={PAD.top} width={hdZoneW} height={cH} fill="rgba(251,191,36,0.04)" />
          <text x={hdZoneX + 6} y={PAD.top + 12} fill="rgba(251,191,36,0.3)" style={{
    fontSize: '8px',
    fontWeight: 500
  }}>High Deflation Zone</text>

          {}
          {yLabelFracs.map(function (frac, idx) {
    var val = minP + (displayMaxP - minP) * frac;
    var y = getY(val);
    return <line key={'yg-' + idx} x1={PAD.left} y1={y} x2={W - PAD.right} y2={y} stroke="rgba(255,255,255,0.05)" strokeWidth="0.5" />;
  })}

          {}
          {visibleMilestones.map(function (m) {
    var y = getY(m);
    return <g key={'ms-' + m}>
                <line x1={PAD.left} y1={y} x2={W - PAD.right} y2={y} stroke="rgba(255,255,255,0.08)" strokeWidth="0.5" strokeDasharray="4 4" />
                <text x={W - PAD.right + 4} y={y + 3} fill="rgba(255,255,255,0.35)" style={{
      fontSize: '8px'
    }}>{fmtUsd(m)}</text>
              </g>;
  })}

          {}
          {yLabelFracs.map(function (frac, idx) {
    var val = minP + (displayMaxP - minP) * frac;
    var y = getY(val);
    return <text key={'yl-' + idx} x={PAD.left - 8} y={y} textAnchor="end" dominantBaseline="middle" fill="rgba(255,255,255,0.4)" style={{
      fontSize: '9px'
    }}>
                {fmtUsd(val)}
              </text>;
  })}

          {}
          <path d={areaD} fill="url(#daAreaGrad)" />

          {}
          <path d={pathD} fill="none" stroke="#4ade80" strokeWidth="2.5" strokeLinecap="round" strokeLinejoin="round" />

          {}
          <line x1={dotX} y1={PAD.top} x2={dotX} y2={PAD.top + cH} stroke="rgba(255,255,255,0.15)" strokeWidth="1" strokeDasharray="4 3" />

          {}
          <circle cx={dotX} cy={dotY} r="12" fill="none" stroke="#4ade80" strokeWidth="1.5" opacity="0.4" style={{
    animation: 'daPulse 2s ease-in-out infinite'
  }} />

          {}
          <circle cx={dotX} cy={dotY} r="6" fill="#4ade80" stroke="#000000" strokeWidth="2" />

          {}
          <rect x={dotX + 10} y={dotY - 12} width={Math.max(fmtUsd(currentChartPrice).length * 7 + 12, 48)} height={20} rx="4" fill="rgba(0,0,0,0.7)" stroke="rgba(74,222,128,0.3)" strokeWidth="1" />
          <text x={dotX + 16} y={dotY + 2} fill="#4ade80" style={{
    fontSize: '10px',
    fontWeight: 700
  }}>{fmtUsd(currentChartPrice)}</text>

          {}
          {xPcts.map(function (pct) {
    return <text key={'xl-' + pct} x={getX(pct)} y={H - PAD.bottom + 18} textAnchor="middle" fill="rgba(255,255,255,0.4)" style={{
      fontSize: '9px'
    }}>
                {pct}%
              </text>;
  })}
          <text x={W / 2} y={H - 4} textAnchor="middle" fill="rgba(255,255,255,0.3)" style={{
    fontSize: '8px'
  }}>Burn Percentage (% of Minted Supply)</text>
        </svg>

        {}
        <div className="flex items-center gap-4 mt-2" style={{
    paddingLeft: PAD.left + 'px'
  }}>
          <div className="flex items-center gap-1">
            <span style={{
    display: 'inline-block',
    width: '8px',
    height: '8px',
    borderRadius: '50%',
    backgroundColor: '#4ade80'
  }} />
            <span style={{
    color: 'rgba(255,255,255,0.5)',
    fontSize: '10px'
  }}>DA Price</span>
          </div>
          <div className="flex items-center gap-1">
            <span style={{
    display: 'inline-block',
    width: '8px',
    height: '8px',
    borderRadius: '50%',
    backgroundColor: '#4ade80',
    boxShadow: '0 0 6px rgba(74,222,128,0.6)'
  }} />
            <span style={{
    color: 'rgba(255,255,255,0.5)',
    fontSize: '10px'
  }}>Current Position</span>
          </div>
          <div className="flex items-center gap-1">
            <span style={{
    display: 'inline-block',
    width: '12px',
    height: '6px',
    backgroundColor: 'rgba(251,191,36,0.15)',
    borderRadius: '2px'
  }} />
            <span style={{
    color: 'rgba(255,255,255,0.5)',
    fontSize: '10px'
  }}>High Deflation Zone</span>
          </div>
        </div>

        {}
        <div style={{
    marginTop: '10px',
    paddingLeft: PAD.left + 'px'
  }}>
          <span style={{
    color: 'rgba(255,255,255,0.4)',
    fontSize: '12px'
  }}>
            If 95% of supply is burned:{' '}
            <span style={{
    color: '#FFFFFF',
    fontWeight: 700
  }}>{fmtUsdFull(moonPrice)}</span>
            {' '}USDT per DA
          </span>
        </div>
      </div>

      {}
      <p style={{
    color: 'rgba(255,255,255,0.4)',
    fontSize: '12px',
    lineHeight: 1.6,
    marginTop: '16px',
    marginBottom: 0
  }}>
        Direct formula calculator. DA Price = Liquidity Pool ÷ Circulating Supply. Supply starts at 0 and grows via farming — hard cap 21M. Every sale burns 100% of sold tokens. On every sale, 25% (manual) or 30% (auto) of USDT backing stays in the pool — this drives the price upward.
      </p>
    </div>;
};

<CardGroup cols={2}>
  <Card title="Hard Cap de 21M" icon="cube">
    Oferta máxima fixada para sempre. Sem inflação, sem cunhagem.
  </Card>

  <Card title="100% Lastreado em USDT" icon="shield-check">
    Cada token DA é lastreado por USDT real no pool de liquidez.
  </Card>

  <Card title="Queima em Cada Venda" icon="fire">
    100% dos tokens vendidos são permanentemente queimados. O usuário 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 como lastro no pool — é isso que impulsiona o preço do DA para cima.
  </Card>

  <Card title="Sem Transferências P2P" icon="ban">
    O DA só pode ser vendido, emprestado ou pago — sem transferências peer-to-peer.
  </Card>
</CardGroup>

## A Fórmula de Preço "Somente para Cima"

Preço = Liquidez ÷ Oferta Circulante

Toda vez que o DA é vendido, os tokens são queimados (a oferta diminui) enquanto o USDT permanece no pool (a liquidez se mantém ou cresce). Menos tokens ÷ a mesma quantidade ou mais USDT = preço por token mais alto.

<Info>
  **Como funciona:** 200 DA em circulação, 200 USDT no pool de liquidez. Preço = 1,00 USDT por DA. Um usuário vende 100 DA. O pool paga 70 USDT (70% do valor de 100 USDT). Todos os 100 DA são queimados. Resultado: 100 DA permanecem, 130 USDT no pool. Novo preço = 130 ÷ 100 = **1,30 USDT por DA**.
</Info>

<Tip>
  A comissão de 5% sobre todas as recompensas de marketing flui diretamente para o pool de liquidez do DA — separada dos percentuais de venda. Liquidez adicional vem de taxas de Lending, renda de RWA e receita do FinPro.
</Tip>

<Info>
  **Proteção da Seed Supply:** Uma pequena reserva permanente de DA — a **Seed Supply** — é pré-depositada no protocolo no lançamento como salvaguarda técnica para a fórmula de precificação.

  * **Permanente e não vendável.** A Seed Supply é bloqueada no nível do protocolo: ela **não pode ser queimada**, **não pode ser vendida** (manualmente ou via auto-venda) e é **excluída dos ciclos de auto-venda**.
  * **Fora da circulação.** Ela **não é contada como oferta circulante** e nunca participa de saldos de usuários, farming, lending ou distribuições de marketing.
  * **Garante um denominador não-zero.** Como `Preço = Liquidez ÷ Oferta Circulante`, a fórmula nunca pode dividir por zero. A Seed Supply garante que `totalSupply > 0` em todos os momentos, então a função de preço é sempre definida — mesmo no caso extremo em que todos os outros tokens em circulação tenham sido queimados.
  * **Proteção apenas para casos extremos.** Sob operação normal, a Seed Supply não tem efeito na descoberta de preço. Ela existe puramente como um piso determinístico que mantém `getPrice()` bem definido quando há liquidez presente, mas a oferta circulante de outra forma chegaria a zero.
</Info>

## Fontes do Pool de Liquidez

O Pool de Liquidez é a fundação da economia do DA. Ele é financiado por múltiplas fontes em todo o ecossistema RWANFTFI, garantindo o crescimento contínuo do lastro do token. Cada fluxo de receita do protocolo flui para um único pool, reforçando a fórmula Preço = Liquidez ÷ Oferta.

<AccordionGroup>
  <Accordion title="Atividade NFT">
    **Compras de NFT** — 20% de cada compra de NFT é automaticamente roteado para o Pool de Liquidez para a cunhagem de novo DA.

    **Rebuy e Autobuy** — 20% adicionais de cada compra repetida ou automática de NFT fluem para o Pool de Liquidez. Isso incentiva a renovação de posição e apoia o crescimento do sistema.
  </Accordion>

  <Accordion title="Taxas e Comissões">
    **Imposto sobre Recompensas de Marketing** — 5% de todas as recompensas de marketing em toda a rede de referência são automaticamente direcionados para o Pool de Liquidez. A atividade da rede fortalece diretamente o lastro do DA.

    **Taxa de Transferência do Saldo Acumulativo** — ao transferir Saldo Acumulativo para outro usuário, 20% do valor da transferência são roteados para o Pool de Liquidez do DA. Qualquer movimentação do Saldo Acumulativo — seja usado em uma compra de NFT ou transferido entre carteiras — gera um aporte de 20% para o Pool.

    **Taxa de Compra do Saldo Acumulativo** — ao comprar um NFT usando o Saldo Acumulativo, 20% do valor integrado são roteados para o Pool de Liquidez do DA para a cunhagem de novo DA. Exemplo: 898 USDT no Saldo Acumulativo — quando integrados em uma compra de NFT, 718 USDT vão para o custo do NFT e 180 USDT (20% de 898) fluem para o Pool de Liquidez do DA. Cada compra desse tipo reabastece o Pool e cria a base para novo DA.

    **Comissão de Lending** — ao tomar um empréstimo, o tomador paga uma comissão única de 5% direcionada ao Pool de Liquidez. Exemplo: empréstimo de \$1.000, o tomador recebe \$950, \$50 vão para o Pool. A comissão é coletada a cada novo empréstimo.
  </Accordion>

  <Accordion title="Fundos Expirados e Não Utilizados">
    **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, 100% dos resultados vão para o Pool de Liquidez ou para a queima de DA (mecanismo exato determinado pelas configurações da DAO).

    **Vouchers Expirados** — se os Vouchers permanecerem não utilizados por 365 dias, 100% dos fundos são direcionados ao Pool de Liquidez. Isso evita fundos ociosos e elimina passivos inativos.

    **Saldo Acumulativo Não Utilizado** — se o Saldo Acumulativo permanecer não utilizado por 120 dias, 70% dos fundos são direcionados ao Pool de Liquidez para a cunhagem de novo DA.
  </Accordion>

  <Accordion title="Receita Externa">
    **Comissões de SWAP** — comissões de todas as operações de troca (SWAP) são automaticamente roteadas para o Pool de Liquidez.

    **Comissões do Cartão de Débito** — comissões do programa de Cartão de Débito fluem para o Pool de Liquidez, criando fluxo de caixa real proveniente da economia externa.

    **Renda de RWA** — uma parte da receita de imóveis, renda de aluguel, ativos comerciais e outros ativos do mundo real é direcionada ao Pool de Liquidez, ancorando o sistema à economia real.

    **Receita do FinPro** — uma parte dos lucros de produtos financeiros (Lending, produtos de investimento, serviços financeiros) flui para o Pool de Liquidez.

    **Receita do Ecossistema** — uma parte da receita total do protocolo pode ser direcionada ao Pool de Liquidez ou utilizada para criar liquidez adicional para a cunhagem de novo DA.
  </Accordion>
</AccordionGroup>

## Mecânica de Queima do DA

A queima do DA é o mecanismo deflacionário central — reduz a oferta de tokens e cria pressão ascendente sustentada sobre o valor do ativo.

<CardGroup cols={3}>
  <Card title="Venda Manual" icon="fire">
    100% do DA vendido é permanentemente queimado. O usuário recebe 75% do valor em USDT. Os 25% restantes são uma comissão do protocolo que permanece no pool como lastro, impulsionando o crescimento do preço.
  </Card>

  <Card title="Auto-Venda" icon="clock">
    100% do DA vendido automaticamente é permanentemente queimado. O usuário recebe 70% do valor em USDT. Os 30% restantes são uma comissão do protocolo que permanece no pool como lastro, impulsionando o crescimento do preço. É acionada progressivamente a partir do saldo restante ao longo de 4 períodos (365 dias / 1 ano no total).
  </Card>

  <Card title="Inadimplência de Lending" icon="ban">
    Se um empréstimo não for pago, o DA dado em garantia é progressivamente queimado por meio do ciclo de auto-venda. Protege a liquidez do sistema e impõe disciplina financeira.
  </Card>
</CardGroup>

## Acesso Instantâneo e Ciclo de Auto-Venda

### Acesso Instantâneo

Os tokens DA estão 100% disponíveis para o usuário desde o momento em que são farmed. Não há período de bloqueio. O usuário pode imediatamente:

* **Vender manualmente** — receber 75% do valor em USDT, 100% dos tokens são queimados
* **Tomar um empréstimo** — 70% LTV contra o DA como garantia, taxa de comissão de 5%
* **Manter e esperar** — guardar os tokens e se beneficiar do crescimento do preço ao longo do tempo

### Ciclo de Auto-Venda

Se o usuário não vender manualmente, o sistema aciona vendas automáticas a partir do **saldo restante** 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 — Após 120 dias (~4 meses)">
    25% do saldo atual é vendido automaticamente. 25% de 100 = **25 DA vendidos** → Restante: **75 DA**
  </Step>

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

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

  <Step title="Período 4 — Após mais 65 dias (~2 meses, dia 365)">
    100% do saldo restante é vendido automaticamente. 100% de 22,5 = **22,5 DA vendidos** → 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 no momento do acionamento daquele período — não ao preço original do farming. 100% dos tokens vendidos automaticamente são queimados, e o usuário recebe 70% do valor em USDT ao preço da data da auto-venda. Como o preço cresce ao longo do tempo, os períodos posteriores queimam tokens a um preço mais alto, acelerando a deflação.

O usuário pode vender manualmente a qualquer momento antes que a auto-venda seja acionada, recebendo 75% em vez de 70%.

<Tip>
  A venda manual (pagamento de 75%) é sempre mais lucrativa por token do que a auto-venda (pagamento de 70%). No entanto, a auto-venda se beneficia do crescimento do preço ao longo do tempo — os períodos posteriores são executados a um preço de DA mais alto.
</Tip>

<Warning>
  **Auto-Venda com Limite de Rendimento Zero:** Se a auto-venda for acionada e o usuário tiver Limite de Rendimento zero (NFT não renovado), 100% dos resultados vão para o Pool de Liquidez ou para a queima de DA (determinado pela DAO). O usuário não recebe nada. Sempre mantenha um Limite de Rendimento ativo.
</Warning>

## Lending Multi-Batch

Cada batch de DA de cada ciclo de mineração serve como garantia independente. Isso permite um ciclo contínuo de microempréstimos:

<Steps>
  <Step title="Mine o Batch 1">
    O usuário completa um ciclo de mineração e recebe o batch 1 de DA.
  </Step>

  <Step title="Tome empréstimo contra o Batch 1">
    O usuário toma um empréstimo com LTV fixo de 70% contra o batch 1 (comissão única de 5% cobrada na emissão, direcionada ao Pool de Liquidez).
  </Step>

  <Step title="Mine o Batch 2">
    O usuário inicia um novo ciclo de mineração e recebe o batch 2 de DA.
  </Step>

  <Step title="Tome empréstimo contra o Batch 2">
    O usuário toma outro empréstimo com LTV fixo de 70% contra o batch 2 (comissão única de 5% cobrada na emissão, separada).
  </Step>
</Steps>

Isso permite múltiplos microempréstimos simultâneos, um por batch de DA. Cada empréstimo é independente - vinculado ao seu próprio batch - e permanece ativo até que o stack desse batch entre no ciclo de auto-venda. Se algum empréstimo individual entrar em inadimplência, somente a garantia daquele batch é queimada - não todas as posições em DA.

Para uma comparação detalhada entre venda e empréstimo, veja [Vender e Emprestar](/pt/da-selling-lending). O Lending também suporta reembolsos parciais e recuperação proporcional em caso de inadimplência. Veja [Mecânica de Lending](/pt/da-lending) para o detalhamento completo.

## Ciclo Deflacionário

Duas vezes por ano o sistema aciona um Ciclo Deflacionário especial com duração de até 30 dias, projetado para intensificar a escassez do token.

<Steps>
  <Step title="Pausar novos ciclos">
    O início de novos ciclos de mineração de NFTM, staking e geração de DA é pausado durante o Ciclo Deflacionário. **Os ciclos ativos iniciados antes do Ciclo Deflacionário continuam rodando e completam conforme o cronograma** — usuários com mineração já em progresso não perdem seu progresso.
  </Step>

  <Step title="Ativar mecanismos de venda">
    Mecanismos automáticos ou voluntários de venda de DA são ativados.
  </Step>

  <Step title="Queima diária">
    Uma parte dos tokens é queimada diariamente.
  </Step>

  <Step title="A oferta encolhe">
    A oferta de mercado encolhe, fortalecendo a pressão ascendente sobre o preço.
  </Step>
</Steps>

<Info>
  O Ciclo Deflacionário torna a economia do DA previsível, gerenciável e sustentável no longo prazo.
</Info>

Aumento da atividade → aumento da liquidez → aumento da emissão de DA → aumento da queima → aumento da escassez → aumento do valor do ativo. Esse sistema de loop fechado significa que quanto mais ativamente o ecossistema se desenvolve, mais forte se torna a economia do DA.

<DaPriceSimulator />
