Smart Contracts

Contract Architecture

The BaseCase protocol comprises a set of interconnected smart contracts deployed on Base (Ethereum L2).


Core Contracts

ShadowMarket

Primary contract managing the bonding curve phase and shadow share accounting.

interface IShadowMarket {
    // State queries
    function virtualYes() external view returns (uint256);
    function virtualNo() external view returns (uint256);
    function vaultBalance() external view returns (uint256);
    function totalShadowYes() external view returns (uint256);
    function totalShadowNo() external view returns (uint256);
    function solvencyPercent() external view returns (uint256);
    
    // Trading
    function buyShadowYes(uint256 usdcAmount) external returns (uint256 shares);
    function buyShadowNo(uint256 usdcAmount) external returns (uint256 shares);
    function sellShadowYes(uint256 shares) external returns (uint256 payout);
    function sellShadowNo(uint256 shares) external returns (uint256 payout);
    
    // Graduation
    function canGraduate() external view returns (bool);
    function graduate() external;
}

MarketFactory

Factory contract for deploying new prediction markets.

GraduationManager

Handles the graduation process and Order Book initialization.

OutcomeToken

ERC-20 token contract for YES and NO outcome tokens. One pair deployed per market at graduation.


External Dependencies

Contract
Address (Base)
Description

USDC

0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913

Collateral token

UMA Oracle V3

0xfb55F43fB9F48F63f9269DB7Dde3BbBe1ebDC0dE

Resolution oracle


Deployment Addresses

Contract
Address
Status

MarketFactory

TBD

Pending deployment

GraduationManager

TBD

Pending deployment

TokenWrapper

TBD

Pending deployment


Configuration Parameters

Parameter
Value
Description

INITIAL_VIRTUAL_RESERVE

100,000

Starting vYES and vNO

TRADE_FEE_BPS

200

2% fee (basis points)

GRADUATION_FEE_BPS

200

2% graduation fee

MIN_BONDING_DURATION

1 day

Minimum bonding period

MAX_BONDING_DURATION

30 days

Maximum bonding period


Events


Security Considerations

Access Control

Function
Access

buyShadowYes/No

Public

sellShadowYes/No

Public

graduate

Public (permissionless)

setParameters

Owner only

pause/unpause

Owner only

Reentrancy Protection

All state-modifying functions implement the checks-effects-interactions pattern and use reentrancy guards where applicable.

Oracle Trust

Market resolution relies on UMA Optimistic Oracle. Users should understand the dispute resolution mechanism and associated risks.

Last updated