Skip to content

The Moonbase Alpha TestNet

Goal

The first Moonbeam TestNet, named Moonbase Alpha, aims to provide developers with a place to start experimenting and building on Moonbeam in a shared environment. Since Moonbeam is deployed as a parachain on Kusama and Polkadot, the goal of the TestNet is to reflect the production configurations. For this reason, it was decided that it needed to be a parachain-based configuration rather than a Substrate development setup.

In order to collect as much feedback as possible and provide fast issue resolution, please join the Moonbeam Discord.

Initial Configuration

Moonbase Alpha has the following configuration:

  • Runs as a parachain connected to a relay chain
  • Has an active set of 36 collator nodes run by the community
  • The relay chain hosts validators to finalize relay chain blocks. One of them is selected to finalize each block collated by Moonbeam's collators. This setup provides room to expand to a two-parachain configuration in the future
  • Has infrastructure providers that provide API endpoints to connect to the network. Projects can also run their own node to have access to their own private endpoints

TestNet Diagram

Some important variables/configurations to note include:

Variable Value
Minimum gas price 0.125 Gwei
Target block time 6 seconds
Block gas limit 60,000,000
Transaction gas limit 52,000,000
Variable Value
Minimum delegation stake 1 DEV
Maximum delegators per candidates 300
Maximum delegations per account 100
Round 1200 blocks (2 hour)
Bond duration delegation takes effect in the next round (funds are withdrawn immediately)
Unbond duration 2 rounds (4 hours)

Note

As of runtime 2800, asynchronous backing has been enabled on Moonbase Alpha. As a result, the target block time was reduced from 12 seconds to 6 seconds, which may break some timing-based assumptions. Note that this is for Moonbase Alpha only.

Additionally, as of runtime 2900, the block and transaction gas limits increased by 4x on Moonbase Alpha.

Network Endpoints

Moonbase Alpha has two types of endpoints available for users to connect to: one for HTTPS and one for WSS.

If you're looking for your own endpoints suitable for production use, you can check out the Endpoint Providers section of our documentation. Otherwise, to get started quickly you can use one of the following public HTTPS or WSS endpoints.

Provider RPC URL Limits
Blast
https://moonbase-alpha.public.blastapi.io
80 req/sec
Dwellir
https://moonbase-rpc.dwellir.com
20 req/sec
OnFinality
https://moonbeam-alpha.api.onfinality.io/public
40 req/sec
Moonbeam Foundation
https://rpc.api.moonbase.moonbeam.network
25 req/sec
UnitedBloc
https://moonbase.unitedbloc.com
32 req/sec
Provider RPC URL Limits
Blast
wss://moonbase-alpha.public.blastapi.io
80 req/sec
Dwellir
wss://moonbase-rpc.dwellir.com
20 req/sec
OnFinality
wss://moonbeam-alpha.api.onfinality.io/public-ws
40 req/sec
Moonbeam Foundation
wss://wss.api.moonbase.moonbeam.network
25 req/sec
UnitedBloc
wss://moonbase.unitedbloc.com
32 req/sec

Relay Chain

To connect to the Moonbase Alpha relay chain, you can use the following WS Endpoint:

Provider RPC URL
OpsLayer
wss://fro-moon-rpc-1-moonbase-relay-rpc-1.moonbase.ol-infra.network

Quick Start

For the Web3.js library, you can create a local Web3 instance and set the provider to connect to Moonbase Alpha (both HTTP and WS are supported):

const { Web3 } = require('web3'); // Load Web3 library
.
.
.
// Create local Web3 instance - set Moonbase Alpha as provider
const web3 = new Web3('https://rpc.api.moonbase.moonbeam.network'); 

For the Ethers.js library, define the provider by using ethers.JsonRpcProvider(providerURL, {object}) and setting the provider URL to Moonbase Alpha:

const ethers = require('ethers'); // Load Ethers library

const providerURL = 'https://rpc.api.moonbase.moonbeam.network';
// Define provider
const provider = new ethers.JsonRpcProvider(providerURL, {
    chainId: 1287,
    name: 'moonbase-alphanet'
});

Any Ethereum wallet should be able to generate a valid address for Moonbeam (for example, MetaMask).

Chain ID

Moonbase Alpha TestNet chain ID is: 1287, which is 0x507 in hex.

Alphanet Relay Chain

The Alphanet relay chain is connected to Moonbase Alpha and is Westend-based but unique to the Moonbeam ecosystem. It resembles how you would interact with Kusama or Polkadot. The native tokens of the Alphanet relay chain are UNIT tokens, which are for testing purposes only and have no real value.

Telemetry

You can see current Moonbase Alpha telemetry information by visiting Polkadot's Telemetry dashboard.

Tokens

Tokens on Moonbase Alpha, named DEV, will be issued on demand. DEV tokens hold no value and can be freely acquired.

You can enter your address to automatically request DEV tokens from the Moonbase Alpha Faucet website. The faucet dispenses 1.1 DEV tokens every 24 hours.

For token requests of more than the limited amount allowed by the faucet, contact a moderator directly via the Moonbeam Discord server. We are happy to provide the tokens needed to test your applications.

Proof of Stake

The Moonbase Alpha TestNet is a fully decentralized Delegated Proof of Stake network where users of the network can delegate collator candidates to produce blocks and "earn rewards" for testing purposes. Please note, that the Moonbase Alpha DEV tokens have no real value. The number of candidates in the active set will be subject to governance. The active set will consist of the top candidates by stake, including delegations.

Limitations

This is the first TestNet for Moonbeam, so there are some limitations.

Some precompiles are yet to be included. You can check out the list of supported precompiles on the Canonical Contract page. However, all built-in functions are available.

Since the release of Moonbase Alpha v6, the maximum gas limit per block has been set to 60,000,000, with a maximum gas limit per transaction of 52,000,000.

Last update: June 10, 2024
| Created: September 10, 2020