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

# Hệ Sinh Thái NFT

> 10 cấp từ 28 đến 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="Cơ bản · L1–L4" icon="circle">
    28 – 275 USDT · Truy cập RWA & FinPro
  </Card>

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

  <Card title="Elite · L9–L10" icon="circle-dot">
    11.000 – 24.000 USDT · Độ sâu tối đa, chu kỳ ngắn nhất
  </Card>
</CardGroup>

Việc sở hữu NFT là bắt buộc để tham gia marketing, khai thác DA, và truy cập các công cụ tài chính. Mỗi tài khoản chỉ có một NFT đang hoạt động — việc nâng cấp sẽ tự động thay thế NFT trước đó.

<NftTierExplorer />

## Giới Hạn Thu Nhập & Tự Động Gia Hạn

<AccordionGroup>
  <Accordion title="Cách Hoạt Động Của Giới Hạn Thu Nhập" icon="gauge-high">
    Mỗi NFT có một Giới Hạn Thu Nhập nghiêm ngặt — thu nhập tích lũy tối đa mà NFT đó có thể tạo ra trước khi được gia hạn. Giới Hạn Thu Nhập được tiêu thụ bởi **hai nguồn**:

    1. **Phần thưởng marketing** — Sponsor Bonus, Tree Distribution, Matching Bonus, mọi khoản thanh toán từ hoạt động cấu trúc của bạn.
    2. **Bán DA** — mỗi giao dịch bán DA thủ công hoặc tự động đều giảm Giới Hạn Thu Nhập còn lại của bạn theo số tiền USDT thanh toán.

    Khi giới hạn về 0, bạn ngừng nhận **tất cả** phần thưởng marketing **và** mất khả năng bán DA: trong giao dịch bán thủ công, hệ thống không thể ghi có khoản thanh toán cho bạn; trong giao dịch bán tự động, 100% tiền thu được sẽ được chuyển vào Pool Thanh khoản DA hoặc đốt (cơ chế chính xác do cài đặt DAO quyết định). Để ngăn chặn điều này, hãy gia hạn NFT của bạn — qua Autobuy, mua lại thủ công cùng cấp, hoặc nâng cấp lên cấp cao hơn. Việc mua lại thủ công bị khóa khi giới hạn còn lại của bạn cao hơn 30% so với ban đầu.
  </Accordion>

  <Accordion title="Autobuy (Hệ thống 3/3)" icon="rotate">
    Kích hoạt Autobuy để tự động mua lại cùng một NFT khi giới
    hạn của nó đạt đến 0. **Đối với Cấp 1–8**, bộ đếm 3/3 cho phép tối đa
    3 lần gia hạn tự động sau giao dịch mua thủ công ban đầu — vì vậy
    cùng một cấp NFT có thể hoạt động tổng cộng tối đa 4 lần (1 thủ công

    * 3 tự động). Bộ đếm chỉ theo dõi các lần gia hạn tự động; giao dịch mua
      ban đầu là riêng biệt. Sau khi cả 3 lần autobuy được sử dụng, chức năng
      bị khóa và bạn phải nâng cấp hoặc mất phần thưởng. **Đối với Elite (L9–L10)**,
      autobuy là không giới hạn — các NFT cấp cao nhất gia hạn không giới hạn.
      Tất cả các giao dịch autobuy đều yêu cầu đủ USDT trên Số Dư Thông Thường hoặc
      Số Dư Tích Lũy (cả hai có thể kết hợp). Trên L1–L8, bộ đếm 3/3 sẽ đặt lại về
      0/3 khi mua một NFT cấp cao hơn. Phần Giới Hạn Thu Nhập chưa sử dụng của
      NFT trước đó sẽ **không** được chuyển sang NFT mới —
      nó sẽ bị hủy bỏ.
  </Accordion>

  <Accordion title="Bán Doanh Nghiệp" icon="handshake">
    Chuyển toàn bộ cấu trúc kinh doanh của bạn (cây đối tác và tuyến dưới) cho
    người dùng khác thông qua quy trình được DAO ủy quyền. Việc chuyển nhượng được kiểm soát bởi
    **phí chuyển nhượng** trên hợp đồng thông minh, không phải giá bán: **người bán
    trả phí cố định 500 USDT** (DAO có thể điều chỉnh trong khoảng **0–500 USDT**)
    để thực hiện việc chuyển nhượng. **Người mua không trả hoa hồng on-chain
    cho giao thức** và nhận toàn bộ cấu trúc khi thực hiện. Tham số
    on-chain cơ bản là `businessTransferFee` (đổi tên từ
    `businessSalePrice` cũ để phản ánh đúng ngữ nghĩa hoa hồng thực sự của nó).
    Việc bán NFT riêng lẻ mà không có cấu trúc không được hỗ trợ.
  </Accordion>
</AccordionGroup>

<Warning>
  **Giới Hạn Thu Nhập:** Khi NFT của bạn đạt đến giới hạn thu nhập, bạn sẽ ngừng nhận
  TẤT CẢ phần thưởng marketing. Bật Autobuy để ngăn chặn điều này — hoặc gia hạn thủ công
  khi giới hạn của bạn giảm xuống dưới 30%.
</Warning>

### Số Dư Đóng Băng — Bảo Vệ Thu Nhập Trên Các Lần Bán Cá Nhân Đầu Tiên

Khi phần thưởng marketing từ giao dịch **mua lần đầu** của người bạn trực tiếp mời vượt quá Giới Hạn Thu Nhập còn lại của NFT của bạn, phần vượt quá không bị mất — nó được đóng băng trong 72 giờ, cho bạn một khoảng thời gian để nâng cấp NFT và nhận khoản tiền đó. Đây là cơ chế cốt lõi bảo vệ thu nhập từ việc mời đối tác vào các NFT cấp cao hơn.

<Card title="Cơ Chế Số Dư Đóng Băng Đầy Đủ" icon="snowflake" href="/vi/frozen-balance">
  Hướng dẫn chi tiết về cửa sổ 72 giờ, tương tác với Autobuy, tỷ lệ tịch thu 70/30, hiệu ứng cascade theo cấu trúc, và lý do tại sao các giao dịch mua lặp lại từ cùng một người mời được xử lý khác.
</Card>

## NFT Quà Tặng & Voucher

<CardGroup cols={2}>
  <Card title="NFT Quà Tặng" icon="gift">
    Tài sản khuyến mại không thể bán đặt người dùng vĩnh viễn vào cấu trúc
    marketing. Không thể mua — được trao thông qua các chương trình khuyến mại hoặc
    thành tích Cấp Bậc Sự Nghiệp. Tối đa 100 mỗi địa chỉ (DAO có thể điều chỉnh, hiện tại).
  </Card>

  <Card title="Voucher Quà Tặng" icon="ticket">
    Phiếu giảm giá do người dùng tạo với mức tối thiểu được hợp đồng thông minh thực thi là **5 USDT**
    (voucher giá trị bằng 0 bị từ chối on-chain), có hiệu lực trong **365 ngày**. Bao phủ tới
    100% giao dịch mua NFT. Có thể chuyển nhượng với hoa hồng 0%, ngoại trừ trong
    **24 giờ cuối** trước khi hết hạn, khi việc chuyển nhượng bị khóa. Không thể kết hợp
    với Số Dư Tích Lũy. Nếu không sử dụng trong toàn bộ vòng đời 365 ngày,
    **100% giá trị voucher sẽ được chuyển vào Pool Thanh khoản DA**.
  </Card>
</CardGroup>

## Phiên Bản Ambassador & VIP

<CardGroup cols={2}>
  <Card title="NFT Ambassador" icon="crown">
    Giới hạn **100 đơn vị** (Q4 2026). Không có giới hạn thu nhập. Có hệ thống phần thưởng
    riêng. Không được chuyển nhượng khi Bán Doanh Nghiệp.
  </Card>

  <Card title="NFT VIP Edition" icon="gem">
    Giới hạn **100 đơn vị** (Q4 2026). Quyền truy cập được cấp khi đạt
    Cấp Bậc Sự Nghiệp **Leader** trở lên.
  </Card>
</CardGroup>
