Smart Contracts

Documentation for the Solana Anchor smart contracts powering GPMIN.

Overview

GPMIN smart contracts are built on Solana using the Anchor framework. The protocol consists of:

  • Market Factory - Creates and manages prediction markets
  • Liquidity Pools - AMM-based liquidity for outcome tokens
  • Settlement Logic - Oracle-based market resolution
  • Token Management - Outcome token minting and redemption

Program Structure

Market Account

pub struct Market {
    pub authority: Pubkey,
    pub market_id: String,
    pub question: String,
    pub market_type: MarketType,
    pub outcomes: Vec<String>,
    pub end_time: i64,
    pub oracle: Pubkey,
    pub created_at: i64,
    pub is_resolved: bool,
    pub resolved_outcome: u8,
    pub resolved_at: i64,
}

Liquidity Pool Account

pub struct LiquidityPool {
    pub market_id: String,
    pub total_liquidity: u64,
    pub outcome_balances: Vec<u64>,
    pub user_shares: HashMap<Pubkey, u64>,
}

Instructions

create_market

Creates a new prediction market

pub fn create_market(
    ctx: Context<CreateMarket>,
    market_id: String,
    question: String,
    market_type: MarketType,
    outcomes: Vec<String>,
    end_time: i64,
    oracle: Pubkey,
) -> Result<()>

trade

Execute a trade on a market

pub fn trade(
    ctx: Context<Trade>,
    market_id: String,
    outcome_index: u8,
    amount: u64,
) -> Result<()>

resolve_market

Resolve a market (oracle only)

pub fn resolve_market(
    ctx: Context<ResolveMarket>,
    market_id: String,
    outcome_index: u8,
) -> Result<()>

add_liquidity

Add liquidity to a market pool

pub fn add_liquidity(
    ctx: Context<AddLiquidity>,
    market_id: String,
    amount: u64,
) -> Result<()>

Market Types

Binary

Yes/No markets with two outcomes

Multiple Choice

Markets with multiple possible outcomes

Scalar

Numerical range markets

Security

  • PDA-based account derivation for security
  • Oracle signature verification for market resolution
  • Time-based market expiration
  • Access control for sensitive operations
  • Quantum-proof signature verification (via Galaxia Quantum Security)

Deployment

Build

cd packages/smart-contracts
anchor build

Test

anchor test

Deploy

# Localnet
anchor deploy

# Mainnet
anchor deploy --provider.cluster mainnet