NEAR Protocol operates on several networks each operating with their own independent validators and unique state. These networks are as follows:
mainnet is for production ready smart contracts and live token transfers. Contracts ready for
mainnet should have gone through rigorous testing and independent security reviews if necessary.
mainnet is the only network where state is guaranteed to persist over time (subject to the typical security guarantees of the network's validation process).
testnet is a public network and the final testing network for
nearcore changes before deployment to
testnet is intended for testing all aspects of the NEAR platform prior to
mainnet deployment. From account creation, mock token transfers, development tooling, and smart contract development, the
testnet environment closely resembles
mainnet behavior. All
nearcore changes are deployed as release candidates on first testnet, before the changes are released on
mainnet. A number of
testnet validators validate transactions and create new blocks. dApp developers deploy their applications on
testnet before deploying on
mainnet. It is important to note that
testnet has its own transactions and states.
betanet is a public network, where
nearcore is run to test its stability and backward compatibility. Validators on
betanet are participants in the Betanet Analysis Group, where they engage in active discussions, submit bug reports, and participate in issue resolution. On
betanet protocol changes, there are automated hard forks, where the state is compressed into a new genesis. As such, new genesis exists frequently on
betanet, and there are no historical data snapshots.
betanet usually has daily releases with protocol features that are not yet stabilized. State is maintained as much as possible but there is no guarantees with its high volatility.
localnet is intended for developers who want to work with the NEAR platform independent of the public blockchain. You will need to generate nodes yourself.
localnet gives you the total control over accounts, economics, and other factors for more advanced use cases (including making changes to
nearcore). For developers,
localnet is the right choice if you prefer to avoid leaking information about your work during the development process.
More on local development here
near-cli network selection variable is