Skip to content

Levels and Denominations

Every XPowerNft belongs to a discrete level that determines its denomination (the XPOW value it represents) and its maturity lock period. Levels are the core tiering mechanism of the XPower staking system.

Level Definition

Levels are defined as multiples of 3 in the range:

{0,3,6,9,,96,99}

This yields 34 distinct levels. Every level must satisfy: mod3=0 and <100.

Why Multiples of 3?

The step size of 3 is dictated by the upgrade mechanism. The protocol allows consolidating 1,000 NFTs at level into 1 NFT at level +3. This is only coherent if:

10+3=1,000×10

Which simplifies to 103=1,000 — a true identity. If levels could be any integer, the upgrade math would not hold: 10+11,000×10. The ternary step ensures that each upgrade tier represents exactly 1,000× the value of the previous tier while the denomination grows by exactly 103=1,000.

A secondary consequence: the maturity period doubles every three levels (see Redemption Maturity), making the lockup cost increase in a predictable, exponential manner.

Denomination

The denomination D of a level is the amount of XPOW represented by a single NFT at that level:

D()=10(XPOW, in atomic units)

This means:

  • A level-0 NFT represents 1 XPOW
  • A level-3 NFT represents 1,000 XPOW
  • A level-6 NFT represents 1,000,000 XPOW
  • And so on, growing by a factor of 1,000 every 3 levels

Full Level Table

Level Denomination DDenomination (readable)Maturity OffsetXPOW Required
010010 years1
31031 thousand1 year1,000
61061 million3 years1,000,000
91091 billion7 years109
1510151 quadrillion31 years1015
2110211 sextillion127 years1021
301030~1,024 years1030
451045~32,767 years1045
601060~1,048,575 years1060
901090~1.07×109 years1090
991099~8.59×109 years1099

The maturity offset is 2/31 years from the mint year. See Redemption Maturity for the full derivation.

NFT ID Encoding

The NFT ID combines the mint year and level into a single uint256:

id=100×year+

Constraints (enforced in Nft.sol)

ConstraintEnforcement
mod3=0require(level % 3 == 0) — reverts with NonTernaryLevel
0<100require(level < 100) — reverts with InvalidLevel
year>2020require(anno > 2020) — reverts with InvalidYear

Examples

YearLevelNFT IDDenomination
202602026001 XPOW
202632026031,000 XPOW
2026152026151015 XPOW
20276202706106 XPOW
2030302030301030 XPOW

Decomposition

Given an NFT ID, the year and level are trivially extracted:

solidity
function yearOf(uint256 nftId) internal pure returns (uint256) {
    return nftId / 100;  // drop last two digits
}

function levelOf(uint256 nftId) internal pure returns (uint256) {
    return nftId % 100;  // keep last two digits
}

This encoding is space-efficient and collision-free: each year introduces exactly 34 valid IDs (one per level), and no two (year, level) pairs map to the same ID.

Current Year

The year() function computes the current UTC calendar year from block.timestamp:

year=1970+100×block.timestampCENTURY

Where CENTURY = 3{,}155{,}673{,}600 seconds (100 Julian years of 365.25 days each). This uses integer arithmetic to avoid floating point, and the factor of 100 provides centisecond precision before the floor division.

The year value is read-only on-chain and governs:

  • Minting — new NFTs are always minted with the current year's ID
  • Redemption — maturity is checked against the current year (not timestamp)
  • MetadatayearOf(id) resolves which per-year URI to serve

Denomination Growth Visualization

The denomination of XPowerNft levels grows by a factor of 1,000 every 3 levels:

Level 0:    ■ 1 XPOW
Level 3:    ■■■■■■■■■■ 1,000 XPOW
Level 6:    ■■■■■■■■■■■■■■■■■■■ 1,000,000 XPOW
Level 9:    ████████████████████████ 10^9 XPOW
Level 15:   ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ 10^15 XPOW
Level 30:   ░░░░░░░░░░░░░░░░░░░░░░ 10^30 XPOW
Level 60:   ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ 10^60 XPOW
Level 99:   ██████████████████████ 10^99 XPOW

This exponential growth means that at higher levels, a single NFT represents an enormous XPOW position. A level-60 NFT, for instance, represents more XPOW than the total supply of most ERC20 tokens — and its denomination is entirely on-chain verifiable via denominationOf(level).

Practical Implications

For Users

  • Low levels (0–9): Accessible with modest XPOW holdings (1–109), short maturity periods (0–7 years)
  • Mid levels (12–30): Require significant capital (10121030), medium-to-long lockups (15–1,024 years)
  • High levels (33–60): Large denomination, multi-generational lockups (10331060, 2,047–1,048,575 years)
  • Ultra-high levels (63–99): Effectively permanent, massive denomination (10631099, 4,194,303–8,589,934,591 years)

For the Protocol

  • The 100-year ID space (years 2021–2120) accommodates a century of NFT issuance
  • Level 99 is the maximum — the level < 100 check prevents ID overflow
  • Denomination is computed as 10 ** level, a uint256 operation. Solidity 0.8+ enforces overflow checks: 22561.16×1077, so level 75 (1075) fits but level 78 (1078) would revert. These ultra-high levels exist as protocol signposts — the denomination alone makes them practically unreachable.