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

# Ecossistema NFT

> 10 níveis de 28 a 24.000 USDT.

export const NftTierExplorer = () => {
  const [filter, setFilter] = useState("All");
  const [selected, setSelected] = useState(null);
  const [compare, setCompare] = useState([]);
  const VIDEO_SRCS = [null, '/videos/01_1.mp4', '/videos/02_1.mp4', '/videos/03_1.mp4', '/videos/04_1.mp4', '/videos/05_1.mp4', '/videos/06_1.mp4', '/videos/07_1.mp4', '/videos/08_1.mp4', '/videos/09_1.mp4', '/videos/10_1.mp4'];
  const fmtUsd = n => new Intl.NumberFormat('en-US', {
    style: 'currency',
    currency: 'USD',
    maximumFractionDigits: 0
  }).format(n);
  const NFT_DATA = [{
    name: "GENESIS",
    tier: "Basic",
    level: 1,
    price: 28,
    limit: 75,
    depth: 2,
    mining: null,
    matchingBonus: false,
    lending: false,
    daMining: false,
    autobuy: "3/3",
    cycles: 0,
    c1: 0,
    c2: 0
  }, {
    name: "ADVANCE",
    tier: "Basic",
    level: 2,
    price: 55,
    limit: 160,
    depth: 3,
    mining: null,
    matchingBonus: false,
    lending: false,
    daMining: false,
    autobuy: "3/3",
    cycles: 0,
    c1: 0,
    c2: 0
  }, {
    name: "ASCEND",
    tier: "Basic",
    level: 3,
    price: 140,
    limit: 375,
    depth: 4,
    mining: null,
    matchingBonus: false,
    lending: false,
    daMining: false,
    autobuy: "3/3",
    cycles: 0,
    c1: 0,
    c2: 0
  }, {
    name: "ECLIPSE",
    tier: "Basic",
    level: 4,
    price: 275,
    limit: 650,
    depth: 6,
    mining: null,
    matchingBonus: true,
    lending: false,
    daMining: false,
    autobuy: "3/3",
    cycles: 0,
    c1: 0,
    c2: 0
  }, {
    name: "HYDRO",
    tier: "Premium",
    level: 5,
    price: 550,
    limit: 1400,
    depth: 9,
    mining: 45,
    matchingBonus: true,
    lending: true,
    daMining: true,
    autobuy: "3/3",
    cycles: 1,
    c1: 0.10,
    c2: 0
  }, {
    name: "QUANTUM",
    tier: "Premium",
    level: 6,
    price: 1100,
    limit: 2700,
    depth: 11,
    mining: 44,
    matchingBonus: true,
    lending: true,
    daMining: true,
    autobuy: "3/3",
    cycles: 1,
    c1: 0.10,
    c2: 0
  }, {
    name: "PULSE",
    tier: "Premium",
    level: 7,
    price: 2200,
    limit: 5800,
    depth: 12,
    mining: 43,
    matchingBonus: true,
    lending: true,
    daMining: true,
    autobuy: "3/3",
    cycles: 1,
    c1: 0.10,
    c2: 0
  }, {
    name: "AURORA",
    tier: "Premium",
    level: 8,
    price: 5500,
    limit: 12800,
    depth: 13,
    mining: 42,
    matchingBonus: true,
    lending: true,
    daMining: true,
    autobuy: "3/3",
    cycles: 2,
    c1: 0.10,
    c2: 0.15
  }, {
    name: "FLAME",
    tier: "Elite",
    level: 9,
    price: 11000,
    limit: 28000,
    depth: 15,
    mining: 41,
    matchingBonus: true,
    lending: true,
    daMining: true,
    autobuy: "Unlimited",
    cycles: 2,
    c1: 0.10,
    c2: 0.15
  }, {
    name: "INFINITY",
    tier: "Elite",
    level: 10,
    price: 24000,
    limit: 70000,
    depth: 19,
    mining: 40,
    matchingBonus: true,
    lending: true,
    daMining: true,
    autobuy: "Unlimited",
    cycles: 2,
    c1: 0.10,
    c2: 0.15
  }];
  const TIER_COLORS = {
    Basic: {
      border: '1px solid rgba(255,255,255,0.25)',
      textColor: '#FFFFFF',
      badgeBg: 'rgba(255,255,255,0.15)',
      badgeBorder: 'rgba(255,255,255,0.25)'
    },
    Premium: {
      border: '1px solid rgba(255,255,255,0.35)',
      textColor: '#FFFFFF',
      badgeBg: 'rgba(255,255,255,0.15)',
      badgeBorder: 'rgba(255,255,255,0.35)'
    },
    Elite: {
      border: '1px solid rgba(251,191,36,0.5)',
      textColor: '#fbbf24',
      badgeBg: 'rgba(251,191,36,0.2)',
      badgeBorder: 'rgba(251,191,36,0.4)'
    }
  };
  var RADAR_AXES = ['Afford', 'Income', 'Depth', 'Mining', 'ROI'];
  var normalize = nft => {
    var roi = nft.limit / nft.price;
    return [(24000 - nft.price) / 24000 * 100, nft.limit / 70000 * 100, nft.depth / 22 * 100, nft.cycles > 0 ? (45 - nft.mining) / (45 - 40) * 100 : 0, Math.min(roi / 3.0 * 100, 100)];
  };
  var filtered = filter === "All" ? NFT_DATA : NFT_DATA.filter(n => n.tier === filter);
  var toggleCompare = nft => {
    setCompare(prev => {
      var exists = prev.find(c => c.level === nft.level);
      if (exists) return prev.filter(c => c.level !== nft.level);
      if (prev.length >= 2) return [prev[1], nft];
      return [...prev, nft];
    });
  };
  var RadarChart = ({items, size}) => {
    var s = size || 240;
    var cx = s / 2, cy = s / 2, r = s * 0.36;
    var axes = 5, step = 2 * Math.PI / axes, start = -Math.PI / 2;
    var pt = (ai, val) => ({
      x: cx + r * (val / 100) * Math.cos(start + ai * step),
      y: cy + r * (val / 100) * Math.sin(start + ai * step)
    });
    var colors = ['#FFFFFF', '#F59E0B'];
    return <svg viewBox={'0 0 ' + s + ' ' + s} className="w-full max-w-[260px] mx-auto">
        {[25, 50, 75, 100].map(lv => <polygon key={lv} points={Array.from({
      length: axes
    }, (_, i) => pt(i, lv)).map(p => p.x + ',' + p.y).join(' ')} fill="none" stroke="white" strokeOpacity="0.08" strokeWidth="0.5" />)}
        {Array.from({
      length: axes
    }, (_, i) => <line key={i} x1={cx} y1={cy} x2={pt(i, 100).x} y2={pt(i, 100).y} stroke="white" strokeOpacity="0.08" strokeWidth="0.5" />)}
        {items.map((item, idx) => {
      var vals = normalize(item);
      var pts = vals.map((v, i) => pt(i, v));
      return <g key={item.level}>
              <polygon points={pts.map(p => p.x + ',' + p.y).join(' ')} fill={colors[idx]} fillOpacity="0.15" stroke={colors[idx]} strokeWidth="1.5" />
              {pts.map((p, i) => <circle key={i} cx={p.x} cy={p.y} r="3" fill={colors[idx]} />)}
            </g>;
    })}
        {Array.from({
      length: axes
    }, (_, i) => {
      var lp = pt(i, 120);
      return <text key={i} x={lp.x} y={lp.y} textAnchor="middle" dominantBaseline="middle" fill="rgba(255,255,255,0.5)" style={{
        fontSize: '7.5px'
      }}>{RADAR_AXES[i]}</text>;
    })}
      </svg>;
  };
  var FeaturePill = ({on, label}) => <span style={on ? {
    color: '#4ade80',
    backgroundColor: 'rgba(34,197,94,0.1)',
    border: '1px solid rgba(34,197,94,0.2)'
  } : {
    color: 'rgba(255,255,255,0.4)',
    backgroundColor: 'rgba(255,255,255,0.05)',
    border: '1px solid rgba(255,255,255,0.05)'
  }} className="inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-[10px] font-medium">
      {on ? '✓' : '✗'} {label}
    </span>;
  var videoStyle = {
    width: '100%',
    aspectRatio: '1 / 1',
    objectFit: 'cover',
    display: 'block',
    backgroundColor: '#1a1a2e'
  };
  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">NFT Tier Explorer</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="flex gap-2 mb-5 flex-wrap">
        {['All', 'Basic', 'Premium', 'Elite'].map(f => <button key={f} onClick={() => {
    setFilter(f);
    setSelected(null);
    setCompare([]);
  }} style={filter === f ? {
    backgroundColor: '#FFFFFF',
    color: '#000000'
  } : {
    backgroundColor: 'rgba(56,56,56,0.7)',
    color: 'rgba(255,255,255,0.7)'
  }} className="px-4 py-1.5 rounded-full text-xs font-medium transition-all">
            {f}
          </button>)}
      </div>

      {}
      {(() => {
    var renderCard = nft => {
      var isSel = selected?.level === nft.level;
      var isCmp = compare.find(c => c.level === nft.level);
      var tc = TIER_COLORS[nft.tier];
      return <button key={nft.level} onClick={() => setSelected(isSel ? null : nft)} style={{
        backgroundColor: '#383838',
        borderColor: isSel ? 'rgba(255,255,255,0.6)' : isCmp ? 'rgba(255,255,255,0.35)' : 'rgba(255,255,255,0.05)',
        textAlign: 'left',
        boxShadow: isSel ? '0 0 15px rgba(255,255,255,0.15)' : 'none',
        padding: 0,
        overflow: 'hidden'
      }} className="relative rounded-xl transition-all duration-300 border">
              <div style={{
        width: '100%',
        overflow: 'hidden',
        aspectRatio: '1 / 1',
        backgroundColor: '#1a1a2e'
      }}>
                <video autoPlay muted loop playsInline src={VIDEO_SRCS[nft.level]} style={{
        width: '100%',
        height: '100%',
        objectFit: 'cover',
        display: 'block'
      }} />
              </div>
              <div style={{
        padding: '12px'
      }}>
                <div className="flex items-center justify-between mb-2">
                  <span style={{
        color: tc.textColor,
        backgroundColor: tc.badgeBg,
        border: tc.border
      }} className="text-[10px] font-bold uppercase tracking-wider px-1.5 py-0.5 rounded-full">{nft.tier}</span>
                  <span style={{
        color: 'rgba(255,255,255,0.4)'
      }} className="text-[10px]">L{nft.level}</span>
                </div>
                <div style={{
        color: '#FFFFFF'
      }} className="text-sm font-bold mb-1">{nft.name}</div>
                <div style={{
        color: '#FFFFFF'
      }} className="text-xl font-black">{fmtUsd(nft.price)}</div>
                <div style={{
        color: 'rgba(255,255,255,0.4)'
      }} className="text-[11px] mt-1">Income Limit: {fmtUsd(nft.limit)}</div>
                <div style={{
        color: 'rgba(255,255,255,0.4)'
      }} className="text-[11px]">Mkt Depth: {nft.depth} levels</div>
              </div>
              {isCmp && <div style={{
        backgroundColor: '#FFFFFF',
        boxShadow: '0 0 8px rgba(255,255,255,0.3)'
      }} className="absolute -top-1.5 -right-1.5 w-5 h-5 rounded-full flex items-center justify-center">
                  <span style={{
        color: '#000000'
      }} className="text-[10px] font-bold">{compare.indexOf(isCmp) + 1}</span>
                </div>}
            </button>;
    };
    if (filter === "All") {
      var basic = NFT_DATA.filter(n => n.tier === 'Basic');
      var premium = NFT_DATA.filter(n => n.tier === 'Premium');
      var elite = NFT_DATA.filter(n => n.tier === 'Elite');
      return <div className="mb-6">
              <div style={{
        fontSize: '11px',
        color: 'rgba(255,255,255,0.4)',
        marginBottom: '8px'
      }} className="uppercase tracking-wider">Basic · L1–L4</div>
              <div className="grid grid-cols-2 sm:grid-cols-4 gap-3">{basic.map(renderCard)}</div>
              <div style={{
        fontSize: '11px',
        color: 'rgba(255,255,255,0.4)',
        marginBottom: '8px',
        marginTop: '12px'
      }} className="uppercase tracking-wider">Premium · L5–L8</div>
              <div className="grid grid-cols-2 sm:grid-cols-4 gap-3">{premium.map(renderCard)}</div>
              <div style={{
        fontSize: '11px',
        color: 'rgba(255,255,255,0.4)',
        marginBottom: '8px',
        marginTop: '12px'
      }} className="uppercase tracking-wider">Elite · L9–L10</div>
              <div className="grid grid-cols-2 sm:grid-cols-2 max-w-[420px] mx-auto gap-3">{elite.map(renderCard)}</div>
            </div>;
    }
    var isElite = filter === "Elite";
    return <div className={`grid gap-3 mb-6 ${isElite ? 'grid-cols-2 max-w-[420px] mx-auto' : 'grid-cols-2 sm:grid-cols-4'}`}>
            {filtered.map(renderCard)}
          </div>;
  })()}

      {}
      {selected && (() => {
    var tc = TIER_COLORS[selected.tier];
    return <div style={{
      backgroundColor: '#383838',
      borderColor: 'rgba(255,255,255,0.05)'
    }} className="p-5 rounded-xl border mb-6">
            <div className="flex flex-col md:flex-row md:items-start gap-6">
              <div className="flex-1">
                <div className="flex items-center gap-3 mb-4">
                  <span style={{
      color: tc.textColor,
      backgroundColor: tc.badgeBg,
      border: tc.border
    }} className="text-[10px] font-bold uppercase px-2.5 py-0.5 rounded-full">{selected.tier}</span>
                  <h4 style={{
      color: '#FFFFFF'
    }} className="text-base font-bold">Level {selected.level} — {selected.name}</h4>
                </div>
                <div className="grid grid-cols-2 sm:grid-cols-3 gap-2 mb-4">
                  {[['Price', fmtUsd(selected.price)], ['Income Limit', fmtUsd(selected.limit)], ['Mkt Depth', selected.depth + ' levels'], ['Mining Cycle', selected.cycles === 0 ? 'Not available' : selected.cycles === 1 ? selected.mining + ' days' : '42 – 40 days', selected.cycles === 0 ? null : selected.cycles === 1 ? '10% per cycle' : '10% + 15% (2 cycles)'], ['Autobuy Slots', selected.autobuy === 'Unlimited' ? 'Unlimited' : '3 of 3 slots', selected.autobuy === 'Unlimited' ? 'Elite: no autobuy cap' : 'Auto-reinvest limit'], ['ROI Ratio', (selected.limit / selected.price).toFixed(2) + 'x']].map(([label, val, subtext]) => <div key={label} style={{
      backgroundColor: 'rgba(56,56,56,0.7)'
    }} className="rounded-lg p-3">
                      <div style={{
      color: 'rgba(255,255,255,0.4)'
    }} className="text-[10px] uppercase tracking-wide">{label}</div>
                      <div style={{
      color: '#FFFFFF'
    }} className="text-lg font-bold">{val}</div>
                      {subtext && <div style={{
      color: 'rgba(255,255,255,0.35)',
      fontSize: '9px'
    }}>{subtext}</div>}
                    </div>)}
                </div>
                <div className="flex flex-wrap gap-1.5">
                  <FeaturePill on={true} label="RWA Access" />
                  <FeaturePill on={true} label="FinPro" />
                  <FeaturePill on={selected.matchingBonus} label="Matching Bonus" />
                  <FeaturePill on={selected.lending} label="Lending" />
                  <FeaturePill on={selected.daMining} label={selected.daMining ? 'DA Mining · ' + selected.cycles + ' cycle' + (selected.cycles > 1 ? 's' : '') : 'DA Mining'} />
                </div>
              </div>
              <div className="w-full md:w-auto flex flex-col items-center">
                <div style={{
      backgroundColor: '#1a1a2e',
      borderRadius: '8px',
      overflow: 'hidden',
      aspectRatio: '1 / 1',
      width: '100%',
      maxWidth: '260px',
      marginBottom: '12px'
    }}>
                  <video autoPlay muted loop playsInline src={VIDEO_SRCS[selected.level]} style={videoStyle} />
                </div>
                <RadarChart items={[selected]} size={200} />
                <button onClick={() => toggleCompare(selected)} style={compare.find(c => c.level === selected.level) ? {
      backgroundColor: '#FFFFFF',
      color: '#000000',
      boxShadow: '0 0 12px rgba(255,255,255,0.2)'
    } : {
      color: 'rgba(255,255,255,0.4)',
      border: '1px solid rgba(255,255,255,0.1)'
    }} className="mt-3 px-5 py-2 rounded-full text-xs font-semibold transition-all">
                  {compare.find(c => c.level === selected.level) ? '✓ In comparison' : '+ Add to compare'}
                </button>
              </div>
            </div>
          </div>;
  })()}

      {}
      {compare.length === 2 && <div style={{
    backgroundColor: '#383838',
    borderColor: 'rgba(255,255,255,0.05)'
  }} className="p-5 rounded-xl border mb-4">
          <h4 style={{
    color: '#FFFFFF'
  }} className="text-base font-bold mb-5 text-center">
            {compare[0].name} <span style={{
    color: 'rgba(255,255,255,0.4)'
  }} className="mx-2">vs</span> {compare[1].name}
          </h4>
          <div className="flex flex-col items-center gap-6">
            <div className="flex justify-center gap-4 w-full">
              {compare.map(item => <div key={item.level} style={{
    backgroundColor: '#1a1a2e',
    borderRadius: '8px',
    overflow: 'hidden',
    aspectRatio: '1 / 1',
    width: '100%',
    maxWidth: '180px'
  }}>
                  <video autoPlay muted loop playsInline src={VIDEO_SRCS[item.level]} style={videoStyle} />
                </div>)}
            </div>
            <div className="w-full max-w-[280px]">
              <RadarChart items={compare} size={260} />
              <div className="flex justify-center gap-6 mt-2">
                {compare.map((item, idx) => <div key={item.level} className="flex items-center gap-2">
                    <span className="w-3 h-3 rounded-full" style={{
    backgroundColor: idx === 0 ? '#FFFFFF' : '#F59E0B'
  }} />
                    <span style={{
    color: 'rgba(255,255,255,0.5)'
  }} className="text-xs font-semibold">{item.name}</span>
                  </div>)}
              </div>
            </div>
            <div className="w-full overflow-x-auto">
              <table className="w-full text-sm">
                <thead><tr style={{
    borderBottom: '1px solid rgba(255,255,255,0.05)'
  }}>
                  <th style={{
    color: 'rgba(255,255,255,0.4)'
  }} className="text-left py-2 font-medium">Metric</th>
                  <th style={{
    color: '#FFFFFF'
  }} className="text-right py-2 font-semibold">{compare[0].name}</th>
                  <th style={{
    color: '#F59E0B'
  }} className="text-right py-2 font-semibold">{compare[1].name}</th>
                </tr></thead>
                <tbody style={{
    color: '#FFFFFF'
  }}>
                  {[['Price', fmtUsd(compare[0].price), fmtUsd(compare[1].price)], ['Income Limit', fmtUsd(compare[0].limit), fmtUsd(compare[1].limit)], ['ROI', (compare[0].limit / compare[0].price).toFixed(2) + 'x', (compare[1].limit / compare[1].price).toFixed(2) + 'x'], ['Mkt Depth', compare[0].depth + ' lvls', compare[1].depth + ' lvls'], ['Mining', compare[0].mining ? compare[0].mining + 'd' : '—', compare[1].mining ? compare[1].mining + 'd' : '—'], ['Matching Bonus', compare[0].matchingBonus ? '✓' : '✗', compare[1].matchingBonus ? '✓' : '✗'], ['Lending', compare[0].lending ? '✓' : '✗', compare[1].lending ? '✓' : '✗'], ['DA Mining', compare[0].daMining ? '✓' : '✗', compare[1].daMining ? '✓' : '✗']].map(([label, v1, v2], i) => <tr key={i} style={{
    borderBottom: '1px solid rgba(255,255,255,0.05)'
  }}>
                      <td style={{
    color: 'rgba(255,255,255,0.4)'
  }} className="py-2">{label}</td>
                      <td className="py-2 text-right font-semibold">{v1}</td>
                      <td className="py-2 text-right font-semibold">{v2}</td>
                    </tr>)}
                </tbody>
              </table>
            </div>
          </div>
          <button onClick={() => setCompare([])} style={{
    color: 'rgba(255,255,255,0.4)'
  }} className="mt-4 text-xs transition-colors">Clear comparison</button>
        </div>}

      <p style={{
    color: 'rgba(255,255,255,0.4)'
  }} className="text-xs mt-4">Click any card to expand details. Select two cards to compare side-by-side with radar chart.</p>
    </div>;
};

<CardGroup cols={3}>
  <Card title="Basic · L1–L4" icon="circle">
    28 – 275 USDT · Acesso a RWA e FinPro
  </Card>

  <Card title="Premium · L5–L8" icon="circle-half-stroke">
    550 – 5.500 USDT · Mineração, Lending, Matching
  </Card>

  <Card title="Elite · L9–L10" icon="circle-dot">
    11.000 – 24.000 USDT · Profundidade máxima, ciclos mais curtos
  </Card>
</CardGroup>

Possuir um NFT é obrigatório para participar do marketing, minerar DA e acessar as ferramentas financeiras. Um NFT ativo por conta — fazer upgrade substitui o anterior automaticamente.

<NftTierExplorer />

## Limites de Rendimento e Auto-Renovação

<AccordionGroup>
  <Accordion title="Como Funcionam os Limites de Rendimento" icon="gauge-high">
    Cada NFT possui um Limite de Rendimento estrito — a renda cumulativa máxima que aquele NFT pode gerar antes da renovação. O Limite de Rendimento é consumido por **duas fontes**:

    1. **Recompensas de marketing** — Bônus de Patrocinador, Distribuição em Árvore, Bônus de Matching, qualquer pagamento decorrente da atividade da sua estrutura.
    2. **Vendas de DA** — cada venda manual ou auto-venda de DA reduz seu Limite de Rendimento restante pelo valor do pagamento em USDT.

    Quando o limite chega a zero, você para de receber **todas** as recompensas de marketing **e** perde a capacidade de vender DA: em uma venda manual, o sistema não pode creditar o pagamento para você; 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). Para evitar isso, renove seu NFT — via Autobuy, recompra manual no mesmo nível ou upgrade para um nível superior. A recompra manual fica bloqueada enquanto o limite restante estiver acima de 30% do original.
  </Accordion>

  <Accordion title="Autobuy (Sistema 3/3)" icon="rotate">
    Ative o Autobuy para recomprar automaticamente o mesmo NFT
    quando seu limite chegar a zero. **Para os Níveis 1–8**, o contador
    3/3 permite até 3 renovações automáticas após a compra manual original
    — então o mesmo nível de NFT pode estar ativo no máximo 4 vezes no total
    (1 manual + 3 automáticas). O contador rastreia apenas as renovações
    automáticas; a compra original é separada. Após o uso dos 3 autobuys,
    a função é bloqueada e você precisa fazer upgrade ou perderá as recompensas.
    **Para Elite (L9–L10)**, os autobuys são ilimitados — os NFTs de nível mais alto
    se renovam sem limite. Todos os autobuys exigem USDT suficiente no
    Saldo Regular ou Acumulativo (ambos podem ser combinados). Nos L1–L8,
    o contador 3/3 é resetado para 0/3 quando um NFT de nível superior é comprado.
    A parte não utilizada do Limite de Rendimento do NFT anterior **não**
    é transferida para o novo NFT — ela é anulada.
  </Accordion>

  <Accordion title="Venda do Negócio" icon="handshake">
    Transfira toda a sua estrutura de negócio (árvore de parceiros e downline)
    para outro usuário por meio de um processo autorizado pela DAO. A transferência
    é regulada por uma **comissão de transferência** do smart contract, e não por um
    preço de venda: **o vendedor paga uma taxa fixa de 500 USDT** (ajustável pela DAO
    no intervalo de **0–500 USDT**) para executar a transferência. O **comprador
    não paga comissão on-chain ao protocolo** e recebe toda a estrutura na execução.
    O parâmetro on-chain subjacente é `businessTransferFee` (renomeado a partir do
    legado `businessSalePrice` para refletir sua verdadeira semântica de comissão).
    Vendas individuais de NFT sem a estrutura não são suportadas.
  </Accordion>
</AccordionGroup>

<Warning>
  **Limite de Rendimento:** Assim que seu NFT atinge seu limite de rendimento, você
  para de receber TODAS as recompensas de marketing. Ative o Autobuy para evitar isso —
  ou renove manualmente quando seu limite cair abaixo de 30%.
</Warning>

### Saldo Congelado — Proteção de Renda nas Primeiras Vendas Pessoais

Quando uma recompensa de marketing proveniente de uma **primeira compra** do seu convidado direto excede o Limite de Rendimento restante do seu NFT, o excesso não é perdido — ele é congelado por 72 horas, dando a você uma janela para fazer upgrade do seu NFT e reivindicar os fundos. Esta é a mecânica central que protege a renda ao convidar parceiros para NFTs de nível mais alto.

<Card title="Mecânica Completa do Saldo Congelado" icon="snowflake" href="/pt/frozen-balance">
  Passo a passo detalhado da janela de 72 horas, interação com o Autobuy, divisão de perda 70/30, cascata em nível de estrutura e por que compras repetidas do mesmo convidado são tratadas de forma diferente.
</Card>

## Gift NFTs e Vouchers

<CardGroup cols={2}>
  <Card title="Gift NFTs" icon="gift">
    Ativos promocionais não vendáveis que colocam os usuários permanentemente
    na estrutura de marketing. Não podem ser comprados — concedidos por meio
    de promoções ou conquistas de Career Rank. Até 100 por endereço (ajustável
    pela DAO, valor atual).
  </Card>

  <Card title="Gift Vouchers" icon="ticket">
    Cupons gerados pelo usuário com um mínimo aplicado pelo smart contract de **5 USDT**
    (vouchers de valor zero são rejeitados on-chain), válidos por **365 dias**. Cobrem até
    100% de uma compra de NFT. Transferíveis com 0% de comissão, exceto durante as
    **últimas 24 horas** antes da expiração, quando as transferências são bloqueadas. Não podem ser
    combinados com o Saldo Acumulativo. Se não utilizados durante o ciclo de vida total de 365 dias,
    **100% do valor do voucher é direcionado ao Pool de Liquidez do DA**.
  </Card>
</CardGroup>

## Edição Ambassador e VIP

<CardGroup cols={2}>
  <Card title="Ambassador NFT" icon="crown">
    Limitado a **100 unidades** (Q4 2026). Sem limites de rendimento. Sistema
    próprio de recompensas. Não é transferido na Venda do Negócio.
  </Card>

  <Card title="VIP Edition NFT" icon="gem">
    Limitado a **100 unidades** (Q4 2026). Acesso concedido ao alcançar
    Career Rank de **Leader** ou superior.
  </Card>
</CardGroup>
