Skip to main content


Before we start writing tests, we need to understand the different types of networks on Arweave blockchain.

🕸️ Mainnet

Mainnet is the final version of a blockchain which is fully functional. It means that the blockchain protocol is fully developed and deployed. Mainnet allows users to send and receive transactions which are recorded on a distributed ledger. Distributed ledger technology (DLT) is a consensus of replicated, shared, and synchronized digital data (in opposition to centralized systems there is no central administrator of the shared data).


The gateway that delivers data from the nodes is

You can also explore its GraphQL which is responsibe for querying for transaction or block metadata on Arweave here.

You can find a nice guide for GraphQL here.

HTTP API which can help us explore the network can be found in the docs.


Instead of heading to you can request and query nodes directly. Nodes are Arweave users with large storage spaces on their hard drives, they connect with the Arweave network and store data for others. You can use exactly the same API as for the gateway. A list of all currently running nodes can be found on


🥅 Testnet

Unlike mainnet, testnet means that the network is not running on its full capacity. It is used by developers to test different kind of actions and features before posting them to mainnet.

It is possible to use two kinds of testnets.

  1. ArLocal - is a local server which resembles Arweave mainnet. You need to run it locally on your computer.

You can read more about ArLocal in a dedicated repository.

  1. Warp testnet - is a public testnet based on ArLocal. It does not require any instance to be run locally. The blocks are mined every 10s so you don't have to wait for the transaction as long as you would with a mainnet. You can also mine blocks manually, the same way you would do it on ArLocal.

Warp public testnet is available here.

We will use ArLocal for our tests and Arweave mainnet for deploying contract and writing interactions.