Inspiration

We were driven to solve the ticketing industry's biggest failures: scalping, fraud, and botting. Instead of relying on generic smart contracts, we wanted to leverage the XRP Ledger's specific native capabilities like built-in identity and royalties to create a "fair play" ecosystem where tickets are verifiable and organizers retain control.

What it does

Our protocol allows organizers to issue secure, programmable event tickets on XRPL.

Flexible Minting: Supports both Soulbound (non-transferable) tickets to prevent resale and Standard NFTs with enforced royalties for secondary markets.

Bot Prevention: Uses Verifiable Credentials (DID) to gate sales to verified humans.

Live Updates: Uses on-chain Oracles to broadcast event status (e.g., "Cancelled," "Active") directly to the ledger.

How we built it

We utilized the full suite of advanced XRPL standards:

XLS-20 NFTs: Implemented a dual-strategy using flags. We toggle tfTransferable off for Soulbound tickets and use NFTokenAcceptOffer for secure secondary transfers.

Verifiable Credentials: Integrated CredentialCreate to attach identity checks to ticket payments.

MPTokens (XLS-33): Deployed MPTokenIssuance with clawback capabilities for robust economic logic.

Oracles: Built a data feed using OracleSet to store event states on-chain, acting as a source of truth for refunds.

Challenges we ran into

UX vs. Protocol: XRPL NFTs require an Offer/Accept flow rather than a direct send. Abstraction was needed to make this "atomic swap" feel instant to the user.

Flag Logic: Managing the strict combinations of flags (e.g., tfBurnable, tfTransferable, tfMPTCanClawback) was tricky; one wrong boolean would cause transactions to fail or assets to become permanently stuck.

Hex Encoding: Ensuring metadata stored in Vaults and NFT URIs was perfectly hex-encoded was a persistent hurdle during integration.

Accomplishments that we're proud of

Deep Integration: We didn't just use XRP for payments; we successfully combined four distinct native features (NFTs, MPTs, DIDs, Oracles) into a single functional lifecycle.

Anti-Scalping: We created a working model where a ticket can be programmatically locked to an identity, effectively killing bot-based resale.

What we learned

We learned that Native Transactions > Smart Contracts for this use case. Using XRPL’s native Clawback and Burn features provided a safer, standard-compliant way to handle refunds and revocations without the security risks of custom contract code.

Built With

  • cors.-apis/platforms:-xrpl-(testnet-via-websocket)
  • dotenv
  • languages:-javascript-(node.js-backend)-and-typescript-(react-frontend).-frontend:-react
  • node?cron
  • radix-ui
  • react-query.-backend:-express
  • stripe
  • tailwind-css
  • vite
  • wouter
Share this project:

Updates