# Building for Production

The Xion Foundation aims to offer developers a clear and structured pathway for deploying secure and reliable decentralized applications.

In XION, **Production** means deploying your app to **Mainnet**—the live network where real users and real value live. **Testnet** is like a **sandbox** or staging environment: you can deploy and test freely with no cost and no governance gates. When you're ready to go live, you deploy to Mainnet (Production) through a governed process.

This section outlines the key differences between **Testnet** and **Mainnet**, the requirements for deployment, and best practices to ensure your contracts are approved and adopted by the community.

## **Testnet: A Space for Development & Refinement**

The **Xion Testnet** is a **permissionless** environment where developers can deploy and refine their contracts without restrictions. We encourage teams to:

* **Test and iterate** their contracts before considering Mainnet deployment.
* **Engage with the community** for feedback, allowing real users to test their apps and identify potential improvements.
* **Ensure stability and security** by rigorously testing different scenarios and edge cases.

By leveraging Testnet, developers can refine their apps to the highest standards before moving to Mainnet.

## **Mainnet: A Secure & Permissioned Environment**

Unlike **Testnet**, the **Xion Mainnet is permissioned**, meaning contracts cannot be deployed freely. Instead, contracts must go through a [**governance proposal process**](https://docs.burnt.com/xion/developers/broken-reference), where the Xion community reviews and votes on whether a contract should be stored on-chain.

To protect users and maintain the security of the network, **audited contracts** have the highest chance of being considered for approval. This ensures that **Mainnet** hosts only **secure and reliable** apps.

### **Governance & Audit Requirements**

To increase the chances of passing governance and deploying on Mainnet, developers should:

1. **Use existing, battle-tested contracts** – Where possible, developers should build on top of widely used and audited contracts to simplify the review process.
2. **Engage with the community** – Early discussions with the community can help identify concerns and improve the likelihood of governance approval.
3. **Conduct a security audit** – A professional third-party audit is highly recommended to ensure the contract has no vulnerabilities.
4. **Follow the governance process** – Refer to the [official guidelines](https://docs.burnt.com/xion/developers/broken-reference) for detailed steps.
