Under Construction This DApp is in development

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:

  1. Smart Contracts (Hardhat)

  2. Subgraph Indexing (The Graph)

  3. Front-End Configuration (Next.js)

All deployments are managed via Hardhat scripts in the /packages/contracts folder.

πŸ›  Smart Contract Deployment (Using Hardhat)

Pre-requisites

  • Node.js β‰₯ v18

  • Hardhat + ethers

  • .env file with deployer key & RPC endpoint

Run Deploy Script

npx hardhat run scripts/deploy.ts --network polygonZkEvm

This deploys core contracts:

  • OmniWalletFactory

  • PersonaNFT

  • RepModule

  • DAOFactory

  • EditionDropFactory (optional)

Addresses are auto-logged and stored in /deployments/[network].json.

🌍 Network Configuration

Network
Chain ID
Description
Status

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-testnet or 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:

  1. Proposed via createProposal() in a DAO.

  2. Voted on by token holders or reputation holders.

  3. 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:

  1. Clone the repo and update the namespaces (omnisocial β†’ your project).

  2. Deploy fresh contracts using the same steps.

  3. Optionally, fork the subgraph and point to your contract addresses.

  4. Replace omnisocial.dev links 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?