Protocol
Rewards
Creator-side ETH and Ghost vault ETH fees enter GhostRevenueRouter. From there they fund Ghost NFT rewards and the team. Owners claim on each NFT; the team pulls its share.
Protocol $GHOST fees are burned (syncGhost) — NFT rewards stay ETH-only.
Public NFT claims
Rewards use a continuous index over active locked $GHOST (reward power):
accEthPerPower += fundedEth * 1e18 / totalActiveLockedGhost
An active Ghost’s share is:
token.lockedGhost / totalActiveLockedGhost
Tier does not change reward weight. Locked $GHOST is the weight. Tier only discounts vault reappear and swap fees.
Owners call claim(tokenId) anytime (ETH). Immediate. No ZK. No epochs.
Dormant / inactive Ghosts (post-transfer, before reactivate) have zero power and do not accrue.
Router cranks
syncEth()— pull creator-side ETH if wired, then route free ETH to rewards and the teamsyncGhost()— burn all$GHOSTfees on the router
Team pulls ETH with withdrawTeam. Mint ETH is paid to the team address in the mint transaction.
Ghost product fees
Reappear and swap protocol fees use the router. An active Ghost can discount those fees — see Fees.