Deploy, track, and upgrade child contracts from a template — the three core operations of a factory manager.
When a protocol needs to deploy multiple instances of the same contract (e.g., one per user, per market, per pool), a factory manager handles the deployment lifecycle: deploy from a template, track all instances, and upgrade them when the template changes.
| Multiple instances of same contract needed | Yes | | Each user/entity gets their own contract | Yes | | Single contract serves all users | No | | Different contract types per deployment | No — use separate deploy logic |
Factory pattern for deploying and managing child contracts from a parent manager. Use when building marketplaces, launchpads, multi-tenant systems, or any protocol that deploys child contracts from a template. Source: multiversx/mx-ai-skills.