Voor ontwikkelaars
De FAIRDRUM-code is open onder de MIT-licentie: contract, site, startscripts en tests liggen in één de repository (de link verschijnt hier na publicatie). Hier kort hoe alles in elkaar zit en hoe je je eigen kopie draait.
Opbouw
| Map | Wat erin zit |
|---|---|
programs/fairdrum/ | Het contract in Rust en Anchor 1.2.2. De spelgetallen in consts.rs, de berekeningen in engine.rs en math.rs als gewone functies, dus de tests lopen zonder netwerk. |
app/ | De site: Vite en TypeScript, pagina's in app/src/pages/, de contractclient en het werk met het ORAO-orakel in app/src/chain/. De cijfertabellen op de site worden uit consts.rs gegenereerd en lopen dus niet uiteen met het contract. |
scripts/ | De start: tokenuitgifte, initialisatie, controle van de vastgelegde instellingen, test op devnet, dienstbetalingen, de optionele „dienstdoende”. |
docs/ | ARCHITECTURE.md (hoe alles in elkaar zit), LAUNCH.md (start stap voor stap), AUDIT.md (veiligheids-zelfcontrole en open vragen). |
e2e/ | Sitetests in een echte browser met een nagebootste wallet en een nagebootst netwerk. |
Het project heeft geen server of database: de site bestaat uit gewone bestanden en leest de data rechtstreeks uit het contract.
Zelf draaien
Je hebt Node.js 20.19 of nieuwer nodig en Rust voor de contracttests.
npm install
npm run dev # de site op localhost, zonder contract in demomodus
npm test # clienttests
cargo test -p fairdrum --release # contracttests
npm run build # de site in de map dist/
npm run build:single # de offlineversie: losse html-bestanden, te openen met een dubbelklik
De start stap voor stap op devnet en het hoofdnet met commando's en uitleg van veelvoorkomende fouten: docs/LAUNCH.md in de repository.
Instellingen zonder herbouw
Het bestand config.json ligt naast de pagina's en wordt bij elke lading gelezen; het contractadres, de netwerknode en de links veranderen dus zonder build. Een lege programId schakelt de demomodus in.
{
"programId": "het programma-adres na de start",
"cluster": "mainnet-beta",
"rpc": "https://...",
"swapUrl": "de link naar het wisselen van FAIRDRUM, zodra die er is",
"links": { "github": "...", "telegram": "...", "x": "...", "audit": "..." }
}
Het siteadres, paginabeschrijvingen en webmasterbevestigingen staan in app/seo.json en app/pages.json; npm run gen:html herbouwt daarmee de pagina's, de sitemap en robots.txt.
Hoe het project is getest: het verhaal van één repetitie
Vóór de gang naar het hoofdnet doorliep het project een volledige repetitie op het testnetwerk devnet (9–10 november 2026): installatie vanaf een schone server, build, deployment, tokenuitgifte, contractstart en echte draaien via het orakel. De repetitie ving zes startfouten — alle met remedies beschreven in docs/AUDIT.md (F11–F16).
De grootste vondst: het vorige willekeur-orakel (Switchboard) was tegen die tijd voorgoed gesloten — dat bleek juist tijdens de repetitie, niet na de start. In één dag werden contract, client en teksten in 14 talen overgezet naar het live orakel ORAO VRF, en diezelfde nacht liepen echte draaien: de afrekening van één draai kostte 17 121 rekeneenheden van de limiet van 1 400 000, een ×10-pakket 17 978. In de audit verschenen daarna de delen „reserveroutes” (wat het project doet als het orakel opnieuw sterft) en een analyse van bekende aanvalsklassen op Solana-programma's.
De conclusie voor de lezer is simpel: alles wat deze site over draaien, willekeur en de kluis schrijft, is niet alleen met tests maar ook met het live netwerk gecontroleerd. Wat nog niet is gecontroleerd, staat eerlijk op de pagina „Status”, en een onafhankelijke audit door mensen blijft een verplichte startvoorwaarde.
Codeverificatie
Tests
De contractlogica wordt zonder netwerk getest, onder meer met een „storm” van tienduizenden willekeurige operaties: na elke moeten de tokens in de kluis exact gelijk zijn aan de verplichtingen. De test is met „mutatie” gecontroleerd: verschuif in de berekening ook maar één kleinste eenheid en hij faalt.
Wat niet is gecontroleerd
Een live draai via het ORAO-orakel en een onafhankelijke audit: projectstatus. Interne controle vervangt geen audit, en in docs/AUDIT.md staat wat open blijft.
Vergelijking met het netwerk
Vergelijk na de start de gepubliceerde code met het programma op het netwerk volgens de instructie „Controleer de eerlijkheid”. De adressen van programma en token lees je op de pagina „Officiële links”.
Als de site fairdrum.to onbereikbaar is
Het spelsaldo ligt in het contract, niet op de site. De site is een handige schil, en opnemen kan vanaf elke kopie ervan.
- Controleer of het adres juist is getypt en open de site vanuit je bladwijzer. Is alleen de site onbereikbaar, wacht dan even: hostingstoringen zijn soms tijdelijk.
- Start een kopie van de site: de repository is open en de site bestaat uit gewone bestanden. Download de offlineversie of bouw er zelf een (
npm run build), leg er eenconfig.jsonnaast met het echte programma-adres (te vergelijken op de pagina „Officiële links” en in een verkenner) en open haar via een simpele webserver, bijv.npx vite preview. - Verbind dezelfde wallet. Saldo, rang en reeks worden uit het contract gelezen, en opnemen werkt net als op de hoofdsite.
- Voer je geheime zin op geen enkele „spiegel” in. De site vraagt er nooit naar: elke kopie die dat doet, is nep.
Controleer een sitekopie uit andermans bron: vergelijk de code met de projectrepository. Zonder dat weet je niet wat je precies ondertekent. Zelf bouwen is betrouwbaarder.
Licentie
MIT: de code mag je lezen, kopiëren, wijzigen en draaien, ook commercieel, met behoud van de licentietekst. De licentie geldt voor de code, niet voor de naam en het adres fairdrum.to: een fork met andere regels mag zich niet voor dit project uitgeven.