PHASE A· MINT WINDOW · HIGH TAX
0 / 10,000 sealed cards minted10,000 TO PHASE B
SELL TAX25%
▸ Drops to 1.5% when all 10k sealed cards mint
$CASTERANK · ROLL · REPEAT
CASTE
▸ CARDS0 / 10,000 minted · 10,000 until Phase B
▸ BUFFER0.000B left · 0M drained · ~0k flips remaining
▸ RNGflip seed = keccak(blockhash, prevrandao, coinbase, gasleft, tokenId, msg.sender)
▸ CARDS0 / 10,000 minted · 10,000 until Phase B
▸ BUFFER0.000B left · 0M drained · ~0k flips remaining
▸ RNGflip seed = keccak(blockhash, prevrandao, coinbase, gasleft, tokenId, msg.sender)
/CASTE/STATS · CONTRACTS · CONSTANTS · ENTROPY

The Numbers.

V1 is single-phase, sealed-mint, deferred-reveal. Three things you can verify before touching the contract: how the fees split, how the buffer drains, how the RNG seed is composed.

Phase Transition· A → B · IRREVERSIBLE · ATOMIC
PHASE A · NOW
25%
sell tax · split 16.67 hourly / 8.33 mega
0 / 10,000
0.0%
cards minted · 10,000 more to flip phase
PHASE B · AFTER 10K
1.5%
sell tax · split 1.0 hourly / 0.5 mega
PHASE A · MINT WINDOW · 25%PHASE B · FREE TRADE · 1.5%
Buffer Drain Math· ONE-WAY · GRACEFUL CAP ON DEPLETION
BUFFER · 4,200,000,000 CASTE INITIAL
0.000B LEFT0M drained
▸ payout = tier_base × variant_mult × multiplier_e18 / 1e18 (deducted same tx as flipCard)
▸ when payout > buffer → capped at buffer remaining + BufferDepleted(addr, shortfall) event
▸ buffer never refills · drained CASTE is now circulating supply
AVERAGE FLIP — WEIGHTED
avg tier_base≈ 10,800avg variant_mult× 1.225avg multiplier× 1.050avg payout / flip≈ 13,900
RUNWAY
~0k flips
= 4.2B / 13.9k · ≥ 30× protocol life @ healthy flip rate
Flip RNG · 7 Sources· EXECUTION-TIME ENTROPY · NO ORACLE
seed = keccak256(
  blockhash(commitBlock + 2),  // fallback: blockhash(now − 1)
  blockhash(block.number − 1),
  block.prevrandao,    // PoS RANDAO
  block.coinbase,
  block.timestamp,
  tokenId,
  msg.sender,
  gasleft()  // tx execution path
)
✓ PROPERTIES
  • no oracle, no fee, no async delay (vs Chainlink VRF)
  • seller can't simulate before flipping — gasleft() depends on tx execution
  • validator can't predict — they don't know msg.sender at block proposal
  • offline sim infeasible — block-time entropy + execution path
△ ACCEPTED RISKS
  • validator MEV: theoretical — validator mines flip-favorable blocks selectively
  • blockhash window expires past 256 blocks — falls back to blockhash(now − 1)
  • commit-reveal lock = 2 blocks (minimum to prevent same-block prediction)
  • categorized as meme-grade · same risk profile as Pump.fun's bonding curve
Constants· FROM Constants.sol
PRICING & BATCH
UNIT$6.66666 USDC= 6_666_660 raw
MIN_BATCH_UNITS11 × UNIT min
MAX_BATCH_UNITS100$666.666 max
CARDS_PER_UNIT11 unit = 1 sealed card
MAX_CARDS10,000protocol-life cap
TOKEN ECONOMICS
TOTAL_SUPPLY21,000,000,000$CASTE · ERC20
LP_TOKEN_AMOUNT16,800,000,00080% → LP single-side
BUFFER_INITIAL4,200,000,00020% → flip buffer
LP_TICK_OFFSET46,020≈ 100× price range
FEES & TIMING
SWAP_FEE_BPS1501.5% buy + Phase B sell
PHASE_A_SELL_TAX250025% sell tax in mint
HOURLY_EPOCH1 hourlottery resolution
FOMO_INITIAL24hstarting Mega deadline
FOMO_BOOST60s × log10(units)deadline extender · cap 24h
FLIP_DELAY_BLOCKS2commit-reveal lock
JIT_LOCKOUT64 blocksLP add → remove min wait
CONTRACT ADDRESSES · ETHEREUM MAINNET
CasteHook
0xC6A7…b8ACC
v4 hook · 0xACC flag · mined CREATE2
CasteToken
0xA600…412A6
ERC20 · one-shot mint by hook
CasteCard
0x8962…09CA4
ERC721Enumerable · sealed + flip
Roll Your Caste · Trade Your Fate
BUY QUIET · FLIP LOUD
$CASTE · Uniswap v4 Hook Meme · Ethereum Mainnet
Not financial advice · DYOR · code is law
hook 0xC6A7…b8ACC · token 0xA600…412A6