Skip to content

orthonode/TIX-DAO

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

27 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸͺ¦ TIX-DAO

Venue governance on-chain. Ticketing reclaimed.

πŸ—οΈ Where TIX-DAO Fits

The live event ticketing stack on Solana now has two layers:

Layer Protocol Role
Infrastructure KYD Labs / TIX Protocol Ticket issuance, financing, payments
Governance TIX-DAO Venue + artist DAO, ve$TICK voting, on-chain rules

TIX-DAO is not competing with KYD/TIX Protocol β€” it's the governance layer that sits on top. KYD handles the rails. TIX-DAO handles who controls them.

No existing ticketing protocol has solved governance. YellowHeart, TokenProof, GET Protocol β€” all failed because a centralized team made the rules. TIX-DAO puts rule-making on-chain, in the hands of venues, artists, and fans.

CI License Network Built With Hackathon Status Version By



Ticketmaster is a bank that sells tickets on the side. TIX-DAO is governance infrastructure that puts that power back in the hands of artists and fans.


Demo

Live: https://tix-dao.vercel.app

TIX-DAO Demo


The Problem

Live Nation posted record revenue of $23.1 billion in 2024 β€” up from $22.7 billion in 2023. The DOJ filed an antitrust suit against Live Nation/Ticketmaster in May 2024; the jury trial was scheduled to begin March 2, 2026. The court rejected Live Nation's bid for full dismissal in February 2026. The case has not yet produced a verdict.

Service fees, dynamic pricing, resale margins, and royalty decisions are made unilaterally by the platform. Ticketmaster's fees average 27% of ticket face value (GAO report). Artists have no governance rights over secondary sales of their own work. Fans have no recourse when refund policies change overnight.

The global live events industry was valued at approximately $88 billion in 2025. The governance of that money β€” who gets what percentage, enforced how β€” is controlled by two or three centralized platforms.

Before TIX-DAO With TIX-DAO
Resale caps set by Ticketmaster Voted on-chain by token holders
Artist royalties bypassed by marketplaces Enforced at escrow level by governance proposal
Refund windows changed without notice 72hr window passed as a binding on-chain proposal
Platform governance: call customer support Protocol governance: cast your vote
Flash loans can capture governance in one block 30-day lock + 7-day cooloff makes it structurally impossible

The Graveyard

Four projects tried to fix this. All four failed. Here is what killed them and how TIX-DAO addresses each failure:

Project Failure Year Cause of Failure TIX-DAO Fix
YellowHeart 2022 Royalty bypass β€” Magic Eden made royalties optional (Oct 2022); artists earned nothing on secondary sales SPL-Governance proposal enforces royalty at escrow level; no marketplace opt-out
TokenProof 2024 Ethereum L1 gas β€” $30–50/verification made the economics impossible at scale; acquired by Yuga Labs Dec 2024, original mission abandoned Solana: base fee ~$0.0005/tx at current prices; 100K verifications β‰ˆ $50 vs $3M+ on ETH L1
GET Protocol Ongoing No real governance β€” rebranded as OPEN Ticketing Ecosystem; foundation still controls all policy decisions; token holders have no meaningful vote $TICK token-weighted on-chain voting; every policy decision is a ProposalV2 on devnet
Beanstalk 2022 $182M flash loan attack β€” no lock period, no cooloff, no veto; treasury drained in one transaction 30-day minimum lock + 7-day cooloff + council veto; attack is architecturally impossible

The Solution

TIX-DAO is a purpose-built governance UI for live-event venues on top of Solana's SPL-Governance (Realms) protocol. Each venue deploys its own Realm via three real on-chain transactions. Token holders vote on ticketing policy. Policy executes on-chain.

The Canonical Governance Flow (Live on Devnet)

// TX1 β€” mint fresh $TICK SPL token
const { mintKeypair } = await createTickMint(connection, wallet);

// TX2 β€” deploy Realm + create TokenOwnerRecord PDA
const { realmPk } = await createRealmWithDeposit(connection, wallet, name, mintKeypair.publicKey);

// TX3 β€” create Governance + Proposal + sign off (starts voting period)
const { governancePk, proposalPk } = await createGovernanceAndProposal(
  connection, wallet, realmPk, mintKeypair.publicKey, proposalTitle, quorumPct,
);

All three transactions are confirmed on Solana devnet. @solana/spl-governance ^0.3.28 is wired and active.

Note on SES lockdown: Phantom's lockdown-install.js corrupts bs58 at runtime, breaking new PublicKey(string). TIX-DAO uses pre-computed Uint8Array bytes for GOVERNANCE_PROGRAM_ID to avoid this. See docs/ARCHITECTURE.md Β§8 for details.


Prize Tracks

Track Sponsor Why We Win
Realms Governance Builders Realms First vertical governance UI for live events; real SPL-Governance TX1/TX2/TX3 confirmed on devnet; no custom program
Realms Extensions Realms ve$TICK voter weight plugin β€” reusable by any Realms DAO, not just TIX-DAO venues
kyd. Ticketing kyd. Governance layer + RWA financing pipeline on top of TICKS protocol

Full alignment: docs/HACKATHON.md


Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                       USER BROWSER                             β”‚
β”‚                                                                β”‚
β”‚  Next.js 16 App Router  (/  Β·  /create  Β·  /proposals  Β·  /lock  Β·  /finance  Β·  /faucet)  β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”‚
β”‚  β”‚  WalletWrapper (Client Component, ssr: false)          β”‚    β”‚
β”‚  β”‚    SolanaWalletProvider                                β”‚    β”‚
β”‚  β”‚      ConnectionProvider β†’ clusterApiUrl('devnet')     β”‚    β”‚
β”‚  β”‚      WalletProvider (autoConnect + silent onError)    β”‚    β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                       β”‚ Wallet Standard        β”‚ JSON-RPC
                       β–Ό                        β–Ό
            β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
            β”‚  Phantom / Solflare β”‚   β”‚  Solana Devnet RPC   β”‚
            β”‚  / Backpack         β”‚   β”‚  api.devnet.solana   β”‚
            β”‚  (auto-discovered)  β”‚   β”‚  .com                β”‚
            β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                                 β”‚
                                                 β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚              SPL-GOVERNANCE PROGRAM  (DEVNET)                  β”‚
β”‚          GovER5Lthms3bLBqWub97yVrMmEogzX7xNjdXpPPCVZw         β”‚
β”‚                                                                β”‚
β”‚  Realm PDA  ("House of Blues Chicago-AbCd12")                  β”‚
β”‚  β”œβ”€β”€ Community Governance  ($TICK Β· 20% quorum Β· 7d cooloff)  β”‚
β”‚  β”‚   └── ProposalV2 PDAs  (resale cap Β· royalty Β· refund)     β”‚
β”‚  β”‚       └── VoteRecordV2 PDAs  (one per voter)               β”‚
β”‚  └── Council Governance  (veto authority Β· multi-sig)         β”‚
β”‚      └── NativeTreasury PDA                                    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Full diagram + account breakdown: docs/ARCHITECTURE.md


Quick Start

# Clone
git clone https://github.com/orthonode/TIX-DAO.git
cd tix-dao

# Install
# --legacy-peer-deps required: React 19 conflicts with wallet adapter peer deps
npm install --legacy-peer-deps

# Configure
cp .env.local.example .env.local
# Defaults work for devnet β€” no edits needed

# Run
npm run dev
# β†’ http://localhost:3000

npm run dev runs next dev --webpack. The --webpack flag is required because Next.js 16 defaults to Turbopack, which conflicts with the Node.js polyfill config required by @solana/web3.js.

Full guide β€” Vercel deploy, custom RPC, troubleshooting: docs/DEPLOYMENT.md


Features

Home (/)

  • Graveyard narrative β€” failed-projects table with cause of failure and TIX-DAO counter-measure
  • Hero section with governance CTA
  • Terminal boot-sequence aesthetic with CRT scanlines

Lock Tokens (/lock)

  • Four lock-duration cards β€” 30d (1Γ—) Β· 90d (2Γ—) Β· 180d (3Γ—) Β· 365d (4Γ—) β€” click to select
  • $TICK amount input with live ve$TICK voting power display (amount Γ— multiplier)
  • 2-second loading state β†’ βœ… success state with exact numbers

Create DAO (/create)

  • Venue name + quorum threshold configuration
  • Real 3-transaction on-chain deploy: TX1 mint $TICK Β· TX2 create Realm + TokenOwnerRecord Β· TX3 create Governance + Proposal + sign off
  • Live deploy log streams line-by-line for each transaction
  • Success screen with all 3 tx signatures linked to Solana Explorer (devnet)
  • Shareable proposals URL generated with realm/governance/proposal/mint address params

Proposals (/proposals)

  • Three live governance proposals (resale cap Β· royalty Β· refund window)
  • Block-character β–ˆβ–‘ progress bars β€” YES/NO split live
  • Vote YES / Vote No β€” one wallet, one vote, locked after cast
  • ACTIVE / PASSED status badges

Finance (/finance)

  • Expected ticket revenue + advance % inputs
  • Live calculation of loan amount, repayment, and lender yield (3.5% origination)
  • Request Advance β†’ mock term sheet with TICKS protocol collateral parameters

Infrastructure

  • Real SPL-Governance CPI calls β€” withCreateRealm, withDepositGoverningTokens, withCreateGovernance, withCreateProposal, withSignOffProposal
  • ve$TICK Anchor escrow program β€” lock_tokens + unlock_tokens instructions on devnet
  • Live proposal deserialization β€” real vote tallies via WebSocket subscription
  • SOL faucet β€” 2 SOL devnet airdrop with rate-limit handling
  • SES lockdown fix β€” governance program ID stored as pre-computed Uint8Array bytes
  • Wallet Standard auto-discovery β€” Phantom, Solflare, Backpack with no explicit registration
  • autoConnect with silent error handling β€” no crash on missing wallet or user rejection
  • SSR-safe wallet provider (WalletWrapper β†’ ssr: false dynamic import)
  • Webpack polyfills β€” Buffer, process, stream (ProvidePlugin) + fs, os, path, crypto (fallback)
  • TypeScript strict mode throughout

ve$TICK Token Model

The ve$TICK (vote-escrowed $TICK) model rewards long-term stakeholders. Flash loan attacks require a 30-day minimum lock β€” making governance capture by borrowed capital structurally impossible (as proven by the $182M Beanstalk attack on Ethereum in April 2022).

Lock Duration Multiplier Voter Profile
No lock 0Γ— Trading only β€” no governance rights
30 days 1Γ— Casual venue supporter
90 days 2Γ— Season ticket holder
180 days 3Γ— Artist / promoter partner
365 days 4Γ— Core venue stakeholder

Implemented as a Realms Voter Weight plugin β€” reusable by any DAO on the Realms ecosystem. Details: docs/ARCHITECTURE.md Β§5


Tech Stack

Layer Technology Version
Framework Next.js 16.1.6
Language TypeScript 5.x
UI React 19.2.3
Styling Tailwind CSS 4.x
Blockchain Solana Devnet
Governance SPL-Governance 0.3.28
Wallet @solana/wallet-adapter-react 0.15.39
Wallet UI @solana/wallet-adapter-react-ui 0.9.39
RPC client @solana/web3.js 1.98.4
Smart contracts @coral-xyz/anchor 0.32.1
Deployment Vercel β€”

Project Structure

tix-dao/
β”‚
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ app/
β”‚   β”‚   β”œβ”€β”€ layout.tsx              Server Component β€” metadata, OG/Twitter tags, WalletWrapper
β”‚   β”‚   β”œβ”€β”€ globals.css             Terminal theme, CRT scanlines, wallet overrides
β”‚   β”‚   β”œβ”€β”€ not-found.tsx           Custom 404 β€” server component with metadata
β”‚   β”‚   β”œβ”€β”€ NotFoundClient.tsx      Client component β€” interactive 404 page
β”‚   β”‚   β”œβ”€β”€ page.tsx                Home β€” graveyard narrative + hero
β”‚   β”‚   β”œβ”€β”€ create/
β”‚   β”‚   β”‚   β”œβ”€β”€ layout.tsx          Per-page metadata (title: "Create Venue DAO")
β”‚   β”‚   β”‚   └── page.tsx            Create DAO β€” 3-TX on-chain deploy with live log
β”‚   β”‚   β”œβ”€β”€ proposals/
β”‚   β”‚   β”‚   β”œβ”€β”€ layout.tsx          Per-page metadata (title: "Proposals")
β”‚   β”‚   β”‚   └── page.tsx            Proposals β€” block-bar voting UI
β”‚   β”‚   β”œβ”€β”€ lock/
β”‚   β”‚   β”‚   β”œβ”€β”€ layout.tsx          Per-page metadata (title: "Lock Tokens β€” ve$TICK")
β”‚   β”‚   β”‚   └── page.tsx            Lock Tokens β€” ve$TICK duration selector + power calc
β”‚   β”‚   β”œβ”€β”€ finance/
β”‚   β”‚   β”‚   β”œβ”€β”€ layout.tsx          Per-page metadata (title: "Venue Finance β€” RWA Advance")
β”‚   β”‚   β”‚   └── page.tsx            Finance β€” RWA advance calculator + mock term sheet
β”‚   β”‚   └── faucet/
β”‚   β”‚       β”œβ”€β”€ layout.tsx          Per-page metadata (title: "SOL Faucet")
β”‚   β”‚       └── page.tsx            SOL faucet β€” 2 SOL devnet airdrop
β”‚   β”‚
β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ WalletProvider.tsx      Solana context β€” autoConnect + silent onError
β”‚   β”‚   β”œβ”€β”€ WalletWrapper.tsx       Client Component wrapper for ssr:false
β”‚   β”‚   β”œβ”€β”€ Navbar.tsx              Terminal nav β€” window chrome + WalletMultiButton
β”‚   β”‚   β”œβ”€β”€ ProposalCard.tsx        Reusable proposal card β€” BlockBar, VoteBtn, props interface
β”‚   β”‚   └── Footer.tsx              Shared footer β€” Orthonode credit, optional vote note
β”‚   β”‚
β”‚   └── lib/
β”‚       β”œβ”€β”€ governance.ts           Env-var constants β€” GOVERNANCE_PROGRAM_ID, NETWORK
β”‚       β”œβ”€β”€ governanceActions.ts    On-chain helpers β€” createTickMint, createRealmWithDeposit,
β”‚                                   createGovernanceAndProposal, lockTokens, castVoteOnProposal
β”‚       └── tick_escrow_idl.json    Anchor IDL for ve$TICK escrow program
β”‚
β”œβ”€β”€ public/
β”‚   └── robots.txt                  Allow all crawlers + sitemap reference
β”‚
β”œβ”€β”€ docs/
β”‚   β”œβ”€β”€ ARCHITECTURE.md             Full technical architecture
β”‚   β”œβ”€β”€ CHANGELOG.md                Detailed changelog
β”‚   β”œβ”€β”€ DEPLOYMENT.md               Local dev, Vercel, custom RPC, troubleshooting
β”‚   β”œβ”€β”€ ROADMAP.md                  4-phase roadmap with honest risks
β”‚   β”œβ”€β”€ CONTRIBUTING.md             Branch strategy, commit convention, PR process
β”‚   β”œβ”€β”€ SECURITY.md                 Threat model, flash loan protection, disclosure
β”‚   β”œβ”€β”€ TERMS.md                    Terms of use and disclaimer
β”‚   β”œβ”€β”€ PRIVACY.md                  Privacy policy β€” no data collected
β”‚   └── HACKATHON.md                Judges brief β€” narrative, track alignment, checklist
β”‚
β”œβ”€β”€ tick-escrow/                     Anchor workspace β€” ve$TICK escrow program
β”‚   β”œβ”€β”€ Anchor.toml                  Program config (devnet deployment)
β”‚   β”œβ”€β”€ Cargo.toml                   Rust workspace config
β”‚   └── programs/
β”‚       └── tick-escrow/
β”‚           β”œβ”€β”€ Cargo.toml           Program dependencies
β”‚           └── src/
β”‚               └── lib.rs           ve$TICK lock/unlock instructions
β”‚
β”œβ”€β”€ CHANGELOG.md                    Root changelog (links to docs/CHANGELOG.md)
β”œβ”€β”€ CONTRIBUTING.md                 Root contributing guide (links to docs/CONTRIBUTING.md)
β”œβ”€β”€ ROADMAP.md                      Root roadmap summary (links to docs/ROADMAP.md)
β”œβ”€β”€ SECURITY.md                     Root security policy (links to docs/SECURITY.md)
β”œβ”€β”€ next.config.ts                  Webpack fallback + ProvidePlugin polyfills
β”œβ”€β”€ tailwind.config.ts              Tailwind CSS 4.x content paths
β”œβ”€β”€ .env.local                      SOLANA_NETWORK + GOVERNANCE_PROGRAM_ID
β”œβ”€β”€ .env.local.example              Template β€” copy to .env.local
β”œβ”€β”€ package.json                    All deps including @solana/spl-governance
β”œβ”€β”€ tsconfig.json                   TypeScript strict mode
β”œβ”€β”€ README.md                       This file
└── LICENSE                         MIT 2026

Roadmap

Phase Timeline Focus
Phase 1 β€” MVP Hackathon βœ… Full UI, real on-chain TX1/TX2/TX3, wallet integration, deployed
Phase 2 β€” Live Features Month 1–2 βœ… Real castVote CPI, live proposal deserialization, $TICK faucet, ve$TICK escrow
Phase 3 β€” KYD Integration Month 3–4 TICKS RWA protocol, venue financing, artist royalty enforcement
Phase 4 β€” Mainnet Month 5–6 Mainnet launch, 10 venue onboarding, $TICK token launch

Full roadmap with goals, code targets, and known risks: docs/ROADMAP.md


Contributing

Contributions for Phase 3 on-chain integration are welcome. Read the guide first:

  • docs/CONTRIBUTING.md β€” branch strategy, commit convention, PR process, code standards
  • Branch from develop, not main
  • npm run build must pass before any PR is reviewed

License

MIT β€” see LICENSE.


"Dead projects had the right ideas. We have the right stack."

β€” Orthonode Infrastructure Labs

orthonode.xyz Β· @OrthonodeSys Β· Bhopal, Madhya Pradesh, India


TIX-DAO Β· Solana Graveyard Hackathon 2026 Β· Built on Realms by Orthonode Infrastructure Labs Β· orthonode.xyz

About

πŸͺ¦ On-chain venue governance for live event ticketing. Built on Realms (SPL-Governance) β€” resale caps, royalty splits & refund policy voted by token holders, not Ticketmaster. Solana Graveyard Hackathon 2026.

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors