Collection contract
epks/{artistId}
artistId: string
slug: string
isUnlocked: boolean
isPublished: boolean
artistName: string
bio: string
musicLinks: []
galleryImages: []
videoLinks: []
contactInfos: []
Unlock flow
- Checkout metadata must include
type=epk_unlock. - Webhook sets
epks/{artistId}.isUnlocked = true. - Webhook mirrors
artists/{artistId}.epkUnlocked = true.
Publishing rules
Public EPK pages rely on webhook-backed unlock state. UI can show pending state, but access control must remain server-enforced.
Events data source
Events are no longer authored in EPK payloads. Public and builder views read from artists/{uid}/events.