Dynamic NFC verification
The Go gateway validated NTAG 424 Secure Dynamic Messaging data using tag-specific keys, UID, dynamic PICC data, counters and CMAC rather than treating a static NFC URL as proof.
A multi-application platform connecting physical artworks to secure digital records through NFC, enabling authenticity checks, provenance, ownership, subscriptions, auctions and scan analytics.

Physical artwork carries identity, ownership, exhibition and sale history, but that context is often disconnected from the object. A trustworthy platform needed more than a static tag URL: it had to bind secure NFC hardware to the correct record, verify dynamic scan data and preserve the artwork lifecycle around it.
The system separated trusted physical provisioning, focused cryptographic validation, business logic and presentation across four applications. An Android-focused reader/writer programmed tags; a stateless Go gateway verified scan data; the main Go backend owned users, artwork, scan state and commerce; and a Nuxt/Vue web app delivered public discovery and role-aware administration.
01 · Create the record
An artwork and its ownership record are established in the backend before physical provisioning begins.
02 · Provision tags
An authorized operator uses the React Native app to program public/private NDEF data, Secure Dynamic Messaging configuration and key material.
03 · Bind identity
Per-tag keys and the physical UID are associated with the artwork or eligible VIP user record.
04 · Tap artwork
A collector or visitor taps the public tag, which emits dynamic PICC data, scan counter, CMAC and optional tamper state.
05 · Verify scan
The verification gateway fetches tag keys and backend scan state, validates cryptographic data and rejects stale or replayed counters.
06 · Record activity
The backend stores the validated scan with geographic and artwork context for history, dashboards and analytics.
07 · Route visitor
An encrypted redirect sends the visitor to the appropriate mobile artwork, artist or scan-result experience.
08 · Manage lifecycle
Authorized users manage ownership, exhibitions, auctions, subscriptions, tag requests, referrals and operational analytics.
The split keeps Android NFC transport and low-level cryptography out of the public web UI and broader business API. The verification gateway remains focused and stateless while the backend owns authorization, scan counters, commerce and persistence.
Authorized operator ──► React Native Reader/Writer
├─ artwork + user APIs ──► Go Backend
└─ NDEF / SDM / keys ──► NXP NTAG 424
Collector / visitor ──tap──► NXP NTAG 424
└─ UID / PICC / counter / CMAC / tamper
└─► Go Verification Gateway
├─ tag keys + scan state ──► Backend
└─ encrypted redirect ──► Web App
Nuxt/Vue Web App ──cookie-authenticated REST──► Go Backend
Go Backend ──► PostgreSQL / S3 / Stripe / SendGrid
└─► Instagram Graph API / HubSpotDiscover artists and artworks, tap a public tag, see scan validity and view artwork, artist, collector, location and medium details
Manage profiles, artwork, collectors, modifiers and tags; review scans and control visibility under subscription permissions
Receive ownership transfers before account creation, reconnect records by email and participate in auction/payment workflows
Manage users, roles, artworks, collectors, tags, subscriptions, permissions, auctions and audit logs
Select environments, find artworks or VIP users, write public/private/VIP tags and inspect UID, NDEF, host and tamper state
Place and confirm bids by time-limited email, attach a Stripe payment method and pay only after a winning auction concludes
The Go gateway validated NTAG 424 Secure Dynamic Messaging data using tag-specific keys, UID, dynamic PICC data, counters and CMAC rather than treating a static NFC URL as proof.
Backend state tracked counters and public/private tag relationships so stale, duplicated or replayed scans could be identified alongside tamper-capable variants.
The Android React Native application gave authorized operators a practical interface for programming NDEF records, SDM settings and key material across public, private and VIP tag types.
Artwork, collectors, modifiers, exhibitions, transfers, scan history, sale history and audit logs formed a durable record around the physical object.
Auctions, bid confirmation, payment authorization, settlement, royalties and sale history were integrated with Stripe and Stripe Connect workflows.
Cookie-authenticated APIs and role handling supported superadmin, admin, keyholder and VIP experiences across public discovery and administration.
Physical NFC identity with Secure Dynamic Messaging, per-tag key material, dynamic scan counters, CMAC validation and supported tamper state.
Hosted subscription checkout, signed webhooks, bidder payment methods, auction settlement, artist onboarding, balances, transfers and withdrawals.
Artwork/profile media and database-backup storage remained outside the relational application database.
Transactional email supported verification, ownership transfer, bid confirmation and other platform notifications.
OAuth, token refresh, media retrieval and profile information extended artist discovery and public profiles.
Support contact and ticket integration connected platform users to operational support workflows.
Designed the PostgreSQL data model
Developed the Go business API and domain workflows
Built a dedicated Go verification gateway using NTAG 424 DNA capabilities
Created a React Native Android app for trusted NFC tag provisioning
Connected public and administrative Nuxt/Vue experiences to the platform
Supported ownership, auctions, subscriptions, payments and scan analytics
Anonymized service family across the platform.
| Service | Responsibility | Stack |
|---|---|---|
| Core Platform API | Users, artwork, ownership, authorization, scan state, auctions, subscriptions, payments and persistence | Go, Gin, GORM, PostgreSQL |
| Public & Admin Web App | Public discovery, scan results and role-aware administrative experiences | Nuxt, Vue, REST APIs |
| Tag Provisioning App | Trusted public/private/VIP tag provisioning and Android NFC communication | React Native, Android NFC, NXP NTAG 424 |
| Verification Gateway | Stateless cryptographic scan verification and encrypted visitor redirects | Go, AES/CMAC, backend API integration |
Connected physical artwork tags to cryptographically checked digital records
Delivered a complete flow from trusted provisioning through validation, scan history and mobile artwork experiences
Supported provenance, ownership transfer, exhibitions, auctions, subscriptions and payout workflows around each artwork
Equipped operators with Android NFC tooling and administrators with role-aware operational controls
Established scan analytics, dashboards, geographic context and most-scanned reporting
Audited local history spans June 2023–July 2026. Backend inspection found 99 active API routes, 17 router domains, 20 controllers, 24 migrated GORM models, 95 Go source files and 214 commits.
Secure physical-digital identity, NFC provisioning, cryptographic verification, provenance workflows, mobile development and commerce platforms.
These implementation boundaries keep the public description technically honest.



Backend platform for a flagship social virtual world — Go realtime game server, NestJS Alpha API, versioned content releases, Kafka telemetry contracts, and an internal support console for live operations.
View case study →
Built and evolved an AI outreach stack connecting campaign operations, real-time voice agents and CRM orchestration so leads could be called, scored and followed up without manual glue work between tools.
View case study →
A browser-first platform for recording, correcting, processing, organizing and sharing video—with a defining pause, rewind and overwrite workflow that let users fix mistakes without starting again.
View case study →