Pizza Shop Protocol Documentation

Developer & Protocol Docs

The complete technical specification for Pizza Shop NFT, on-chain reward economics, Base Sepolia smart contracts, and testnet onboarding.

Section 01

Protocol Overview & Concept

Pizza Shop NFT is a provably fair, retro-styled on-chain franchise collectible program deployed on Base Sepolia (Chain ID 84532). The system introduces an auditable, continuous emission tokenomics model where NFT holders accumulate utility reward tokens ($PIZZA) across a fixed 365-day emission timeline.

Total NFT Supply

100,000

ERC-721Enumerable standard

Fixed Mint Price

0.0001 ETH

Emission Escrow

80,000,000

$PIZZA (100M total, 20M LP)

Section 02

Base Sepolia Smart Contracts

All contracts are deployed on the Base Sepolia testnet. They utilize OpenZeppelin 5.x audited primitives with strict 2-step ownership, reentrancy guards, and immutable parameter checks.

Contract NameStandardBase Sepolia AddressExplorer
PizzaShopNFTERC-721Enumerable0x890c5908AdE4FcF8538b4a655cEE7e4EECD2a92CBaseScan
PizzaShopRewardsReward Escrow0xd0da530939EE3F7D6979da265E809496d3372fc7BaseScan
PizzaShopTokenERC-20 ($PIZZA)0x8d0E2fB5d7ec90b44b128b8B2fdA31b6A71Bd6B9BaseScan
PizzaShopMarketplaceTrading & Listings0x85060D3668E0C552409b49A3F5F59f0bB7a57E0CBaseScan
Section 03

Franchise Ranks & Multipliers

Every minted NFT is assigned one of four immutable ranks upon reveal. Ranks determine the NFT’s proportional share of the 80,000,000 $PIZZA reward escrow pool based on its weighted multiplier.

Driver

1x Multiplier

55% of Collection (55,000 Max)

365-Day Max Yield:459.77 $PIZZA

Cook

2x Multiplier

22% of Collection (22,000 Max)

365-Day Max Yield:919.54 $PIZZA

Manager

3x Multiplier

17% of Collection (17,000 Max)

365-Day Max Yield:1,379.31 $PIZZA

Owner (Ultra-Rare)

4x Multiplier

6% of Collection (6,000 Max)

365-Day Max Yield:1,839.08 $PIZZA
Section 04

$PIZZA Continuous Reward Emissions

Rewards are calculated and accrued every single second. Holders do not need to stake or lock their NFTs; ownership of the token ID continuously entitles the wallet to claim accumulated $PIZZA.

// Continuous Linear Accrual Formula:

elapsed = block.timestamp - activationTime;

annualRate = (TOTAL_BUDGET * rankMultiplier) / TOTAL_WEIGHTED_UNITS;

accrued = (annualRate * elapsed) / 365 days;

claimable = accrued - claimedForToken[tokenId];

  • No Redistribution: Unminted NFTs do not accrue rewards. Unused emissions remain in the escrow contract and cannot be diluted.
  • Batch Claiming: Users can claim across all owned NFTs in a single transaction via batchClaimRewards(uint256[] tokenIds).
Section 05 • Guide
Getting Started on Base Sepolia

How to Acquire Base Sepolia Testnet Tokens

To test minting and reward claiming, you need a small amount of Base Sepolia ETH. Below are the fastest ways to get tokens:

1

Option A: Built-in Pizza Community Faucet (Instant 1-Click)

Dispenses Base Sepolia testnet ETH directly to your connected wallet for gas fees & testing.

2

Option B: Configure Base Sepolia in Your Wallet

Add RPC parameters automatically or manually in MetaMask, Rabby, or Coinbase Wallet.

3

Option C: Connect Self-Custody Web3 WalletRecommended

Connect via MetaMask, Coinbase Wallet, Rabby, Rainbow, or any standard EIP-1193 Web3 provider on Base Sepolia.

Section 06

Contract Verification & Foundry Scripts

All smart contracts are developed with Foundry in packages/contracts. To run the full unit and invariant test suite:

# Run all 16 unit tests and 8,192 invariant calls

pnpm contracts:test

# Deploy to Base Sepolia

forge script script/Deploy.s.sol --rpc-url https://sepolia.base.org --broadcast