Deployment & Migration Guide
This guide outlines the deployment process, network configuration, and governance-based upgrade paths for OmniSocial.
It also supports contributors or projects wishing to deploy their own instance of OmniSocial.
π§ Deployment Process Overview
OmniSocialβs core is composed of smart contracts, a subgraph, and a front-end dApp. Deployment occurs in three coordinated phases:
Smart Contracts (Hardhat)
Subgraph Indexing (The Graph)
Front-End Configuration (Next.js)
All deployments are managed via
Hardhatscripts in the/packages/contractsfolder.
π Smart Contract Deployment (Using Hardhat)
Pre-requisites
Node.js β₯ v18
Hardhat + ethers
.envfile with deployer key & RPC endpoint
Run Deploy Script
npx hardhat run scripts/deploy.ts --network polygonZkEvmThis deploys core contracts:
OmniWalletFactoryPersonaNFTRepModuleDAOFactoryEditionDropFactory(optional)
Addresses are auto-logged and stored in /deployments/[network].json.
π Network Configuration
polygonZkEvm
1101
Main zkEVM network
β Active
polygonZkTestnet
1442
Test zkEVM network
π§ͺ Testing
Update hardhat.config.ts and subgraph.yaml with correct addresses per deployment.
𧬠Subgraph Deployment
Update /packages/subgraph/subgraph.yaml with deployed contract addresses.
Deploy to Hosted Service
Replace with
zk-testnetor your own namespace as needed.
π Front-End Environment
Update .env.local in the frontend/ package with:
π§± Upgrade Flow via DAO
OmniSocial contracts use UUPS (Universal Upgradeable Proxy Standard) where applicable. Contract upgrades must be:
Proposed via
createProposal()in a DAO.Voted on by token holders or reputation holders.
Queued and executed via the
TimelockController.
Example upgrade proposal:
DAO votes + timelock are required for execution unless deploying your own fork without governance gating.
πͺ Forking & Migrating
To fork OmniSocial:
Clone the repo and update the namespaces (
omnisocialβ your project).Deploy fresh contracts using the same steps.
Optionally, fork the subgraph and point to your contract addresses.
Replace
omnisocial.devlinks and branding in the front-end config.
Migration tools (e.g., to import users or personas from another deployment) will be available soon.
Last updated
Was this helpful?
