Hoe je meerdere bestanden tegelijk uploadt naar Arweave met een script

Portret van Lieke de Vries, blockchain architectuur archivering specialist
Lieke de Vries
Blockchain architectuur archivering specialist
Data uploaden naar Arweave · 2026-02-15 · 8 min leestijd

Stel je voor: je hebt een schat aan digitale bestanden. Denk aan een collectie historische foto’s, een grote dataset voor je onderzoek, of simpelweg je portfolio aan creatieve projecten.

Je wilt ze niet alleen opslaan, maar voor altijd bewaren. Weg van de servers die zomaar kunnen verdwijnen, en zonder elke keer weer abonnementskosten te betalen. Welkom bij Arweave. Arweave is een gedecentraliseerd netwerk waar je data eenmalig opslaat en het voor altijd blijft bestaan.

Het is een soort digitale bibliotheek die nooit sluit. Hoewel je via de website eenvoudig losse bestanden kunt uploaden, wordt het een sport als je er tientallen of honderden tegelijk moet plaatsen.

Handmatig klikken is dan geen optie. Het antwoord? Een script. In dit artikel leer je hoe je met een simpel script meerdere bestanden in één klap naar Arweave stuurt.

We gaan voor snelheid, gemak en zekerheid.

Waarom je niet zonder script kunt

De grafische interface van Arweave is prima voor één of twee bestanden. Maar als je serieus aan de slag gaat, loop je al snel tegen de grenzen aan.

Waarom zou je dan een script schrijven? Het grootste voordeel is automatisering. Je laadt de bestanden in een map, je start het script en je kunt ondertussen iets anders doen.

Geen gedoe met bestanden slepen en neerzetten. Daarnaast is snelheid een factor.

Een script kan bestanden parallel uploaden, wat vaak veel sneller gaat dan wanneer je ze één voor één handmatig verstuurt. Verder is er foutopsporing. Een script kan direct zien als een upload mislukt en probeert het opnieuw. Handmatig controleer je dat veel moeilijker.

Tot slot is het schaalbaar. Of je nu 10 of 10.000 bestanden hebt, een script houdt het overzicht en voert de taken gestructureerd uit.

Wat heb je nodig?

Voordat we beginnen, check even of je de volgende dingen bij de hand hebt.

Node.js en npm

Je hebt geen supercomputer nodig, maar een paar tools zijn essentieel. Arweave communiceert via JavaScript.

Een code editor

Om dit soort scripts te laten draaien, installeer je Node.js op je computer. Dit pakket bevat meteen npm (Node Package Manager), waarmee je de benodigde Arweave-bibliotheek kunt installeren. Download de nieuwste versie via de officiële Node.js website. Je moet ergens je code schrijven.

Je private key

Visual Studio Code (VS Code) is een populaire en gratis optie, maar Sublime Text of Atom werken ook prima.

Kies wat voor jou fijn voelt. Om transacties te versturen, heb je een Arweave-wallet nodig. Je kunt een nieuwe wallet maken via de Arweave Wallet pagina of een bestaande gebruiken.

De bestanden

Zorg dat je je private key (een bestandje, meestal met de extensie .json) veilig opslaat. Zonder deze key kun je niets versturen.

Natuurlijk: de map met bestanden die je wilt uploaden. Zorg dat ze netjes bij elkaar staan, bijvoorbeeld in een map genaamd 'uploads'.

De Arweave SDK installeren

De brug tussen jouw computer en het Arweave-netwerk wordt geslagen door de Arweave SDK (Software Development Kit). Dit is een set gereedschappen die al het zware werk voor je doet.

Open je terminal (of command prompt) en navigeer naar de map waar je je script wilt maken.

npm install arweave

Voer dan dit commando in: Daarmee installeer je de officiële Arweave JavaScript-bibliotheek. Als je computer klaar is met laden, kun je in je code-editor een nieuw JavaScript-bestand aanmaken (bijvoorbeeld upload.js) en de bibliotheek importeren met:

const Arweave = require('arweave');

Script schrijven: stap voor stap

Het is tijd om de handen uit de mouwen te steken. Hieronder vind je een basis script.

De code

// Zorg dat je de arweave bibliotheek hebt geïnstalleerd
const Arweave = require('arweave');
const fs = require('fs');
const path = require('path');

// Initialiseren van de Arweave client
const arweave = Arweave.init({
  host: 'arweave.net',
  port: 443,
  protocol: 'https'
});

// Pad naar je private key (bijv. 'wallet.json')
const keyPath = path.join(__dirname, 'wallet.json');
const key = JSON.parse(fs.readFileSync(keyPath, 'utf8'));

// Lijst met bestanden die je wilt uploaden
const filesToUpload = [
  'bestand1.jpg',
  'bestand2.txt',
  'bestand3.pdf'
];

async function uploadFiles(filePaths) {
  console.log('Start upload van ' + filePaths.length + ' bestanden...');

  for (const filePath of filePaths) {
    try {
      // Lees de inhoud van het bestand
      const fileData = fs.readFileSync(filePath);

      // Maak een transactie aan
      const transaction = await arweave.createTransaction(
        {
          data: fileData
        },
        key
      );

      // Voeg wat tags toe (optioneel, maar handig voor organisatie)
      transaction.addTag('Content-Type', 'application/octet-stream');
      transaction.addTag('App-Name', 'Bulk-Upload-Script');

      // Sign de transactie
      await arweave.transactions.sign(transaction, key);

      // Verstuur de transactie
      const uploader = await arweave.transactions.getUploader(transaction);
      
      while (!uploader.isComplete) {
        await uploader.uploadChunk();
      }

      console.log(`✅ Bestand ${filePath} geüpload! ID: ${transaction.id}`);

    } catch (error) {
      console.error(`❌ Fout bij uploaden van ${filePath}:`, error.message);
    }
  }
}

// Voer de functie uit
uploadFiles(filesToUpload);

Uitleg van de code

Dit script laadt een lijst met bestanden en stuurt ze één voor één naar Arweave. Laten we even door de code lopen zodat je precies weet wat er gebeurt.

  • Initialisatie: We starten de Arweave client. Dit is de verbinding met het netwerk.
  • Private key laden: Het script leest je wallet-bestand in. Zonder deze key kan er niets worden ondertekend. Tip: zet je wallet nooit in je code als je deze online deelt.
  • De upload-functie: De functie uploadFiles pakt de lijst met bestanden. Hij loopt ze stuk voor stuk af (een zogenaamde 'loop').
  • Bestand uitlezen: Met fs.readFileSync haalt het script de data uit jouw bestand.
  • Transactie maken: Er wordt een nieuwe transactie aangemaakt met de data van je bestand. Dit is het "pakketje" dat we versturen.
  • Tags toevoegen: Je kunt metadata toevoegen, zoals het bestandstype (Content-Type). Dit helpt browsers en apps om te begrijpen wat ze binnenkrijgen.
  • Versturen: De transactie wordt ondertekend en opgestuurd naar het netwerk. De code bevat een kleine while-loop die de upload voortgang bijhoudt, wat handig is bij grotere bestanden.

Optimaliseer je upload

Met het basis script ben je er al bijna, maar als je veel bestanden hebt, wil je misschien wat sneller werken of slimmere foutopsporing. Standaard uploadt het script hier bestanden één voor één (sequentieel). Als je internetverbinding het toelaat, kun je bestanden parallel uploaden.

Parallel uploaden

Dit betekent dat je meerdere uploads tegelijk start. Dit kan de totale tijd enorm verkorten.

Chunking voor grote bestanden

Je kunt hiervoor een library als Promise.all gebruiken, maar wees voorzichtig: te veel tegelijk kan leiden tot fouten bij Arweave. Heb je bestanden die groter zijn dan 100MB?

Dan is het slim om ze op te delen in stukjes (chunks). Arweave ondersteunt het uploaden in delen. Dit voorkomt dat je upload vastloopt door een time-out.

Retry-logica

Het internet is niet perfect. Soms hapert een verbinding.

In plaats dat je script direct stopt bij een fout, kun je een 'retry' toevoegen. Bijvoorbeeld: als een upload mislukt, wacht 5 seconden en probeer het opnieuw. Doe dit maximaal 3 keer.

Let op de kosten

Arweave is eenmalig betalen voor permanente opslag. Dat is fijn, maar het hangt wel af van de grootte van je data.

De kosten worden berekend per MB. De exacte prijs fluctueert omdat het netwerk gebruikt maakt van een veilingmechanisme (ondanks dat het model simpel lijkt, speelt vraag en aanbod een rol).

Voordat je een bulk-upload start van een paar gigabyte, check even de huidige tarieven. Je kunt dit eenvoudig zien via de Arweave Wallet of door een schatting te maken in je script. Houd er rekening mee dat de transactiekosten voor elk bestand apart worden gerekend.

Als je 100 kleine bestanden uploadt, ben je dus meer kwijt aan transactiekosten dan aan één groot bestand van dezelfde totale grootte. Overweeg daarom om kleine bestanden te bundelen (bijvoorbeeld in een .zip bestand) als dit voor jouw project logisch is.

Veiligheid en best practices

Werken met scripts en private keys vraagt om voorzichtigheid. Volg deze regels om problemen te voorkomen.

Bescherm je private key

Dit is de belangrijkste regel. Jouw private key is het wachtwoord van je wallet. Als iemand deze key krijgt, kunnen ze al je data en (eventuele) middelen overnemen.

Test altijd eerst

Sla je key nooit op in een openbare map of in je scriptcode zelf.

Gebruik environment variables of een apart, beveiligd bestand dat niet wordt meegestuurd als je je code deelt. Begin met één of twee testbestanden. Kijk of ze correct worden geüpload en of je ze terug kunt vinden via een Arweave viewer (zoals ArDrive of Arweave.app). Pas als je zeker bent dat je script goed werkt, draai je het voor de hele map.

Monitor je voortgang

Het script print de transactie-ID's naar de console. Kopieer deze ID's en bewaar ze.

Ze zijn je bewijs dat de data op Arweave staat. Als je honderden bestanden uploadt, is het slim om deze lijst in een apart bestandje te bewaren.

Alternatieven voor het script

Wil je geen code schrijven? Er zijn gelukkig andere manieren om bulk-uploads naar Arweave te doen.

ArDrive: Dit is een desktop applicatie die werkt als een soort Dropbox, maar dan voor Arweave. Je kunt gewoon mappen slepen en neerzetten, en ArDrive doet de rest. Het is een uitstekend alternatief als je geen technische kennis hebt.

Arweave CLI: Als je wel van de command line houdt maar geen eigen script wilt schrijven, is de Arweave Command Line Interface een optie. Hiermee kun je bestanden uploaden met simpele commando's.

Python: Als je meer vertrouwd bent met Python dan met JavaScript, bestaat er ook een Python-bibliotheek voor Arweave.

De principes zijn hetzelfde: initialiseren, bestanden lezen, transactie maken en versturen.

Conclusie

Meerdere bestanden tegelijk uploaden naar Arweave hoeft geen ingewikkelde klus te zijn. Met een beetje Node.js kennis en het juiste script om een transactie aan te maken en te versturen, bespaar je uren handmatig werk en ben je verzekerd van een nette, gestructureerde upload.

Het script geeft je volledige controle: je bepaalt welke tags erop komen, hoe de bestanden heten en wanneer ze verstuurd worden.

Onthoud dat Arweave een langetermijninvestering is. De data die je vandaag uploadt, is over tien jaar nog steeds beschikbaar. Zorg dus dat je script betrouwbaar is en bewaar je transactie-ID's goed.

Of je nu een archief bouwt, een portfolio deelt of simpelweg je data wilt beveiligen: met een bulk-upload script sta je een stuk sterker. Aan de slag gaan!

Portret van Lieke de Vries, blockchain architectuur archivering specialist
Over Lieke de Vries

Lieke ontwikkelt veilige en efficiënte archiveringssystemen voor architectuur met behulp van blockchain.

Volgende stap
Bekijk alle artikelen over Data uploaden naar Arweave
Ga naar overzicht →