YCE — two distinct tokens, one symbol

The YouthChain ecosystem uses the symbol YCE for two distinct value primitives. Both have 18 decimals and the user-facing UI doesn’t always make the boundary obvious, which causes recurring confusion. Read this section before doing any wallet work.

Native YCE (gas token)

  • The ledger account balance, used to pay transaction fees.
  • Returned by eth_getBalance(addr).
  • Wallets like MetaMask display this as the network’s native balance.
  • Genesis allocation (testnet):
    • 1,000,000 YCE each to test accounts 0x0ffb…, 0xe18d…, 0xd1e5…
    • 10,000 YCE each to the four validator addresses
    • 100,000 YCE to the faucet/oracle operator wallet 0x1a64…
  • The faucet credits 0.1 native YCE per request (sufficient for ~200 contract calls at the current 1 gwei fee).

YCE ERC-20 token

  • The YCEToken contract on the live testnet: 0x6a2247af143536d3ce0b9bf86a27c9b366e2f9ed (re-deployed deterministically via contracts/script/deploy_full.sh).
  • Initial mint: 1,000,000,000 YCE to the deployer (0xd1e5…), used to seed the AMM pool, staking jars, and faucet wallet.
  • Returned by YCEToken.balanceOf(addr).
  • Distributed via:
    • Faucet (11,000 YCE per request)
    • Engagement-to-token conversion via the AMM (swap YCR → YCE)
    • Validator staking returns

Fee split

The base fee follows an EIP-1559-style dynamic curve (±12.5% per block targeting 50% fullness, 1 gwei floor) but is used as a dynamic minimum gas price rather than a burned base fee. The gas actually paid (gas_used × gas_price, in native YCE) is split three ways at block production time — a fixed split, not Ethereum’s burn-the-base-fee model: This creates a deflationary pressure proportional to activity, while keeping validators paid without needing inflation. No transaction is gasless — server-side helpers (/api/mobile/faucet, /api/mobile/claim) exist purely as testnet UX fallbacks when a user’s wallet refuses to sign; on mainnet, the user always pays their own fee.

Staking Jars

StakingJars is a multi-pool staking contract. Each pool (“jar”) has an opinionated theme (e.g., “creators”, “curators”, “validators”). Stakers deposit YCE into a jar and receive a pro-rata share of rewards distributed to that jar. Reward weight inside a jar is stake × ES(staker) — so a Diamond-tier user staking 1000 YCE earns more than a newly-registered wallet staking the same 1000 YCE. This is the main mechanism that couples engagement to yield. Jars are funded by:
  1. The Treasury slice of the fee split.
  2. Direct donations from any address.
  3. Validator rewards that jar stakers voluntarily recycle.

Validator rewards

Each block, the validator earns a flat block subsidy (BLOCK_REWARD = 1 YCE) plus 50% of the block’s gas fees, credited directly. Higher-stake validators get more leader slots (the β·ES engagement term is inert on the 4-node testnet), so the block reward is not engagement-proportional today. Engagement-proportional rewards (R_i = ES_i / ΣES) are a post-testnet upgrade.

Governance: Quadratic Voting

The DAO treasury is spent via QuadraticVoting. Voting power is sqrt(stake × ES), so:
  • A user with 100 staked YCE + ES 4.0 gets sqrt(400) = 20 votes.
  • A whale with 10,000 staked YCE + ES 1.0 gets sqrt(10,000) = 100 votes — 5× more, not 100× more.
This prevents capital-only takeover while still rewarding committed stakers.

Slashing (roadmap)

Byzantine validators (equivocation, invalid block proposals) are detected by the fork choice rule and the DAO can slash their stake via a QuadraticVoting proposal. Slashing is not yet automatic — it requires an explicit DAO vote in v1.