System Architecture

Overview

TIX Protocol consists of:

  • Solana Program — An Anchor-based program deployed to Solana

  • TypeScript SDK — Client library for building transactions

  • Core Artifacts — Protocol configuration, integrator accounts, event accounts, paged permit storage, and secondary-market listings

Runtime Architecture

┌─────────────────────────────────────────────────────────────────┐
│                     Client Applications                         │
│         (Marketplaces, Mobile Apps, Venue Systems)              │
└───────────────────────────┬─────────────────────────────────────┘


┌─────────────────────────────────────────────────────────────────┐
│                    TypeScript SDK                               │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────────────────┐  │
│  │   Address   │  │ Instruction │  │    Account Fetchers     │  │
│  │  Derivation │  │  Builders   │  │                         │  │
│  └─────────────┘  └─────────────┘  └─────────────────────────┘  │
└───────────────────────────┬─────────────────────────────────────┘


┌─────────────────────────────────────────────────────────────────┐
│                   Solana Blockchain                             │
│  ┌─────────────────────────────────────────────────────────┐    │
│  │                  TIX Protocol Program                   │    │
│  │  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐   │    │
│  │  │   Protocol   │  │  Integrator  │  │    Event     │   │    │
│  │  │    Config    │  │   Accounts   │  │   Accounts   │   │    │
│  │  └──────────────┘  └──────────────┘  └──────────────┘   │    │
│  │  ┌──────────────┐  ┌──────────────┐                     │    │
│  │  │   Permit     │  │   Listing    │                     │    │
│  │  │    Pages     │  │   Accounts   │                     │    │
│  │  └──────────────┘  └──────────────┘                     │    │
│  └─────────────────────────────────────────────────────────┘    │
│                                                                 │
│  ┌─────────────────────────────────────────────────────────┐    │
│  │              SPL Token Program (USDC)                   │    │
│  └─────────────────────────────────────────────────────────┘    │
└─────────────────────────────────────────────────────────────────┘

Solana Primer

Accounts are State

Every piece of persistent data lives in a named account. Instructions must declare every account they read or write; Solana enforces access at runtime.

Program Derived Addresses (PDAs)

Deterministic, program-owned accounts generated from static seeds. Any client can reproduce a PDA locally. TIX stores all long-lived state in PDAs so addresses never need to be persisted off-chain.

Anchor Accounts & Constraints

Anchor generates the account validation code from #[derive(Accounts)] structs. Constraints such as seeds, has_one, or address enforce invariants before instruction logic runs.

SPL Token & Associated Token Accounts (ATAs)

USDC is represented as an SPL token mint. Each actor needs an ATA (via the Associated Token Program) to hold USDC. PDAs (protocol, integrator) also get ATAs that are derived deterministically.

Unit Conventions

*_fee_cents inputs are specified in USD cents off-chain. On-chain they are scaled into "minor units" (respecting the USDC mint's decimals) before being stored.

Data Flow

Primary Sale Flow

Secondary Sale Flow

Last updated