PATINA docs

Depth and tiers

Depth is one subtraction. Tiers are eight thresholds on that number, and nothing else.

What you will know after this page
  • How to compute depth from two block heights, and why a relic has none at all.
  • The tier rule: the highest threshold not greater than depth, inclusive, so exactly 1008 is Sheen.
  • All eight thresholds in blocks, and how the nominal day and year figures are produced.
  • What next_tier and blocks_to_next_tier hold at Elder, and what a move does to them.
  • The five display rules that stop two interfaces disagreeing about the same artifact.

Depth

depth = current_block_height - carrier.height
  • Computed when you ask. Never stored per block, never accumulated.
  • Counted in blocks, not days. Blocks are what the chain actually records.
  • A fresh carrier is depth zero, whatever the artifact's age.
  • A relic has no depth, because it has no carrier.
carrier confirmed at height  880000
chain tip                    893000
depth                        13000
tier                         3, Verdigris
next tier                    4, Umber at 26280 blocks
blocks to next tier          13280

Tier selection

tier = the highest threshold index whose threshold is not greater than depth

Thresholds are inclusive. A depth of exactly 1008 is Sheen, not Raw. Tier 0, Raw, has no threshold because everything starts there.

Eight bands, from Raw at the centre to Elder at the rim. The table below carries the numbers.

The full table

Only the Blocks column is protocol. The two time columns are arithmetic at ten minutes a block, so treat them as reading aids and label them as estimates wherever you print them. The public tier journey shows the same eight thresholds as a sequence you can walk.

The eight tiers. Nominal time assumes ten minutes per block, computed by docs/tools/vectors.mjs. Real blocks do not arrive on a schedule.
IndexNameBlocksNominal daysNominal yearsPlain reading
0Raw000Just placed, or just moved
1Sheen10087.000.02About a week
2Cast403228.000.08About four weeks, the length of the founding window
3Verdigris1296090.000.25About three months
4Umber26280182.500.50About six months
5Bronze52560365.001.00About a year
6Oxide105120730.002.00About two years
7Elder2100001458.333.99About four years, close to one halving period
Nominal is not a promise

Ten minutes per block is the target the difficulty adjustment aims at, not a guarantee. Over the last years blocks have often arrived slightly faster than ten minutes, which means a tier reached in fewer calendar days than the table says. Show blocks first and time second, and label time as an estimate wherever you show it.

Next tier

next_tier            the next threshold index above the current tier, or null at Elder
blocks_to_next_tier  next threshold - depth, or null at Elder

This is the only countdown in the product, and it is a real one. It goes down by one every block and it resets to the full distance if the carrier moves.

Tier names are labels, not scores

  • A tier does not confer anything. No access, no rights, no allocation.
  • Tier names are not a ranking of holders. Two artifacts at Bronze are not comparable in any way except that both have not moved for at least 52560 blocks.
  • There is no tier above Elder. An artifact at 400000 blocks is Elder with a depth of 400000, and the depth is the interesting number.

Rounding and display

Rules for anything that renders depth, so that two views never disagree:

  1. Show the block count exactly. Never round it.
  2. Derive calendar time from blocks at ten minutes each, and mark it as an estimate.
  3. Show the height the number was taken at. A depth without a height is not checkable.
  4. Never show a live depth for a relic. Show the rings instead.
  5. Never interpolate between blocks. Depth is an integer and it changes when a block arrives.

Where tiers show up in the API

"depth": 13000,
"tier": 3,
"tier_name": "Verdigris",
"next_tier": 4,
"blocks_to_next_tier": 13280

The leaderboard ranks live stretches by depth, and the census reports survival per 2016-block epoch. Both are on the endpoint reference.