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

# Mécanique du Jeton DA

> Le modèle de prix uniquement haussier.

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="Plafond Strict de 21M" icon="cube">
    Offre maximale fixée à jamais. Aucune inflation, aucun nouveau minage.
  </Card>

  <Card title="Adossé à 100 % en USDT" icon="shield-check">
    Chaque jeton DA est adossé à de l'USDT réel dans le pool de liquidité.
  </Card>

  <Card title="Brûlage à Chaque Vente" icon="fire">
    100 % des jetons vendus sont définitivement brûlés. L'utilisateur reçoit 75 % (manuel) ou 70 % (auto) de la valeur en USDT. Les 25 % restants (manuel) ou 30 % (auto) constituent une commission protocolaire qui demeure dans le pool en tant qu'adossement — c'est ce qui propulse le prix du DA à la hausse.
  </Card>

  <Card title="Aucun Transfert P2P" icon="ban">
    Le DA peut uniquement être vendu, prêté ou remboursé — aucun transfert peer-to-peer.
  </Card>
</CardGroup>

## La Formule de Prix « Uniquement à la Hausse »

Prix = Liquidité ÷ Offre en Circulation

À chaque vente de DA, des jetons sont brûlés (l'offre diminue) tandis que l'USDT reste dans le pool (la liquidité reste stable ou augmente). Moins de jetons ÷ même quantité ou plus d'USDT = prix par jeton plus élevé.

<Info>
  **Comment ça marche :** 200 DA en circulation, 200 USDT dans le pool de liquidité. Prix = 1,00 USDT par DA. Un utilisateur vend 100 DA. Le pool verse 70 USDT (70 % de 100 USDT de valeur). Les 100 DA sont entièrement brûlés. Résultat : il reste 100 DA, 130 USDT dans le pool. Nouveau prix = 130 ÷ 100 = **1,30 USDT par DA**.
</Info>

<Tip>
  La commission de 5 % sur toutes les récompenses marketing alimente directement le pool de liquidité du DA — séparément des pourcentages de vente. Une liquidité supplémentaire provient des frais de prêt, des revenus RWA et des recettes FinPro.
</Tip>

<Info>
  **Protection de l'Offre Initiale (Seed Supply) :** Une petite réserve permanente de DA — la **Seed Supply** — est pré-déposée dans le protocole au lancement comme garde-fou technique pour la formule de prix.

  * **Permanente et non vendable.** La Seed Supply est verrouillée au niveau du protocole : elle **ne peut pas être brûlée**, **ne peut pas être vendue** (manuellement ou via auto-vente), et est **exclue des cycles d'auto-vente**.
  * **Hors circulation.** Elle **n'est pas comptabilisée comme offre en circulation** et ne participe jamais aux soldes utilisateur, au farming, au lending ou aux distributions marketing.
  * **Garantit un dénominateur non nul.** Étant donné que `Prix = Liquidité ÷ Offre en Circulation`, la formule ne doit jamais diviser par zéro. La Seed Supply garantit que `totalSupply > 0` à tout moment, de sorte que la fonction de prix soit toujours définie — même dans le cas extrême où chaque autre jeton en circulation a été brûlé.
  * **Protection uniquement pour cas limite.** En fonctionnement normal, la Seed Supply n'a aucun effet sur la découverte des prix. Elle existe uniquement comme un plancher déterministe qui maintient `getPrice()` bien défini lorsque la liquidité est présente mais que l'offre en circulation atteindrait sinon zéro.
</Info>

## Sources du Pool de Liquidité

Le Pool de Liquidité est le fondement de l'économie du DA. Il est alimenté par de multiples sources à travers l'écosystème RWANFTFI, garantissant la croissance continue de l'adossement du jeton. Chaque source de revenus du protocole afflue dans un pool unique, renforçant la formule Prix = Liquidité ÷ Offre.

<AccordionGroup>
  <Accordion title="Activité NFT">
    **Achats de NFT** — 20 % de chaque achat de NFT est automatiquement dirigé vers le Pool de Liquidité pour le minage de nouveau DA.

    **Rebuy & Autobuy** — un 20 % supplémentaire de chaque rachat ou achat automatique de NFT afflue dans le Pool de Liquidité. Cela incite au renouvellement des positions et soutient la croissance du système.
  </Accordion>

  <Accordion title="Frais & Commissions">
    **Taxe sur les Récompenses Marketing** — 5 % de toutes les récompenses marketing à travers le réseau de parrainage sont automatiquement dirigés vers le Pool de Liquidité. L'activité du réseau renforce directement l'adossement du DA.

    **Frais de Transfert du Solde Cumulatif** — lors du transfert du Solde Cumulatif vers un autre utilisateur, 20 % du montant transféré sont dirigés vers le Pool de Liquidité du DA. Tout mouvement du Solde Cumulatif — qu'il soit utilisé dans un achat de NFT ou transféré entre wallets — génère un afflux de 20 % vers le Pool.

    **Frais d'Utilisation du Solde Cumulatif** — lors de l'achat d'un NFT en utilisant le Solde Cumulatif, 20 % du montant intégré sont dirigés vers le Pool de Liquidité du DA pour le minage de nouveau DA. Exemple : 898 USDT sur le Solde Cumulatif — lorsqu'ils sont intégrés dans un achat de NFT, 718 USDT vont vers le coût du NFT, et 180 USDT (20 % de 898) affluent dans le Pool de Liquidité du DA. Chaque achat de ce type réapprovisionne le Pool et crée la base pour de nouveaux DA.

    **Commission de Lending** — lors d'un emprunt, l'emprunteur paie une commission ponctuelle de 5 % dirigée vers le Pool de Liquidité. Exemple : prêt de 1 000 \$, l'emprunteur reçoit 950 \$, 50 \$ vont au Pool. La commission est perçue à chaque nouveau prêt.
  </Accordion>

  <Accordion title="Fonds Expirés & Inutilisés">
    **Auto-Vente avec Limite de Revenus à Zéro** — si l'auto-vente de DA se déclenche et que l'utilisateur a une Limite de Revenus nulle sur son NFT, 100 % du produit vont soit vers le Pool de Liquidité soit vers le brûlage de DA (le mécanisme exact est déterminé par les paramètres du DAO).

    **Vouchers Expirés** — si des Vouchers restent inutilisés pendant 365 jours, 100 % des fonds sont dirigés vers le Pool de Liquidité. Cela évite l'accumulation de fonds inactifs et élimine les passifs dormants.

    **Solde Cumulatif Inutilisé** — si le Solde Cumulatif reste inutilisé pendant 120 jours, 70 % des fonds sont dirigés vers le Pool de Liquidité pour le minage de nouveau DA.
  </Accordion>

  <Accordion title="Revenus Externes">
    **Commissions SWAP** — les commissions de toutes les opérations d'échange (SWAP) sont automatiquement dirigées vers le Pool de Liquidité.

    **Commissions sur Carte de Débit** — les commissions du programme de Carte de Débit affluent dans le Pool de Liquidité, créant un véritable flux de trésorerie en provenance de l'économie externe.

    **Revenus RWA** — une part des revenus issus de l'immobilier, des loyers, des actifs commerciaux et autres actifs du monde réel est dirigée vers le Pool de Liquidité, ancrant le système à l'économie réelle.

    **Recettes FinPro** — une part des bénéfices issus des produits financiers (Lending, produits d'investissement, services financiers) afflue dans le Pool de Liquidité.

    **Recettes de l'Écosystème** — une part du chiffre d'affaires total du protocole peut être dirigée vers le Pool de Liquidité ou utilisée pour créer une liquidité supplémentaire pour le minage de nouveau DA.
  </Accordion>
</AccordionGroup>

## Mécanique de Brûlage du DA

Le brûlage du DA est le mécanisme déflationniste central — il réduit l'offre de jetons et crée une pression haussière soutenue sur la valeur de l'actif.

<CardGroup cols={3}>
  <Card title="Vente Manuelle" icon="fire">
    100 % du DA vendu est définitivement brûlé. L'utilisateur reçoit 75 % de la valeur en USDT. Les 25 % restants constituent une commission protocolaire qui reste dans le pool en tant qu'adossement, propulsant la croissance du prix.
  </Card>

  <Card title="Auto-Vente" icon="clock">
    100 % du DA auto-vendu est définitivement brûlé. L'utilisateur reçoit 70 % de la valeur en USDT. Les 30 % restants constituent une commission protocolaire qui reste dans le pool en tant qu'adossement, propulsant la croissance du prix. Se déclenche progressivement à partir du solde restant sur 4 périodes (365 jours / 1 an au total).
  </Card>

  <Card title="Défaut de Lending" icon="ban">
    Si un prêt n'est pas remboursé, le DA mis en collatéral est progressivement brûlé via le cycle d'auto-vente. Protège la liquidité du système et fait respecter la discipline financière.
  </Card>
</CardGroup>

## Accès Instantané & Cycle d'Auto-Vente

### Accès Instantané

Les jetons DA sont disponibles à 100 % pour l'utilisateur dès leur farming. Aucune période de blocage. L'utilisateur peut immédiatement :

* **Vendre manuellement** — recevoir 75 % de la valeur en USDT, 100 % des jetons sont brûlés
* **Contracter un prêt** — 70 % LTV adossé à des DA en collatéral, 5 % de frais de commission
* **Détenir et attendre** — conserver les jetons et profiter de la croissance du prix dans le temps

### Cycle d'Auto-Vente

Si l'utilisateur ne vend pas manuellement, le système déclenche des ventes automatiques à partir du **solde restant** sur 4 périodes s'étalant sur **365 jours (1 an)** au total. Les durées de période sont exprimées en jours on-chain (120 / 90 / 90 / 65 jours) ; les références en mois ci-dessous sont des approximations pour faciliter la lecture.

**Exemple en partant de 100 DA :**

<Steps>
  <Step title="Période 1 — Après 120 jours (~4 mois)">
    25 % du solde courant est auto-vendu. 25 % de 100 = **25 DA vendus** → Reste : **75 DA**
  </Step>

  <Step title="Période 2 — Après 90 jours supplémentaires (~3 mois, jour 210)">
    40 % du solde restant est auto-vendu. 40 % de 75 = **30 DA vendus** → Reste : **45 DA**
  </Step>

  <Step title="Période 3 — Après 90 jours supplémentaires (~3 mois, jour 300)">
    50 % du solde restant est auto-vendu. 50 % de 45 = **22,5 DA vendus** → Reste : **22,5 DA**
  </Step>

  <Step title="Période 4 — Après 65 jours supplémentaires (~2 mois, jour 365)">
    100 % du solde restant est auto-vendu. 100 % de 22,5 = **22,5 DA vendus** → Reste : **0 DA**
  </Step>
</Steps>

<Note>
  Les pourcentages d'auto-vente (25 % / 40 % / 50 % / 100 %) indiqués ci-dessus représentent la configuration actuelle du protocole. Les valeurs spécifiques sont stockées en tant que paramètres du protocole et soumises aux procédures standard de gouvernance. Vérifiez toujours le smart contract ou la documentation actuelle du protocole pour les dernières valeurs.
</Note>

Chaque auto-vente s'exécute au prix du DA au moment du déclenchement de cette période — non pas au prix initial du farming. 100 % des jetons auto-vendus sont brûlés, et l'utilisateur reçoit 70 % de la valeur en USDT au prix du jour de l'auto-vente. Comme le prix croît avec le temps, les périodes ultérieures brûlent les jetons à un prix plus élevé, accélérant la déflation.

L'utilisateur peut vendre manuellement à tout moment avant le déclenchement de l'auto-vente, en recevant 75 % au lieu de 70 %.

<Tip>
  La vente manuelle (paiement de 75 %) est toujours plus rentable par jeton que l'auto-vente (paiement de 70 %). Cependant, l'auto-vente bénéficie de la croissance du prix dans le temps — les périodes ultérieures s'exécutent à un prix de DA plus élevé.
</Tip>

<Warning>
  **Auto-Vente avec Limite de Revenus à Zéro :** Si l'auto-vente se déclenche et que l'utilisateur a une Limite de Revenus nulle (NFT non renouvelé), 100 % du produit vont vers le Pool de Liquidité ou vers le brûlage de DA (déterminé par le DAO). L'utilisateur ne reçoit rien. Maintenez toujours une Limite de Revenus active.
</Warning>

## Lending Multi-Lots

Chaque lot de DA issu de chaque cycle de minage sert de collatéral indépendant. Cela permet un cycle continu de micro-prêts :

<Steps>
  <Step title="Miner le Lot 1">
    L'utilisateur termine un cycle de minage et reçoit le lot 1 de DA.
  </Step>

  <Step title="Emprunter contre le Lot 1">
    L'utilisateur contracte un prêt à LTV fixe de 70 % adossé au lot 1. La commission de 5 % est perçue une seule fois à l'émission et dirigée vers le Pool de Liquidité - elle n'est pas prélevée à nouveau au remboursement.
  </Step>

  <Step title="Miner le Lot 2">
    L'utilisateur démarre un nouveau cycle de minage et reçoit le lot 2 de DA.
  </Step>

  <Step title="Emprunter contre le Lot 2">
    L'utilisateur contracte un autre prêt à LTV fixe de 70 % adossé au lot 2. Une commission unique de 5 % distincte est perçue à l'émission de ce nouveau prêt.
  </Step>
</Steps>

Cela permet plusieurs micro-prêts simultanés, un par lot de DA. Chaque prêt est indépendant - rattaché à son propre lot - et reste actif tant que le stack de ce lot n'est pas entré dans le cycle d'auto-vente. Si un prêt particulier fait défaut, seul le collatéral de ce lot est brûlé - pas l'ensemble des avoirs en DA.

Pour une comparaison détaillée vente vs prêt, voir [Vente & Prêt](/fr/da-selling-lending). Le lending prend également en charge les remboursements partiels et la récupération proportionnelle en cas de défaut. Voir [Mécanique du Lending](/fr/da-lending) pour le détail complet.

## Cycle Déflationniste

Deux fois par an, le système déclenche un Cycle Déflationniste spécial d'une durée maximale de 30 jours, conçu pour intensifier la rareté du jeton.

<Steps>
  <Step title="Mise en pause des nouveaux cycles">
    Le démarrage de nouveaux cycles de minage NFTM, de staking et de génération de DA est suspendu pendant la durée du Cycle Déflationniste. **Les cycles actifs lancés avant le Cycle Déflationniste continuent et s'achèvent selon leur calendrier** — les utilisateurs dont le minage est déjà en cours ne perdent pas leur progression.
  </Step>

  <Step title="Activation des mécanismes de vente">
    Les mécanismes de vente automatique ou volontaire de DA sont activés.
  </Step>

  <Step title="Brûlage quotidien">
    Une portion de jetons est brûlée chaque jour.
  </Step>

  <Step title="Réduction de l'offre">
    L'offre sur le marché diminue, renforçant la pression haussière sur le prix.
  </Step>
</Steps>

<Info>
  Le Cycle Déflationniste rend l'économie du DA prévisible, gérable et durable sur le long terme.
</Info>

Activité accrue → liquidité accrue → émission accrue de DA → brûlage accru → rareté accrue → valeur de l'actif accrue. Ce système en boucle fermée signifie que plus l'écosystème se développe activement, plus l'économie du DA se renforce.

<DaPriceSimulator />
