# NFT Event Ticket QR Code Scanner UI for iOS

> By Lawrence Arya, Founder & CEO of VP0. Published 2026-06-02. 4 min read.
> Source: https://vp0.com/blogs/nft-event-ticket-qr-code-scanner-ui-ios

An NFT ticket is an access credential, not an investment. The scanner validates ownership server-side and marks it used so no one enters twice.

**TL;DR.** An NFT event ticket QR code scanner reads a code at the door, validates ticket ownership on your server, and marks the ticket used so it cannot be reused. Scan with AVFoundation or VisionKit, never trust the client alone, and handle offline and already-used cases honestly. An NFT ticket is an access token, not a financial product, and the app must follow Apple's crypto rules. Start the UI from a free VP0 design.

An NFT event ticket scanner has one job at the door: confirm that this code represents a valid, unused ticket, and let the holder in. The blockchain part is just where ownership is recorded; the experience is a fast, honest scan. VP0 is the free, AI-readable iOS design library builders start from for the scanner screens, the valid and used and invalid states, so the door staff get instant, unambiguous feedback.

## Who this is for

You are building an events or ticketing app for iOS, maybe with Cursor or Claude Code, that uses NFTs as tickets, and you want a scanner that is fast, honest, and App Store safe. This is the pattern.

## An NFT ticket is an access token, not an investment

Frame the whole feature correctly: an NFT ticket proves the holder may enter, nothing more. That framing keeps the product honest and helps you stay inside Apple's [App Store Review Guidelines](https://developer.apple.com/app-store/review/guidelines/), which restrict crypto trading and currency features. The scanner never cares about market value, only whether this ticket is valid and unused. Apple [blocked more than $1.8 billion in fraudulent transactions in 2023](https://www.apple.com/newsroom/2024/05/app-store-stopped-over-7-billion-usd-in-potentially-fraudulent-transactions/), a reminder that validation, not trust, is what keeps a system safe.

## Scan, then validate on the server

Read the code with [AVFoundation metadata output](https://developer.apple.com/documentation/avfoundation/avcapturemetadataoutput) or the higher-level [VisionKit scanner](https://developer.apple.com/documentation/visionkit/scanning-data-with-the-camera). The scanned value is only a reference; the truth lives on your server, which checks ownership and validity and marks the ticket used. You can also issue the ticket as a [Wallet pass with PassKit](https://developer.apple.com/documentation/passkit) so it lives in Apple Wallet. Never let the client alone decide a ticket is valid, the same server-authoritative rule that protects a [decentralized infrastructure map](/blogs/decentralized-physical-infra-network-map-ui/).

## Handle every door state

| Scan result | Scanner UI | Action |
| --- | --- | --- |
| Valid and unused | Large green confirmation | Admit, mark used |
| Already used | Clear used state with time | Deny, show first entry |
| Invalid or unknown | Red invalid state | Deny, offer manual check |
| Offline | Verify a signed token locally | Admit, reconcile later |

The offline row matters because venues often have poor signal. Issue a short-lived signed token the scanner can verify on device, then reconcile when the connection returns, the same tap-to-verify discipline as a [Core NFC tap to pay flow](/blogs/corenfc-swiftui-tap-to-pay-ai-template/).

## A worked example: scanning at the door

Picture the venue entrance at peak arrival. A guest holds up their phone showing the ticket QR code. Your scanner reads it in a fraction of a second and sends the reference to your server, which confirms the NFT is owned by this holder and has not been used yet. The screen flashes a large green valid state, a haptic fires, and the door staff wave the guest through as the server marks the ticket used.

The next person in line tries a screenshot of that same ticket. The server returns an already-used result with the time of the first entry, the screen goes red, and staff calmly send them to the support desk instead of arguing. A minute later the venue's signal drops, so the scanner falls back to verifying a short-lived signed token on the device itself, admitting valid holders and reconciling with the server once the connection returns. Fast for the honest guest, impossible to reuse for the dishonest one, and resilient when the network is not. That is the whole job of the scanner, and none of it asks the holder to understand anything about blockchains. For the organizer, the same scan data also powers a live count of who has arrived, which quietly turns a simple door tool into a real-time attendance dashboard without any extra work at the gate.

## Common mistakes and fixes

- Trusting the client. Validate ownership and validity on the server.
- No used state. Mark a ticket used on entry so it cannot be reused.
- Ignoring offline. Issue a signed token the door can verify without signal.
- Framing it as an investment. Keep it an access token to stay App Store safe.
- Tiny result UI. Door staff need a large, instant valid or invalid signal.

The same readiness to read sensor data carries into a [smart ring sleep tracker](/blogs/smart-ring-sleep-tracker-ui-clone-swiftui/).

## Key takeaways

- Treat an NFT ticket as an access token, never a financial product.
- Validate on the server and mark tickets used to stop reuse.
- Plan for the offline door with a locally verifiable signed token.
- Follow Apple's crypto rules, and start from a free VP0 design.

## Frequently asked questions

The FAQ above answers how to build the scanner, whether an NFT ticket is a financial product, how to stop double entry, and whether these apps pass App Store review.

## Frequently asked questions

### How do I build an NFT event ticket QR scanner for iOS?

Scan the QR code with AVFoundation metadata output or VisionKit, send the encoded ticket reference to your server, and validate ownership and validity there, never on the client alone. On success, mark the ticket used so it cannot be scanned twice, and show a clear valid, used, or invalid result. Handle the offline door with a signed token you can verify locally. Start the UI from a free VP0 design.

### Is an NFT ticket a financial product?

No. Treat an NFT event ticket as an access credential that proves the holder may enter, not as an investment. Designing it that way keeps the experience honest and helps you stay within Apple's App Store rules, which restrict crypto trading and currency features. The scanner cares only about whether this ticket is valid and unused, not about any market value.

### How do I stop a ticket being used twice?

Validate on the server and mark the ticket as used at the moment of entry, so a second scan returns an already-used result. For venues with poor signal, issue a short-lived signed token the scanner can verify offline, then reconcile when the connection returns. The rule is one entry per ticket, enforced by the server as the source of truth.

### Can NFT ticket apps pass App Store review?

Yes, when they stay within Apple's guidelines: an NFT can unlock app functionality like entry, but the app must not enable unapproved crypto trading or use NFT ownership to unlock features in a way Apple prohibits. Keep the app focused on ticketing and access, validate server-side, and read the App Store Review Guidelines before you submit.

---
*Published on the [VP0 Journal](https://vp0.com/blogs). Free to read, index and cite with attribution.*
