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:
This yields 34 distinct levels. Every level must satisfy:
Why Multiples of 3?
The step size of 3 is dictated by the upgrade mechanism. The protocol allows consolidating 1,000 NFTs at level
Which simplifies to
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
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 | Denomination (readable) | Maturity Offset | XPOW Required |
|---|---|---|---|---|
| 0 | 1 | 0 years | 1 | |
| 3 | 1 thousand | 1 year | 1,000 | |
| 6 | 1 million | 3 years | 1,000,000 | |
| 9 | 1 billion | 7 years | ||
| 15 | 1 quadrillion | 31 years | ||
| 21 | 1 sextillion | 127 years | ||
| 30 | — | ~1,024 years | ||
| 45 | — | ~32,767 years | ||
| 60 | — | ~1,048,575 years | ||
| 90 | — | ~ | ||
| 99 | — | ~ |
The maturity offset is
NFT ID Encoding
The NFT ID combines the mint year and level into a single uint256:
Constraints (enforced in Nft.sol)
| Constraint | Enforcement |
|---|---|
require(level % 3 == 0) — reverts with NonTernaryLevel | |
require(level < 100) — reverts with InvalidLevel | |
require(anno > 2020) — reverts with InvalidYear |
Examples
| Year | Level | NFT ID | Denomination |
|---|---|---|---|
| 2026 | 0 | 202600 | 1 XPOW |
| 2026 | 3 | 202603 | 1,000 XPOW |
| 2026 | 15 | 202615 | |
| 2027 | 6 | 202706 | |
| 2030 | 30 | 203030 |
Decomposition
Given an NFT ID, the year and level are trivially extracted:
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:
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)
- Metadata —
yearOf(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 XPOWThis 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–
), short maturity periods (0–7 years) - Mid levels (12–30): Require significant capital (
– ), medium-to-long lockups (15–1,024 years) - High levels (33–60): Large denomination, multi-generational lockups (
– , 2,047–1,048,575 years) - Ultra-high levels (63–99): Effectively permanent, massive denomination (
– , 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 < 100check prevents ID overflow - Denomination is computed as
10 ** level, auint256operation. Solidity 0.8+ enforces overflow checks:, so level 75 ( ) fits but level 78 ( ) would revert. These ultra-high levels exist as protocol signposts — the denomination alone makes them practically unreachable.
Related Reading
- NFT System Overview — architecture and lifecycle of XPowerNft vs APowerNft
- Minting and Upgrading — how NFTs are created and consolidated
- Redemption Maturity — lock periods and the maturity function