Skip to main content

Networks

Stellar has three networks: the public network (Mainnet, also called Pubnet or the Public Network), the test network (Testnet), and a dev network (Futurenet).

  • Mainnet is the main network used by applications in production. It connects to real financial rails and requires XLM to cover minimum balances, transaction fees, and rent.
  • Testnet is a smaller, free-to-use network maintained by SDF that functions like Mainnet but doesn't connect to real money. It resets on a regular cadence, making it the best place for developers to test applications in a stable environment that mirrors Mainnet functionality.
  • Futurenet is a dev network for testing bleeding-edge features. It resets whenever necessary, so it's less predictable than Testnet, but it's where new features are introduced before stable releases.

Network Comparison

FeatureMainnetTestnetFuturenet
PurposeProduction networkStable testing environmentBleeding-edge feature testing
Validator NodesRun by the publicSDF runs three core validator nodesSDF runs core validator nodes
FundingReal XLM required from another accountFree via FriendbotFree via Friendbot
Horizon InstanceMultiple providers availableFree SDF instanceFree SDF instance
RPC EndpointsThird-party providers onlyFree SDF endpointsFree SDF endpoints
Operations per Ledger1,000100100
Smart Contract Transactions per LedgerMax 100*11
Network ResetsNeverRegular cadenceAs needed (unpredictable)
Friendbot AvailableNoYes (10,000 XLM)Yes (10,000 XLM)

*The precise amount can vary based on resource limits. See Fees and Metering for detailed smart contract network settings.

Friendbot

Friendbot is a bot that funds accounts with fake XLM on Testnet or Futurenet. You can request XLM from Friendbot using the Stellar Lab or with various SDKs.

Key details:

  • Requests are rate limited, so use wisely
  • Provides 10,000 fake XLM when funding a new account
  • For multiple accounts: fund your first account with Friendbot, then use that account to fund subsequent accounts using the Create Account operation

Getting Started

For Production: Use Mainnet with real XLM and production-ready infrastructure.

For Testing: Use Testnet for stable development and testing that mirrors production behavior.

For Experimental Features: Use Futurenet to test the latest features before they're released.

Testnet and Futurenet data reset

Testnet and Futurenet are reset periodically to the genesis ledger to declutter the network, remove spam, reduce the time needed to catch up on the latest ledger, and help maintain the system. Resets clear all ledger entries (accounts, trustlines, offers, smart contract data, etc.), transactions, and historical data from Stellar Core, Horizon, and the Stellar RPC- which is why developers should not rely on the persistence of accounts or the state of any balances when using Testnet or Futurenet.

Futurenet resets are on a less regular cadence than Testnet resets and don't have a set schedule.

Testnet resets typically happen once per quarter at 17:00 UTC and are announced at least two weeks in advance on the Stellar Dashboard and through several developer community channels.

Here are the scheduled 2025 dates:

  • March 19, 2025
  • June 18, 2025
  • August 14, 2025
  • December 17, 2025

If you run a Testnet or Futurenet Horizon instance, you need to re-join and re-sync to the network after a reset. Check out how to do that here: Testnet Reset.

Check out this How-To Guide on automating Testnet and Futurenet reset data.

Test data automation

It is recommended that you have testing infrastructure that can repopulate the Testnet and Futurenet with useful data after a reset. This will make testing more reliable and will help you scale your testing infrastructure to a private network if you choose to do so. For example, you may want to:

  • Generate issuers of assets for testing the development of a wallet;
  • Generate orders on the order book (both current and historical) for testing the development of a trading client;
  • Recreate liquidity pools;
  • Redeploy smart contracts.

If you maintain an application, you should think about creating a data set that is representative enough to test your primary use cases, and allow for robust testing even when Testnet or Futurenet are not available.

A script can automate this entire process by creating an account with Friendbot and submitting a set of transactions that are predefined as a part of your testing infrastructure.

Network passphrases

Stellar’s Mainnet, Testnet, and Futurenet each have their own unique passphrase. These are used when validating signatures on a given transaction. If you sign a transaction for one network but submit it to another, it won’t be considered valid. By convention, the format of a passphrase is ‘[Network Name] ; [Month of Creation] [Year of Creation]’.

The current passphrases for the Stellar Mainnet, Testnet, and Futurenet are:

  • Mainnet: 'Public Global Stellar Network ; September 2015'
  • Testnet: 'Test SDF Network ; September 2015'
  • Futurenet: 'Test SDF Future Network ; October 2022'

Passphrases serve two main purposes: (1) used as the seed for the root account (master network key) at genesis and (2) used to build hashes of transactions, which are ultimately what is signed by each signer’s secret key in a transaction envelope; this allows you to verify that a transaction was intended for a specific network by its signers.

Many SDKs have the passphrases hardcoded for Stellar's networks. If you’re running a private network, you’ll have to manually pass in a passphrase to be used whenever transaction hashes are generated. All of Stellar’s official SDKs allow you to use a network with a custom passphrase.

What Testnet and Futurenet should and should not be used for

Testnet and Futurenet are good for

  • Creating test accounts (with funding from Friendbot);
  • Developing applications and contracts and exploring tutorials on Stellar without the potential to lose any assets;
  • Testing existing applications against new releases or release candidates of Stellar Core, Horizon, and the Stellar RPC;
  • Performing data analysis on a smaller, non-trivial data set compared to the Mainnet.

Testnet and Futurenet are bad for

  • Load and stress testing;
  • High availability test infrastructure- SDF does not guarantee Testnet availability;
  • Long-term storage of data on the network since the network resets periodically;
  • A testing infrastructure that requires more control over the test environment, such as:
    • The ability to control the data reset frequency;
    • The need to secure private or sensitive data (before launching on the Mainnet). You can always run your own test network for use cases that don’t work well with SDF’s Testnet.

Moving your project from Testnet or Futurenet to production

Mainnet, Testnet, and Futurenet each have their own unique passphrase, which is used to validate signatures on a given transaction.

The current passphrases for the Stellar Mainnet, Testnet, and Futurenet are:

Mainnet (Pubnet): Public Global Stellar Network ; September 2015

Testnet: Test SDF Network ; September 2015

Futurenet: Test SDF Future Network ; October 2022

For applications that don’t rely on the state of the network (such as specific accounts needing to exist), you move to production by changing the network passphrase and ensuring your Horizon instance is connected to Mainnet.

If you’ve been running a Stellar Core or Horizon instance against the Testnet and want to switch to production, changing the passphrase will require both respective databases to be completely reinitialized. If you run your own RPC on Testnet or Futurenet, you may want to use an RPC service when you move to Mainnet. Check out the RPC service providers here.