How to Upload Data to Arweave: a Permaweb Primer for Beginners
Arabic / Chinese / Japanese / Latvian / Russian
We often see Arweave initiates ask about the best way to upload data to the permaweb. The value proposition of pay once, store forever is universally appealing, but there’s no one path forward.
If you heard about Arweave from a friend and did a bit of googling, it might still not be obvious how to store files permanently. Since Arweave is a storage layer – like a database instead of a fully-fledged app – there are plenty of ways to upload data to the permaweb, and the best way depends on your specific use case.
Do you want to:
- Store documents and photos privately, like Dropbox
- Archive a webpage in its current state forever
- Host your application’s front end
- Store application data on the permaweb in a way that’s easy to query
- Upload an NFT and earn attention rewards
- Upload files in bulk
Arweave has dApps (decentralized applications) for all of these use cases, as we’ll explore in this guide.
First steps: get a wallet, claim some AR
Arweave dApps require login with a wallet, usually via ArConnect. The best first step is to download the ArConnect browser extension. With it, you can send/receive AR, and log in to Arweave dApps with one click. In web3, your wallet is your identity, like the “sign in with Google” function in web2.
To interact with Arweave dApps, you’ll also need some AR – the Arweave ecosystem’s currency. You can get a small amount of free AR from the faucet, or send some to your wallet after buying it from an exchange.
If you’re planning to get a small amount of AR via the faucet, generate a wallet through that flow. Otherwise, use the ArConnect extension to create a wallet that you can send AR to from the exchange or on-ramp of your choice.
AR is currently available for purchase on gate.io, Huobi, Binance, and via fiat on-ramps such as Transak and Ramp. Learn about the on-ramps here.
To figure out how much AR you need to store the necessary data, check arweavefees.com.
Once you have AR in your wallet, you’re ready to store data on the permaweb.
Use ArDrive as a permanent Dropbox alternative
ArDrive is a file storage tool built on top of Arweave. With it, you can store private files of any kind, or publish them for all to see. ArDrive makes it easy to organize files into folders, and either keep them to yourself or generate unique links to share them publicly with anyone.
ArDrive works great both on desktop and mobile web. Plus, users who upload more than 50MB in a day are eligible to be rewarded in ArDrive’s native profit-sharing token – ↁ.
Use Evermore to automatically sync local files to and from Arweave
Evermore is a file storage app with a desktop client that allows users to configure a local folder which will be automatically backed up to Arweave.
Evermore is also able to download synced files from your other local machines, meaning every computer you own can share the same set of permanently stored files.
Every time any user uploads 1GB of data, they are rewarded with 1,500 Evermore profit-sharing tokens.
Archive webpages with the Arweave browser extension
Arweave was first conceived as a way to easily archive webpages and preserve them exactly as they stood at the time of being saved. This is still a huge use case for the protocol, and has helped rescue publications like the Apple Daily before they became irretrievable.
Download the Arweave web extension here. Click it in the browser toolbar to archive a page and revisit your previously saved pages.
You can also see a feed of everyone’s most recently archived items with this arweave.news webapp.
Host your application’s front end
For web3 dApps, front ends are the major point of centralized failure. While the backend may consist of smart contracts or code that queries the blockchain, front ends can be – and often are – censored.
There are a few easy ways to host your front end on Arweave, depending on how fancy you want to get.
The simplest tool for the job is arkb, a command line tool that can be used to upload the /build
folder of a built web app. However, your web app will live at a long and impossible-to-remember URL which you have no control over.
A richer alternative is ArGo, which makes it easy to upload front ends to Arweave and provides custom URLs – either traditional .com style, or ENS (.eth!).
Store application data on the permaweb (and query it)
Developers building on top of the permaweb only need to use Arweave for the backend and their framework of choice for the front end. The application’s “API server” is Arweave – either queried transactions directly, or the state of SmartWeave contracts.
For example, if you were building a simple social media app on top of Arweave, you would need a front end that sends ‘posts’ to the permaweb and can query them back. For this, you’d use arweave-js in the front end – a JavaScript SDK that makes it easy to interact with Arweave.
To read data from Arweave, GraphQL is the usual choice. You can either write GraphQL queries, as documented here, or use ardb to query Arweave as if it was a tool like SQL.
Upload an NFT and earn attention rewards
If you’re a creator looking to publish your work, it might be best to mint it as an NFT – that way, you earn attention rewards, sell your work, and even make commission from resales.
Koii is a blockchain that uses Arweave for storage – its flagship product, koi.rocks, allows users to spend AR and mint files as NFTs. When someone loads the file, the uploader earns KOII tokens as a reward.
There are a few different ways to mint an NFT with Koii; have a look at this guide for more information. If you’re unsure where to start, just download their Finnie browser extension.
Upload files in bulk with bundles
Want to commit a large number of files to the permaweb all at once? Use bundles – a recent Arweave innovation that enables mass uploads. Right now, you can either use arkb (–use-bundler) or write code that uses the arbundles library. Read more about when and why to use bundles on the dedicated ArWiki page here.
Is anything missing from this guide? Let us know on Twitter, @arweavenews