Shares & Growth

Shares & Growth

A share is your turtle's claim on the Vault. The more shares, the more $ETH it earns from every trade.

The numbers

Value
Base share at mint1.0
Growth rate+0.7 per week
Pristine cap10.0
Forged cap9.0
Legendary cap12.0 (1/1s only)
Internal scale1.0 = 1000 units (fixed-point ×1000)

How growth is computed

Growth is continuous — every second a Pristine turtle is held, share accrues. The contract computes it on-read:

Glyphs.sol
function pendingShare(uint256 tokenId) public view returns (uint32) {
    GlyphState memory s = _state[tokenId];
    if (s.isMaxed) return s.shareScaled;
 
    uint256 elapsed = block.timestamp - s.bondStartTime;
    uint256 growth  = (elapsed * GROWTH_PER_WEEK) / WEEK_SECONDS;
    uint256 newShare = uint256(s.shareScaled) + growth;
 
    uint256 cap = _capForPath(s.path);   // 10.0 / 9.0 / 12.0 by path
    if (newShare > cap) newShare = cap;
    return uint32(newShare);
}

No oracle, no admin trigger, no off-chain compute. Pure time × constant.

Transfer reset (Pristine only)

If you transfer a non-maxed Pristine turtle, its share resets to 1.0 for the new owner. The clock restarts.

Glyphs.sol
// Inside _beforeTokenTransfers
if (s.path == Path.Pristine && !s.isMaxed) {
    uint32 oldShare = s.shareScaled;
    s.shareScaled   = SHARE_BASE;             // back to 1.0
    s.bondStartTime = uint64(block.timestamp);
    vault.updateShare(id, oldShare, SHARE_BASE);
    emit BondReset(id);
}

Maxed Pristine = permanent. Once your turtle hits 10.0 shares, the isMaxed flag is set. From then on, the transfer hook skips the reset. The share goes with the turtle, forever.

Why share resets on transfer

To reward true believers. Flippers don't get to ride the share growth. Only wallets that commit time to a turtle reap the long-term yield.

Forged shares are permanent

Once a turtle is Forged, the reset clause no longer applies. Forged turtles can be traded freely without losing their share. The trade-off: their cap is lower (9.0 vs 10.0).

The ForgeThe Vault