SecurityPoolFactory
Creates and canonically registers origin and child security pools with their share token, oracle coordinator, and optional Truth Auction. SecurityPoolFactory source contract
Read surface
Use minimumSecurityBondDebtAttoEth and minimumVaultRepDepositAttoRep for immutable deployment floors. Each pool derives its effective escalation deposit directly from its REP token at construction as max(1 REP, theoretical REP supply / 10,000,000). A zero configured vault REP floor selects the default theoretical REP supply / 100,000; a nonzero constructor value is the exact override. The security-bond debt floor defaults to 1 ETH. Construction rejects a zero or code-less operations delegate. Use securityPoolDeploymentCount with the strict securityPoolDeploymentsRange(startIndex, count) pager, which reverts rather than truncating when the requested range exceeds the array. Use getOriginId, getPoolId, getSecurityPool, getSecurityPoolOriginId, and getSecurityPoolHasInheritedForkOutcome for canonical lookup.
State-changing interactions
| Transaction | Caller | Main prerequisites | State or asset effect | Primary signals |
|---|---|---|---|---|
deployOriginSecurityPool(universeId, questionId, statoblastSecurityMultiplierBps, initialReportPriorityFeeAttoEthPerGas) |
Anyone | statoblastSecurityMultiplierBps > 10_001, which makes the halfway migration component strictly greater than one; the effective pool-held vault REP backing multiplier separately floors that component at the 10,500-BPS liquidation-award reserve described by the liquidation design. initialReportPriorityFeeAttoEthPerGas > 0 and remains within the coordinator-computed OpenOracle uint128 report/escalation-halt capacity bound; question exists and has exactly the categorical labels Yes, then No; universe is unforked and has a REP token; the non-decision threshold exceeds the construction-time effective escalation deposit max(1 REP, theoretical REP supply / 10,000,000); the origin/universe/priority-fee slot has not already been claimed. |
Creates the canonical origin pool, its lineage-wide share token, and its price coordinator with the configured initial-report priority fee, then wires and registers them atomically. | SecurityPoolRegistered, then DeploySecurityPool |
deployChildSecurityPool(parent, shareToken, universeId, questionId, statoblastSecurityMultiplierBps, currentRetentionRate, settlementCollateralAttoEth) |
SecurityPoolForker only |
Parent is the canonical pool for its lineage; supplied share token equals the parent share token; target origin/universe slot is unclaimed; deployment arguments satisfy downstream constructors and wiring. | Creates and registers a canonical child pool with a coordinator that inherits initialReportPriorityFeeAttoEthPerGas from the parent coordinator and a forker-owned Truth Auction, while retaining the parent lineage share token. |
SecurityPoolRegistered, then DeploySecurityPool |