Skip to main content

Overview

GatePass makes it easy for event organizers to create and manage blockchain-powered events with NFT tickets. This guide walks you through creating your first event.
You must have an organizer account to create events. Sign up with your email or connect your wallet to get started.

Prerequisites

Before creating an event, ensure you have:
  • An active GatePass organizer account
  • Event details (title, description, venue, dates)
  • Event banner image (optional but recommended)
  • Ticket pricing and capacity information

Step-by-Step Guide

1

Navigate to Event Creation

From your organizer dashboard, click Create New Event to open the event creation wizard.
2

Enter Basic Information

Fill in the essential event details:
{
  "title": "Lagos Tech Fest 2026",
  "description": "West Africa's premier technology conference",
  "category": "CONFERENCE",
  "isPublic": true
}
Available Categories:
  • CONFERENCE - Professional conferences and summits
  • MUSIC - Concerts and music festivals
  • WORKSHOP - Educational workshops and training
  • MEETUP - Networking and community events
  • FESTIVAL - Cultural and entertainment festivals
  • SPORTS - Sporting events
  • THEATER - Theater and performing arts
  • OTHER - Other event types
3

Set Location and Time

Provide venue and scheduling information:
Location Fields
{
  venue: "Landmark Center",
  address: "Water Corporation Drive",
  city: "Lagos",
  country: "Nigeria",
  latitude: 6.4698,  // Optional: for map display
  longitude: 3.5852,
  eventDate: "2026-06-15T09:00:00Z",
  saleStart: "2026-03-01T00:00:00Z",
  saleEnd: "2026-06-14T23:59:59Z"
}
Ensure eventDate is after saleStart and saleEnd is before eventDate.
4

Configure Ticket Tiers

Set up your ticket pricing structure. You can create multiple tiers:
Ticket Tiers
{
  tiers: [
    {
      name: "Early Bird",
      description: "Limited early bird pricing",
      price: 5000,  // in NGN or USD
      quantity: 100,
      maxPerPerson: 2,
      saleStart: "2026-03-01T00:00:00Z",
      saleEnd: "2026-04-01T00:00:00Z"
    },
    {
      name: "General Admission",
      description: "Standard entry ticket",
      price: 8000,
      quantity: 400,
      maxPerPerson: 5,
      saleStart: "2026-04-01T00:00:00Z",
      saleEnd: "2026-06-14T23:59:59Z"
    },
    {
      name: "VIP Pass",
      description: "VIP access with exclusive perks",
      price: 25000,
      quantity: 50,
      maxPerPerson: 3,
      saleStart: "2026-03-01T00:00:00Z",
      saleEnd: "2026-06-14T23:59:59Z"
    }
  ],
  totalSupply: 550,  // Sum of all tier quantities
  currency: "NGN"
}
5

Add Media and Metadata

Upload or link to your event banner and provide additional details:
Media
{
  imageUrl: "https://example.com/events/tech-fest-banner.jpg",
  tags: "technology,conference,startup,innovation",
  metadataUri: "ipfs://QmX..."  // Optional IPFS metadata
}
6

Configure Blockchain Settings

Set your blockchain preferences:
Blockchain Config
{
  chainId: 137,  // Polygon Mainnet
  allowTransfers: true,  // Allow ticket transfers
  maxPerWallet: 5,  // Max tickets per wallet
  requireKYC: false  // KYC requirement
}
Supported Networks:
  • 137 - Polygon Mainnet (recommended)
  • 80002 - Polygon Amoy Testnet
  • 84532 - Base Sepolia Testnet
7

Submit Event

Review your event details and submit. The platform will:
  1. Create the event record in the database
  2. Deploy an ERC721 smart contract for your event tickets
  3. Configure the Proof of Attendance (POA) contract
  4. Set the event status to PUBLISHED

API Reference

Create Event Endpoint

curl -X POST https://api.gatepass.com/events \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -d '{
    "title": "Lagos Tech Fest 2026",
    "description": "West Africa's premier technology conference",
    "venue": "Landmark Center",
    "city": "Lagos",
    "country": "Nigeria",
    "startDate": "2026-06-15T09:00:00Z",
    "endDate": "2026-06-15T18:00:00Z",
    "category": "conference",
    "ticketPrice": 8000,
    "maxCapacity": 550,
    "image": "https://example.com/banner.jpg",
    "isPublic": true,
    "tiers": [
      {
        "name": "General Admission",
        "price": 8000,
        "quantity": 400,
        "maxPerPerson": 5
      }
    ]
  }'

Response Format

Success Response (201)
{
  "event": {
    "id": "clxyz123abc",
    "title": "Lagos Tech Fest 2026",
    "description": "West Africa's premier technology conference",
    "venue": "Landmark Center",
    "city": "Lagos",
    "country": "Nigeria",
    "eventDate": "2026-06-15T09:00:00.000Z",
    "saleStart": "2026-03-01T00:00:00.000Z",
    "saleEnd": "2026-06-14T23:59:59.000Z",
    "totalSupply": 550,
    "ticketPrice": 8000,
    "currency": "NGN",
    "contractAddress": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb",
    "chainId": 137,
    "status": "PUBLISHED",
    "createdAt": "2026-03-01T00:00:00.000Z"
  }
}

Event Model Schema

The Event model in the database includes these fields:
id
string
required
Unique event identifier (CUID)
title
string
required
Event name/title
description
string
Detailed event description
venue
string
required
Venue name
eventDate
DateTime
required
Event start date and time
totalSupply
integer
required
Total number of tickets available
ticketPrice
float
required
Base ticket price (supports crypto decimals)
contractAddress
string
Deployed ERC721 ticket contract address
status
string
default:"DRAFT"
Event status: DRAFT, PUBLISHED, CANCELLED, COMPLETED

Smart Contract Deployment

When you create an event, GatePass automatically deploys an EventTicket contract:
EventTicket Contract
// Simplified version - see full contract in repository
contract EventTicket is ERC721, Ownable {
    uint256 public totalSupply;
    uint256 public ticketPrice;
    uint256 public saleStart;
    uint256 public saleEnd;
    uint256 public eventDate;
    ProofOfAttendance public proofOfAttendance;
    
    function mint(uint256 quantity) external payable;
    function checkIn(uint256 tokenId) external;
    function withdraw() external onlyOwner;
}
The contract includes:
  • NFT Ticket Minting - Users can purchase tickets as ERC721 NFTs
  • Check-in System - Validates tickets at the event
  • POA Minting - Automatically mints Proof of Attendance NFTs
  • Revenue Management - Organizers can withdraw funds after the event

Best Practices

Pricing Strategy

Use tiered pricing to maximize revenue. Offer early bird discounts to drive initial sales.

Clear Descriptions

Write detailed descriptions with agenda, speakers, and what attendees will gain.

High-Quality Images

Use professional banners (recommended: 1920x1080px) to attract attendees.

Test Beforehand

Create a test event on testnet before launching on mainnet.

Managing Published Events

Once published, you can:
  • View Analytics - Track ticket sales, revenue, and attendee demographics
  • Update Details - Modify event description and images (price/supply locked after first sale)
  • Check In Attendees - Use the mobile scanner app at your event
  • Withdraw Funds - Claim revenue after the event concludes
View all your events at /api/events/my-events:
Get My Events
curl https://api.gatepass.com/events/my-events \
  -H "Authorization: Bearer YOUR_TOKEN"

Troubleshooting

Ensure all required fields are provided:
  • title
  • venue
  • startDate
  • At least one ticket tier with valid price and quantity
Contract deployment can take 30-60 seconds on Polygon. The event is created in the database immediately, and the contractAddress is updated once deployment completes.
Certain fields (price, supply, dates) are locked after the first ticket sale to maintain contract integrity. You can still update description, images, and metadata.

Next Steps

Purchasing Tickets

Learn how attendees can buy tickets to your event

Analytics Dashboard

Track your event’s performance with real-time analytics

Build docs developers (and LLMs) love