[{"@context":"https:\/\/schema.org\/","@type":"BlogPosting","@id":"https:\/\/sqmu.net\/guide\/2026\/03\/how-developers-can-deploy-sqmu-smart-contracts-on-any-evm-chain\/#BlogPosting","mainEntityOfPage":"https:\/\/sqmu.net\/guide\/2026\/03\/how-developers-can-deploy-sqmu-smart-contracts-on-any-evm-chain\/","headline":"How Developers Can Deploy SQMU Smart Contracts on Any EVM Chain","name":"How Developers Can Deploy SQMU Smart Contracts on Any EVM Chain","description":"The SQMU protocol is a chain-agnostic platform enabling real estate tokenization on any EVM-compatible blockchain. This guide details the deployment of SQMU contracts, covering setup, configuration, and verification. By following the process, developers can efficiently launch and manage property tokenization solutions tailored to specific needs and compliance requirements.","datePublished":"2026-03-29","dateModified":"2026-03-28","author":{"@type":"Person","@id":"https:\/\/sqmu.net\/author\/npvincent\/#Person","name":"Vincent","url":"https:\/\/sqmu.net\/author\/npvincent\/","identifier":81298481,"image":{"@type":"ImageObject","@id":"https:\/\/secure.gravatar.com\/avatar\/d94cf1d4b33e5003c9d6729625a691370c0a6f7779f99eea52a9c190ec9eae9a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/d94cf1d4b33e5003c9d6729625a691370c0a6f7779f99eea52a9c190ec9eae9a?s=96&d=mm&r=g","height":96,"width":96}},"publisher":{"@type":"Organization","name":"SQMU"},"image":{"@type":"ImageObject","@id":"https:\/\/i0.wp.com\/sqmu.net\/wp-content\/uploads\/2026\/03\/image-6-e1774652502447.png?fit=768%2C768&ssl=1","url":"https:\/\/i0.wp.com\/sqmu.net\/wp-content\/uploads\/2026\/03\/image-6-e1774652502447.png?fit=768%2C768&ssl=1","height":768,"width":768},"url":"https:\/\/sqmu.net\/guide\/2026\/03\/how-developers-can-deploy-sqmu-smart-contracts-on-any-evm-chain\/","about":["Guide"],"wordCount":1430,"keywords":["Arbitrum","base","deployment","developers","evm","github","hardhat","open-source","smart-contracts","sqmu-standard"],"articleBody":"Summarize with AIPerplexityChatGPTClaudeGeminiDeepSeekIntroductionThe SQMU protocol is built to be chain\u2011agnostic. Its smart contracts are written in Solidity and designed to run on any Ethereum Virtual Machine (EVM) compatible blockchain. Whether you are deploying on Ethereum mainnet, a layer\u20112 network like Arbitrum or Base, or a testnet for experimentation, the process follows the same principles. This flexibility allows developers, property owners, and platforms to choose the chain that best suits their gas costs, user base, and strategic goals.This article provides a comprehensive guide to deploying the core SQMU contracts\u2014SQMU.sol,&nbsp;AtomicSQMUDistributor.sol, and&nbsp;SQMUTrade.sol\u2014on any EVM chain. It covers environment setup, configuration, deployment scripts, testing, and post\u2011deployment verification. By the end, you will have a running instance of the SQMU standard, ready to tokenise properties by the square metre.For an overview of the open\u2011source codebase, see the&nbsp;SQMU open\u2011source documentation. For the philosophical foundation of the 1\u202fm\u00b2 standard, refer to the&nbsp;SQMU Standard pillar page.PrerequisitesBefore deploying, ensure you have the following:Node.js\u00a0(v16 or later) and\u00a0npm\u00a0installed.Git\u00a0to clone the repository.A\u00a0wallet\u00a0with private key (for mainnet deployments) or a testnet wallet funded with native tokens (ETH, ARB, etc.) for testnets.RPC endpoint\u00a0for the target chain (e.g., from Infura, Alchemy, or a public provider).Basic familiarity with Solidity, Hardhat, and Ethereum transactions.The SQMU repository includes a Hardhat configuration that supports multiple networks out of the box.Step 1: Clone the Repository and Install DependenciesStart by cloning the SQMU GitHub repository and installing the required packages.bashgit clone https:\/\/github.com\/NP-Vincent\/SQMU.gitcd SQMU\/SQMUnpm installThe repository is structured as a Hardhat project, with contracts in&nbsp;contracts\/, deployment scripts in&nbsp;scripts\/, and test files in&nbsp;test\/.Step 2: Configure the Deployment EnvironmentThe Hardhat configuration file (hardhat.config.js) defines the networks you can deploy to. Open it and add your network settings.For example, to deploy on Arbitrum One:javascriptmodule.exports = {  solidity: \"0.8.19\",  networks: {    arbitrum: {      url: \"https:\/\/arb1.arbitrum.io\/rpc\",      accounts: [process.env.PRIVATE_KEY],      chainId: 42161,    },    base: {      url: \"https:\/\/mainnet.base.org\",      accounts: [process.env.PRIVATE_KEY],      chainId: 8453,    },    scroll: {      url: \"https:\/\/rpc.scroll.io\",      accounts: [process.env.PRIVATE_KEY],      chainId: 534352,    },    \/\/ Testnets    arbitrumSepolia: {      url: \"https:\/\/sepolia-rollup.arbitrum.io\/rpc\",      accounts: [process.env.PRIVATE_KEY],      chainId: 421614,    },    baseSepolia: {      url: \"https:\/\/sepolia.base.org\",      accounts: [process.env.PRIVATE_KEY],      chainId: 84532,    },  },};Store your private key in a&nbsp;.env&nbsp;file (never commit it). Use&nbsp;dotenv&nbsp;to load it:javascriptrequire(\"dotenv\").config();const PRIVATE_KEY = process.env.PRIVATE_KEY;Step 3: Understand the Core ContractsThe three main contracts you will deploy are:SQMU.sol\u00a0\u2013 The ERC\u20111155 token contract. For each property, you will deploy a separate instance (or use a single instance with multiple token IDs). This contract manages the ownership ledger.AtomicSQMUDistributor.sol\u00a0\u2013 Handles primary sales. It interacts with\u00a0SQMU.sol\u00a0to transfer tokens atomically upon payment.SQMUTrade.sol\u00a0\u2013 Provides secondary market functionality with whitelist controls.In a typical deployment, you first deploy&nbsp;SQMU.sol&nbsp;for a property, then deploy&nbsp;AtomicSQMUDistributor.sol&nbsp;and optionally&nbsp;SQMUTrade.sol&nbsp;linked to that token contract.Step 4: Write a Deployment ScriptCreate a deployment script in the&nbsp;scripts\/&nbsp;directory, e.g.,&nbsp;deploy.js. Below is a basic script that deploys&nbsp;SQMU.sol&nbsp;and configures it for a property.javascriptconst hre = require(\"hardhat\");async function main() {  const [deployer] = await hre.ethers.getSigners();  console.log(\"Deploying contracts with account:\", deployer.address);  \/\/ Define property metadata  const propertyName = \"Example Tower\";  const propertySymbol = \"ETWR\";  const totalSupply = 1000; \/\/ 1000 m\u00b2  const baseURI = \"ipfs:\/\/Qm...\"; \/\/ Metadata URI  \/\/ Deploy SQMU contract  const SQMU = await hre.ethers.getContractFactory(\"SQMU\");  const sqmu = await SQMU.deploy(propertyName, propertySymbol, totalSupply, baseURI);  await sqmu.deployed();  console.log(\"SQMU deployed to:\", sqmu.address);  \/\/ Optionally deploy distributor  const Distributor = await hre.ethers.getContractFactory(\"AtomicSQMUDistributor\");  const distributor = await Distributor.deploy(sqmu.address);  await distributor.deployed();  console.log(\"Distributor deployed to:\", distributor.address);}main().catch((error) =&gt; {  console.error(error);  process.exitCode = 1;});For more advanced setups, you can deploy a single&nbsp;SQMU&nbsp;contract with multiple token IDs (using ERC\u20111155) to represent a portfolio. The repository includes example scripts for that pattern.Step 5: Run the DeploymentExecute the script on your chosen network. For a testnet:bashnpx hardhat run scripts\/deploy.js --network arbitrumSepoliaFor mainnet:bashnpx hardhat run scripts\/deploy.js --network arbitrumAfter deployment, the script will output the contract addresses. Save them; you will need them for the WordPress plugin or for integrations.Step 6: Verify the Contracts on Block ExplorersVerifying contracts makes the source code publicly readable and allows users to interact with them via explorers like Arbiscan or Basescan. Hardhat supports automatic verification via plugins.Install the verification plugin:bashnpm install --save-dev @nomicfoundation\/hardhat-verifyAdd the plugin to&nbsp;hardhat.config.js&nbsp;and configure API keys for each explorer.Then run:bashnpx hardhat verify --network arbitrum &lt;contract-address&gt; &lt;constructor-arguments&gt;Verification ensures transparency and builds trust with investors and regulators.Step 7: Configure the WordPress Plugin (Optional)If you are using the SQMU WordPress plugin to manage listings and investor dashboards, you will need to update the plugin settings with your deployed contract addresses. The plugin\u2019s admin panel accepts network and contract details, allowing you to connect your WordPress site directly to your deployed contracts.For detailed plugin setup, refer to the&nbsp;open\u2011source WordPress plugin documentation.Step 8: Test the DeploymentBefore opening the property to investors, perform thorough testing on a testnet. The repository includes a comprehensive test suite. Run it with:bashnpx hardhat testYou can also write custom scripts to simulate purchases, transfers, and compliance checks.Compatibility Across EVM ChainsThe SQMU contracts are written in Solidity 0.8.x and have been tested on:Ethereum\u00a0(mainnet, Sepolia)Arbitrum\u00a0(One, Nova, Sepolia)Base\u00a0(mainnet, Sepolia)Scroll\u00a0(mainnet, Sepolia)Polygon\u00a0(mainnet, Mumbai)Because they rely only on standard EVM opcodes and ERC\u20111155 functionality, they should work on any chain with a compatible EVM. Gas costs vary; layer\u20112 networks like Arbitrum and Base offer significantly lower fees, making them attractive for high\u2011volume transactions.Best Practices for Production DeploymentsUse a dedicated deployer account\u00a0with a secure private key stored in a hardware wallet or encrypted environment.Perform a security audit\u00a0before mainnet deployment. The open\u2011source code can be audited by independent firms; consider using audit services that specialise in real\u2011asset tokenisation.Implement administrative controls\u00a0(e.g., multi\u2011signature for ownership functions) to prevent unauthorised changes.Set up monitoring\u00a0for contract events to track minting, transfers, and distributor activities.Document your deployment\u00a0with contract addresses, transaction hashes, and verification links for transparency.Customising for ComplianceEach jurisdiction may require specific transfer restrictions, KYC\/AML controls, or investor qualifications. The SQMU contracts are modular and can be extended to incorporate these requirements. For example, you can:Add a whitelist modifier that restricts transfers to approved addresses.Integrate with a third\u2011party KYC provider that updates the whitelist via an oracle.Use a proxy pattern to allow upgradeable compliance rules.For region\u2011specific guidance, refer to our detailed analyses:Real estate tokenisation in DubaiReal estate tokenisation in SingaporeReal estate tokenisation in Hong KongConclusionDeploying SQMU smart contracts on any EVM chain is a straightforward process that empowers developers to create compliant, transparent, and scalable real estate tokenisation platforms. By following the steps outlined in this guide\u2014cloning the repository, configuring the network, writing deployment scripts, and verifying contracts\u2014you can launch a property tokenisation solution tailored to your needs.The open\u2011source nature of SQMU ensures that you have full control over your deployment, with the ability to inspect, modify, and extend the code as required. Whether you are tokenising a single villa or a global portfolio, the SQMU standard provides a solid foundation.For further assistance or custom deployment support, consulting services are available to help with contract customisation, compliance integration, and launch strategies.Further ReadingOpen Source Real Estate Tokenisation: The SQMU StandardSQMU Standard: Real Estate Tokenisation by the Square MetreReal Estate Tokenization Liquidity: How SQMU Tokens Enable Stable On\u2011Chain Property MarketsHow Distribution, Investor Access, and Market Making Drive Tokenised Real Estate PlatformsShare with friends:\t\t\t\tShare on Telegram (Opens in new window)\t\t\t\tTelegram\t\t\t\t\t\t\tShare on WhatsApp (Opens in new window)\t\t\t\tWhatsApp\t\t\t\t\t\t\tEmail a link to a friend (Opens in new window)\t\t\t\tEmail\t\t\t\t\t\t\tShare on LinkedIn (Opens in new window)\t\t\t\tLinkedIn\t\t\t\t\t\t\tShare on Facebook (Opens in new window)\t\t\t\tFacebook\t\t\t"},{"@context":"https:\/\/schema.org\/","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Guide","item":"https:\/\/sqmu.net\/guide\/#breadcrumbitem"},{"@type":"ListItem","position":2,"name":"2026","item":"https:\/\/sqmu.net\/guide\/\/2026\/#breadcrumbitem"},{"@type":"ListItem","position":3,"name":"03","item":"https:\/\/sqmu.net\/guide\/\/2026\/\/03\/#breadcrumbitem"},{"@type":"ListItem","position":4,"name":"How Developers Can Deploy SQMU Smart Contracts on Any EVM Chain","item":"https:\/\/sqmu.net\/guide\/2026\/03\/how-developers-can-deploy-sqmu-smart-contracts-on-any-evm-chain\/#breadcrumbitem"}]}]