sour.finance
Launch app →
PROTOCOL · ADDRESSES

Program IDs & on-chain addresses

Everything you need to verify Sour yourself: program ID, base asset mint, supported markets. Open these in your favorite Solana explorer and you'll see exactly what the app sees.

Mainnet

Network
solana-mainnet
Program ID
souryQgnM1xiNuGcmVYLPGT3MKqnGN8QTqP8zk8eape
USDC mint
EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
Launch version
v1.0.7
Live since
2026-05-06

Launch markets

Three markets at launch — every market PDA is derived deterministically from the program ID and the asset symbol. The app uses the launch-set filter to ignore orphan markets from earlier bring-up sessions.

  • SOL-PERP
    SOL/USD perpetual future on Sour. Oracle-anchored mark, 1.8-second batch clearing, flat 3 bps fee.
  • BTC-PERP
    BTC/USD perpetual future on Sour. Oracle-anchored mark, 1.8-second batch clearing, flat 3 bps fee.
  • ETH-PERP
    ETH/USD perpetual future on Sour. Oracle-anchored mark, 1.8-second batch clearing, flat 3 bps fee.

How to verify

Open https://solscan.io or https://explorer.solana.com and search for the program ID above. You will see the program account, recent instructions, and the IDL if your explorer renders it. The Sour program is not closed-source — its source lives at github.com/GageBachik/sour and the on-chain bytecode is the build output of that repository at the tagged release.

For each market, the app derives the market PDA at runtime; you can see the resolved addresses in the network tab when loading app.sour.finance/markets. The /api/markets/index endpoint returns the canonical PDA list keyed by symbol.

Protocol parameters at launch

Base trade fee
3 bps (300 fee_micros)
Batch slot
1800 ms
Max leverage
50×
Quote / collateral
USDC
Funding cadence
Computed inside every batch (no off-chain cron)
Liquidation
Structural — no off-chain liq keeper

Authoritative live state

Anything you read on this page is true at the point it was last edited. The authoritative live state is on-chain. Two surfaces let you read it directly without trusting our frontend:

— The /api/markets/index endpoint on app.sour.finance returns a snapshot of every launch market with its OI, fee, last clear price, and lookup-table address.

— The Solana cluster itself responds to direct getAccountInfo calls. Every Sour account is deserializable from byte offsets documented in the SDK at packages/sour-sdk.