SHOGSHOG$SHOG
Robinhood Chain
← BACK TO DASHBOARD

SHOG protocol mechanics.

SHOG is a 1,000,000,000 maximum-supply ERC-20 with a curve-backed 10M deployment allocation, direct ETH minting and redemption, protocol-funded ETH staking rewards, immutable fee lanes, and an optional canonical DEX market.

Supply architecture

MAX_SUPPLY: 1,000,000,000 SHOG. DEPLOYER_MINT: exactly 10,000,000 SHOG minted once to the immutable treasury/deployer. CURVE_HALT: 990,000,000 SHOG, or 99% of the hard max. Once the halt is reached, minting closes permanently; burns remain available.

The 10M deployment mint is backed

The constructor is payable. It calculates the ETH reserve implied by the same curve at 10M supply and requires the deployer to provide at least that amount. The 10M tokens therefore begin on the curve rather than existing as an unbacked side allocation. Any excess deployment ETH becomes permanent reserve buffer.

constructor(uint256 sWei, address treasury, uint256 treasuryBps) payable

The dashboard shows initialCurveEth, current curveEth, the separate reserve buffer, staking liabilities, and treasury liabilities.

Curve

The curve is expressed in terms of current curve supply s, maximum supply C, and immutable depth S:

E(s) = S × ln(C / (C − s)) p(s) = S / (C − s)

A larger S produces a deeper, slower-moving curve. The implementation accepts 10–5,000 ETH and should be economically modeled before deployment.

Direct minting

Users can send ETH directly to the contract, call mint(minTokens), or call mintTo(to,minTokens). The contract separates treasury, staking, and reserve-buffer fees. Net ETH advances the curve and mints the implied SHOG. Excess ETH is refunded if a transaction reaches the permanent curve halt.

Direct burning

Users call burn(amount,minEth). SHOG is destroyed, the inverse curve determines the gross ETH released, and the same fixed fee lanes are applied. The remaining ETH is paid directly to the burner. A DEX is not required for redemption.

Fees

Treasury fee: selected at deployment, immutable, and hard-capped at 5%. It accrues in pull-payment accounting and only the immutable treasury can claim it. Staking fee: fixed at 0.30%. When stakers exist, it is distributed pro rata. If no one is staked, it becomes reserve buffer rather than a first-staker windfall. Vault fee: fixed at 0.20% and remains as permanent backing buffer.

Staking

stake(amount) moves SHOG into the contract and records the user’s proportional reward debt. unstake(amount) returns tokens. claimRewards() pays accrued ETH, and exitStake() unstake-and-claims in one transaction. Anyone can add a separate ETH reward budget with fundStakingRewards() while stakers exist.

Staking reward ETH is tracked in stakingRewardReserve and excluded from curve backing. Treasury fee liabilities are also excluded, so the dashboard does not mislabel owed ETH as redeemable backing.

DEX market

The deployer can use some or all of the backed 10M SHOG to seed a SHOG/WETH pool. The contract does not depend on that pool: users can still mint and burn through the curve. The dashboard supports a Uniswap V3-compatible canonical pool address, WETH address, live pool price, fee tier, liquidity, reserve-based TVL estimate, swap link, and an optional indexer endpoint for 24-hour volume.

Immutable core

There is no owner, proxy upgrade, pause, arbitrary mint, blacklist, or general reserve withdrawal. The immutable treasury can only claim already-accounted treasury fees. Stakers can only claim already-accounted staking rewards. Burn payouts use curve principal. The remaining buffer stays in the contract.

Useful views

spotPrice() marketCapEth() backingReserve() reserveBuffer() backingPerToken() solvencyMargin() quoteMint(ethIn) quoteBurn(amount) pendingRewards(account)

Security and economic warning

Passing compilation and automated tests is not an audit. Bonding curves, fee extraction, liquidity seeding, MEV, low-liquidity markets, rounding, oracle assumptions, wallet UX, and economic incentives can still create loss. Deploy to testnet first, test with multiple wallets, verify exact source and constructor arguments, commission an independent audit, and publish every immutable parameter before accepting real value.