PULSE is a decentralized ticket marketplace platform built on Solana, featuring autonomous AI agents for intelligent ticket purchasing, real-time marketplace dynamics, and a striking Neobrutalist UI design.
Transform how tickets are bought, sold, and managed with AI-powered agents and decentralized innovation.
- Autonomous Ticket Purchasing: Create AI agents that automatically buy tickets based on your preferences
- Budget Management: Set total budgets and per-ticket limits for precise spending control
- Auto-Purchase Enabled: Toggle automatic purchasing on/off per agent
- Smart Preferences: Configure agent behavior with customizable purchase thresholds
- Real-time Monitoring: Track agent activity and spending in real-time
- Event Creation: Organizers can list events with custom details (venue, dates, images)
- Multiple Ticket Tiers: Support for different ticket categories with varying prices
- Dynamic Pricing: Set tier-specific prices and availability
- Event Status Control: Activate, cancel, or manage event lifecycles
- Organizer Revenue Tracking: Monitor ticket sales and royalties
- Browse Events: Explore all active events with beautiful card layouts
- Instant Purchase: Buy tickets directly from the primary market
- Agent-Assisted Buying: Use AI agents to purchase tickets on your behalf
- Multi-Tier Support: Choose from multiple ticket tiers per event
- Stock Management: Real-time availability tracking
- Ticket Listing: Resell your tickets at custom prices
- Time-Limited Listings: Set expiration windows for your listings
- Royalty System: Organizers earn fees on secondary sales
- Seller Protection: Secure transactions with confirmation
- Price Discovery: Market-driven ticket pricing
- Solana Wallet Support: Connect any Solana wallet (Phantom, Backpack, etc.)
- Balance Display: View SOL balance and transaction history
- Fee Transparency: See all fees before confirming transactions
- Real-time Updates: Live balance updates after transactions
PULSE features a bold Neobrutalist design aesthetic:
- Heavy Typography: Large, bold font-display text for impact
- Black & White Palette: Stark contrasts with vibrant accent colors
- Bold Borders: 4px solid black borders on major elements
- Raw Materials Feel: Unrefined, geometric shapes
- Neon Accents: Vibrant lime (
#00FF00) and pink (#FF00FF) highlights - Grid-Based Layout: Rigid, structured component arrangement
Primary: #000000 (Black)
Contrast: #FFFFFF (White)
Accent Green: #00FF00 (Neon Lime)
Accent Pink: #FF00FF (Magenta)
Background: #F5F5F5 (Off-white)
Text: #1F1F1F (Near-black)
- NeoButton: Oversized CTA buttons with bold hover states
- NeoCard: Cards with thick borders and strong shadows
- NeoToggle: Binary state switches with high contrast
- NeoInput: Form inputs with minimal styling, bold focus states
- NeoTab Navigation: Tab system with thick underlines
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ CONNECT WALLET โ
โ (Phantom, Backpack, etc.) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโ
โ โ โ
AGENTS MARKETPLACE TICKETS
โผ โผ โผ
โโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ
โ Create AI โ โ Browse Eventsโ โ View Owned โ
โ Agent โ โ & Tiers โ โ Tickets โ
โโโโโโโฌโโโโโโโ โโโโโโโโฌโโโโโโโโ โโโโโโโโฌโโโโโโโโ
โ โ โ
โผ โผ โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ SELECT ACTION โ
โ โโ Buy directly (wallet) โ
โ โโ Buy with agent (auto-purchase) โ
โ โโ List for resale (secondary market) โ
โโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโ
โ TRANSACTION โ
โ CONFIRMATION โ
โโโโโโโโฌโโโโโโโโ
โ
โโโโโโโโผโโโโโโโ
โ โ
SUCCESS โ
โ ๐พ HISTORY โ
โโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ 1. CREATE AGENT โ
โ - Agent ID โ
โ - Display Name โ
โ - Max Budget Per Ticket (SOL) โ
โ - Total Budget (SOL) โ
โ - Enable Auto-Purchase โ
โ - Preference Settings โ
โโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโ
โ 2. AGENT CREATED โ
โ Status: Inactive โ
โ Budget: Set โ โ
โโโโโโโโโโฌโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ 3. ACTIVATE AGENT โ
โ Status: ACTIVE โ โ
โโโโโโโโโโฌโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ 4. BUY WITH AGENT โ
โ - Select Event โ
โ - Choose Ticket Tier โ
โ - Confirm Price โ
โโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ 5. AUTO-PURCHASE PROCESSING โ
โ โ User account check/create โ
โ โ Budget verification โ
โ โ Tier availability check โ
โ โ Execute purchase โ
โ โ Deduct budget โ
โ โ Mint ticket NFT โ
โโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโ
โ 6. TICKET PURCHASED โ
โ โข Added to wallet โ
โ โข Budget updated โ
โ โข History logged โ
โโโโโโโโโโโโโโโโโโโโโโโโ
- Framework: React 18 with TypeScript
- Styling: Tailwind CSS + Custom Neobrutalist components
- State Management: React Context API
- Animation: Framer Motion (smooth transitions)
- Blockchain: Solana Web3.js + Anchor Framework
- Build Tool: Vite
- Language: Rust
- Framework: Anchor Framework v0.30.x
- Network: Solana Devnet/Testnet
- Program ID:
EXZ9u1aF8gvHeUsKM8eTRzWDo88WGMKWZJLbvM8bYetJ
pub struct AIAgent {
pub owner: Pubkey, // Agent owner
pub agent_id: String, // Unique identifier
pub name: String, // Display name
pub is_active: bool, // Active status
pub max_budget_per_ticket: u64, // Max per purchase
pub total_budget: u64, // Total budget
pub spent_budget: u64, // Amount spent
pub auto_purchase_enabled: bool, // Auto-purchase toggle
pub auto_purchase_threshold: u16, // Confidence threshold (bps)
pub max_tickets_per_event: u8, // Tickets per event limit
// ... additional coordination fields
}pub struct Event {
pub organizer: Pubkey, // Event creator
pub event_id: String, // Unique ID
pub name: String, // Event name
pub description: String, // Details
pub image_url: String, // Event image
pub venue: String, // Location
pub event_start_time: i64, // Start timestamp
pub sale_start_time: i64, // Sales open
pub sale_end_time: i64, // Sales close
pub is_active: bool, // Active status
pub is_cancelled: bool, // Cancelled flag
pub total_tickets_sold: u64, // Sales counter
pub total_revenue: u64, // Revenue tracker
}pub struct TicketTier {
pub event: Pubkey, // Parent event
pub tier_id: String, // Tier identifier
pub name: String, // Tier name
pub price: u64, // Price in lamports
pub max_supply: u64, // Total supply
pub current_supply: u64, // Remaining tickets
pub is_active: bool, // Tier status
}pub struct User {
pub owner: Pubkey, // Account owner
pub username: String, // Display name
pub email: String, // Contact email
pub tickets_purchased: u64, // Purchase count
pub total_spent: u64, // Total spending
}- Problem: Devnet rate limiting (429 errors)
- Solution: Sequential RPC call processing
- Implementation: RequestQueue class with exponential backoff
- Details:
- Base delay: 500ms
- Max retries: 3
- Backoff: 500ms โ 1s โ 2s
- Applies to all
getProgramAccountscalls
- Borsh Serialization: Manual parsing for complex types
- Variable-Length Strings: Handle 4-byte length prefixes
- No Alignment: Direct sequential reads after bool fields
- Parsers:
parseAgentAccount()- Deserialize AIAgent structparseEventAccount()- Deserialize Event structparseUserAccount()- Deserialize User struct
- User initiates action (buy, create agent, etc.)
- Validation checks (budget, tier availability, etc.)
- PDA derivation for all required accounts
- Instruction assembly with proper account list
- Transaction signing by wallet
- On-chain execution by Solana validator
- Confirmation polling (max 30 retries)
- Frontend state update with results
# Node.js 18+
node --version
# pnpm package manager
npm install -g pnpm
# Solana CLI
solana --version
# Anchor Framework
anchor --versioncd /path/to/pulse
pnpm installCreate .env.development in pulse-ui/:
# Solana RPC Configuration
VITE_SOLANA_RPC_URL=https://api.devnet.solana.com
VITE_SOLANA_WS_URL=wss://api.devnet.solana.com
# Pulse Program Configuration
VITE_PROGRAM_ID=EXZ9u1aF8gvHeUsKM8eTRzWDo88WGMKWZJLbvM8bYetJ
# Environment
VITE_CLUSTER=devnetcd smart-contract
anchor build
anchor deploycd pulse-ui
pnpm devOpen http://localhost:5173 in your browser.
# Development server
pnpm dev
# Build for production
pnpm build
# Preview production build
pnpm preview
# Lint & format
pnpm lint
# Type checking
pnpm typecheckcd smart-contract
# Build program
anchor build
# Deploy to Devnet
anchor deploy
# Run tests
anchor test
# Generate IDL
anchor idl init --filepath idl/pulse.json- Click "CONNECT WALLET" button (top right)
- Select your wallet provider
- Approve connection in wallet extension
- Go to "AGENT COMMAND" tab
- Click "+ CREATE AGENT"
- Fill in agent details:
- Agent ID: Unique identifier (e.g.,
agent-001) - Name: Display name (e.g.,
Smart Buyer) - Max Per Ticket: Max spend per ticket (0.5 SOL)
- Total Budget: Total agent budget (1-10 SOL)
- Auto-Purchase: Enable automatic purchasing
- Agent ID: Unique identifier (e.g.,
- Click "CREATE"
- ACTIVATE the agent (status: Inactive โ Active)
- Go to "MARKETPLACE" tab
- Browse events on sale
- Click event card to see details
- Select ticket tier
- Click "BUY NOW"
- Review transaction
- Approve in wallet
- Go to "MARKETPLACE" tab
- Click event card
- Select ticket tier
- Click "BUY WITH AGENT"
- Choose agent from dropdown
- Confirm transaction
- Agent handles purchase automatically โจ
- Go to "MY TICKETS" tab
- Click ticket you want to resell
- Click "LIST FOR SALE"
- Set price (SOL)
- Set listing duration (hours)
- Click "LIST"
- Add Budget: Increase total agent budget
- Toggle Auto-Purchase: Enable/disable automatic buying
- Activate/Deactivate: Control agent status
- View Stats: Monitor tickets purchased and spending
- Real-time Updates: Live agent account monitoring
- Create Events: Set up new events with custom details
- Manage Tiers: Create multiple ticket categories
- Track Revenue: Monitor ticket sales and earnings
- Cancel Events: Remove events from marketplace
- Price Discovery: See market rates for tickets
- Listing Management: View all active listings
- Seller Fees: Automatic royalty distribution
- Time Decay: Listings expire after set duration
- PDA-based Accounts: Secure account derivation
- Owner Verification: Auth checks on all privileged operations
- Budget Enforcement: Hard limits on agent spending
- Tier Availability: Stock management prevents overselling
- Signature Verification: Transaction signing required
- Wallet Integration: Uses standard Solana wallets
- No Private Keys: Keys never touch frontend
- Environment Isolation: RPC URL configuration
- Error Handling: Graceful failure with user feedback
[ ] Wallet Connection
[ ] Connect Phantom
[ ] Connect Backpack
[ ] Disconnect & Reconnect
[ ] Agent Creation
[ ] Create agent with valid inputs
[ ] Activate agent
[ ] Add budget to agent
[ ] Toggle auto-purchase
[ ] Ticket Purchasing
[ ] Buy with wallet (direct)
[ ] Buy with agent (assisted)
[ ] Verify ticket in My Tickets
[ ] Check budget deduction
[ ] Secondary Market
[ ] List ticket for sale
[ ] View listings
[ ] Cancel listing
[ ] Purchase listed ticket
[ ] Edge Cases
[ ] Insufficient balance
[ ] Tier sold out
[ ] Agent budget exceeded
[ ] Invalid tier selection
PULSE UI works across all screen sizes:
- Desktop: Full Neobrutalist layout with multi-column grids
- Tablet: Optimized card layouts (2-column)
- Mobile: Stacked single-column with touch-friendly controls
- Agent doesn't have enough budget for purchase
- Solution: Add more budget or reduce ticket price
- User account doesn't exist yet
- Solution: Auto-created on first purchase, or initialize manually
- Too many requests to Solana RPC
- Solution: RequestQueue throttles calls automatically (wait 30 seconds)
- Check browser console for detailed error
- Verify wallet has SOL for transaction fees
- Ensure event is still active and tiers available
- Try different wallet provider
- Clear browser cache and retry
- Check that Solana wallet extension is installed
For issues, questions, or feedback:
- Check this README first
- Review browser console for error details
- Verify Solana wallet connection
- Check Solana Devnet status
PULSE is an experimental project for educational purposes.
- Event creator dashboard with analytics
- Agent performance metrics & historical tracking
- Multi-wallet agent support (share agents across wallets)
- Custom agent strategies (bid algorithms)
- Ticket verification QR codes
- Event notifications & alerts
- Social features (follow events, share tickets)
- Mainnet deployment
- Migrate to mainnet (avoid rate limiting)
- Implement WebSocket subscriptions for real-time updates
- Add caching layer (Redis)
- GraphQL API for faster queries
- IPFS integration for event images
PULSE UI is inspired by Neobrutalism design philosophy:
- Bold typography and heavy use of borders
- High contrast black and white with neon accents
- Raw, unrefined aesthetic
- Functional and unapologetic design
- Strong geometric shapes and grids