Aanleiding

Ik ben dit project begonnen vanuit mijn interesse in Tomorrowland. Het festival is voor mij bijzonder omdat het veel verder gaat dan alleen een line-up: het terrein, de stages en de volledige aankleding voelen alsof je tijdelijk in een andere wereld terechtkomt. Tegelijk is het extreem lastig om tickets te krijgen. Via de reguliere verkoop is de kans om de ticketshop binnen te komen klein, waardoor toegang zelf een belangrijk deel van de waarde werd.

Begin 2022 kondigde Tomorrowland drie verschillende NFT's aan. Met een volledige set van die drie NFT's kreeg je toegang tot een aparte NFT-shop, waarmee je voorheen gegarandeerd vier festivalkaarten kon kopen. Ik heb toen van elke NFT twee stuks gekocht voor ongeveer 100 euro per stuk. Daarmee had ik twee volledige sets en dus ook de mogelijkheid om de waarde van die toegang actief te volgen.

Op de secondary market stonden de prijzen in Solana en waren de collecties los van elkaar zichtbaar. Er was geen handige plek waar je in een oogopslag zag wat een complete set van drie NFT's op dat moment in euro waard was. Daarom heb ik een simpele checker gemaakt die precies die vraag dagelijks beantwoordde.

Probleemstelling

De waarde zat niet in een losse NFT, maar in de combinatie van drie collecties:tomorrowland_winter, the_reflection_of_love entomorrowland_love_unity. Om de markt goed te kunnen volgen moest ik dus steeds drie floor prices optellen en daarna omrekenen met de actuele Solana-koers.

Dat handmatig doen was onpraktisch, vooral omdat de prijs door twee factoren tegelijk veranderde: de NFT-prijzen in SOL en de waarde van SOL in euro. Een set kon daardoor in euro stijgen terwijl een individuele floor price nauwelijks bewoog, of juist andersom. Voor een verkoopbeslissing was de europrijs van de volledige set het getal dat telde.

Kernvraag

Wat kost een volledige Tomorrowland NFT-set vandaag in euro, en hoe ontwikkelt die prijs zich richting de momenten waarop de utility het meest waard is?

Oplossing

Ik heb een Python-script geschreven dat de actuele SOL/EUR koers ophaalt via CoinGecko en daarna per Tomorrowland-collectie de marketplace-statistieken ophaalt via de Magic Eden API. De floor prices uit Magic Eden staan in lamports, dus het script deelt die waarden door 1.000.000.000 om ze terug te rekenen naar SOL.

Vervolgens telt het script de drie floor prices op, vermenigvuldigt die setprijs met de actuele Solana-koers en schrijft het resultaat als nieuwe regel onderaan het databestand. Elke regel bevat de timestamp, totale europrijs, de drie individuele floor prices in SOL en de gebruikte SOL/EUR-koers.

Dataverzameling

Requests naar CoinGecko en drie Magic Eden collection endpoints leveren de ruwe marktdata op.

Normalisatie

Lamports worden omgerekend naar SOL en daarna naar euro, zodat de complete set vergelijkbaar blijft over tijd.

Historie

Een batchbestand start het script via Windows Task Scheduler, waarna de nieuwste meting steeds onderaan de dataset wordt toegevoegd.

Dataset en visualisatie

De ruwe dataset is bewust simpel gehouden: een tekstbestand met CSV-structuur. Daardoor was het makkelijk om data toe te voegen zonder database, server of handmatige export. Het bijbehorende Excelbestand gebruikte die data om de prijsontwikkeling per dag als grafiek te tonen.

De dataset die in de projectmap staat bevat 610 metingen. De eerste meting is van 9 februari 2023 en kwam uit op EUR 626,22 voor een volledige set. De hoogste meting in de huidige dataset is EUR 4.777,47 op 6 november 2024. De laatste regel die ik heb bekeken is van 4 september 2025 en kwam uit op EUR 3.791,55.

Prijsontwikkeling volledige set

Maandelijkse slotmetingen uit de CSV-data
1k2k3k4kSnapshotSnapshot2023-022023-122024-122025-09
TomorrowlandSnapshot
De grafiek gebruikt per maand de laatste beschikbare meting uit het databestand. Daardoor blijft de trend leesbaar, terwijl de onderliggende dataset nog steeds dagelijks is opgebouwd.
EUR 626Eerste setprijs in de dataset
EUR 4.777Hoogste gemeten setprijs
EUR 3.000Uiteindelijke verkoopprijs per set

Marktlogica

De analyse draaide vooral om timing. Rond het einde van het jaar is er een snapshot: het moment waarop je de volledige set moet bezitten om toegang te krijgen tot de NFT ticketshop. In de aanloop naar zo'n snapshot stijgt de prijs vaak geleidelijk, omdat de utility dan concreet wordt. Na de snapshot daalt de prijs juist, omdat de set dan voor lange tijd minder directe waarde heeft.

Een tweede terugkerend moment zit rond Tomorrowland zelf. Tijdens het festival en rond de reguliere ticketperiode worden meer mensen zich bewust van het bestaan van de NFT's, zeker wanneer ze geen tickets hebben kunnen krijgen. Dat kan extra vraag veroorzaken, ook buiten de rustige opbouw richting de snapshot.

Resultaat

Het project gaf mij een praktisch dashboard voor een beslissing die anders vooral op gevoel zou zijn genomen. Door de complete setprijs dagelijks vast te leggen kon ik zien of de markt structureel opliep, tijdelijk piekte of juist begon te verzwakken.

Uiteindelijk heb ik mijn sets verkocht voor ongeveer EUR 3.000 per set. De directe aanleiding was dat de utility werd aangepast van vier gegarandeerde kaarten naar twee gegarandeerde kaarten, aangekondigd rond de ticketverkoop van 2025. Mijn verwachting was dat die wijziging de waarde kon drukken. Achteraf viel dat mee, maar op dat moment was de verkoop rationeel te onderbouwen met de data en de veranderde voorwaarden.

Daarnaast speelde mee dat ik Tomorrowland inmiddels vijf keer had bezocht. De NFT's waren begonnen als toegang tot een festival waar ik heel graag heen wilde, maar na een aantal jaren werd het logischer om de opgebouwde waarde te verzilveren.

Wat ik geleerd heb

  • Dat een klein script veel waarde kan hebben wanneer het precies de juiste vraag automatiseert.
  • Hoe belangrijk het is om crypto- en marketplace-data te normaliseren naar de valuta waarin je de beslissing neemt.
  • Dat planning en context, zoals snapshots en festivalmomenten, minstens zo belangrijk zijn als de ruwe prijsdata.
  • Hoe je met een simpele scheduled job een bruikbare historische dataset kunt opbouwen zonder volledige applicatie of backend.
  • Dat een persoonlijke interesse een goede basis kan zijn voor een technisch project, zolang de oplossing meetbaar en reproduceerbaar is.

Links en downloads

Andere projecten